Overview of the CeroWrt Project¶
Bufferbloat is a huge drag on Internet performance created, ironically, by previous attempts to make it work better. Eric Raymond wrote this one-sentence summary of the problem: "Bloated buffers lead to network-crippling latency spikes." You can read more about this problem at the main Bufferbloat site.
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.
CeroWrt is a project built on the OpenWrt firmware to resolve the endemic problems of bufferbloat in home networking today, and to push forward the state of the art of edge networks and routers. Projects include proper IPv6 support, tighter integration with DNSSEC, and most importantly, reducing bufferbloat in both the wired and wireless components of the stack.
The CeroWrt 3.3 series of builds include the following features and capabilities:
- Linux 3.3 kernel. Many of the fixes for bufferbloat are being implemented in this 3.3 kernel, so we are tracking these developments carefully. http://kernel.org
- Active Queue Management fixes for bufferbloat including: Byte Queue Limits (BQL - already incorporated into the 3.3 kernel), Stochastic Fair Queueing-Random Early Drop (SFQRED), working ECN, and other queue disciplines http://bufferbloat.net
- IPv6 support. Another major goal of CeroWrt is to make IPv6 networking in the home as simple as IPv4.
- Babel mesh routing protocol (1.3.1-2 release).
- DNSSEC and DNSSEC proxying - Secure extensions to the DNS system. Proxying is currently in testing.
- OpenWrt features. Because we track the OpenWrt code base carefully, we incorporate most of the capabilities of that distribution. We actively push our changes/enhancements back toward the OpenWrt trunk. http://openwrt.org
- An attractive web GUI for configuration - LuCI
Our plan is to produce a stable build that can be used as both a production router, and as a platform for further research into algorithms for solving state of the art problems in networking.
Sources of Information about the project¶
Glossary for Bufferbloat Topics: Glossary
General Bufferbloat list: https://lists.bufferbloat.net/listinfo/bloat
CeroWrt-devel list: https://lists.bufferbloat.net/listinfo/cerowrt-devel
CeroWrt-Commits list: https://lists.bufferbloat.net/pipermail/cerowrt-commits/
Lab Notebook in Github: https://github.com/dtaht/deBloat
IRC: Find us on IRC on chat.freenode.net, #bufferbloat channel
Try the Software¶
The current Linux 3.3 builds are usable, although they may have bugs. They give considerable improvement to the bufferbloat problem and continue to provide a good platform for testing various algorithms.
Many people are using these builds as a second router in their homes. A few brave souls are using it as their production router.
Download CeroWrt 3.3 builds: http://huchra.bufferbloat.net/~cero1/3.3/
To minimize the effects of hardware dependencies, we have chosen the Netgear WNDR3700v2 or WNDR3800 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-130). The WNDR3800 has more RAM (128MB instead of 64), but either of these models will be fine for these experiments. The WNDR3700v3 model that has recently appeared on the market does not work with CeroWrt; purchase the WNDR3800 if you want to be future-proof.
The documents below are correct for the current Linux 3.3 builds.
- CeroWrt 3.3 Release Notes
- READ THIS FIRST
- Flashing Instructions
- Installation Guide
- Default interface naming scheme
- Default network numbering scheme
- Changing IP, DNS, and SSID
- Monitoring CeroWrt with SNMP and NetFlow
The remaining documents are incomplete or outdated:
Packages developed during Bismark boot camp¶
BloatLab 1 (isc.org)
The bql-smoketest builds provided a good improvement to the buffer bloat problem from November 2011 through February 2012. However, all their major improvements have been implemented in the Linux 3.3 kernel. You can read the BQL series release notes. bql-smoketests: http://huchra.bufferbloat.net/~cero1/bql-smoketests/
About the OCEAN CITY release. In the latter half of 2011, we had hoped to release a build with grand goals. This release was to be named OCEAN CITY. But reality set in, and it became obvious that we could not meet these goals. The rc6 build is the culmination of the Ocean City release. Download the stable release: http://huchra.bufferbloat.net/~cero1/cerowrt-wndr3700-1.0rc6/
Any remaining references to an Ocean City on these pages are being changed to align with the more important goals set out above. The OCEAN CITY page lists obsolete information.