---
name: "ALTQ"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/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)](/altq/9.md) for details.

The user interface for **ALTQ** is implemented by the [pfctl(8)](/pfctl/8.md) utility, so please refer to the [pfctl(8)](/pfctl/8.md) and the [pf.conf(5)](/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)](/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)](/altq/9.md) are required to use a certain network card with **ALTQ**. They have been applied to the following hardware drivers: [an(4)](/an/4.md), [ath(4)](/ath/4.md), [awi(4)](/awi/4.md), [bfe(4)](/bfe/4.md), [bge(4)](/bge/4.md), [dc(4)](/dc/4.md), [de(4)](/de/4.md), [ed(4)](/ed/4.md), [em(4)](/em/4.md), [fxp(4)](/fxp/4.md), [hme(4)](/hme/4.md), [lnc(4)](/lnc/4.md), [re(4)](/re/4.md), [rl(4)](/rl/4.md), [sf(4)](/sf/4.md), [sis(4)](/sis/4.md), [sk(4)](/sk/4.md), [ste(4)](/ste/4.md), [vr(4)](/vr/4.md), [wi(4)](/wi/4.md), and [xl(4)](/xl/4.md).

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

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

## SEE ALSO

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