iproute2/man/man8
Toke Høiland-Jørgensen 714444c0cb Add support for CAKE qdisc
sch_cake is intended to squeeze the most bandwidth and latency out of even
the slowest ISP links and routers, while presenting an API simple enough
that even an ISP can configure it.

Example of use on a cable ISP uplink:

tc qdisc add dev eth0 cake bandwidth 20Mbit nat docsis ack-filter

To shape a cable download link (ifb and tc-mirred setup elided)

tc qdisc add dev ifb0 cake bandwidth 200mbit nat docsis ingress wash besteffort

Cake is filled with:

* A hybrid Codel/Blue AQM algorithm, "Cobalt", tied to an FQ_Codel
  derived Flow Queuing system, which autoconfigures based on the bandwidth.
* A novel "triple-isolate" mode (the default) which balances per-host
  and per-flow FQ even through NAT.
* An deficit based shaper, that can also be used in an unlimited mode.
* 8 way set associative hashing to reduce flow collisions to a minimum.
* A reasonable interpretation of various diffserv latency/loss tradeoffs.
* Support for zeroing diffserv markings for entering and exiting traffic.
* Support for interacting well with Docsis 3.0 shaper framing.
* Support for DSL framing types and shapers.
* Support for ack filtering.
* Extensive statistics for measuring, loss, ecn markings, latency variation.

Various versions baking have been available as an out of tree build for
kernel versions going back to 3.10, as the embedded router world has been
running a few years behind mainline Linux. A stable version has been
generally available on lede-17.01 and later.

sch_cake replaces a combination of iptables, tc filter, htb and fq_codel
in the sqm-scripts, with sane defaults and vastly simpler configuration.

Cake's principal author is Jonathan Morton, with contributions from
Kevin Darbyshire-Bryant, Toke Høiland-Jørgensen, Sebastian Moeller,
Ryan Mounce, Tony Ambardar, Dean Scarff, Nils Andreas Svee, Dave Täht,
and Loganaden Velvindron.

Testing from Pete Heist, Georgios Amanakis, and the many other members of
the cake@lists.bufferbloat.net mailing list.

Signed-off-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: David Ahern <dsahern@gmail.com>
2018-07-19 09:23:46 -07:00
..
.gitignore whitespace cleanup 2017-01-12 17:31:20 -08:00
Makefile SPDX license identifiers 2017-11-24 12:21:35 -08:00
arpd.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
bridge.8 bridge: add support for isolated option 2018-07-06 07:58:41 -07:00
ctstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
devlink-dev.8 devlink: Add param command support 2018-07-06 08:43:28 -07:00
devlink-monitor.8 devlink: add manpage for shared buffer 2016-04-19 08:01:05 -07:00
devlink-port.8 devlink: add manpage for shared buffer 2016-04-19 08:01:05 -07:00
devlink-region.8 devlink: Add support for devlink-region access 2018-07-19 09:20:15 -07:00
devlink-resource.8 devlink: Update man pages and add resource man 2018-02-23 08:36:05 -08:00
devlink-sb.8 man: fix small formatting errors 2018-01-02 11:29:39 -08:00
devlink.8 devlink: Add support for devlink-region access 2018-07-19 09:20:15 -07:00
genl.8 genl: add manpage 2015-11-03 16:27:39 -08:00
ifcfg.8 man: Spelling fixes 2015-11-23 15:39:25 -08:00
ifstat.8 ifstat: Add xstat to ifstat man page 2017-02-03 09:20:15 -08:00
ip-address.8.in ipaddress: Add support for address metric 2018-05-30 08:20:04 -07:00
ip-addrlabel.8 man: ip-*.8: drop any reference to generic ip options 2016-03-02 11:23:53 -08:00
ip-fou.8 man: document ip fou show 2017-11-20 10:40:33 -08:00
ip-gue.8 iproute2: Man pages for fou and gue 2014-11-06 16:17:34 -08:00
ip-l2tp.8 ip/l2tp: remove offset and peer-offset options 2018-04-04 16:41:11 -07:00
ip-link.8.in bridge: add support for isolated option 2018-07-06 07:58:41 -07:00
ip-macsec.8 macsec: fix input of 'port', improve documentation of 'address' 2016-09-01 09:08:50 -07:00
ip-maddress.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
ip-monitor.8 man: ip-*.8: drop any reference to generic ip options 2016-03-02 11:23:53 -08:00
ip-mroute.8 man: ip-*.8: drop any reference to generic ip options 2016-03-02 11:23:53 -08:00
ip-neighbour.8 ip neigh: Add support for keyword 2016-07-06 21:28:31 -07:00
ip-netconf.8 man: update netconf manual for new attributes 2016-03-21 12:15:58 -07:00
ip-netns.8 netns: allow negative nsid 2018-02-08 07:57:34 -08:00
ip-ntable.8 man: ip-ntable.8: Review synopsis section 2016-03-02 11:23:52 -08:00
ip-route.8.in iproute: ip route get support for sport, dport and ipproto match 2018-06-01 08:19:30 -07:00
ip-rule.8 iprule: support for ip_proto, sport and dport match options 2018-03-08 10:08:18 -08:00
ip-sr.8 man: add documentation for IPv6 SR commands 2017-04-16 10:21:43 -07:00
ip-tcp_metrics.8 iproute2: add support for tcp_metrics 2012-10-08 10:23:07 -07:00
ip-token.8 ip, token: add del command 2016-05-31 12:10:29 -07:00
ip-tunnel.8 ip: link_ip6tnl.c/ip6tunnel.c: Support IP6_TNL_F_ALLOW_LOCAL_REMOTE flag 2017-10-31 18:15:30 +01:00
ip-vrf.8 ip: do not drop capabilities if net_admin=i is set 2018-05-14 21:07:34 -07:00
ip-xfrm.8 ip-xfrm: Add support for OUTPUT_MARK 2018-06-18 06:37:00 -07:00
ip.8 man: add documentation for json and pretty flags 2018-02-10 08:16:14 -08:00
lnstat.8 man: drop references to Debian-specific paths 2017-12-30 09:43:47 -08:00
nstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
rdma-dev.8 rdma: Add initial manual for the tool 2017-08-21 17:07:44 -07:00
rdma-link.8 rdma: fix man page typos 2018-03-28 11:06:55 -07:00
rdma-resource.8 rdma: update man pages 2018-05-18 09:20:01 -07:00
rdma.8 rdma: update man pages 2018-05-18 09:20:01 -07:00
routef.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
routel.8 man: routel/routef: don't mention filesystem paths 2017-12-30 09:43:47 -08:00
rtacct.8 man: rtacct: add missing TP marker 2016-07-06 21:06:33 -07:00
rtmon.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
rtpr.8 man: rtpr: Fix minor typo 2016-06-08 08:37:30 -07:00
rtstat.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
ss.8 ss: Allow excluding a socket table from being queried 2018-03-27 17:02:38 -07:00
tc-actions.8 actions: update the man page to describe the "since" time filter 2017-08-04 13:16:51 -07:00
tc-basic.8 tc: add a man page for basic filter 2015-10-23 15:37:26 -07:00
tc-bfifo.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-bpf.8 tc: updated tc-bpf man page 2018-03-07 14:55:08 -08:00
tc-cake.8 Add support for CAKE qdisc 2018-07-19 09:23:46 -07:00
tc-cbq-details.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-cbq.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-cbs.8 man: Clarify idleslope calculation for tc-cbs 2017-11-12 15:51:23 -08:00
tc-cgroup.8 tc: add a man page for cgroup filter 2015-10-23 15:37:26 -07:00
tc-choke.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
tc-codel.8 tc: Add missing documentation for codel and fq_codel parameters 2018-03-13 18:05:35 -07:00
tc-connmark.8 tc: connmark, pedit: Rename BRANCH to CONTROL 2016-03-27 10:34:42 -07:00
tc-csum.8 man: tc-csum.8: Fix inconsistency in example description 2017-11-29 10:14:51 -08:00
tc-drr.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-ematch.8 tc: add em_ipt ematch for calling xtables matches from tc matching context 2018-02-27 09:43:16 -08:00
tc-etf.8 man: Add initial manpage for tc-etf(8) 2018-07-11 17:50:53 -07:00
tc-flow.8 man/man8/tc-flow.8: minor corrections 2016-07-25 08:19:25 -07:00
tc-flower.8 tc: flower: Add support for QinQ 2018-07-15 13:03:50 -07:00
tc-fq.8 man: fix whatis for fq 2016-01-06 10:29:06 -08:00
tc-fq_codel.8 tc: Add missing documentation for codel and fq_codel parameters 2018-03-13 18:05:35 -07:00
tc-fw.8 tc: add a man page for fw filter 2015-10-23 15:37:26 -07:00
tc-hfsc.8 iproute2: unmangle netdev/my emails in man pages (hfsc, stab) 2016-07-06 21:07:23 -07:00
tc-htb.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-ife.8 man: tc-ife: add default type note 2017-08-30 08:26:46 -07:00
tc-matchall.8 man: fix man page warnings 2017-04-04 14:46:34 -07:00
tc-mirred.8 tc: m_mirred: Add support for ingress redirect/mirror 2016-10-26 11:20:47 -07:00
tc-mqprio.8 man: tc-mqprio: add documentation for new offload options 2017-11-18 15:59:00 -08:00
tc-nat.8 man: Add a man page for the nat action 2016-03-04 15:27:51 -08:00
tc-netem.8 tc-netem: fix limit description in man page 2018-05-16 14:16:29 -07:00
tc-pedit.8 tc/actions: introduce support for goto chain action 2017-05-22 13:31:51 -07:00
tc-pfifo.8 iproute2 - Split up manual page installation 2012-04-12 09:47:19 -07:00
tc-pfifo_fast.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-pie.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
tc-police.8 tc/actions: introduce support for goto chain action 2017-05-22 13:31:51 -07:00
tc-prio.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-red.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-route.8 tc: add a man page for route filter 2015-10-23 15:37:26 -07:00
tc-sample.8 tc: add missing sample file 2017-02-07 11:53:24 -08:00
tc-sfb.8 docs: make spacing consistent 2015-04-07 08:41:36 -07:00
tc-sfq.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-simple.8 tc-simple: Fix documentation 2017-08-03 16:02:44 -07:00
tc-skbedit.8 actions: skbedit add support for mod-ing skb pkt_type 2016-07-06 21:15:44 -07:00
tc-skbmod.8 man page: add page for skbmod action 2017-02-18 16:27:41 -08:00
tc-stab.8 iproute2: unmangle netdev/my emails in man pages (hfsc, stab) 2016-07-06 21:07:23 -07:00
tc-tbf.8 man8: scrub trailing whitespace 2015-11-23 15:41:37 -08:00
tc-tcindex.8 tc: fix typo in tc-tcindex man page 2017-09-20 18:01:02 -07:00
tc-tunnel_key.8 tc: m_tunnel_key: Add tunnel option support to act_tunnel_key 2018-07-06 09:10:05 -07:00
tc-u32.8 man: fix small formatting errors 2018-01-02 11:29:39 -08:00
tc-vlan.8 man: tc-vlan.8: Fix for incorrect example 2018-03-27 09:13:28 -07:00
tc-xt.8 man: Add a man page for the xt action 2016-03-04 15:27:51 -08:00
tc.8 Add support for CAKE qdisc 2018-07-19 09:23:46 -07:00
tipc-bearer.8 tipc: add the ability to get UDP bearer options 2016-09-01 08:34:35 -07:00
tipc-link.8 tipc: JSON support for tipc link printouts 2018-06-13 20:45:59 -07:00
tipc-media.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-nametable.8 tipc: JSON support for showing nametable 2018-06-13 20:45:38 -07:00
tipc-node.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-peer.8 tipc: add peer remove functionality 2016-08-29 10:33:24 -07:00
tipc-socket.8 man: Syntax and warning fixes 2015-11-23 15:39:25 -08:00
tipc.8 tipc: JSON support for showing nametable 2018-06-13 20:45:38 -07:00