---
name: "altq"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://carta.tech/man/altq"
---

# altq(4)

alternate queuing of network packets

## NAME

**ALTQ** – alternate queuing of network packets

## SYNOPSIS

**options** **ALTQ**

**options** **ALTQ\_CBQ** **options** **ALTQ\_RED** **options** **ALTQ\_RIO** **options** **ALTQ\_HFSC** **options** **ALTQ\_CDNR** **options** **ALTQ\_PRIQ**

## DESCRIPTION

The **ALTQ** framework provides several disciplines for queuing outgoing network packets. This is done by modifications to the interface packet queues. See [altq(9)](/man/altq/9.md) for details.

The user interface for **ALTQ** is implemented by the [pfctl(8)](/man/pfctl/8.md) utility, so please refer to the [pfctl(8)](/man/pfctl/8.md) and the [pf.conf(5)](/man/pf.conf/5.md) manpages for a complete description of the **ALTQ** capabilities and how to use it.

### Kernel Options

The following options in the kernel configuration file are related to **ALTQ** operation:

- ALTQ

  Enable **ALTQ**.

- ALTQ\_CBQ

  Build the “Class Based Queuing” discipline.

- ALTQ\_RED

  Build the “Random Early Detection” extension.

- ALTQ\_RIO

  Build “Random Early Drop” for input and output.

- ALTQ\_HFSC

  Build the “Hierarchical Packet Scheduler” discipline.

- ALTQ\_CDNR

  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.

- ALTQ\_PRIQ

  Build the “Priority Queuing” discipline.

- ALTQ\_NOPCC

  Required for SMP builds.

- ALTQ\_DEBUG

  Enable additional debugging facilities.

Note that **ALTQ**-disciplines cannot be loaded as kernel modules. In order to use a certain discipline you have to build it into a custom kernel. The [pf(4)](/man/pf/4.md) interface, that is required for the configuration process of **ALTQ** can be loaded as a module.

## SUPPORTED DEVICES

The driver modifications described in [altq(9)](/man/altq/9.md) are required to use a certain network card with **ALTQ**. They have been applied to the following hardware drivers: [an(4)](/man/an/4.md), [ath(4)](/man/ath/4.md), [awi(4)](/man/awi/4.md), [bfe(4)](/man/bfe/4.md), [bge(4)](/man/bge/4.md), [dc(4)](/man/dc/4.md), [de(4)](/man/de/4.md), [ed(4)](/man/ed/4.md), [em(4)](/man/em/4.md), [fxp(4)](/man/fxp/4.md), [hme(4)](/man/hme/4.md), [lnc(4)](/man/lnc/4.md), [re(4)](/man/re/4.md), [rl(4)](/man/rl/4.md), [sf(4)](/man/sf/4.md), [sis(4)](/man/sis/4.md), [sk(4)](/man/sk/4.md), [ste(4)](/man/ste/4.md), [vr(4)](/man/vr/4.md), [wi(4)](/man/wi/4.md), and [xl(4)](/man/xl/4.md).

The [ndis(4)](/man/ndis/4.md) framework also has support for **ALTQ** and thus all encapsulated drivers.

The [tun(4)](/man/tun/4.md) pseudo driver also does support **ALTQ** and includes the required modifications.

## SEE ALSO

[pf(4)](/man/pf/4.md), [pf.conf(5)](/man/pf.conf/5.md), [ipfw(8)](/man/ipfw/8.md), [pfctl(8)](/man/pfctl/8.md), [altq(9)](/man/altq/9.md)
