From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 0D05F3B2A4 for ; Wed, 22 Nov 2017 06:02:34 -0500 (EST) Received: from [192.168.250.101] ([134.76.241.253]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MMjgF-1eEPzz3VmR-008YxT; Wed, 22 Nov 2017 12:02:32 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) From: Sebastian Moeller In-Reply-To: <1511309382-24060-1-git-send-email-dave.taht@gmail.com> Date: Wed, 22 Nov 2017 12:02:31 +0100 Cc: cake@lists.bufferbloat.net Content-Transfer-Encoding: quoted-printable Message-Id: References: <1511309382-24060-1-git-send-email-dave.taht@gmail.com> To: =?utf-8?Q?Dave_T=C3=A4ht?= X-Mailer: Apple Mail (2.3273) X-Provags-ID: V03:K0:56WeuVQI71X0gCXIJfPcu8EeD/dAiDE/bEjhAMcVbCMNQQW8oDu xfZKX8JzoNqOI451dYqmlsDlxVYoQNuYmjYJIQWQQWOWrF2P4M1Tz6DCmR1niS3+VUfiWWC 7YhzIU10oDGmPwCGkxMMCHrrmUQlFoCJMuG2PQ7uJlRXATS5IXzGmvaEiOP1IpG33HNhKk7 Rjnm6KwNW+EaqUrDsq+sQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:IjYMvOUGBTo=:E9QTA8+WKzlG87uFHpUs91 KtPNXMavxjlqqPzdBGxZbzX31Nhp+wwiEv+rA7lpkdriFknfd1XkevcvDwWxSaEan5gJtTCog 45awRRIwfOQn6yza9QeEprXEt1R9lwq2UOGdW/VW5krgEThR1+ftXwW6RE8XNSaJ97Va2SOgw 71Oa9jmKreOb3/nm38YiHekkFZaydCiWaiowgenEqfoa69uf6q/1wxhMB2DtgFD1UrAn6W5vY PFdSm92kMcLlUmmux2qh+CzhQOkwEg/yVCdGTQENWjLIBoNPQRtVmS84ompxY/w8E28YyNyp4 P1NTboBUXJjfrw/jKqAmTK8aj8jqlpyGRs07ZQZOYg/a5K5CFteJewZB+6MqlpDmayOJqhm/+ IUfmrZ9Z3xJ7Ngy9bccBAfl4/oAWo0Bx7BRLlbLrSB9PhvpwKP/KjfQe74g4JeHhUYvmq6y9a 8Eg5gL4kW4kAOAeQgQRZLdKDLceVScXQDGP4Rw1lng8oANgWRKRTiCobElhod1H8shza0MDfJ 2fgLflIvdQWhZEMCcd0cfwYOQnDrTWvychHhpHYP1Gtq0kJw7uEhoShwO9PTsm98DbqA+uE5J Jk3lnFSUgXx73NjSuNBqwjEU4KLMOn6MRdwEibA8Xh3679fjsbA8KNSQQxWBrakoaHGm7Wu4x rNLY+g2KhFEF3HdPLi89GdQUkS6KwS/EhRJbmdjiliNE6qVBqEPN2gyTJaVK26VdxTWAxtgXr 6IGJ5blmTQvvMqILEdiV58uQDTFeOc4wTNC16wnjrEHOL0g7W52XqCWF0mJgdGTbZ58/NL3Vp 0L8w6RGBKL0WDt/zqRoMOTff2QwyNZe7CPBALrCt32RMhQXA/M= Subject: Re: [Cake] [PATCH 0/3] Add Common Applications Kept Enhanced (sch_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: Wed, 22 Nov 2017 11:02:35 -0000 Hi All, Tl;dr: Automatic accounting of the kernel added dev->hard_header_len = seems currently broken at least in the cobalt branch... as far as I can tell overhead accounting is still busted: user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete dev = eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake raw = overhead 5; ../tc-adv/tc/tc -s qdisc show dev eth0 sudo: unable to resolve host work-horse sudo: unable to resolve host work-horse qdisc cake 8014: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms noatm overhead 19 via-ethernet total_overhead 19 hard_header_len = 14=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 ack_drop 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete dev = eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake = overhead 5; ../tc-adv/tc/tc -s qdisc show dev eth0 sudo: unable to resolve host work-horse sudo: unable to resolve host work-horse qdisc cake 8015: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms raw total_overhead 14 hard_header_len 14=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 ack_drop 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 user@work-horse:~/CODE/sch_cake$=20 The first seems okay, but the second should not have reported "raw" but = rather total_overhead 5 hard_header_len 14 if I understand the intention = of the overhead keyword correctly. This also affects the keywords like = conservative: user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete dev = eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake = conservative; ../tc-adv/tc/tc -s qdisc show dev eth0 sudo: unable to resolve host work-horse sudo: unable to resolve host work-horse qdisc cake 8019: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms atm overhead 14 via-ethernet total_overhead 14 hard_header_len = 14=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 ack_drop 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete dev = eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake raw = conservative; ../tc-adv/tc/tc -s qdisc show dev eth0 sudo: unable to resolve host work-horse sudo: unable to resolve host work-horse qdisc cake 801a: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms atm overhead 62 via-ethernet total_overhead 62 hard_header_len = 14=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 ack_drop 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 user@work-horse:~/CODE/sch_cake$=20 So in other words currently the automatic accounting for the kernel = added hard_header_len seems broken as the raw keyword disables that = functionality. I will try to look deeper into that, but I guess with my = limited C skills this might do more harm than good... Best Regards Sebastian > On Nov 22, 2017, at 01:09, Dave Taht wrote: >=20 > 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. >=20 > Example of use on an ISP uplink: >=20 > tc qdisc add dev eth0 cake bandwidth 20Mbit nat docsis ack-filter >=20 > Cake can also be used in unlimited mode to drive packets at the speed > of the underlying link. >=20 > Cake is filled with: >=20 > * A hybrid Codel/Blue AQM algorithm, =E2=80=9CCobalt=E2=80=9D, 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. >=20 > There are some features still considered experimental, notably the > ingress_autorate bandwidth estimator and cobalt itself. >=20 > 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. >=20 > sch_cake replaces a combination of iptables, tc filter, htb and = fq_codel in > the sqm-scripts, with sane defaults and vastly easier configuration. >=20 > Cake's principal author is Jonathan Morton, with contributions from > Kevin Darbyshire-Bryant, Toke H=C3=B8iland-J=C3=B8rgensen, Sebastian = Moeller, > Ryan Mounce, Dean Scarff, Guido Sarducci, Nils Andreas Svee, Dave = T=C3=A4ht, and > Loganaden Velvindron. >=20 > 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 >=20 > 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 >=20 > --=20 > 2.7.4 >=20 > _______________________________________________ > Cake mailing list > Cake@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cake