CAKE(8) Linux CAKE(8) (NAME) tc-cake - (CAKE) (SYNOPSIS) tc qdisc ... cake [ bandwidth RATE | unlimited* | autorate-ingress ] [ rtt TIME | datacentre | lan | metro | regional | internet* | oceanic | satellite | interplanetary ] [ besteffort | diffserv8 | diffserv4 | diffserv3* ] [ flowblind | srchost | dsthost | hosts | flows | dual-srchost | dual-dsthost | triple-isolate* ] [ nat | nonat* ] [ wash | nowash* ] [ split-gso* | no-split-gso ] [ ack-filter | ack-filter-aggressive | no-ack-filter* ] [ memlimit LIMIT ] [ fwmark MASK ] [ ptm | atm | noatm* ] [ overhead N | conservative | raw* ] [ mpu N ] [ ingress | egress* ] (* ) (DESCRIPTION) CAKE ( Common Applications Kept Enhanced) (qdisc) (shaping) (AQM) (FQ) . COBALT ( AQM Codel BLUE) (deficit mode) DRR++ . (8-way set- associative hashing) . diffserv . . . bandwidth . (SHAPER PARAMETERS) CAKE (deficit-mode shaper) (burst) (token-bucket) . . unlimited () . bandwidth RATE . RATE tc(8) . autorate-ingress qdisc. () . bandwidth . . (downstream) . (OVERHEAD COMPENSATION PARAMETERS) ( ) . CAKE . . (Manual Overhead Specification) overhead BYTES BYTES . BYTES -64 256 ( ) . mpu BYTES ( ) BYTES . BYTES 0 256 ( ) . atm ATM ADSL . overhead . ATM (payload) . ptm PTM VDSL2 64b/65b . 64/65 0.984 . ITU G.992.3 Annex N IEEE 802.3 Section 61.3 . noatm ATM PTM . (Failsafe Overhead Keywords) . raw () CAKE . . <> . IP . conservative . overhead 48 atm. ADSL (ADSL Overhead Keywords) ADSL (framing scheme) . (ISP) . . atm . pppoa-vcmux overhead 10 atm pppoa-llc overhead 14 atm pppoe-vcmux overhead 32 atm pppoe-llcsnap overhead 40 atm bridged-vcmux overhead 24 atm bridged-llcsnap overhead 32 atm ipoa-vcmux overhead 8 atm ipoa-llcsnap overhead 16 atm << >> . VDSL2 (VDSL2 Overhead Keywords) VDSL2 ATM PTM . ISP PPPoE . pppoe-ptm overhead 30 ptm PPPoE: 2B PPP + 6B PPPoE + ETHERNET: 6B dest MAC + 6B src MAC + 2B ethertype + 4B Frame Check Sequence + PTM: 1B Start of Frame (S) + 1B End of Frame (Ck) + 2B TC-CRC (PTM-FCS) bridged-ptm overhead 22 ptm ETHERNET: 6B dest MAC + 6B src MAC + 2B ethertype + 4B Frame Check Sequence + PTM: 1B Start of Frame (S) + 1B End of Frame (Ck) + 2B TC-CRC (PTM-FCS) << >> . DOCSIS (DOCSIS Cable Overhead Keyword) DOCSIS . (head-end) CRC ( FCS) . docsis overhead 18 mpu 64 noatm (Ethernet Overhead Keywords) ethernet (preamble) (inter-frame gap) (Frame Check Sequence) . . overhead 38 mpu 84 noatm ether-vlan IEEE 802.1Q VLAN . : ISP PPPoE . (ROUND TRIP TIME PARAMETERS) (AQM) . CAKE ECN AQM Codel BLUE COBALT . AQM . RTT . CAKE RTT . RTT . <> (jitter) . (back-pressure) . (LAN) <> . rtt TIME RTT . datacentre (+10GigE). rtt 100us. lan ( ) . . rtt 1ms. metro . rtt 10ms. regional . rtt 30ms. internet () . rtt 100ms. oceanic . rtt 300ms. satellite (geostationary). rtt 1000ms. interplanetary . () AQM . rtt 3600s. (FLOW ISOLATION PARAMETERS) CAKE AQM . DRR++ <<>> (sparse) . CAKE . . flowblind tin . srchost . (egress) ISP . dsthost . (ingress) ISP . hosts - . . flows (5-tuple) . SFQ fq_codel . dual-srchost . (uplink) . dual-dsthost . (downlink) . triple-isolate () ** ( ) . dual-srchost dual-dsthost ** . nat Cake NAT <<>> NAT . <> <> NAT . nonat () Cake NAT . Cake . (PRIORITY QUEUE PARAMETERS) CAKE Diffserv <> . tin WRR (Round-Robin ) . Diffserv tin << >> (priority sharing) << >> (bandwidth sharing) . . tin . RTT . besteffort tin . precedence <> TOS . . diffserv4 Diffserv tin : o (Bulk) ( CS1 LE . ) . . o (Best Effort) () . o (Video) ( AF4x AF3x CS3 AF2x CS2 TOS4 TOS1) . o (Voice) ( CS7 CS6 EF VA CS5 CS4) . diffserv3 () Diffserv tin : o (Bulk) ( CS1 LE . ) . . o (Best Effort) () . o (Voice) ( CS7 CS6 EF VA TOS4) Codel. fwmark MASK tin CAKE fwmark . fwmark . tin . tin CAKE . (OTHER PARAMETERS) ingress CAKE ( ) . CAKE . AQM . . memlimit LIMIT Cake LIMIT . ( BDP ) . RTT . wash diffserv . wash diffserv ( ECN) . diffserv ( ) <> wash . split-gso CAKE (GSO) . . . CAKE GSO . no-split-gso GSO . TC (OVERRIDING CLASSIFICATION WITH TC FILTERS) CAKE tc . priority skb tin classid . Tin (Tin override) tin (major number) priority (handle) qdisc (minor number) tin . ICMP <<>> (bulk) : # tc qdisc replace dev eth0 handle 1: root cake diffserv3 # tc filter add dev eth0 parent 1: protocol ip prio 1 \ u32 match icmp type 0 0 action skbedit priority 1:1 (Flow hash override) classid . CAKE classid ( ) ( ) . ( CAKE ). ICMP : # tc qdisc replace dev eth0 handle 1: root cake # tc filter add dev eth0 parent 1: protocol ip prio 1 \ u32 match icmp type 0 0 classid 0:1 CAKE . . . (EXAMPLES) # tc qdisc delete root dev eth0 # tc qdisc add root dev eth0 cake bandwidth 100Mbit ethernet # tc -s qdisc show dev eth0 qdisc cake 1: root refcnt 2 bandwidth 100Mbit diffserv3 triple-isolate rtt 100.0ms noatm overhead 38 mpu 84 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 memory used: 0b of 5000000b capacity estimate: 100Mbit min/max network layer size: 65535 / 0 min/max overhead-adjusted size: 65535 / 0 average network hdr offset: 0 Bulk Best Effort Voice thresh 6250Kbit 100Mbit 25Mbit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 100.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 ack_drop 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 quantum 300 1514 762 : (After some use:) # tc -s qdisc show dev eth0 qdisc cake 1: root refcnt 2 bandwidth 100Mbit diffserv3 triple-isolate rtt 100.0ms noatm overhead 38 mpu 84 Sent 44709231 bytes 31931 pkt (dropped 45, overlimits 93782 requeues 0) backlog 33308b 22p requeues 0 memory used: 292352b of 5000000b capacity estimate: 100Mbit min/max network layer size: 28 / 1500 min/max overhead-adjusted size: 84 / 1538 average network hdr offset: 14 Bulk Best Effort Voice thresh 6250Kbit 100Mbit 25Mbit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 100.0ms pk_delay 8.7ms 6.9ms 5.0ms av_delay 4.9ms 5.3ms 3.8ms sp_delay 727us 1.4ms 511us pkts 2590 21271 8137 bytes 3081804 30302659 11426206 way_inds 0 46 0 way_miss 3 17 4 way_cols 0 0 0 drops 20 15 10 marks 0 0 0 ack_drop 0 0 0 sp_flows 2 4 1 bk_flows 1 2 1 un_flows 0 0 0 max_len 1514 1514 1514 quantum 300 1514 762 (SEE ALSO) tc(8), tc-codel(8), tc-fq_codel(8), tc-htb(8) (AUTHORS) Cake Jonathan Morton : Tony Ambardar Kevin Darbyshire-Bryant Toke Hoiland-Jorgensen Sebastian Moeller Ryan Mounce Dean Scarff Nils Andreas Svee Dave Taht. Loganaden Velvindron . . iproute2 19 July 2018 CAKE(8)