summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/altq.4 3.html
blob: 8c7031c5663b85989327936a6adf34d96508ecf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<table class="head">
  <tr>
    <td class="head-ltitle">ALTQ(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">ALTQ(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">ALTQ</code> &#x2014; <span class="Nd">alternate
    queuing of network packets</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="Cd">options ALTQ</code></p>
<p class="Pp">
  <br/>
  <code class="Cd">options ALTQ_CBQ</code>
  <br/>
  <code class="Cd">options ALTQ_CODEL</code>
  <br/>
  <code class="Cd">options ALTQ_RED</code>
  <br/>
  <code class="Cd">options ALTQ_RIO</code>
  <br/>
  <code class="Cd">options ALTQ_HFSC</code>
  <br/>
  <code class="Cd">options ALTQ_CDNR</code>
  <br/>
  <code class="Cd">options ALTQ_PRIQ</code>
  <br/>
  <code class="Cd">options ALTQ_FAIRQ</code></p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The <code class="Nm">ALTQ</code> system is a framework which
    provides several disciplines for queuing outgoing network packets. This is
    done by modifications to the interface packet queues. See
    <a class="Xr">altq(9)</a> for details.</p>
<p class="Pp">The user interface for <code class="Nm">ALTQ</code> is implemented
    by the <a class="Xr">pfctl(8)</a> utility, so please refer to the
    <a class="Xr">pfctl(8)</a> and the <a class="Xr">pf.conf(5)</a> man pages
    for a complete description of the <code class="Nm">ALTQ</code> capabilities
    and how to use it.</p>
<section class="Ss">
<h2 class="Ss" id="Kernel_Options"><a class="permalink" href="#Kernel_Options">Kernel
  Options</a></h2>
<p class="Pp">The following options in the kernel configuration file are related
    to <code class="Nm">ALTQ</code> operation:</p>
<p class="Pp"></p>
<dl class="Bl-tag Bl-compact">
  <dt id="ALTQ"><a class="permalink" href="#ALTQ"><code class="Dv">ALTQ</code></a></dt>
  <dd>Enable <code class="Nm">ALTQ</code>.</dd>
  <dt id="ALTQ_CBQ"><a class="permalink" href="#ALTQ_CBQ"><code class="Dv">ALTQ_CBQ</code></a></dt>
  <dd>Build the &#x201C;Class Based Queuing&#x201D; discipline.</dd>
  <dt id="ALTQ_CODEL"><a class="permalink" href="#ALTQ_CODEL"><code class="Dv">ALTQ_CODEL</code></a></dt>
  <dd>Build the &#x201C;Controlled Delay&#x201D; discipline.</dd>
  <dt id="ALTQ_RED"><a class="permalink" href="#ALTQ_RED"><code class="Dv">ALTQ_RED</code></a></dt>
  <dd>Build the &#x201C;Random Early Detection&#x201D; extension.</dd>
  <dt id="ALTQ_RIO"><a class="permalink" href="#ALTQ_RIO"><code class="Dv">ALTQ_RIO</code></a></dt>
  <dd>Build &#x201C;Random Early Drop&#x201D; for input and output.</dd>
  <dt id="ALTQ_HFSC"><a class="permalink" href="#ALTQ_HFSC"><code class="Dv">ALTQ_HFSC</code></a></dt>
  <dd>Build the &#x201C;Hierarchical Packet Scheduler&#x201D; discipline.</dd>
  <dt id="ALTQ_CDNR"><a class="permalink" href="#ALTQ_CDNR"><code class="Dv">ALTQ_CDNR</code></a></dt>
  <dd>Build the traffic conditioner. This option is meaningless at the moment as
      the conditioner is not used by any of the available disciplines or
      consumers.</dd>
  <dt id="ALTQ_PRIQ"><a class="permalink" href="#ALTQ_PRIQ"><code class="Dv">ALTQ_PRIQ</code></a></dt>
  <dd>Build the &#x201C;Priority Queuing&#x201D; discipline.</dd>
  <dt id="ALTQ_FAIRQ"><a class="permalink" href="#ALTQ_FAIRQ"><code class="Dv">ALTQ_FAIRQ</code></a></dt>
  <dd>Build the &#x201C;Fair Queuing&#x201D; discipline.</dd>
  <dt id="ALTQ_NOPCC"><a class="permalink" href="#ALTQ_NOPCC"><code class="Dv">ALTQ_NOPCC</code></a></dt>
  <dd>Required if the TSC is unusable.</dd>
  <dt id="ALTQ_DEBUG"><a class="permalink" href="#ALTQ_DEBUG"><code class="Dv">ALTQ_DEBUG</code></a></dt>
  <dd>Enable additional debugging facilities.</dd>
</dl>
<p class="Pp">Note that <code class="Nm">ALTQ</code>-disciplines cannot be
    loaded as kernel modules. In order to use a certain discipline you have to
    build it into a custom kernel. The <a class="Xr">pf(4)</a> interface, that
    is required for the configuration process of <code class="Nm">ALTQ</code>
    can be loaded as a module.</p>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="SUPPORTED_DEVICES"><a class="permalink" href="#SUPPORTED_DEVICES">SUPPORTED
  DEVICES</a></h1>
<p class="Pp">The driver modifications described in <a class="Xr">altq(9)</a>
    are required to use a certain network card with
    <code class="Nm">ALTQ</code>. They have been applied to the following
    hardware drivers: <a class="Xr">ae(4)</a>, <a class="Xr">age(4)</a>,
    <a class="Xr">alc(4)</a>, <a class="Xr">ale(4)</a>,
    <a class="Xr">aue(4)</a>, <a class="Xr">axe(4)</a>,
    <a class="Xr">bce(4)</a>, <a class="Xr">bfe(4)</a>,
    <a class="Xr">bge(4)</a>, <a class="Xr">bxe(4)</a>,
    <a class="Xr">cas(4)</a>, <a class="Xr">dc(4)</a>, <a class="Xr">em(4)</a>,
    <a class="Xr">epair(4)</a>, <a class="Xr">et(4)</a>,
    <a class="Xr">fxp(4)</a>, <a class="Xr">gem(4)</a>,
    <a class="Xr">igb(4)</a>, <a class="Xr">ix(4)</a>, <a class="Xr">jme(4)</a>,
    <a class="Xr">le(4)</a>, <a class="Xr">liquidio(4)</a>,
    <a class="Xr">msk(4)</a>, <a class="Xr">mxge(4)</a>,
    <a class="Xr">my(4)</a>, <a class="Xr">nfe(4)</a>, <a class="Xr">nge(4)</a>,
    <a class="Xr">qlxgb(4)</a>, <a class="Xr">re(4)</a>,
    <a class="Xr">rl(4)</a>, <a class="Xr">sge(4)</a>, <a class="Xr">sis(4)</a>,
    <a class="Xr">sk(4)</a>, <a class="Xr">ste(4)</a>,
    <a class="Xr">stge(4)</a>, <a class="Xr">ti(4)</a>,
    <a class="Xr">udav(4)</a>, <a class="Xr">vge(4)</a>,
    <a class="Xr">vr(4)</a>, <a class="Xr">vte(4)</a>, and
    <a class="Xr">xl(4)</a>.</p>
<p class="Pp">The <a class="Xr">tun(4)</a>, <a class="Xr">if_bridge(4)</a>,
    <a class="Xr">if_vlan(4)</a>, and <a class="Xr">ng_iface(4)</a> pseudo
    drivers also do support <code class="Nm">ALTQ</code>.</p>
<p class="Pp">An example:</p>
<div class="Bd Pp Bd-indent Li">
<pre>altq on igb0 cbq queue { def aq }
queue def bandwidth 90% cbq (default borrow)
queue aq bandwidth 10Mb cbq

pass in on igb0.10 proto udp all queue aq keep state</pre>
</div>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<p class="Pp"><a class="Xr">pf(4)</a>, <a class="Xr">pf.conf(5)</a>,
    <a class="Xr">ipfw(8)</a>, <a class="Xr">pfctl(8)</a>,
    <a class="Xr">altq(9)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">The <code class="Nm">ALTQ</code> system first appeared in March
    1997 and found home in the KAME project (https://www.kame.net). It was
    imported to <span class="Ux">FreeBSD</span> in 5.3 .</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">January 21, 2024</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>