TC(8) Linux TC(8) (NAME) tc - (SYNOPSIS) tc [ OPTIONS ] qdisc [ add | change | replace | link | delete ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] [ ingress_block BLOCK_INDEX ] [ egress_block BLOCK_INDEX ] qdisc [ qdisc specific parameters ] tc [ OPTIONS ] class [ add | change | replace | delete | show ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ] tc [ OPTIONS ] filter [ add | change | replace | delete | get ] dev DEV [ parent qdisc-id | root ] [ handle filter-id ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id tc [ OPTIONS ] filter [ add | change | replace | delete | get ] block BLOCK_INDEX [ handle filter-id ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id tc [ OPTIONS ] chain [ add | delete | get ] dev DEV [ parent qdisc-id | root ] filtertype [ filtertype specific parameters ] tc [ OPTIONS ] chain [ add | delete | get ] block BLOCK_INDEX filtertype [ filtertype specific parameters ] tc [ OPTIONS ] [ FORMAT ] qdisc { show | list } [ dev DEV ] [ root | ingress | handle QHANDLE | parent CLASSID ] [ invisible ] tc [ OPTIONS ] [ FORMAT ] class show dev DEV tc [ OPTIONS ] filter show dev DEV tc [ OPTIONS ] filter show block BLOCK_INDEX tc [ OPTIONS ] chain show dev DEV tc [ OPTIONS ] chain show block BLOCK_INDEX tc [ OPTIONS ] monitor [ file FILENAME ] OPTIONS := { [ -force ] -b[atch] [ filename ] | [ -n[etns] name ] | [ -N[umeric] ] | [ -nm | -nam[es] ] | [ { -cf | -c[onf] } [ filename ] ] [ -t[imestamp] ] | [ -t[short] | [ -o[neline] ] | [ -echo ] } FORMAT := { -s[tatistics] | -d[etails] | -r[aw] | -i[ec] | -g[raph] | -j[json] | -p[retty] | -col[or] } (DESCRIPTION) tc (Traffic Control) . : (SHAPING) . - . (egress) . (SCHEDULING) . . (POLICING) . (ingress) . (DROPPING) . : qdisc . (QDISCS) qdisc <> ( ) . qdisc (enqueue) . qdisc (dequeue) . QDISC <> (First In, First Out) . . (CLASSES) qdisc qdisc - qdisc . qdisc (classful) . qdisc . (FILTERS) qdisc . . . . . qdisc . qdisc - . : basic ematch. tc-ematch(8) . bpf (e)BPF. tc-bpf(8) . cgroup (cgroup) . tc-cgroup(8) . flow, flower ( ) . tc-flow(8) tc-flower(8) . fw fwmark. fwmark . tc-fw(8) . route . tc-route(8) . u32 . tc-u32(8) . matchall . tc-matchall(8) . (QEVENTS) (Qdiscs) qdisc . qevent . "tc block BLOCK_IDX" . qevent . qdisc qevent . : tc qdisc add dev eth0 root handle 1: red limit 500K avpkt 1K \ qevent early_drop block 10 tc filter add block 10 matchall action mirred egress mirror dev eth1 (CLASSLESS QDISCS) : choke CHOKe ( CHOose and Keep CHOose and Kill ) qdisc . CHOKe RED RED . codel CoDel ( <<>>) ("no-knobs" AQM) RED . [p|b]fifo qdisc (First In, First Out). . fq (Fair Queue Scheduler) TCP ( TCP pacing) qdisc . fq_codel (Fair Queuing Controlled Delay) CoDel AQM . FQ_Codel . CoDel . Codel FIFO . fq_pie FQ-PIE ( Flow Queuing with Proportional Integral controller Enhanced) PIE AQM . FQ-PIE qdisc . PIE . gred Generalized Random Early Detection RED . (Assured Forwarding RFC 2597) . hhf (Heavy- Hitter Filter) (heavy-hitters) . . ingress qdisc (policing) . mqprio Multiqueue Priority Qdisc . qdisc : . multiq Multiqueue qdisc (Tx) . (head-of-line blocking) . . netem (Network Emulator) . pfifo_fast qdisc 'Advanced Router'. Type of Service . pie - (PIE) . . red (Random Early Detection) . . sfb Stochastic Fair Blue qdisc ( ) . RED BLUE . sfq (Stochastic Fairness Queueing) <<>> . tbf (Token Bucket Filter) . . (CONFIGURING CLASSLESS QDISCS) qdisc qdisc (root) . : tc qdisc add dev DEV root QDISC QDISC-PARAMETERS : tc qdisc del dev DEV root pfifo_fast qdisc . (CLASSFUL QDISCS) : ATM asynchronous transfer mode. DRR (Deficit Round Robin Scheduler) Stochastic Fairness Queuing . SFQ -- . qdisc RED . -- . ETS ETS qdisc PRIO DRR . ETS 802.1Qaz . HFSC (Hierarchical Fair Service Curve) . HTB . HTB (Hierarchy Token Bucket) . HTB . TBF . PRIO PRIO . . Type Of Service . QFQ (Quick Fair Queueing) O(1) . QFQ . (THEORY OF OPERATION) . . qdisc ( HTB) ( PRIO) . . qdisc (leaf qdisc) pfifo qdisc . qdisc qdisc . qdisc . qdisc : tc tc . (firewall mark) iptables . Type of Service ( ) qdisc TOS . skb->priority class-id 'skb->priority' SO_PRIORITY . . qdisc . qdisc . (NAMING) qdisc (IDs) . (major) (minor) - major:minor. major minor () . : (root) major minor ( ) (unspecified) . (QDISCS) qdisc major 'handle' () minor . '10:' . qdisc . (CLASSES) qdisc major qdisc minor 'classid' qdisc . qdisc . (FILTERS) . (PARAMETERS) TC . . (RATES) . ( SI IEC ) '%' ( 5% 99.5%) . : . bit kbit mbit gbit tbit bps kbps mbps gbps tbps IEC SI ( k- m- g- t-) IEC ( ki- mi- gi- ti-) . TC bps 4294967295 bps . (TIMES) . : s sec secs ms msec msecs us usec usecs . TC ( ) 4294967295 usecs . (SIZES) . : b . kbit kb k mbit mb m gbit gb g TC 4294967295 . (VALUES) . '0' '0x' TC . TC (TC COMMANDS) qdisc : add qdisc . parent . qdisc handle . classid . delete qdisc 'root' . qdisc . change <<>> (in place) . 'add' . change . replace / . . get DEV qdisc-id priority protocol filter-id . show . . link qdisc (replace) . (MONITOR) tc / qdisc . monitor : file file tc . netlink . (OPTIONS) -b, -b filename, -batch, -batch filename . tc . -force tc . . -o, -oneline (newline) '\' wc(1) grep(1) . -n, -net, -netns NETNS tc : ip netns exec NETNS tc [ OPTIONS ] OBJECT { COMMAND | help } : tc -n[etns] NETNS [ OPTIONS ] OBJECT { COMMAND | help } -N, -Numeric (scope) dsfield . -cf, -conf . ( -nm) . -t, -timestamp tc monitor : Timestamp:
usec -ts, -tshort tc monitor : [--
T.] -echo . (FORMAT) show : -s, -stats, -statistics . -d, -details . -r, -raw . -p, -pretty u32 offset mask TCP/IP . JSON . -iec IEC ( 1K = 1024). -g, -graph (ASCII). -s . dev . -c[color][={always|auto|never} . always stdout . auto stdout . never . . -json . -j, -json JSON. -nm, -name /etc/iproute2/tc_cls -cf classid : # Here is comment 1:40 voip # Here is another comment 1:50 web 1:60 ftp 1:2 home -nm -cf /etc/iproute2/tc_cls tc -nm tc . -br, -brief ( ) . tc filter show tc actions ls . (EXAMPLES) tc -g class show dev eth0 eth0. tc -g -s class show dev eth0 . (HISTORY) tc Alexey N. Kuznetsov 2.2 . (SEE ALSO) tc-basic(8), tc-bfifo(8), tc-bpf(8), tc-cake(8), tc-cgroup(8), tc-choke(8), tc-codel(8), tc-drr(8), tc-ematch(8), tc-ets(8), tc-flow(8), tc-flower(8), tc-fq(8), tc-fq_codel(8), tc-fq_pie(8), tc-fw(8), tc-gact(8), tc-hfsc(7), tc-hfsc(8), tc-htb(8), tc-mqprio(8), tc-pfifo(8), tc-pfifo_fast(8), tc-pie(8), tc-red(8), tc-route(8), tc-sfb(8), tc-sfq(8), tc-stab(8), tc-tbf(8), tc-u32(8) http://lartc.org : (AUTHOR) bert hubert (ahu@ds9a.nl) . iproute2 16 December 2001 TC(8)