1.\" 2.\" Copyright (c) 2004 Max Laier <mlaier@freebsd.org> 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.\" $FreeBSD$ 27.\" 28.Dd November 21, 2004 29.Dt ALTQ 4 30.Os 31.Sh NAME 32.Nm ALTQ 33.Nd Alternate queuing of network packets 34.Sh DESCRIPTION 35The 36.Nm 37framework provides several disciplines for queuing outgoing network packets. 38This is done by modifications to the interface packet queues. 39See 40.Xr altq 9 41for details. 42.Pp 43The user interface for 44.Nm 45is implemented by the 46.Xr pfctl 8 47utility, so please refer to the 48.Xr pfctl 8 49and the 50.Xr pf.conf 5 51manpages for a complete description of the 52.Nm 53capabilities and how to use it. 54.Ss Kernel Options 55The following options in the kernel configuration file are related to 56.Nm 57operation: 58.Pp 59.Bl -tag -width ".Dv ALTQ_DEBUG" -compact 60.It Dv ALTQ 61enable 62.Nm 63.It Dv ALTQ_CBQ 64build the 65.Dq "Class Based Queuing" 66discipline. 67.It Dv ALTQ_RED 68build the 69.Dq "Random Early Drop" 70extension. 71.It Dv ALTQ_RIO 72build 73.Dq "Random Early Drop" 74for input and output. 75.It Dv ALTQ_HFSC 76build the 77.Dq "Hierarchical Packet Scheduler" 78discipline. 79.It Dv ALTQ_CDNR 80build the traffic conditioner. 81This option is meaningless at the moment as the conditioner is not used by 82any of the available disciplines or consumers. 83.It Dv ALTQ_PRIQ 84build the 85.Dq "Priority Queuing" 86discipline. 87.It Dv ALTQ_NOPCC 88required for SMP builds. 89.It Dv ALTQ_DEBUG 90enable additional debugging facilities. 91.El 92.Pp 93Note that 94.Nm Ns -disciplines 95cannot be loaded as kernel modules. 96In order to use a certain discipline you have to build it into a custom 97kernel. 98The 99.Xr pf 4 100interface, that is required for the configuration process of 101.Nm 102can be loaded as a module. 103.Sh SUPPORTED DEVICES 104The driver modifications described in 105.Xr altq 9 106are required to use a certain network card with 107.Nm . 108They have been applied to the following hardware drivers: 109.Xr an 4 , 110.Xr ath 4 , 111.Xr awi 4 , 112.Xr bfe 4 , 113.Xr bge 4 , 114.Xr dc 4 , 115.Xr ed 4 , 116.Xr em 4 , 117.Xr fxp 4 , 118.Xr hme 4 , 119.Xr lnc 4 , 120.Xr wi 4 , 121.Xr de 4 , 122.Xr rl 4 , 123.Xr sf 4 , 124.Xr sis 4 , 125.Xr vr 4 126and 127.Xr xl 4 . 128.Pp 129The 130.Xr ndis 4 131framework also has support for 132.Nm 133and thus all encapsulated drivers. 134.Pp 135The 136.Xr tun 4 137pseudo driver also does support 138.Nm 139and includes the required modifications. 140.Sh SEE ALSO 141.Xr pf 4 , 142.Xr pf.conf 5 , 143.Xr ipfw 8 , 144.Xr pfctl 8 , 145.Xr altq 9 . 146