Overview of the CeroWrt Project¶
Bufferbloat is a huge drag on Internet performance created, ironically, by previous attempts to make it work better. The one-sentence summary of the problem is "Bloated buffers lead to network-crippling latency spikes." You can read more about this problem at the top-level Buffer Bloat site, http://www.bufferbloat.net/projects/bloat/wiki/Introduction. [Thanks to Eric Raymond for this description]
CeroWrt is a project built upon the OpenWrt firmware to resolve these endemic problems in home networking today, and to push the state of the art of edge networks and routers forward. Projects include proper IPv6 support, tighter integration with DNSSEC, and most importantly, reducing bufferbloat in both the wired and wireless components of the stack.
To minimize the effects of hardware dependencies, we have chosen the Netgear WNDR3700v2 as the sole hardware for the experiments. The open source support for it is extensive, it has a capable processor with 16MB of flash and 64MB of RAM, it supports a USB flash stick, they are inexpensive (around $120). NB: As of January 2012, the WNDR3800 model is also working well. It has more RAM (128MB instead of 64), but either of these models will be fine for these experiments.
At this time, we have created a minimal, functioning build as a platform for experimentation. In parallel, several other developments have occurred:
- Many of these algorithms are being worked on in the Linux 3.3 kernel.
- OpenWrt has recently issued a number of updates for their recent Backfire 10.03.1 release.
- We have been submitting patches back to OpenWrt for inclusion in their mainline source tree.
We are working to stay abreast of all these efforts.
Dave Täht has been experimenting with a number of algorithms to reduce the amount of unnecessary (and harmful) buffering within the router. His notebook on github (below) lists his recent experiments. These test processes provide objective evidence of the improvements (or lack of improvements) of the various algorithms and implementations.
Sources of Information about the project:¶
General list for discussing Bufferbloat: https://lists.bufferbloat.net/listinfo/bloat
CeroWrt-devel mailing list: https://lists.bufferbloat.net/listinfo/cerowrt-devel
CeroWrt-Commits mailing list: https://lists.bufferbloat.net/pipermail/cerowrt-commits/
Lab Notebook in Github: https://github.com/dtaht/deBloat
Try the Software:¶
The current software is being used for experimentation on the algorithms. A few brave souls are also using it as a second router in their homes. At this stage, we do not recommend it as your production router.
The current builds are stable, and the bql-smoketest builds provide some improvement to the buffer bloat problem, and provides a good platform for testing various algorithms. The rc6 build is older, but in wider use. We have not received any reports of crashes from rc6 so feel free to try in less experimental situations.
The instructions (below) for the OCEAN CITY release are correct for the current builds.
Early 2012 release, codenamed OCEAN CITY¶
The current builds are stable, and the bql-smoketest builds provide some improvement to the buffer bloat problem. The rc6 build is an older, more stable release.
Packages developed during Bismark boot camp¶
BloatLab 1 (isc.org)