.TH CBQ 8 "16 December 2001" "iproute2" "Linux"
.SH NAME
CBQ \- Class Based Queueing
.SH SYNOPSIS
.B tc qdisc ... dev
dev
.B  ( parent
classid 
.B | root) [ handle 
major: 
.B ] cbq [ allot 
bytes
.B ] avpkt
bytes
.B bandwidth
rate
.B [ cell 
bytes
.B ] [ ewma
log
.B ] [ mpu
bytes
.B ] 

.B tc class ... dev
dev
.B parent 
major:[minor]
.B [ classid 
major:minor
.B ] cbq allot
bytes
.B [ bandwidth 
rate 
.B ] [ rate 
rate
.B ] prio
priority
.B [ weight
weight
.B ] [ minburst 
packets
.B ] [ maxburst 
packets 
.B ] [ ewma 
log
.B ] [ cell
bytes
.B ] avpkt
bytes
.B [ mpu
bytes 
.B ] [ bounded isolated ] [ split
handle
.B & defmap
defmap
.B ] [ estimator 
interval timeconstant
.B ]

.SH DESCRIPTION
Class Based Queueing is a classful qdisc that implements a rich
linksharing hierarchy of classes.  It contains shaping elements as
well as prioritizing capabilities.  Shaping is performed using link
idle time calculations based on the timing of dequeue events and 
underlying link bandwidth.

.SH SHAPING ALGORITHM
When shaping a 10mbit/s connection to 1mbit/s, the link will
be idle 90% of the time. If it isn't, it needs to be throttled so that it
IS idle 90% of the time.

During operations, the effective idletime is measured using an
exponential weighted moving average (EWMA), which considers recent
packets to be exponentially more important than past ones. The Unix
loadaverage is calculated in the same way.

The calculated idle time is subtracted from the EWMA measured one,
the resulting number is called 'avgidle'. A perfectly loaded link has
an avgidle of zero: packets arrive exactly at the calculated
interval.

An overloaded link has a negative avgidle and if it gets too negative,
CBQ throttles and is then 'overlimit'.

Conversely, an idle link might amass a huge avgidle, which would then
allow infinite bandwidths after a few hours of silence. To prevent
this, avgidle is capped at 
.B maxidle.

If overlimit, in theory, the CBQ could throttle itself for exactly the
amount of time that was calculated to pass between packets, and then
pass one packet, and throttle again. Due to timer resolution constraints,
this may not be feasible, see the 
.B minburst
parameter below.

.SH CLASSIFICATION
Within the one CBQ instance many classes may exist. Each of these classes
contains another qdisc, by default 
.BR tc-pfifo (8).

When enqueueing a packet, CBQ starts at the root and uses various methods to 
determine which class should receive the data. 

In the absence of uncommon configuration options, the process is rather easy. 
At each node we look for an instruction, and then go to the class the 
instruction refers us to. If the class found is a barren leaf-node (without 
children), we enqueue the packet there. If it is not yet a leaf node, we do 
the whole thing over again starting from that node. 

The following actions are performed, in order at each node we visit, until one 
sends us to another node, or terminates the process.
.TP
(i)
Consult filters attached to the class. If sent to a leafnode, we are done. 
Otherwise, restart.
.TP
(ii)
Consult the defmap for the priority assigned to this packet, which depends 
on the TOS bits. Check if the referral is leafless, otherwise restart.
.TP
(iii)
Ask the defmap for instructions for the 'best effort' priority. Check the 
answer for leafness, otherwise restart.
.TP
(iv)
If none of the above returned with an instruction, enqueue at this node.
.P
This algorithm makes sure that a packet always ends up somewhere, even while
you are busy building your configuration. 

For more details, see
.BR tc-cbq-details(8).

.SH LINK SHARING ALGORITHM
When dequeuing for sending to the network device, CBQ decides which of its 
classes will be allowed to send. It does so with a Weighted Round Robin process
in which each class with packets gets a chance to send in turn. The WRR process
starts by asking the highest priority classes (lowest numerically - 
highest semantically) for packets, and will continue to do so until they
have no more data to offer, in which case the process repeats for lower 
priorities.

Classes by default borrow bandwidth from their siblings. A class can be 
prevented from doing so by declaring it 'bounded'. A class can also indicate 
its unwillingness to lend out bandwidth by being 'isolated'.

.SH QDISC
The root of a CBQ qdisc class tree has the following parameters:

.TP 
parent major:minor | root
This mandatory parameter determines the place of the CBQ instance, either at the
.B root
of an interface or within an existing class.
.TP
handle major:
Like all other qdiscs, the CBQ can be assigned a handle. Should consist only
of a major number, followed by a colon. Optional, but very useful if classes
will be generated within this qdisc.
.TP 
allot bytes
This allotment is the 'chunkiness' of link sharing and is used for determining packet
transmission time tables. The qdisc allot differs slightly from the class allot discussed
below. Optional. Defaults to a reasonable value, related to avpkt.
.TP
avpkt bytes
The average size of a packet is needed for calculating maxidle, and is also used
for making sure 'allot' has a safe value. Mandatory.
.TP
bandwidth rate
To determine the idle time, CBQ must know the bandwidth of your underlying 
physical interface, or parent qdisc. This is a vital parameter, more about it
later. Mandatory.
.TP
cell
The cell size determines he granularity of packet transmission time calculations. Has a sensible default.
.TP 
mpu
A zero sized packet may still take time to transmit. This value is the lower
cap for packet transmission time calculations - packets smaller than this value
are still deemed to have this size. Defaults to zero.
.TP
ewma log
When CBQ needs to measure the average idle time, it does so using an 
Exponentially Weighted Moving Average which smooths out measurements into
a moving average. The EWMA LOG determines how much smoothing occurs. Lower 
values imply greater sensitivity. Must be between 0 and 31. Defaults 
to 5.
.P
A CBQ qdisc does not shape out of its own accord. It only needs to know certain
parameters about the underlying link. Actual shaping is done in classes.

.SH CLASSES
Classes have a host of parameters to configure their operation.

.TP 
parent major:minor
Place of this class within the hierarchy. If attached directly to a qdisc 
and not to another class, minor can be omitted. Mandatory.
.TP 
classid major:minor
Like qdiscs, classes can be named. The major number must be equal to the
major number of the qdisc to which it belongs. Optional, but needed if this 
class is going to have children.
.TP 
weight weight
When dequeuing to the interface, classes are tried for traffic in a 
round-robin fashion. Classes with a higher configured qdisc will generally
have more traffic to offer during each round, so it makes sense to allow
it to dequeue more traffic. All weights under a class are normalized, so
only the ratios matter. Defaults to the configured rate, unless the priority 
of this class is maximal, in which case it is set to 1.
.TP 
allot bytes
Allot specifies how many bytes a qdisc can dequeue
during each round of the process. This parameter is weighted using the 
renormalized class weight described above. Silently capped at a minimum of
3/2 avpkt. Mandatory.

.TP 
prio priority
In the round-robin process, classes with the lowest priority field are tried 
for packets first. Mandatory.

.TP 
avpkt
See the QDISC section.

.TP 
rate rate
Maximum rate this class and all its children combined can send at. Mandatory.

.TP
bandwidth rate
This is different from the bandwidth specified when creating a CBQ disc! Only
used to determine maxidle and offtime, which are only calculated when
specifying maxburst or minburst. Mandatory if specifying maxburst or minburst.

.TP 
maxburst
This number of packets is used to calculate maxidle so that when
avgidle is at maxidle, this number of average packets can be burst
before avgidle drops to 0. Set it higher to be more tolerant of
bursts. You can't set maxidle directly, only via this parameter.

.TP
minburst 
As mentioned before, CBQ needs to throttle in case of
overlimit. The ideal solution is to do so for exactly the calculated
idle time, and pass 1 packet. However, Unix kernels generally have a
hard time scheduling events shorter than 10ms, so it is better to
throttle for a longer period, and then pass minburst packets in one
go, and then sleep minburst times longer.

The time to wait is called the offtime. Higher values of minburst lead
to more accurate shaping in the long term, but to bigger bursts at
millisecond timescales. Optional.

.TP
minidle
If avgidle is below 0, we are overlimits and need to wait until
avgidle will be big enough to send one packet. To prevent a sudden
burst from shutting down the link for a prolonged period of time,
avgidle is reset to minidle if it gets too low.

Minidle is specified in negative microseconds, so 10 means that
avgidle is capped at -10us. Optional.

.TP
bounded 
Signifies that this class will not borrow bandwidth from its siblings.
.TP 
isolated
Means that this class will not borrow bandwidth to its siblings

.TP 
split major:minor & defmap bitmap[/bitmap]
If consulting filters attached to a class did not give a verdict, 
CBQ can also classify based on the packet's priority. There are 16
priorities available, numbered from 0 to 15. 

The defmap specifies which priorities this class wants to receive, 
specified as a bitmap. The Least Significant Bit corresponds to priority 
zero. The 
.B split
parameter tells CBQ at which class the decision must be made, which should
be a (grand)parent of the class you are adding.

As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0'
configures class 10:0 to send packets with priorities 6 and 7 to 10:1.

The complimentary configuration would then 
be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f'
Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1.
.TP
estimator interval timeconstant
CBQ can measure how much bandwidth each class is using, which tc filters
can use to classify packets with. In order to determine the bandwidth
it uses a very simple estimator that measures once every
.B interval
microseconds how much traffic has passed. This again is a EWMA, for which
the time constant can be specified, also in microseconds. The 
.B time constant
corresponds to the sluggishness of the measurement or, conversely, to the 
sensitivity of the average to short bursts. Higher values mean less
sensitivity. 

.SH BUGS
The actual bandwidth of the underlying link may not be known, for example 
in the case of PPoE or PPTP connections which in fact may send over a 
pipe, instead of over a physical device. CBQ is quite resilient to major
errors in the configured bandwidth, probably a the cost of coarser shaping.

Default kernels rely on coarse timing information for making decisions. These 
may make shaping precise in the long term, but inaccurate on second long scales.

See 
.BR tc-cbq-details(8)
for hints on how to improve this.

.SH SOURCES
.TP
o
Sally Floyd and Van Jacobson, "Link-sharing and Resource
Management Models for Packet Networks",
IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995

.TP 
o
Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995

.TP
o
Sally Floyd, "Notes on Class-Based Queueing: Setting
Parameters", 1996

.TP 
o
Sally Floyd and Michael Speer, "Experimental Results
for Class-Based Queueing", 1998, not published.



.SH SEE ALSO
.BR tc (8)

.SH AUTHOR
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>. This manpage maintained by
bert hubert <ahu@ds9a.nl>


