[Cake] low bandwidth default params best effort vs voice latency.

Andy Furniss adf.lists at gmail.com
Sat Mar 4 13:21:01 EST 2017

In the UK quite a lot of people have a 40/2 vdsl2 product.

Thankfully not me, ugh, it doesn't even have enough bandwidth for
sack per incoming in recovery - but "pretending" I wanted to see what
cake was like.

tc qdisc add dev enp6s0 handle 1:0 root cake bandwidth 1969230bit 
overhead 34 dual-srchost diffserv3

tc -s qdisc ls dev enp6s0
qdisc cake 1: root refcnt 2 bandwidth 1969Kbit diffserv3 dual-srchost 
rtt 100.0ms noatm overhead 34 via-ethernet
  Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
  backlog 0b 0p requeues 0
  memory used: 0b of 4Mb
  capacity estimate: 1969Kbit
                  Bulk   Best Effort      Voice
   thresh     123072bit    1969Kbit   492304bit
   target       147.6ms       9.2ms      36.9ms
   interval     295.2ms     104.2ms      73.8ms

Now we have 3 xbox ones in the house and I know that when we play
soldiers together they each do 60 pps upstream just for the game
(more if you include voice).

So I use fping x3 to sim this from 3 different ips and then also
do a single upload (netperf) with a fourth address.

fping -S -c 1000 -b 150 -p 16 -i 16 -Q 1 asr & fping .......

With all traffic through Best effort, 1000 pings x3 looks like

asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.55/4.57/8.77
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.57/4.78/8.67
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.60/4.62/8.73

I notice that unlike diffserv4 marking game traffic as real time
interactive (cs4) doesn't go to voice.
So I mark icmp as ef which does go to voice and repeat the test.

It performs slightly worse for max delay.

asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.50/4.33/14.1
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.65/4.44/11.2
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.86/4.71/13.6

Admittedly it's only a small proportion of the packets that are
above average but still it's not the result I would have hoped for.

I know cake seeks to be low configuration, but being able to tweak
things like target/interval and thresh per bin I think would give
greater flexibility. On thresh for example, a single xbox hosting
a game may need a bit more than 492k and (IMHO) it should be up to the
user to decide things like that.

More information about the Cake mailing list