From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.toke.dk (mail.toke.dk [52.28.52.200]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id AE64C3BA8E for ; Sat, 28 Apr 2018 11:27:53 -0400 (EDT) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1524929272; bh=8v8BhpXMO96UDfiqfmZD61K1kEoy+6D+c8KVPNmWnCw=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=N6moYzaQ0ViXQPat+fj+PhVIwkw/WepXbOqNRZj+DQ9GsphBrLbw73z5AEW4vB627 gTtUGASOfEbxb6cqpnLW/0g1dGhh9TvhRH0EGORGpCCgGK49MNT9+oPwaaxKV4C1i8 28089+kIffTFBboZg1yjvniKrdupITUS7L1q5Zl4o0YdCOzMZ4fswQTwjc8zXxdlla hWP4dYJXYXfvQEoXUgqxdG4Jq2TH3nUogT8UMo9d8XHdr8o5VyreFclyaIFJ9k1F57 NzQYNe7+idG6UeZq74HeOolducxWTZpsOKvPu+TCE6Ia4Iuudpn00uXzqQV4LiLHng eovheJrkkVcKA== To: Stephen Hemminger Cc: netdev@vger.kernel.org, cake@lists.bufferbloat.net In-Reply-To: <20180427180356.56455652@xeon-e3> References: <20180427193901.8057-2-toke@toke.dk> <20180427195720.9380-1-toke@toke.dk> <20180427180356.56455652@xeon-e3> Date: Sat, 28 Apr 2018 17:27:51 +0200 X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <8736zf4ah4.fsf@toke.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Cake] [PATCH iproute2-next v7] Add support for cake qdisc X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Apr 2018 15:27:54 -0000 Stephen Hemminger writes: > 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 ev= en >> 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 bes= teffort >>=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 bandwid= th. >> * 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 variat= ion. >>=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 Moe= ller, >> Ryan Mounce, Guido Sarducci, Dean Scarff, Nils Andreas Svee, Dave T=C3= =A4ht, >> 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. Awesome, thanks! -Toke