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 August 28, 2017 29.Dt ALTQ 4 30.Os 31.Sh NAME 32.Nm ALTQ 33.Nd "alternate queuing of network packets" 34.Sh SYNOPSIS 35.Cd options ALTQ 36.Pp 37.Cd options ALTQ_CBQ 38.Cd options ALTQ_CODEL 39.Cd options ALTQ_RED 40.Cd options ALTQ_RIO 41.Cd options ALTQ_HFSC 42.Cd options ALTQ_CDNR 43.Cd options ALTQ_PRIQ 44.Cd options ALTQ_FAIRQ 45.Sh DESCRIPTION 46The 47.Nm 48framework provides several disciplines for queuing outgoing network packets. 49This is done by modifications to the interface packet queues. 50See 51.Xr altq 9 52for details. 53.Pp 54The user interface for 55.Nm 56is implemented by the 57.Xr pfctl 8 58utility, so please refer to the 59.Xr pfctl 8 60and the 61.Xr pf.conf 5 62manpages for a complete description of the 63.Nm 64capabilities and how to use it. 65.Ss Kernel Options 66The following options in the kernel configuration file are related to 67.Nm 68operation: 69.Pp 70.Bl -tag -width ".Dv ALTQ_DEBUG" -compact 71.It Dv ALTQ 72Enable 73.Nm . 74.It Dv ALTQ_CBQ 75Build the 76.Dq "Class Based Queuing" 77discipline. 78.It Dv ALTQ_CODEL 79Build the 80.Dq "Controlled Delay" 81discipline. 82.It Dv ALTQ_RED 83Build the 84.Dq "Random Early Detection" 85extension. 86.It Dv ALTQ_RIO 87Build 88.Dq "Random Early Drop" 89for input and output. 90.It Dv ALTQ_HFSC 91Build the 92.Dq "Hierarchical Packet Scheduler" 93discipline. 94.It Dv ALTQ_CDNR 95Build the traffic conditioner. 96This option is meaningless at the moment as the conditioner is not used by 97any of the available disciplines or consumers. 98.It Dv ALTQ_PRIQ 99Build the 100.Dq "Priority Queuing" 101discipline. 102.It Dv ALTQ_FAIRQ 103Build the 104.Dq "Fair Queuing" 105discipline. 106.It Dv ALTQ_NOPCC 107Required if the TSC is unusable. 108.It Dv ALTQ_DEBUG 109Enable additional debugging facilities. 110.El 111.Pp 112Note that 113.Nm Ns -disciplines 114cannot be loaded as kernel modules. 115In order to use a certain discipline you have to build it into a custom 116kernel. 117The 118.Xr pf 4 119interface, that is required for the configuration process of 120.Nm 121can be loaded as a module. 122.Sh SUPPORTED DEVICES 123The driver modifications described in 124.Xr altq 9 125are required to use a certain network card with 126.Nm . 127They have been applied to the following hardware drivers: 128.Xr ae 4 , 129.Xr age 4 , 130.Xr alc 4 , 131.Xr ale 4 , 132.Xr an 4 , 133.Xr aue 4 , 134.Xr axe 4 , 135.Xr bce 4 , 136.Xr bfe 4 , 137.Xr bge 4 , 138.Xr bxe 4 , 139.Xr cas 4 , 140.Xr cxgbe 4 , 141.Xr dc 4 , 142.Xr de 4 , 143.Xr ed 4 , 144.Xr em 4 , 145.Xr ep 4 , 146.Xr epair 4 , 147.Xr et 4 , 148.Xr fxp 4 , 149.Xr gem 4 , 150.Xr hme 4 , 151.Xr igb 4 , 152.Xr ixgbe 4 , 153.Xr jme 4 , 154.Xr le 4 , 155.Xr liquidio 4 , 156.Xr msk 4 , 157.Xr mxge 4 , 158.Xr my 4 , 159.Xr nfe 4 , 160.Xr nge 4 , 161.Xr npe 4 , 162.Xr qlxgb 4 , 163.Xr re 4 , 164.Xr rl 4 , 165.Xr sf 4 , 166.Xr sge 4 , 167.Xr sis 4 , 168.Xr sk 4 , 169.Xr ste 4 , 170.Xr stge 4 , 171.Xr ti 4 , 172.Xr txp 4 , 173.Xr udav 4 , 174.Xr vge 4 , 175.Xr vr 4 , 176.Xr vte 4 , 177and 178.Xr xl 4 . 179.Pp 180The 181.Xr ndis 4 182framework also has support for 183.Nm 184and thus all encapsulated drivers. 185.Pp 186The 187.Xr tun 4 188and 189.Xr ng_iface 4 190pseudo drivers also do support 191.Nm . 192.Sh SEE ALSO 193.Xr pf 4 , 194.Xr pf.conf 5 , 195.Xr ipfw 8 , 196.Xr pfctl 8 , 197.Xr altq 9 198