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