X-Git-Url: http://git.onelab.eu/?p=iproute2.git;a=blobdiff_plain;f=man%2Fman8%2Ftc.8;fp=man%2Fman8%2Ftc.8;h=0000000000000000000000000000000000000000;hp=b9b8039100c3a14e20a9b2f1943487a06da837cb;hb=3331a68859fd71047bb1f309048960b48eab2d83;hpb=2bd4a72f2100be7ad7d9518cb1d49bb2a5b71994 diff --git a/man/man8/tc.8 b/man/man8/tc.8 deleted file mode 100644 index b9b8039..0000000 --- a/man/man8/tc.8 +++ /dev/null @@ -1,348 +0,0 @@ -.TH TC 8 "16 December 2001" "iproute2" "Linux" -.SH NAME -tc \- show / manipulate traffic control settings -.SH SYNOPSIS -.B tc qdisc [ add | change | replace | link ] dev -DEV -.B -[ parent -qdisc-id -.B | root ] -.B [ handle -qdisc-id ] qdisc -[ qdisc specific parameters ] -.P - -.B tc class [ add | change | replace ] dev -DEV -.B parent -qdisc-id -.B [ classid -class-id ] qdisc -[ qdisc specific parameters ] -.P - -.B tc filter [ add | change | replace ] dev -DEV -.B [ parent -qdisc-id -.B | root ] protocol -protocol -.B prio -priority filtertype -[ filtertype specific parameters ] -.B flowid -flow-id - -.B tc [-s | -d ] qdisc show [ dev -DEV -.B ] -.P -.B tc [-s | -d ] class show dev -DEV -.P -.B tc filter show dev -DEV - -.SH DESCRIPTION -.B Tc -is used to configure Traffic Control in the Linux kernel. Traffic Control consists -of the following: - -.TP -SHAPING -When traffic is shaped, its rate of transmission is under control. Shaping may -be more than lowering the available bandwidth - it is also used to smooth out -bursts in traffic for better network behaviour. Shaping occurs on egress. - -.TP -SCHEDULING -By scheduling the transmission of packets it is possible to improve interactivity -for traffic that needs it while still guaranteeing bandwidth to bulk transfers. Reordering -is also called prioritizing, and happens only on egress. - -.TP -POLICING -Where shaping deals with transmission of traffic, policing pertains to traffic -arriving. Policing thus occurs on ingress. - -.TP -DROPPING -Traffic exceeding a set bandwidth may also be dropped forthwith, both on -ingress and on egress. - -.P -Processing of traffic is controlled by three kinds of objects: qdiscs, -classes and filters. - -.SH QDISCS -.B qdisc -is short for 'queueing discipline' and it is elementary to -understanding traffic control. Whenever the kernel needs to send a -packet to an interface, it is -.B enqueued -to the qdisc configured for that interface. Immediately afterwards, the kernel -tries to get as many packets as possible from the qdisc, for giving them -to the network adaptor driver. - -A simple QDISC is the 'pfifo' one, which does no processing at all and is a pure -First In, First Out queue. It does however store traffic when the network interface -can't handle it momentarily. - -.SH CLASSES -Some qdiscs can contain classes, which contain further qdiscs - traffic may -then be enqueued in any of the inner qdiscs, which are within the -.B classes. -When the kernel tries to dequeue a packet from such a -.B classful qdisc -it can come from any of the classes. A qdisc may for example prioritize -certain kinds of traffic by trying to dequeue from certain classes -before others. - -.SH FILTERS -A -.B filter -is used by a classful qdisc to determine in which class a packet will -be enqueued. Whenever traffic arrives at a class with subclasses, it needs -to be classified. Various methods may be employed to do so, one of these -are the filters. All filters attached to the class are called, until one of -them returns with a verdict. If no verdict was made, other criteria may be -available. This differs per qdisc. - -It is important to notice that filters reside -.B within -qdiscs - they are not masters of what happens. - -.SH CLASSLESS QDISCS -The classless qdiscs are: -.TP -[p|b]fifo -Simplest usable qdisc, pure First In, First Out behaviour. Limited in -packets or in bytes. -.TP -pfifo_fast -Standard qdisc for 'Advanced Router' enabled kernels. Consists of a three-band -queue which honors Type of Service flags, as well as the priority that may be -assigned to a packet. -.TP -red -Random Early Detection simulates physical congestion by randomly dropping -packets when nearing configured bandwidth allocation. Well suited to very -large bandwidth applications. -.TP -sfq -Stochastic Fairness Queueing reorders queued traffic so each 'session' -gets to send a packet in turn. -.TP -tbf -The Token Bucket Filter is suited for slowing traffic down to a precisely -configured rate. Scales well to large bandwidths. -.SH CONFIGURING CLASSLESS QDISCS -In the absence of classful qdiscs, classless qdiscs can only be attached at -the root of a device. Full syntax: -.P -.B tc qdisc add dev -DEV -.B root -QDISC QDISC-PARAMETERS - -To remove, issue -.P -.B tc qdisc del dev -DEV -.B root - -The -.B pfifo_fast -qdisc is the automatic default in the absence of a configured qdisc. - -.SH CLASSFUL QDISCS -The classful qdiscs are: -.TP -CBQ -Class Based Queueing 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 average packet size and -underlying link bandwidth. The latter may be ill-defined for some interfaces. -.TP -HTB -The Hierarchy Token Bucket implements a rich linksharing hierarchy of -classes with an emphasis on conforming to existing practices. HTB facilitates -guaranteeing bandwidth to classes, while also allowing specification of upper -limits to inter-class sharing. It contains shaping elements, based on TBF and -can prioritize classes. -.TP -PRIO -The PRIO qdisc is a non-shaping container for a configurable number of -classes which are dequeued in order. This allows for easy prioritization -of traffic, where lower classes are only able to send if higher ones have -no packets available. To facilitate configuration, Type Of Service bits are -honored by default. -.SH THEORY OF OPERATION -Classes form a tree, where each class has a single parent. -A class may have multiple children. Some qdiscs allow for runtime addition -of classes (CBQ, HTB) while others (PRIO) are created with a static number of -children. - -Qdiscs which allow dynamic addition of classes can have zero or more -subclasses to which traffic may be enqueued. - -Furthermore, each class contains a -.B leaf qdisc -which by default has -.B pfifo -behaviour though another qdisc can be attached in place. This qdisc may again -contain classes, but each class can have only one leaf qdisc. - -When a packet enters a classful qdisc it can be -.B classified -to one of the classes within. Three criteria are available, although not all -qdiscs will use all three: -.TP -tc filters -If tc filters are attached to a class, they are consulted first -for relevant instructions. Filters can match on all fields of a packet header, -as well as on the firewall mark applied by ipchains or iptables. See -.BR tc-filters (8). -.TP -Type of Service -Some qdiscs have built in rules for classifying packets based on the TOS field. -.TP -skb->priority -Userspace programs can encode a class-id in the 'skb->priority' field using -the SO_PRIORITY option. -.P -Each node within the tree can have its own filters but higher level filters -may also point directly to lower classes. - -If classification did not succeed, packets are enqueued to the leaf qdisc -attached to that class. Check qdisc specific manpages for details, however. - -.SH NAMING -All qdiscs, classes and filters have IDs, which can either be specified -or be automatically assigned. - -IDs consist of a major number and a minor number, separated by a colon. - -.TP -QDISCS -A qdisc, which potentially can have children, -gets assigned a major number, called a 'handle', leaving the minor -number namespace available for classes. The handle is expressed as '10:'. -It is customary to explicitly assign a handle to qdiscs expected to have -children. - -.TP -CLASSES -Classes residing under a qdisc share their qdisc major number, but each have -a separate minor number called a 'classid' that has no relation to their -parent classes, only to their parent qdisc. The same naming custom as for -qdiscs applies. - -.TP -FILTERS -Filters have a three part ID, which is only needed when using a hashed -filter hierarchy, for which see -.BR tc-filters (8). -.SH UNITS -All parameters accept a floating point number, possibly followed by a unit. -.P -Bandwidths or rates can be specified in: -.TP -kbps -Kilobytes per second -.TP -mbps -Megabytes per second -.TP -kbit -Kilobits per second -.TP -mbit -Megabits per second -.TP -bps or a bare number -Bytes per second -.P -Amounts of data can be specified in: -.TP -kb or k -Kilobytes -.TP -mb or m -Megabytes -.TP -mbit -Megabits -.TP -kbit -Kilobits -.TP -b or a bare number -Bytes. -.P -Lengths of time can be specified in: -.TP -s, sec or secs -Whole seconds -.TP -ms, msec or msecs -Milliseconds -.TP -us, usec, usecs or a bare number -Microseconds. - -.SH TC COMMANDS -The following commands are available for qdiscs, classes and filter: -.TP -add -Add a qdisc, class or filter to a node. For all entities, a -.B parent -must be passed, either by passing its ID or by attaching directly to the root of a device. -When creating a qdisc or a filter, it can be named with the -.B handle -parameter. A class is named with the -.B classid -parameter. - -.TP -remove -A qdisc can be removed by specifying its handle, which may also be 'root'. All subclasses and their leaf qdiscs -are automatically deleted, as well as any filters attached to them. - -.TP -change -Some entities can be modified 'in place'. Shares the syntax of 'add', with the exception -that the handle cannot be changed and neither can the parent. In other words, -.B -change -cannot move a node. - -.TP -replace -Performs a nearly atomic remove/add on an existing node id. If the node does not exist yet -it is created. - -.TP -link -Only available for qdiscs and performs a replace where the node -must exist already. - - -.SH HISTORY -.B tc -was written by Alexey N. Kuznetsov and added in Linux 2.2. -.SH SEE ALSO -.BR tc-cbq (8), -.BR tc-htb (8), -.BR tc-sfq (8), -.BR tc-red (8), -.BR tc-tbf (8), -.BR tc-pfifo (8), -.BR tc-bfifo (8), -.BR tc-pfifo_fast (8), -.BR tc-filters (8) - -.SH AUTHOR -Manpage maintained by bert hubert (ahu@ds9a.nl) -