From: Dave Taht <dave.taht@gmail.com>
To: cake@lists.bufferbloat.net
Subject: [Cake] [PATCH 0/3] Add Common Applications Kept Enhanced (sch_cake) qdisc
Date: Tue, 21 Nov 2017 16:09:39 -0800 [thread overview]
Message-ID: <1511309382-24060-1-git-send-email-dave.taht@gmail.com> (raw)
sch_cake is intended to squeeze the most bandwidth and lowest 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 an ISP uplink:
tc qdisc add dev eth0 cake bandwidth 20Mbit nat docsis ack-filter
Cake can also be used in unlimited mode to drive packets at the speed
of the underlying link.
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 unique "triple-isolate" mode (the default) which balances per-flow
and per-host flow FQ even through NAT.
* An integral deficit based shaper with extensive dsl and docsis support
that can also be used in unlimited mode.
* 8 way set associative queuing to reduce flow collisions to a minimum.
* A reasonable interpretation of various diffserv latency/loss tradeoffs.
* Support for washing diffserv for entering and exiting traffic.
* Perfect support for interacting with Docsis 3.0 shapers.
* Extensive support for DSL framing types.
* (New) Support for ack filtering.
- 20 % better throughput at a 16x1 down/up ratio on the rrul test.
* Extensive statistics for measuring loss, ecn markings, latency variation.
There are some features still considered experimental, notably the
ingress_autorate bandwidth estimator and cobalt itself.
Various versions shipping 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 easier configuration.
Cake's principal author is Jonathan Morton, with contributions from
Kevin Darbyshire-Bryant, Toke Høiland-Jørgensen, Sebastian Moeller,
Ryan Mounce, Dean Scarff, Guido Sarducci, Nils Andreas Svee, Dave Täht, and
Loganaden Velvindron.
Dave Taht (3):
pkt_sched.h: add support for sch_cake API
Add Common Applications Kept Enhanced (sch_cake) qdisc
Add support for building the new cake qdisc
include/net/cobalt.h | 152 +++
include/uapi/linux/pkt_sched.h | 58 +
net/sched/Kconfig | 11 +
net/sched/Makefile | 1 +
net/sched/sch_cake.c | 2551 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 2773 insertions(+)
create mode 100644 include/net/cobalt.h
create mode 100644 net/sched/sch_cake.c
--
2.7.4
next reply other threads:[~2017-11-22 0:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-22 0:09 Dave Taht [this message]
2017-11-22 0:09 ` [Cake] [PATCH 1/3] pkt_sched.h: add support for sch_cake API Dave Taht
2017-11-22 0:55 ` Stephen Hemminger
2017-11-22 0:58 ` Dave Taht
2017-11-22 21:38 ` Stephen Hemminger
2017-11-22 22:35 ` Dave Taht
2017-11-24 13:33 ` Marcelo Ricardo Leitner
2017-11-24 20:53 ` Dave Taht
[not found] ` <CAJq5cE2j9o1vHhxEecHkKMUv65d-BxDvXNJXPWh=WHmXVqNUQA@mail.gmail.com>
[not found] ` <CAJq5cE36nijxKM6dpRPK2d8axZwf=35a8D=2oArPjusRKALLpA@mail.gmail.com>
2017-11-22 6:59 ` Jonathan Morton
2017-11-22 0:09 ` [Cake] [PATCH 2/3] Add Common Applications Kept Enhanced (sch_cake) qdisc Dave Taht
2017-11-22 0:55 ` Dave Taht
2017-11-22 2:33 ` Ryan Mounce
2017-11-22 7:46 ` Toke Høiland-Jørgensen
2017-11-22 0:09 ` [Cake] [PATCH 3/3] Add support for building the new cake qdisc Dave Taht
2017-11-22 11:02 ` [Cake] [PATCH 0/3] Add Common Applications Kept Enhanced (sch_cake) qdisc Sebastian Moeller
2017-11-22 18:03 ` Dave Taht
2017-11-23 7:54 ` Sebastian Moeller
2017-11-23 21:43 ` Sebastian Moeller
2017-11-23 22:02 ` Sebastian Moeller
2017-11-23 22:20 ` Sebastian Moeller
2017-11-23 22:26 ` Dave Taht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1511309382-24060-1-git-send-email-dave.taht@gmail.com \
--to=dave.taht@gmail.com \
--cc=cake@lists.bufferbloat.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox