xref: /freebsd/share/man/man4/altq.4 (revision eb69d1f144a6fcc765d1b9d44a5ae8082353e70b)
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