Cake is the comprehensive queue management system the bufferbloat project has been working on since 2013. It has been included in the Linux kernel since v4.19.
These recipes are annotated combinations of settings that have been used for particular kinds of networks, organized from most common to most unusual. The detailed reference for all the parameters is tc-cake(8).
Additional recipes invited! To edit this page, submit a pull request to the Github repository.
tc qdisc replace dev eth0 root cake docsis ack-filter bandwidth 17mbit
This applies to most inbound cases, not just cable.
ip link add name ifb4eth0 type ifb
tc qdisc del dev eth0 ingress
tc qdisc add dev eth0 handle ffff: ingress
tc qdisc del dev ifb4eth0 root
tc qdisc add dev ifb4eth0 root cake bandwidth 170mbit besteffort
ip link set ifb4eth0 up # important
tc filter add dev eth0 parent ffff: matchall action mirred egress redirect dev ifb4eth0
This creates a named link for download/ingress and applies CAKE to it.
tc qdisc replace dev eth0 root cake pppoe-ptm ack-filter bandwidth 61mbit
There are numerous dsl options: if your ISP doesn’t publicise which they use, there is also conservative which sets the expected overhead to a safely high value.
tc qdisc replace dev eth0 root cake ethernet bandwidth 1gbit