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.

The code is 100% open source, top to bottom. No binary blobs whatsoever. Every aspect of the code and hardware can be inspected and/or modified. The work is woefully underfunded, please help if you can.

News

Beta-test releases based on Linux 3.10 are available. The betas are getting better and better - see the CeroWrt 310 Release Notes and mailing list for more details.

Roadmap

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. The CeroWrt 3.10 series of builds include the following features and capabilities

  • Linux 3.10 kernel. Most of the fixes for bufferbloat are being implemented in this 3.10 kernel, so we are tracking these developments carefully. http://kernel.org
  • We have included a version of the CoDel algorithm from Kathie Nicols and Van Jacobson, along with Eric Dumazet's flow queueing fq_codel. These in turn rely on the Byte Queue Limits for line rate networks and on htb for the SQM QoS system. These replace earlier Active Queue Management fixes for bufferbloat including: Stochastic Fair Queueing-Random Early Drop (SFQRED), and other queue disciplines.
  • There are also two newer versions of fq_codel under test, as well as an implementation of the current ns2 model of codel itself.
  • IPv6 support. Another major goal of CeroWrt is to make IPv6 networking in the home as simple as IPv4.
  • Babel mesh routing protocol with source sensitive routing. RA, bgp, rip, ripng, and ospf are also supported via the Quagga optional package.
  • DNSSEC - Secure extensions to the DNS system.
  • 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

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/
IRC: Find us on IRC on chat.freenode.net, #bufferbloat channel
Assorted Bufferbloat Videos

Try the Software

The current build is beta-test quality We believe it solves much of the bufferbloat problem, and deserves wider testing. Lots of people are using these builds as a second router in their homes. Many are using it as their production router.

Download the current CeroWrt 3.10 build: http://snapon.lab.bufferbloat.net/~cero2/cerowrt/wndr/

Hardware Requirements

To minimize the effects of hardware dependencies, we have chosen the Netgear WNDR3700v2 or WNDR3800 as the sole hardware for the experiments. Note: The WNDR3700v3 and v4 models that have recently appeared on the market do not work with CeroWrt; purchase the WNDR3800 if you want to be future-proof.

The open source support for these two models is extensive, they have a capable processor with 16MB of flash and 64MB of RAM, they support a USB flash stick, they are inexpensive (around $100). The WNDR3800 has more RAM (128MB instead of 64), but either of these models will be fine for these experiments. While the WNDR3800 became scarce for a while, it is now widely available: search for "WNDR3800" on amazon.com, frys.com, ebay.com, etc.

There are ubnt builds available as well, but specialized for a specific deployment scenario. Ask if you want them.

Otherwise all of openwrt and dd-wrt support fq_codel now in their QoS systems, so you can adopt one of the 150+ platforms supported there and see what happens.... YMMV, but please report here:
Hardware_Reports_on_FQ_CODEL

Documents

The documents below describe the older Linux 3.7 builds.

Tech Notes for CeroWrt

The following give detailed descriptions of CeroWrt's operation.

Older Information

The Historical Documents page links to many documents that describe the history and earlier releases of the project.

flanders320fade.jpg (18.4 kB) Rich Brown, 01/22/2012 12:14 pm