[Cake] cake default target is too low for bbr?

Andy Furniss adf.lists at gmail.com
Fri Apr 28 19:52:36 EDT 2017


Andy Furniss wrote:

>> b) it reacts to increase in RTT. An experiment with 10 Mbps
>> bottleneck, 40 ms RTT and a typical 1000 packet buffer, increase in
>> RTT with BBR is ~3 ms while with cubic it is over 1000 ms.
> 
> That is a nice aspect (though at 60mbit hfsc + 80ms bfifo I tested with
> 5 tcps it was IIRC 20ms vs 80 for cubic). I deliberately test using ifb
> on my PC because I want to pretend to be a router - IME (OK it was a
> while ago) testing on eth directly gives different results - like the
> locally generated tcp is backing off and giving different results.

I retested this with 40ms latency (netem) with hfsc + 1000 pfifo on ifb.

5 tcps netperf bbr =

64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=40.611 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=162.566 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=163.854 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=143.220 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=139.458 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=139.466 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=139.570 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=139.876 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=139.592 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=139.580 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=139.458 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=40.625 ms

Of course cubic was totally horrible -

64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=40.605 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=209.066 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=261.172 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=316.063 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=363.004 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=417.586 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=569.068 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=784.740 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=1064.652 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=1204.801 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=973.802 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=155.116 ms
64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=40.414 ms

With hfsc on root of eth both cubic and bbr were the same -

64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=40.619 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=52.775 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=53.217 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=52.742 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=53.176 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=53.179 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=53.027 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=53.179 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=52.623 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=53.383 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=52.906 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=40.600 ms

So tcp was getting push back = unrepresentative result if you
want to test as if a queue on a remote router.


More information about the Cake mailing list