at what commit it worked properly? On Wed, Nov 22, 2017 at 3:02 AM, Sebastian Moeller <[email protected]> wrote: > 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 > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > 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 > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > 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$ > > > 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 > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > 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 > Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) > backlog 0b 0p requeues 0 > 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$ > > > 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 <[email protected]> wrote: >> >> 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 >> >> _______________________________________________ >> Cake mailing list >> [email protected] >> https://lists.bufferbloat.net/listinfo/cake >
-- Dave Täht CEO, TekLibre, LLC http://www.teklibre.com Tel: 1-669-226-2619 _______________________________________________ Cake mailing list [email protected] https://lists.bufferbloat.net/listinfo/cake
