---
name: "ALTQ"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
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\_CODEL** **options** **ALTQ\_RED** **options** **ALTQ\_RIO** **options** **ALTQ\_HFSC** **options** **ALTQ\_CDNR** **options** **ALTQ\_PRIQ** **options** **ALTQ\_FAIRQ**

## DESCRIPTION

The **ALTQ** system is a framework which 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) man pages 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\_CODEL

  Build the “Controlled Delay” 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\_FAIRQ

  Build the “Fair Queuing” discipline.

- ALTQ\_NOPCC

  Required if the TSC is unusable.

- 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: [ae(4)](/man/ae/4.md), [age(4)](/man/age/4.md), [alc(4)](/man/alc/4.md), [ale(4)](/man/ale/4.md), [aue(4)](/man/aue/4.md), [axe(4)](/man/axe/4.md), [bce(4)](/man/bce/4.md), [bfe(4)](/man/bfe/4.md), [bge(4)](/man/bge/4.md), [bxe(4)](/man/bxe/4.md), [cas(4)](/man/cas/4.md), [dc(4)](/man/dc/4.md), [em(4)](/man/em/4.md), [epair(4)](/man/epair/4.md), [et(4)](/man/et/4.md), [fxp(4)](/man/fxp/4.md), [gem(4)](/man/gem/4.md), [igb(4)](/man/igb/4.md), [ix(4)](/man/ix/4.md), [jme(4)](/man/jme/4.md), [le(4)](/man/le/4.md), [liquidio(4)](/man/liquidio/4.md), [msk(4)](/man/msk/4.md), [mxge(4)](/man/mxge/4.md), [my(4)](/man/my/4.md), [nfe(4)](/man/nfe/4.md), [nge(4)](/man/nge/4.md), [qlxgb(4)](/man/qlxgb/4.md), [re(4)](/man/re/4.md), [rl(4)](/man/rl/4.md), [sge(4)](/man/sge/4.md), [sis(4)](/man/sis/4.md), [sk(4)](/man/sk/4.md), [ste(4)](/man/ste/4.md), [stge(4)](/man/stge/4.md), [ti(4)](/man/ti/4.md), [udav(4)](/man/udav/4.md), [vge(4)](/man/vge/4.md), [vr(4)](/man/vr/4.md), [vte(4)](/man/vte/4.md), and [xl(4)](/man/xl/4.md).

The [tun(4)](/man/tun/4.md), [if\_bridge(4)](/man/if_bridge/4.md), [if\_vlan(4)](/man/if_vlan/4.md), and [ng\_iface(4)](/man/ng_iface/4.md) pseudo drivers also do support **ALTQ**.

An example:

```
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
```

## 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)

## HISTORY

The **ALTQ** system first appeared in March 1997 and found home in the KAME project (https://www.kame.net). It was imported to FreeBSD in 5.3 .
