2004-10-07 12:10:25 +00:00
|
|
|
.\"
|
2005-01-14 10:46:08 +00:00
|
|
|
.\" Copyright (c) 2004 Max Laier <mlaier@FreeBSD.org>
|
2004-10-07 12:10:25 +00:00
|
|
|
.\" All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.\"
|
2005-01-14 10:46:08 +00:00
|
|
|
.\" $FreeBSD$
|
2004-10-07 12:10:25 +00:00
|
|
|
.\"
|
2021-01-26 21:46:59 +00:00
|
|
|
.Dd January 26, 2021
|
2004-10-07 12:10:25 +00:00
|
|
|
.Dt ALTQ 4
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm ALTQ
|
2005-01-14 10:46:08 +00:00
|
|
|
.Nd "alternate queuing of network packets"
|
2005-02-07 11:46:36 +00:00
|
|
|
.Sh SYNOPSIS
|
|
|
|
.Cd options ALTQ
|
|
|
|
.Pp
|
|
|
|
.Cd options ALTQ_CBQ
|
2015-08-21 22:02:22 +00:00
|
|
|
.Cd options ALTQ_CODEL
|
2005-02-07 11:46:36 +00:00
|
|
|
.Cd options ALTQ_RED
|
|
|
|
.Cd options ALTQ_RIO
|
|
|
|
.Cd options ALTQ_HFSC
|
|
|
|
.Cd options ALTQ_CDNR
|
|
|
|
.Cd options ALTQ_PRIQ
|
2015-06-24 19:16:41 +00:00
|
|
|
.Cd options ALTQ_FAIRQ
|
2004-10-07 12:10:25 +00:00
|
|
|
.Sh DESCRIPTION
|
|
|
|
The
|
|
|
|
.Nm
|
2018-03-20 22:41:26 +00:00
|
|
|
system is a framework which provides several disciplines for queuing outgoing
|
|
|
|
network packets.
|
2004-10-07 12:10:25 +00:00
|
|
|
This is done by modifications to the interface packet queues.
|
|
|
|
See
|
|
|
|
.Xr altq 9
|
|
|
|
for details.
|
|
|
|
.Pp
|
|
|
|
The user interface for
|
|
|
|
.Nm
|
|
|
|
is implemented by the
|
|
|
|
.Xr pfctl 8
|
|
|
|
utility, so please refer to the
|
|
|
|
.Xr pfctl 8
|
|
|
|
and the
|
|
|
|
.Xr pf.conf 5
|
2018-03-20 22:41:26 +00:00
|
|
|
man pages for a complete description of the
|
2004-10-07 12:10:25 +00:00
|
|
|
.Nm
|
|
|
|
capabilities and how to use it.
|
|
|
|
.Ss Kernel Options
|
|
|
|
The following options in the kernel configuration file are related to
|
|
|
|
.Nm
|
|
|
|
operation:
|
|
|
|
.Pp
|
|
|
|
.Bl -tag -width ".Dv ALTQ_DEBUG" -compact
|
|
|
|
.It Dv ALTQ
|
2005-01-14 10:46:08 +00:00
|
|
|
Enable
|
|
|
|
.Nm .
|
2004-10-07 12:10:25 +00:00
|
|
|
.It Dv ALTQ_CBQ
|
2005-01-14 10:46:08 +00:00
|
|
|
Build the
|
2004-10-07 12:10:25 +00:00
|
|
|
.Dq "Class Based Queuing"
|
|
|
|
discipline.
|
2015-08-21 22:02:22 +00:00
|
|
|
.It Dv ALTQ_CODEL
|
|
|
|
Build the
|
|
|
|
.Dq "Controlled Delay"
|
|
|
|
discipline.
|
2004-10-07 12:10:25 +00:00
|
|
|
.It Dv ALTQ_RED
|
2005-01-14 10:46:08 +00:00
|
|
|
Build the
|
2005-02-07 23:20:12 +00:00
|
|
|
.Dq "Random Early Detection"
|
2004-10-07 12:10:25 +00:00
|
|
|
extension.
|
|
|
|
.It Dv ALTQ_RIO
|
2005-01-14 10:46:08 +00:00
|
|
|
Build
|
2004-10-07 12:10:25 +00:00
|
|
|
.Dq "Random Early Drop"
|
|
|
|
for input and output.
|
|
|
|
.It Dv ALTQ_HFSC
|
2005-01-14 10:46:08 +00:00
|
|
|
Build the
|
2004-10-07 12:10:25 +00:00
|
|
|
.Dq "Hierarchical Packet Scheduler"
|
|
|
|
discipline.
|
|
|
|
.It Dv ALTQ_CDNR
|
2005-01-14 10:46:08 +00:00
|
|
|
Build the traffic conditioner.
|
2004-10-07 12:10:25 +00:00
|
|
|
This option is meaningless at the moment as the conditioner is not used by
|
2004-11-11 22:52:26 +00:00
|
|
|
any of the available disciplines or consumers.
|
2004-10-07 12:10:25 +00:00
|
|
|
.It Dv ALTQ_PRIQ
|
2005-01-14 10:46:08 +00:00
|
|
|
Build the
|
2004-10-07 12:10:25 +00:00
|
|
|
.Dq "Priority Queuing"
|
|
|
|
discipline.
|
2015-06-24 19:16:41 +00:00
|
|
|
.It Dv ALTQ_FAIRQ
|
|
|
|
Build the
|
|
|
|
.Dq "Fair Queuing"
|
|
|
|
discipline.
|
2004-10-07 12:10:25 +00:00
|
|
|
.It Dv ALTQ_NOPCC
|
2006-03-02 19:45:59 +00:00
|
|
|
Required if the TSC is unusable.
|
2004-10-07 12:10:25 +00:00
|
|
|
.It Dv ALTQ_DEBUG
|
2005-01-14 10:46:08 +00:00
|
|
|
Enable additional debugging facilities.
|
2004-10-07 12:10:25 +00:00
|
|
|
.El
|
|
|
|
.Pp
|
|
|
|
Note that
|
|
|
|
.Nm Ns -disciplines
|
2004-11-11 22:52:26 +00:00
|
|
|
cannot be loaded as kernel modules.
|
2004-10-07 12:10:25 +00:00
|
|
|
In order to use a certain discipline you have to build it into a custom
|
|
|
|
kernel.
|
|
|
|
The
|
|
|
|
.Xr pf 4
|
|
|
|
interface, that is required for the configuration process of
|
|
|
|
.Nm
|
|
|
|
can be loaded as a module.
|
|
|
|
.Sh SUPPORTED DEVICES
|
|
|
|
The driver modifications described in
|
|
|
|
.Xr altq 9
|
2004-11-11 22:52:26 +00:00
|
|
|
are required to use a certain network card with
|
|
|
|
.Nm .
|
|
|
|
They have been applied to the following hardware drivers:
|
2010-12-19 23:50:36 +00:00
|
|
|
.Xr ae 4 ,
|
2008-05-19 02:06:39 +00:00
|
|
|
.Xr age 4 ,
|
2009-06-10 02:19:54 +00:00
|
|
|
.Xr alc 4 ,
|
2008-11-12 10:20:29 +00:00
|
|
|
.Xr ale 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr an 4 ,
|
2007-02-03 13:53:22 +00:00
|
|
|
.Xr aue 4 ,
|
2010-03-12 10:01:06 +00:00
|
|
|
.Xr axe 4 ,
|
2007-02-03 13:33:40 +00:00
|
|
|
.Xr bce 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr bfe 4 ,
|
2004-11-01 11:43:07 +00:00
|
|
|
.Xr bge 4 ,
|
2013-09-20 20:18:49 +00:00
|
|
|
.Xr bxe 4 ,
|
2009-06-15 18:24:04 +00:00
|
|
|
.Xr cas 4 ,
|
2011-02-18 08:00:26 +00:00
|
|
|
.Xr cxgbe 4 ,
|
2004-10-08 03:33:31 +00:00
|
|
|
.Xr dc 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr em 4 ,
|
2009-07-26 12:20:07 +00:00
|
|
|
.Xr epair 4 ,
|
2011-12-09 19:17:51 +00:00
|
|
|
.Xr et 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr fxp 4 ,
|
2007-06-04 06:01:57 +00:00
|
|
|
.Xr gem 4 ,
|
2010-12-19 23:50:36 +00:00
|
|
|
.Xr igb 4 ,
|
|
|
|
.Xr ixgbe 4 ,
|
2008-05-27 02:03:26 +00:00
|
|
|
.Xr jme 4 ,
|
2006-01-31 18:46:17 +00:00
|
|
|
.Xr le 4 ,
|
2017-09-12 23:36:58 +00:00
|
|
|
.Xr liquidio 4 ,
|
2006-12-13 02:40:06 +00:00
|
|
|
.Xr msk 4 ,
|
2006-12-13 08:55:20 +00:00
|
|
|
.Xr mxge 4 ,
|
2006-06-05 18:02:36 +00:00
|
|
|
.Xr my 4 ,
|
2007-06-12 02:19:11 +00:00
|
|
|
.Xr nfe 4 ,
|
2009-05-21 02:47:46 +00:00
|
|
|
.Xr nge 4 ,
|
2007-02-03 13:38:04 +00:00
|
|
|
.Xr npe 4 ,
|
2011-11-06 20:59:07 +00:00
|
|
|
.Xr qlxgb 4 ,
|
2005-03-12 17:35:37 +00:00
|
|
|
.Xr re 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr rl 4 ,
|
2010-04-14 21:27:48 +00:00
|
|
|
.Xr sge 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr sis 4 ,
|
2004-12-24 14:13:38 +00:00
|
|
|
.Xr sk 4 ,
|
2005-07-08 13:05:59 +00:00
|
|
|
.Xr ste 4 ,
|
2006-07-25 00:58:00 +00:00
|
|
|
.Xr stge 4 ,
|
2011-11-08 18:35:11 +00:00
|
|
|
.Xr ti 4 ,
|
2007-02-03 13:33:40 +00:00
|
|
|
.Xr udav 4 ,
|
2007-02-21 10:00:09 +00:00
|
|
|
.Xr vge 4 ,
|
2004-12-24 14:13:38 +00:00
|
|
|
.Xr vr 4 ,
|
2010-12-31 00:46:30 +00:00
|
|
|
.Xr vte 4 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
and
|
|
|
|
.Xr xl 4 .
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Xr tun 4
|
2005-10-10 15:14:37 +00:00
|
|
|
and
|
|
|
|
.Xr ng_iface 4
|
|
|
|
pseudo drivers also do support
|
|
|
|
.Nm .
|
2019-10-09 21:48:00 +00:00
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Xr vlan 4
|
|
|
|
driver does not directly support
|
|
|
|
.Nm ,
|
|
|
|
but as packets (mbufs) are passed to the underlying interface, a queue
|
|
|
|
can be defined for the underlying interface, and any packets directed
|
|
|
|
to the queue will be processed at the interface level.
|
|
|
|
An example:
|
|
|
|
.Pp
|
|
|
|
.Bd -literal -offset indent
|
|
|
|
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
|
|
|
|
.Ed
|
2004-10-07 12:10:25 +00:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr pf 4 ,
|
|
|
|
.Xr pf.conf 5 ,
|
2004-10-08 03:33:31 +00:00
|
|
|
.Xr ipfw 8 ,
|
2004-10-07 12:10:25 +00:00
|
|
|
.Xr pfctl 8 ,
|
2005-01-14 10:46:08 +00:00
|
|
|
.Xr altq 9
|
2018-03-20 22:41:26 +00:00
|
|
|
.Sh HISTORY
|
|
|
|
The
|
|
|
|
.Nm
|
|
|
|
system first appeared in March 1997 and found home in the KAME project
|
|
|
|
(http://www.kame.net).
|
|
|
|
It was imported to
|
|
|
|
.Fx
|
|
|
|
in 5.3 .
|