Comcast rolls out their AQM technology for Bufferbloat, low latency

As advertised by Dave Taht on reddit in various forums, “Comcast rolled out their AQM technology over the last few months.” If you have a DOCSIS-3.1 modem, you should now be able to get an “A” bufferbloat grade on dslreports.com/speedtest or waveform.com/tools/bufferbloat. Comcast is using AQM in the CMTS for downloads and now enables DOCSIS-PIE AQM in DOCSIS-3.1 modems for upload (both Xfinity modems and customer supplied modems).

I tested my old Netgear CM600 DOCSIS-3.0 modem against my new Motorola MB8600 DOCSIS-3.1 modem. I was getting a “C” grade on the CM600 when Peplink’s Mitigate Bufferbloat was disabled. With either DOCSIS-PIE or Peplink’s fq_codel for upload, my grade improved to a “A”. As expected, fq_codel improved the latency a bit more, down to 4-5ms for upload vs 23ms for PIE (at the price of reducing my upload bandwidth somewhat).

I applaud Comcast for doing this! Let’s hope other ISP’s consider it (although it won’t happen quickly). In the meantime, I am keeping my fingers crossed that the next major revision of Peplink firmware adds support for fq_codel in downloads when Mitigate Bufferbloat is enabled on the support page. Currently it is only enabled for uploads. In my case, fq_codel is needed for upload and download on my Centurylink DSL line for my dual WAN configuration.

Pie is 8-16 times better than what docsis had before. I’m so glad it’s shipping on by default for everyone without needed intervention by the end user on Comcast. Comcast funded a great deal of the R&D in this area (including some of mine), but given how huge their user base is, and how many millions of devices they needed to fix, took this long to deploy. Many others made this deployment a reality.

In many respects fq-codel is 2-3x better than that. Cake is massively better under circumstances that are harder to test for (it does per host/per flow fq as one example: one host running that test would get whatever score good it does, another host, doing gaming or voip, won’t see any impact from the test at all.)

Our experience is generally you get an A for SQM (sub 30ms) and a B for AQM (sub 60ms) on the Speed test - how fast is your internet? | DSLReports, ISP Information. A+ is the goal for gaming and voice. I’ve talked a lot about human perception in my published work , anything above 20ms is “perceptible” for most, and under 4ms a good long term goal. 1ms = 1 foot of sound in air. In my mind we have a long, long way to go before the internet is a true extension of ourselves, and if people really want to build high quality AR and VR experiences, variable and longer queuing delays have to go the way of the dodo.

An increasing number of manufacturers recognize the importance of fq_codel or cake in their routers. It’s got to be a pretty long list now on the wikipedia site, and more and more cropping up when I look deeper. With fq_codel already working for upload, I can’t see how it should be anything less than straightforward for Peplink to get downloads working. The router parade now includes Ubiquiti Edgerouters, MikroTik, Asus Merlin, IQrouter, Firewalla…

I note that although I run the bufferbloat project and care deeply that these algorithms get more fully deployed, they are open IETF standards, with no patents, and freely available source code, with the reference SQM-scripts distribution making it easy to configure htb+fq_codel for both inbound and outbound, for most linuxes.

Doing an inbound shaper is now 4 lines of configuration using the newer cake qdisc, and one on outbound, and we maintain an out of tree port of the cake code going back as far as linux 3.11 (it was mainlined in linux 4.19), there’s a couple papers on it and this: Let them run CAKE [LWN.net]

One last point - much simpler and less cpu expensive than shaping is having this stuff on by default on all interfaces at line rate. This is the case now for OSX, iOS, and most linuxes today. Any place where you have a fast → slow transition some form of these new AQM and/or FQ technologies help, be it 10Gbits into 1Gbit, multiple ports into one port, etc. For more info, please see: RFC 7567 - IETF Recommendations Regarding Active Queue Management

If you are making AP’s a different, and optimized for wifi implementation of fq-codel became the default for linux on multiple chipsets in 2016. It’s offloaded into some qualcom firmware nowadays as well. Paper here: https://arxiv.org/pdf/1703.00064.pdf - in google wifi, ubnt, eero…