From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [Cake] [PATCH iproute2-next v7] Add support for cake qdisc Date: Fri, 27 Apr 2018 18:03:56 -0700 Message-ID: <20180427180356.56455652@xeon-e3> References: <20180427193901.8057-2-toke@toke.dk> <20180427195720.9380-1-toke@toke.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: netdev@vger.kernel.org, cake@lists.bufferbloat.net To: Toke =?UTF-8?B?SMO4aWxhbmQtSsO4cmdlbnNlbg==?= Return-path: Received: from mail-pg0-f67.google.com ([74.125.83.67]:33549 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759215AbeD1BEB (ORCPT ); Fri, 27 Apr 2018 21:04:01 -0400 Received: by mail-pg0-f67.google.com with SMTP id i194-v6so2696600pgd.0 for ; Fri, 27 Apr 2018 18:04:00 -0700 (PDT) In-Reply-To: <20180427195720.9380-1-toke@toke.dk> Sender: netdev-owner@vger.kernel.org List-ID: On Fri, 27 Apr 2018 21:57:20 +0200 Toke H=C3=B8iland-J=C3=B8rgensen wrote: > 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. >=20 > Example of use on a cable ISP uplink: >=20 > tc qdisc add dev eth0 cake bandwidth 20Mbit nat docsis ack-filter >=20 > To shape a cable download link (ifb and tc-mirred setup elided) >=20 > tc qdisc add dev ifb0 cake bandwidth 200mbit nat docsis ingress wash best= effort >=20 > Cake is filled with: >=20 > * A hybrid Codel/Blue AQM algorithm, "Cobalt", tied to an FQ_Codel > derived Flow Queuing system, which autoconfigures based on the bandwidt= h. > * 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 variati= on. >=20 > 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. >=20 > sch_cake replaces a combination of iptables, tc filter, htb and fq_codel > in the sqm-scripts, with sane defaults and vastly simpler configuration. >=20 > Cake's principal author is Jonathan Morton, with contributions from > Kevin Darbyshire-Bryant, Toke H=C3=B8iland-J=C3=B8rgensen, Sebastian Moel= ler, > Ryan Mounce, Guido Sarducci, Dean Scarff, Nils Andreas Svee, Dave T=C3=A4= ht, > and Loganaden Velvindron. >=20 > Testing from Pete Heist, Georgios Amanakis, and the many other members of > the cake@lists.bufferbloat.net mailing list. >=20 > Signed-off-by: Dave Taht > Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen > --- > Changelog: > v7: > - Move the target/interval presets to a table and check that only > one is passed. >=20 > v6: > - Identical to v5 because apparently I don't git so well... :/ >=20 > v5: > - Print the SPLIT_GSO flag > - Switch to print_u64() for JSON output > - Fix a format string for mpu option output >=20 > v4: > - Switch stats parsing to use nested netlink attributes > - Tweaks to JSON stats output keys >=20 > v3: > - Remove accidentally included test flag >=20 > v2: > - Updated netlink config ABI > - Remove diffserv-llt mode > - Various tweaks and clean-ups of stats output > man/man8/tc-cake.8 | 632 ++++++++++++++++++++++++++++++++++++++ > man/man8/tc.8 | 1 + > tc/Makefile | 1 + > tc/q_cake.c | 748 +++++++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 1382 insertions(+) > create mode 100644 man/man8/tc-cake.8 > create mode 100644 tc/q_cake.c Looks good to me, when cake makes it into net-next.