Re: [Cake] total download rate with many flows

2017-11-15 Thread Jonathan Morton
I'm curious as to why you think Cobalt is more aggressive than Codel.  It
does use more accurate approximations to the mathematical ideal than the
"reference" codel does.

It is however very odd that the Diffserv mode has any effect on this at
all.  It could be explained if a lot of the traffic is marked CS1, since
the Bulk tin has looser AQM parameters.  That suggests that selecting
'satellite' might help similarly.

Something worth trying would be to alter the failsafe shaper's rate of
advance.  Currently it has a one-quarter rate, which might be too
restrictive.  Tests at one-half and three-quarters might therefore be
interesting.  Otherwise, I don't think trying to modify the way ingress
mode works will do the right things.

Ultimately, this arises because Cake is having to drop packets in order to
signal congestion, and when there's a lot of flows, a lot of signals must
be sent to get through to them all.  With ECN working, it doesn't need to
waste bandwidth merely to signal.

The only other reasonable approach is to somehow reduce the signalling rate
under heavy flow load.  That requires informing Cobalt of the number of
bulk flows, and using that to scale the signalling frequency somehow.

- Jonathan Morton
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Nils Andreas Svee
On Wed, Nov 15, 2017, at 21:19, Dave Taht wrote:
> 
> > There’s also been a Cake support feature request hanging around in the 
> > EdgeOS
> > forums for a while after Lochnair’s successful work to get it built for the
> > EdgeRouter firmware:
> >
> > https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/Cake-shaper-support/idi-p/1885749
> 
> I had viewed those folk as a key path to commercialization. They have
> a great user community and great products.
> 
> > Maybe this would help get it pushed through into a device that I think has
> > pretty wide deployment…
> 
> The problem is, they were stuck on kernel 3.10, when last I looked and
> oy...
> 
> I keep hoping we can get cavium to pay attention directly.
Sadly they're still stuck 3.10. The next FW will be based on the
3.10.107 kernel, instead of 3.10.14/3.10.20. So that's something, but
it's still ancient and EOL.
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] total download rate with many flows

2017-11-15 Thread Dave Taht
On Tue, Nov 14, 2017 at 8:04 PM, George Amanakis  wrote:
> The problem I am describing in this thread appears only when using
> besteffort. If diffserv3 is used (without any further prioritization by
> manipulating DSCP bits) downstream is more stable and higher in throughput
> than with besteffort.
>
> Also, in my case disabling BLUE (by commenting out cake_queue_{empty,full}
> and all p_drop parts in sch_cake.c and cobalt.c) does not make any
> difference.

The only other thing I can think of is replacing the codel algorithm
in cake with the one in fq_codel.


>
>
> On 11/14/2017 5:23 PM, Dave Taht wrote:
>>
>> because cobalt is more aggressive than codel. I've never believed in it.
>>
>> I'm sitting here trying to figure out how to get good ole regular cake
>> to compile again.
>>
>> I just merged the new ack stuff into the codel branch.
>>
>>
>> On Tue, Nov 14, 2017 at 2:13 PM, G. Amanakis via Cake
>>  wrote:
>>>
>>> ___
>>> Cake mailing list
>>> Cake@lists.bufferbloat.net
>>> https://lists.bufferbloat.net/listinfo/cake
>>>
>>>
>>> -- Forwarded message --
>>> From: "G. Amanakis" 
>>> To: Dave Taht , George Amanakis via Cake
>>> 
>>> Cc:
>>> Bcc:
>>> Date: Tue, 14 Nov 2017 17:13:16 -0500
>>> Subject: Re: [Cake] total download rate with many flows
>>> Yes, it is. I am building from the cobalt branch. What makes you believe
>>> otherwise? Would you expect a different behaviour?
>>>
>>> On November 14, 2017 3:11:04 PM EST, Dave Taht  wrote:

 George Amanakis via Cake  writes:

>   From: George Amanakis 
>   Subject: Re: [Cake] total download rate with many flows
>   To: David Lang 
>   Cc: cake@lists.bufferbloat.net
>   Date: Mon, 13 Nov 2017 21:49:53 -0500 (17 hours, 20 minutes, 42
> seconds ago)
>
>   Dear David,
>
>   I agree. My point is that currently ingress mode seems to be dropping
> more
>   packets than necessary to keep senders from bottlenecking the
> connection (when
>   there is a large number of concurrent flows, >8). And right now,
> ingress mode is
>   the only mode that achieves this in situations such as Windows
> updates.


 Is cobalt enabled in your build?
>>>
>>>
>>> --
>>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>>
>>
>>
>



-- 

Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] ack filter rrul result at 1000/100

2017-11-15 Thread Dave Taht
Please disregard that result entirely, my test setup was wrong and I
jumped for joy too early.

(turned out on the second run I'd rate limited the wrong interface
also to 100mbit)

On Wed, Nov 15, 2017 at 7:13 PM, Dave Taht  wrote:
> I pulled together rmounce's patchset for ack filtering and my own
> ongoing netem work and had a chance to run a few tests.
>
> Pretty remarkable. The attached graph is a 1gbit (unshaped) link up
> with a 100Mbit down, the classic rrul 4 upload and 4 download flows,
> with the ping measurement
>
> Just an across the board win, unless the tcp gods rain hellfire down
> on us. And wow, look at all those acks that got killed.
>
>  backlog 0b 0p requeues 1
>  memory used: 317312b of 500b
>  capacity estimate: 100Mbit
>  Bulk   Best Effort  Voice
>   thresh  6250Kbit 100Mbit  25Mbit
>   target 5.0ms   5.0ms   5.0ms
>   interval 100.0ms 100.0ms  10.0ms
>   pk_delay 2us10us53us
>   av_delay 1us 1us 4us
>   sp_delay 1us 1us 3us
>   pkts  228783 1937474  631425
>   bytes  104982588  1189472341   380759260
>   way_inds   0   0   0
>   way_miss   6  63  19
>   way_cols   0   0   0
>   drops   607620911993
>   marks  0   0   0
>   ack_drop   67510  135880  102528
>   sp_flows   0   1   0
>   bk_flows   0   0   1
>   un_flows   0   0   0
>   max_len 6056   15140   10598
>
>
> --
>
> Dave Täht
> CEO, TekLibre, LLC
> http://www.teklibre.com
> Tel: 1-669-226-2619



-- 

Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Nils Andreas Svee
Mostly because of the Cavium and MediaTek SDKs yes. However in my quest
to use a newer kernel I found that EdgeOS/Vyatta uses UnionFS which is
not supported on newer kernels than 3.16, so that's gotta be fixed first
too. In VyOS they've solved this by using UnionFS-Fuse.
On Wed, Nov 15, 2017, at 21:58, Pete Heist wrote:
> 
>> On Nov 15, 2017, at 9:28 PM, Nils Andreas Svee
>>  wrote:>> 
>> On Wed, Nov 15, 2017, at 21:19, Dave Taht wrote:
>>> 
 There’s also been a Cake support feature request hanging around in
 the EdgeOS forums for a while after Lochnair’s successful work to get 
 it built
 for the EdgeRouter firmware:
 
 https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/Cake-shaper-support/idi-p/1885749>>>
  
>>> I had viewed those folk as a key path to commercialization.
>>> They have>>> a great user community and great products.
>>> 
 Maybe this would help get it pushed through into a device that I
 think has pretty wide deployment…
>>> 
>>> The problem is, they were stuck on kernel 3.10, when last I
>>> looked and>>> oy...
>>> 
>>> I keep hoping we can get cavium to pay attention directly.
>> Sadly they're still stuck 3.10. The next FW will be based on the
>> 3.10.107 kernel, instead of 3.10.14/3.10.20. So that's something, but>> it's 
>> still ancient and EOL.
> 
> Is the tie to 3.10 due to the dependency on the Cavium SDK for
> hardware support?> 
> Surprisingly I don’t see a feature request so far for a newer kernel,
> at least among the first half dozen pages or so:> 
> https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/idb-p/EdgeMAX_Ideas/tab/most-kudoed>
>  
Best Regards
Nils

___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Pete Heist

> On Nov 15, 2017, at 9:28 PM, Nils Andreas Svee  wrote:
> 
> On Wed, Nov 15, 2017, at 21:19, Dave Taht wrote:
>> 
>>> There’s also been a Cake support feature request hanging around in the 
>>> EdgeOS
>>> forums for a while after Lochnair’s successful work to get it built for the
>>> EdgeRouter firmware:
>>> 
>>> https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/Cake-shaper-support/idi-p/1885749
>> 
>> I had viewed those folk as a key path to commercialization. They have
>> a great user community and great products.
>> 
>>> Maybe this would help get it pushed through into a device that I think has
>>> pretty wide deployment…
>> 
>> The problem is, they were stuck on kernel 3.10, when last I looked and
>> oy...
>> 
>> I keep hoping we can get cavium to pay attention directly.
> Sadly they're still stuck 3.10. The next FW will be based on the
> 3.10.107 kernel, instead of 3.10.14/3.10.20. So that's something, but
> it's still ancient and EOL.

Is the tie to 3.10 due to the dependency on the Cavium SDK for hardware support?

Surprisingly I don’t see a feature request so far for a newer kernel, at least 
among the first half dozen pages or so:

https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/idb-p/EdgeMAX_Ideas/tab/most-kudoed
 


___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Dave Taht
Pete Heist  writes:

> On Nov 15, 2017, at 9:04 PM, Dave Taht  wrote:
>
> 
> Dave Taht  writes:
> 
> TCP RTT ~= 8ms with default qdisc, throughput ~= 940 Mbit
> TCP RTT ~= 4.5ms with ‘cake unlimited’, throughput ~= 920 Mbit
> TCP RTT ~= 1ms with ‘cake unlimited lan’, throughput ~= 920 Mbit
> 
>
> This was with BQL in play? Monitoring BQL's behavior might help.
> 
> I'd also love to know an exact setting for the shaper as a close as
> possible to the underlying bandwidth of ethernet. However, I tend to be
> plagued with
> 
>
> Yes, with BQL (Intel I210 with igb driver on the APU2). An rrul_be test with —
> socket-stats.

https://github.com/ffainelli/bqlmon was a tool for looking at bql more
directly.

I had forked it for some reason or another:

https://github.com/dtaht/bqlmon
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Pete Heist

> On Nov 15, 2017, at 9:04 PM, Dave Taht  wrote:
> 
> Dave Taht > writes:
> 
>>> TCP RTT ~= 8ms with default qdisc, throughput ~= 940 Mbit
>>> TCP RTT ~= 4.5ms with ‘cake unlimited’, throughput ~= 920 Mbit
>>> TCP RTT ~= 1ms with ‘cake unlimited lan’, throughput ~= 920 Mbit
> 
> This was with BQL in play? Monitoring BQL's behavior might help.
> 
> I'd also love to know an exact setting for the shaper as a close as
> possible to the underlying bandwidth of ethernet. However, I tend to be
> plagued with

Yes, with BQL (Intel I210 with igb driver on the APU2). An rrul_be test with 
—socket-stats.

___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Dave Taht

Pete Heist  writes:

> On Nov 15, 2017, at 8:44 PM, Dave Taht  wrote:
>
> 
> 
> I dearly would like to try and submit cake to mainline linux in
> december. Getting it done is going to take group effort.
> 
> And trying to cover all the corner cases, is going to take co-ordination
> and scripting, and perhaps we should switch to google docs to pull 
> together.
> 
> Also, it might be fun to schedule a dramatic reading of the source code
> via videoconference because theres a lot in cake that not enough people
> (except maybe jonathan) understand.
> 
>
> That sounds good. Rather than my making some test plan, if you start a doc 
> just
> plug me in where you think it’s best.

I'll try to review what's been discussed so far and get a document out
by sunday.

BTW, all, I have reserved time on the "vuc" conference december 15th to
discuss where we are in the bufferbloat project. That's more of a "meet
the press" kind of thing than the internal discussion here.

>
> There’s also been a Cake support feature request hanging around in the EdgeOS
> forums for a while after Lochnair’s successful work to get it built for the
> EdgeRouter firmware:
>
> https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/Cake-shaper-support/idi-p/1885749

I had viewed those folk as a key path to commercialization. They have
a great user community and great products.

> Maybe this would help get it pushed through into a device that I think has
> pretty wide deployment…

The problem is, they were stuck on kernel 3.10, when last I looked and
oy...

I keep hoping we can get cavium to pay attention directly.
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Pete Heist

> On Nov 15, 2017, at 8:44 PM, Dave Taht  wrote:
> 
> I dearly would like to try and submit cake to mainline linux in
> december. Getting it done is going to take group effort.
> 
> And trying to cover all the corner cases, is going to take co-ordination
> and scripting, and perhaps we should switch to google docs to pull together.
> 
> Also, it might be fun to schedule a dramatic reading of the source code
> via videoconference because theres a lot in cake that not enough people
> (except maybe jonathan) understand.

That sounds good. Rather than my making some test plan, if you start a doc just 
plug me in where you think it’s best.

There’s also been a Cake support feature request hanging around in the EdgeOS 
forums for a while after Lochnair’s successful work to get it built for the 
EdgeRouter firmware:

https://community.ubnt.com/t5/EdgeMAX-Feature-Requests/Cake-shaper-support/idi-p/1885749
 


Maybe this would help get it pushed through into a device that I think has 
pretty wide deployment…

___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


Re: [Cake] Cake upstream Planning

2017-11-15 Thread Dave Taht
Dave Taht  writes:

>>
>> TCP RTT ~= 8ms with default qdisc, throughput ~= 940 Mbit
>> TCP RTT ~= 4.5ms with ‘cake unlimited’, throughput ~= 920 Mbit
>> TCP RTT ~= 1ms with ‘cake unlimited lan’, throughput ~= 920 Mbit

This was with BQL in play? Monitoring BQL's behavior might help.

I'd also love to know an exact setting for the shaper as a close as
possible to the underlying bandwidth of ethernet. However, I tend to be
plagued with

>>
>> So yes, we can lower TCP RTT with these more aggressive settings. But just to
>> make sure, we’re confident that there are no other side effects from these 
>> lower
>> targets and intervals? Is there anything else I should test for to be sure? 
>> For
>> example, when I rate limit to 950 Mbit and try the same test above, ‘lan’ 
>> causes
>> a 20% drop in throughput vs the defaults. That may be from an overtaxed CPU, 
>> but
>> I don’t know. I also wonder how this affects routed vs local traffic. I’ll 
>> try
>> to test this at some point, as I want to understand it better anyway to know 
>> how
>> backhaul links should be configured...

One interesting thing that might make tcp behave better is the new
pacing code which lets us set pacing to a different log value. Presently
- at 10 - the TSQ algorithm recalculates things at 1ms. The pacing value
is intended to be changed to, say, 6 or 7 to make wifi work
better... and I suspect, that if it were upped to, say 12 (250us), on ethernet,
that might make pacing more effective there.

Just like breaking the sound barrier, breaking the 1ms barrier looks to
be hard within conventional kernel thread scheduling.

>>
>> Non-Blockers:
>> 
>> * I don't believe in cobalt, or rather, I won't believe in it until we
>> have data at many RTTs. That said, what I'd propose would be a
>> monolithic cobalt.h file rather than codel5.h.
>> 
>> The netns stuff will make simulating RTTs and bandwidths much easier….
>>
>> 
>> * I think the fq_codel batch drop facility is better than what cake uses
>> in case of floods. Partially due to the need to handle backports the
>> mechanism fq_codel uses is hard to use - but going mainline we could add
>> this.
>> 
>> * The autorate_ingress code should be marked experimental. I keep hoping
>> it can be improved by better looking for "smoothness" inbound, but
>> algorithms escape me. This doesn't bother me much, as tcp continues to
>> be improved over the past 50 years, perhaps we can find ways to improve
>> this with more users.
>> 
>> * It is possible to tune the quantum and peeling functions to not peel
>> to the extent they do. Particularly there is usually no need (aside from
>> wanting accurate statistics) to peel below 1500 bytes (except perhaps
>> with the new ack filter mode). We experimented a lot with this in the
>> early days but could never come to a resolution.
>> 
>> * I don't have any use for precidence mode and would like to remove it.
>>
>> Regarding non-blockers, for FreeNet’s purposes, I wanted to see if I could 
>> add
>> the option to use packet marks as one of the identifiers for host isolation, 
>> but
>> I’ve not had time to explore it yet. This would be helpful for ISPs that 
>> want to
>> ensure fairness when there isn’t a one-to-one mapping between IP address and
>> customer. I’ll see if I can at least try it.
> ___
> Cake mailing list
> Cake@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cake
___
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake


[Cake] Cake upstream Planning

2017-11-15 Thread Dave Taht

(note changed topic thread)

I dearly would like to try and submit cake to mainline linux in
december. Getting it done is going to take group effort.

And trying to cover all the corner cases, is going to take co-ordination
and scripting, and perhaps we should switch to google docs to pull together.

Also, it might be fun to schedule a dramatic reading of the source code
via videoconference because theres a lot in cake that not enough people
(except maybe jonathan) understand.

Pete Heist  writes:

> On Nov 14, 2017, at 9:10 PM, Dave Taht  wrote:
>
> 
> Pete Heist  writes:
> 
> By the way, what or how much is needed to get Cake mainlined?
> 
>
> I'd like us to give it a go when net-next reopens in two weeks,
> we'd then have 6 weeks or so to get it right.
> 
> We need:
> 
> * Someone to do the heavy lifting. Which I suspect would be me.
> * Someones with various hardware platforms that current kernels can be
> run on. qemu?
> * I'd like to see the ack filtering work get tested on lede at low
> bandwidths on dsl especially.
> * A whole lotta tests at various RTTs
> 
>
> I can offer some testing time, and can script or batch a range of RTTs. netns
> would be useful here. For completeness, I suggest a product of rrul_be runs:
>
> Rates: 128 / 256 / 512Kbit, 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 
> 512Mbit,
> 1Gbit
>
> RTTs: 150 / 300 / 600us, 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 / 
> 1024ms

Well, we need simple basic single tcp download tests, I would love to
also reuse the http and voip tests toke used in the first paper.

> Opinions? Some of those might be rough (I’m looking at you 128Kbit / 1024ms),
> but it would be good to know what happens. For hardware, I could turn my Mac
> Mini into a qemu box. I guess this list is about right:

Doing a few qemu setups would be good. In particular it helps with
letting us test a net-next kernel. If we could make available qemu
images all the better.

> https://www.debian.org/releases/stable/i386/ch02s01.html.en. I don’t know if 
> all
> tests need to be tried on all platforms.

My principal requirement for multi-arch testing is that it "not crash"
and "compile". More direct testing - like with the mvneta and other odd
ethernet devices, kind of requires real hardware.

> Testing could go much further, with host fairness, diffserv keywords, rtt
> settings (more on that later), overheads, nat, etc. We could also test
> underpowered hardware with rate limiting to see if it degrades gracefully. For
> sanity, we could just test a smattering of these things.

This is a case where flent's batch facility would help. And we can divvy
up the load among servers using the new netns technique. Assuming I get
a bit of funding we can also grab some servers in the cloud, but I'm not
expecting that, so...

I do plan on getting a box to replace snapon also in this timeframe.

>
> Blockers:
> 
> * Ripping out all the backward compatability cruft for submission to
> mainline and following netdev formatting conventions for comments and
> indentation. I'd like any new features in the backport to get
> backported, though (sigh), as lede looks to be shipping a 4.9 based
> kernel.
> 
>
> Argh, but probably has to be done.

That turned out to not be hard. I'm about to test that result today.

Folding the result sanely back into the main repo did turn out to be
hard. I also have no idea how to fold together the cobalt and regular
cake branches at the moment, so I'm sticking with cobalt.

>
> * tc-cake man page needs to be updated.
> 
> * tc-adv related code updated to latest iproute2

I will start a repo for this.

> * There is some work going on here to add ack filtering to cake, which
> looks VERY promising: https://github.com/dtaht/sch_cake/pull/63
> 
> I'm going to add something like this to netem also. It may be that
> merely leveraging the hash would be enough in cake's case.
> 
> * Testing against the net-next kernel on x86, x86_64, arm, mips, and
> aarch architectures. (I just got bit by not testing 32 bit arches, sigh)
> 
>
> Regarding the target and interval settings Cake uses, here are the current
> keywords available and their settings:
>
> datacentre: 19us / 114us (us yanks might like ‘datacenter' as a synonym)
> lan: 50us / 1ms
> metro: 500us / 10ms
> regional: 1.5ms / 30ms
> internet: 5ms / 100ms
> oceanic: 15ms / 300ms
> satellite: 50ms / 1s
> interplanetary: 5ms / 3600s
>
> About a year ago I raised a concern that these values were outside what the
> CoDel authors intended. The counter-argument at the time was that
> experimentally, we can show that TCP RTT can be reduced on a Gbit LAN with the
> ‘lan’ keyword. And that argument seems to hold, so far. On two BQLd systems 
> (2x
> PCEngines APU2s) connected with GigE, I can run the same experiment 

Re: [Cake] Donation

2017-11-15 Thread Pete Heist

> On Nov 14, 2017, at 9:10 PM, Dave Taht  wrote:
> 
> Pete Heist > writes:
> 
>> By the way, what or how much is needed to get Cake mainlined?
> 
> I'd like us to give it a go when net-next reopens in two weeks,
> we'd then have 6 weeks or so to get it right.
> 
> We need:
> 
> * Someone to do the heavy lifting. Which I suspect would be me.
> * Someones with various hardware platforms that current kernels can be
>  run on. qemu?
> * I'd like to see the ack filtering work get tested on lede at low
>  bandwidths on dsl especially.
> * A whole lotta tests at various RTTs

I can offer some testing time, and can script or batch a range of RTTs. netns 
would be useful here. For completeness, I suggest a product of rrul_be runs:

Rates: 128 / 256 / 512Kbit, 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512Mbit, 
1Gbit

RTTs: 150 / 300 / 600us, 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024ms

Opinions? Some of those might be rough (I’m looking at you 128Kbit / 1024ms), 
but it would be good to know what happens. For hardware, I could turn my Mac 
Mini into a qemu box. I guess this list is about right: 
https://www.debian.org/releases/stable/i386/ch02s01.html.en 
. I don’t know if 
all tests need to be tried on all platforms.

Testing could go much further, with host fairness, diffserv keywords, rtt 
settings (more on that later), overheads, nat, etc. We could also test 
underpowered hardware with rate limiting to see if it degrades gracefully. For 
sanity, we could just test a smattering of these things.

> Blockers:
> 
> * Ripping out all the backward compatability cruft for submission to
>  mainline and following netdev formatting conventions for comments and
>  indentation. I'd like any new features in the backport to get
>  backported, though (sigh), as lede looks to be shipping a 4.9 based
>  kernel.

Argh, but probably has to be done.

> * tc-cake man page needs to be updated.
> 
> * tc-adv related code updated to latest iproute2
> 
> * There is some work going on here to add ack filtering to cake, which
> looks VERY promising: https://github.com/dtaht/sch_cake/pull/63 
> 
> 
> I'm going to add something like this to netem also. It may be that
> merely leveraging the hash would be enough in cake's case.
> 
> * Testing against the net-next kernel on x86, x86_64, arm, mips, and
> aarch architectures. (I just got bit by not testing 32 bit arches, sigh)

Regarding the target and interval settings Cake uses, here are the current 
keywords available and their settings:

datacentre: 19us / 114us (us yanks might like ‘datacenter' as a synonym)
lan: 50us / 1ms
metro: 500us / 10ms
regional: 1.5ms / 30ms
internet: 5ms / 100ms
oceanic: 15ms / 300ms
satellite: 50ms / 1s
interplanetary: 5ms / 3600s

About a year ago I raised a concern that these values were outside what the 
CoDel authors intended. The counter-argument at the time was that 
experimentally, we can show that TCP RTT can be reduced on a Gbit LAN with the 
‘lan’ keyword. And that argument seems to hold, so far. On two BQLd systems (2x 
PCEngines APU2s) connected with GigE, I can run the same experiment now and 
show that:

TCP RTT ~= 8ms with default qdisc, throughput ~= 940 Mbit
TCP RTT ~= 4.5ms with ‘cake unlimited’, throughput ~= 920 Mbit
TCP RTT ~= 1ms with ‘cake unlimited lan’, throughput ~= 920 Mbit

So yes, we can lower TCP RTT with these more aggressive settings. But just to 
make sure, we’re confident that there are no other side effects from these 
lower targets and intervals? Is there anything else I should test for to be 
sure? For example, when I rate limit to 950 Mbit and try the same test above, 
‘lan’ causes a 20% drop in throughput vs the defaults. That may be from an 
overtaxed CPU, but I don’t know. I also wonder how this affects routed vs local 
traffic. I’ll try to test this at some point, as I want to understand it better 
anyway to know how backhaul links should be configured...

> Non-Blockers:
> 
> * I don't believe in cobalt, or rather, I won't believe in it until we
> have data at many RTTs. That said, what I'd propose would be a
> monolithic cobalt.h file rather than codel5.h.
> 
> The netns stuff will make simulating RTTs and bandwidths much easier….
> 
> * I think the fq_codel batch drop facility is better than what cake uses
> in case of floods. Partially due to the need to handle backports the
> mechanism fq_codel uses is hard to use - but going mainline we could add this.
> 
> * The autorate_ingress code should be marked experimental. I keep hoping
> it can be improved by better looking for "smoothness" inbound, but
> algorithms escape me. This doesn't bother me much, as tcp continues to
> be improved over the past 50 years, perhaps we can find ways to improve
> this with more users.
> 
> * It is possible to tune the quantum and peeling functions to not