ALTQ(4)
π ALTQ(4) β alternate queuing of network packets π
okay bestie, sit down, hydrate, because we're about to talk about how your kernel decides who goes first when packets are trying to leave the house. this is ALTQ, a Kernel Interfaces Manual situation, and honestly? it's giving traffic cop but make it fashion. π¦β¨
πΈ NAME πΈ
ALTQ β alternate queuing of network packets
like, literally. queuing. of network packets. but alternately. π¦
β¨ 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
these go in your kernel config, bestie. no cap. π
π DESCRIPTION π
so the ALTQ system is a framework β a whole framework, main character energy β that provides several disciplines for queuing outgoing network packets. π€ how does it do that? by making modifications to the interface packet queues. the details live over in altq(9) if you're the kind of girl who reads the deep lore. π
the user interface for ALTQ is implemented by the pfctl(8) utility, so pls pls pls go read the pfctl(8) and pf.conf(5) man pages if you want the complete description of what ALTQ can do and how to actually use it. that's where the fun stuff is, i'm just the intro. π
π§ Kernel Options π§
these are the options in the kernel configuration file that are related to ALTQ operation. write them down, babes:
ALTQβ Enable ALTQ. yes queen, turn it on.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. > β οΈ heads up: this option is meaningless at the moment, because the conditioner is not used by any of the available disciplines or consumers. it's literally just vibing there. π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.
π«Ά IMPORTANT: 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. yes, a whole custom kernel. it's a commitment, but she's worth it. the pf(4) interface β which is required for the configuration process of ALTQ β can be loaded as a module though, so at least there's that. β¨
π SUPPORTED DEVICES π
the driver modifications described in altq(9) are required to use a certain network card with ALTQ. and they have been applied to the following hardware drivers, in this exact order, don't @ me:
ae(4), age(4), alc(4), ale(4), an(4), aue(4), axe(4), bce(4), bfe(4), bge(4), bxe(4), cas(4), cxgbe(4), dc(4), de(4), ed(4), em(4), ep(4), epair(4), et(4), fxp(4), gem(4), hme(4), igb(4), ixgbe(4), jme(4), le(4), liquidio(4), msk(4), mxge(4), my(4), nfe(4), nge(4), npe(4), qlxgb(4), re(4), rl(4), sf(4), sge(4), sis(4), sk(4), ste(4), stge(4), ti(4), txp(4), udav(4), vge(4), vr(4), vte(4), and xl(4).
a whole lineup. iconic behavior. π
the ndis(4) framework also has support for ALTQ, and thus all encapsulated drivers. π¦
and the tun(4) and ng_iface(4) pseudo drivers also do support ALTQ. so yes, the fake ones are invited to the party too. π
π SEE ALSO π
pf(4), pf.conf(5), ipfw(8), pfctl(8), altq(9)
go read them. all of them. it's called β¨researchβ¨. π
π HISTORY π
the ALTQ system first appeared in March 1997 and found home in the KAME project (http://www.kame.net). she's been around. it was imported to FreeBSD in 5.3. a true elder stateswoman of packet queuing. π«Ά
okay that's the whole page bestie, you're officially educated π this one came to you from Debian, dated March 20, 2018, and it lives under the name ALTQ(4). now go build that custom kernel and slay. ππ
π
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2004 Max Laier <mlaier@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms