.TH HTB 8 "10 January 2002" "iproute2" "Linux"
.SH NAME
HTB \- Hierarchy Token Bucket
.SH SYNOPSIS
.B tc qdisc ... dev
dev
.B  ( parent
classid
.B | root) [ handle
major:
.B ] htb [ default
minor-id
.B ]

.B tc class ... dev
dev
.B parent
major:[minor]
.B [ classid
major:minor
.B ] htb rate
rate
.B [ ceil
rate
.B ] burst
bytes
.B [ cburst
bytes
.B ] [ prio
priority
.B ]

.SH DESCRIPTION
HTB is meant as a more understandable and intuitive replacement for
the CBQ qdisc in Linux. Both CBQ and HTB help you to control the use
of the outbound bandwidth on a given link. Both allow you to use one
physical link to simulate several slower links and to send different
kinds of traffic on different simulated links. In both cases, you have
to specify how to divide the physical link into simulated links and
how to decide which simulated link to use for a given packet to be sent.

Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm
which does not depend on interface characteristics and so does not need to
know the underlying bandwidth of the outgoing interface.

.SH SHAPING ALGORITHM
Shaping works as documented in
.B tc-tbf (8).

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

When enqueueing a packet, HTB 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)
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.

.SH LINK SHARING ALGORITHM
FIXME

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

.TP
parent major:minor | root
This mandatory parameter determines the place of the HTB instance, either at the
.B root
of an interface or within an existing class.
.TP
handle major:
Like all other qdiscs, the HTB 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
default minor-id
Unclassified traffic gets sent to the class with this minor-id.

.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
prio priority
In the round-robin process, classes with the lowest priority field are tried
for packets first. Mandatory.

.TP
rate rate
Maximum rate this class and all its children are guaranteed. Mandatory.

.TP
ceil rate
Maximum rate at which a class can send, if its parent has bandwidth to spare.
Defaults to the configured rate, which implies no borrowing

.TP
burst bytes
Amount of bytes that can be burst at
.B ceil
speed, in excess of the configured
.B rate.
Should be at least as high as the highest burst of all children.

.TP
cburst bytes
Amount of bytes that can be burst at 'infinite' speed, in other words, as fast
as the interface can transmit them. For perfect evening out, should be equal to at most one average
packet. Should be at least as high as the highest cburst of all children.

.SH NOTES
Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel,
there are 100 timer events per second, the maximum rate is that rate at which 'burst' bytes are sent each timer tick.
From this, the minimum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte
burst as 100*12kb*8 equals 10mbit.

.SH SEE ALSO
.BR tc (8)
.P
HTB website: http://luxik.cdi.cz/~devik/qos/htb/
.SH AUTHOR
Martin Devera <devik@cdi.cz>. This manpage maintained by bert hubert <ahu@ds9a.nl>
