[Cerowrt-devel] heisenbug: dslreports 16 flow test vs cablemodems

Dave Taht dave.taht at gmail.com
Thu May 14 15:13:48 EDT 2015

One thing I find remarkable is that my isochronous 10ms ping flow test
(trying to measure the accuracy of the dslreports test) totally
heisenbugs the cable 16 (used to be 24) flow dslreports test.

Without, using cake as the inbound and outbound shaper, I get a grade
of C to F, due to inbound latencies measured in the seconds.


With that measurement flow, I do so much better, (max observed latency
of 210ms or so) with grades ranging from B to A...


I am only sending and receiving an extra ~10000 bytes/sec (100 ping
packets/sec) to get this difference between results. The uplink is
11Mbits, downlink 110 (configured for 100)

Only things I can think of are:

* ack prioritization on the modem
* hitting packet limits on the CMTS forcing drops upstream (there was
a paper on this idea, can't remember the name (?) )
* always on media access reducing grant latency
* cake misbehavior (it is well understood codel does not react fast enough here)
* cake goodness (fq of the ping making for less ack prioritization?)
* ????

I am pretty sure the cable makers would not approve of someone
continuously pinging their stuff in order to get lower latency on
downloads (but it would certainly be one way to add continuous tuning
of the real rate to cake!)


The simple test:
# you need to be root to ping on a 10ms interval
# and please pick your own server!

$ sudo fping -c 10000 -i 10 -p 10 snapon.lab.bufferbloat.net  >

start a dslreports "cable" test in your browser

abort the (CNTRL-C) ping when done. Post processing of fping's format

$ cat vscabletest_cable.out | cut -f3- -d, |  awk '{ print $1 }' >

import into your favorite spreadsheet and plot.

More information about the Cerowrt-devel mailing list