.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 smoothes 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>


