Bring in the altq.4 man page from FreeBSD.
[dragonfly.git] / share / man / man4 / altq.4
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: src/share/man/man4/altq.4,v 1.16 2006/03/02 19:45:59 thompsa Exp $
27 .\" $DragonFly: src/share/man/man4/altq.4,v 1.1 2006/03/19 02:57:38 swildner Exp $
28 .\"
29 .Dd March 18, 2006
30 .Dt ALTQ 4
31 .Os
32 .Sh NAME
33 .Nm ALTQ
34 .Nd "alternate queuing of network packets"
35 .Sh SYNOPSIS
36 .Cd options ALTQ
37 .Pp
38 .Cd options ALTQ_CBQ
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 .Sh DESCRIPTION
45 The
46 .Nm
47 framework provides several disciplines for queuing outgoing network packets.
48 This is done by modifications to the interface packet queues.
49 See
50 .Xr altq 9
51 for details.
52 .Pp
53 The user interface for
54 .Nm
55 is implemented by the
56 .Xr pfctl 8
57 utility, so please refer to the
58 .Xr pfctl 8
59 and the
60 .Xr pf.conf 5
61 manpages for a complete description of the
62 .Nm
63 capabilities and how to use it.
64 .Ss Kernel Options
65 The following options in the kernel configuration file are related to
66 .Nm
67 operation:
68 .Pp
69 .Bl -tag -width ".Dv ALTQ_DEBUG" -compact
70 .It Dv ALTQ
71 Enable
72 .Nm .
73 .It Dv ALTQ_CBQ
74 Build the
75 .Dq "Class Based Queuing"
76 discipline.
77 .It Dv ALTQ_RED
78 Build the
79 .Dq "Random Early Detection"
80 extension.
81 .It Dv ALTQ_RIO
82 Build
83 .Dq "Random Early Drop"
84 for input and output.
85 .It Dv ALTQ_HFSC
86 Build the
87 .Dq "Hierarchical Packet Scheduler"
88 discipline.
89 .\".It Dv ALTQ_CDNR
90 .\"Build the traffic conditioner.
91 .\"This option is meaningless at the moment as the conditioner is not used by
92 .\"any of the available disciplines or consumers.
93 .It Dv ALTQ_PRIQ
94 Build the
95 .Dq "Priority Queuing"
96 discipline.
97 .It Dv ALTQ_NOPCC
98 Required if the TSC is unusable.
99 .It Dv ALTQ_DEBUG
100 Enable additional debugging facilities.
101 .El
102 .Pp
103 Note that
104 .Nm Ns -disciplines
105 cannot be loaded as kernel modules.
106 In order to use a certain discipline you have to build it into a custom
107 kernel.
108 The
109 .Xr pf 4
110 interface, that is required for the configuration process of
111 .Nm
112 can be loaded as a module.
113 .Sh SUPPORTED DEVICES
114 The driver modifications described in
115 .Xr altq 9
116 are required to use a certain network card with
117 .Nm .
118 They have been applied to the following hardware drivers:
119 .Xr an 4 ,
120 .Xr aue 4 ,
121 .Xr awi 4 ,
122 .Xr axe 4 ,
123 .Xr bfe 4 ,
124 .Xr bge 4 ,
125 .Xr cs 4 ,
126 .Xr cue 4 ,
127 .Xr dc 4 ,
128 .Xr ed 4 ,
129 .Xr el 4 ,
130 .Xr em 4 ,
131 .Xr ep 4 ,
132 .Xr ex 4 ,
133 .Xr fe 4 ,
134 .Xr fwe 4 ,
135 .Xr fxp 4 ,
136 .Xr gx 4 ,
137 .Xr ie 4 ,
138 .Xr ipw 4 ,
139 .Xr iwi 4 ,
140 .Xr le 4 ,
141 .Xr lge 4 ,
142 .Xr lnc 4 ,
143 .Xr my 4 ,
144 .Xr nge 4 ,
145 .Xr nv 4 ,
146 .Xr pcn 4 ,
147 .Xr ray 4 ,
148 .Xr rdp 4 ,
149 .Xr re 4 ,
150 .Xr rl 4 ,
151 .Xr sf 4 ,
152 .Xr sis 4 ,
153 .Xr sk 4 ,
154 .Xr sn 4 ,
155 .Xr ste 4 ,
156 .Xr ti 4 ,
157 .Xr tl 4 ,
158 .Xr tx 4 ,
159 .Xr txp 4 ,
160 .Xr vr 4 ,
161 .Xr vx 4 ,
162 .Xr wb 4 ,
163 .Xr wi 4 ,
164 .Xr wl 4 ,
165 .Xr xe 4 ,
166 and
167 .Xr xl 4 .
168 .Pp
169 The
170 .Xr ndis 4
171 framework also has support for
172 .Nm
173 and thus all encapsulated drivers.
174 .Pp
175 The
176 .Xr tun 4
177 .\"and
178 .\".Xr ng_iface 4
179 .\"pseudo drivers also do support
180 pseudo driver also does support
181 .Nm .
182 .Sh SEE ALSO
183 .Xr pf 4 ,
184 .Xr pf.conf 5 ,
185 .Xr ipfw 8 ,
186 .Xr pfctl 8 ,
187 .Xr altq 9