ALTQ

From Wikipedia, the free encyclopedia

ALTQ is an ALTernate Queueing framework for BSD UNIX. ALTQ provides queueing disciplines and other QoS related components required to realize resource-sharing and Quality of Service. It is most commonly implemented on BSD-based routers. ALTQ is included in the base distribution of FreeBSD, NetBSD, and is integrated into the pf packet filter of OpenBSD.

With ALTQ, packets can be assigned to queues for the purpose of bandwidth control. The scheduler defines the algorithm used to decide which packets get delayed, dropped or sent out immediately. There are three schedulers currently supported in the FreeBSD implementation of ALTQ:

  • cbq Class Based Queueing. Queues attached to an interface build a tree, thus each queue can have further child queues. Each queue can have a priority and a bandwidth assigned. Priority mainly controls the time packets take to get sent out, while bandwidth has primarily effects on throughput.
  • priq Priority Queueing. Queues are flat attached to the interface, thus, queues cannot have further child queues. Each queue has a unique priority assigned, ranging from 0 to 15. Packets in the queue with the highest priority are processed first.
  • hfsc Hierarchical Fair Service Curve. Queues attached to an interface build a tree, thus each queue can have further child queues. Each queue can have a priority and a bandwidth assigned. Priority mainly controls the time packets take to get sent out, while bandwidth has primarily effects on throughput.

The content on this page has been grabbed from the FreeBSD man pages for ALTQ and pf.conf, and from the original ALTQ home at http://www.csl.sony.co.jp/person/kjc/kjc/software.html.

[edit] External links