Battling bufferbloat on the Odroid C1+
Better hardware, older software

My goal in life, generally, is to have a set of boxes with known characteristics to drive network tests with, that are reliable enough to setup once and ignore. Other people actually use these itty bitty boards to do more useful stuff on… me, I’m just trying to fix bufferbloat everywhere.

So I’m trying to find a set of boards that can drive gigE wires at line rates.

A) I definitely wanted variety, particularly in tcp implementations, kernel versions, ethernet and wifi chips - as it seemed like drawing conclusions from “perfect” drivers like the e1000e all the time was a bad idea. We have a very repeatable testbed in karlstad, already - I’m interested in what random sort of traffic can exist on a home network that messes life up.

One of the things I noticed while using kodi is that the box announces 2k of multicast ipv4 packets every 30 seconds or so on the upnp port… AND over 4k of multicast ipv6 packets, if ipv6 is enabled.

B) Need to be able to drive 802.11ac as hard as possible with as many stations as possible.

C) needs to be low power and quiet (cheap is good too!)

So, after some fiddling I got the odroid C1+ to work better. (it was either a cable or power supply issue, I swapped both). On output it peaks at about 416Mbits with 26% of cpu being spent in a softirq interrupt. On input I can get it to gbit, with 220% of cpu in use.

The rrul tests were pretty normal, aside from the apparent 400mbit upload limit causing contention on rx/tx (at the moment I have no good place to put these test results since snapon is now behind a firewall. I’d like to get more organized about how we store and index these results also)

There is no BQL support in the odroid driver for it, and it ships with linux 3.10.80. At least its a LTS version…. I am totally unfamiliar with the odroid ecosystem but maybe there is active kernel dev on it somewhere?

(The pi 2, on the other hand, is kernel 4.1.17-v7 AND only has a 100mbit phy, so it is hard to complain about only getting 400mbit from the odroid c1+, but, dang it, a much later kernel would be nice in the odroid)

So I am going to drive the C1+ over the weekend with as many tests as possible to see if it melts, and decide if I can live with the 400mbit tcp output limit or not, and what, exactly, is happening when it is hit.

Update: It survived the tests handily and appears to be a good client for at least 100Mbit testing, thus far.

Find me elsewhere.

Best of the blog Uncle Bill's Helicopter - A speech I gave to ITT Tech - Chicken soup for engineers
Beating the Brand - A pathological exploration of how branding makes it hard to think straight
Inside the Internet Mind - trying to map the weather within the global supercomputer that consists of humans and google
Sex In Politics - If politicians spent more time pounding the flesh rather than pressing it, it would be a better world
Getting resources from space - An alternative to blowing money on mars using NEAs.
On the Columbia - Why I care about space
Authors I like:
Doc Searls
Jerry Pournelle
The Cubic Dog
David Brin
Charlie Stross
Eric Raymond
The Intercept
Chunky Mark
Dan Luu's rants about hardware design
Selenian Boondocks
Transterrestial Musings

March 4, 2016
456 words