CeroWrt is an OpenWrt router platform for use by individuals, researchers, and students interested in advancing the state of the art on the Internet. Specifically, it is aimed at investigating the problems of latency under load, bufferbloat, wireless-n, QoS, and the effects of various TCP algorithms on shared networks. The features of this release include:
- extensive network diagnostic, performance measurement, and simulation tools
- comprehensive IPv6 support
- integral web server
- rsync server
- advanced Bind DNS server with DNSSEC validation and signing
- support for mesh networking
- a web proxy server
- and most importantly, extensive debloating
This is a test version of the CeroWrt 3.3 release. Please see the following sources for up to date information about the software:
- CeroWrt Wiki for current information
- CeroWrt Releases for installation guide and tips
- Release Notes
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.
There are ubnt builds available as well, but specialized for a specific deployment scenario
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.
NewsThe current CeroWrt 3.3 is build 3.3.8-26 , codenamed "sugarland", built around 15 Sept 2012. Read the CeroWrt 3.3 Release Notes or the News Page for details.
This is a solid beta release. We believe it offers a significant improvement to the bufferbloat problem, and deserves wider testing.
RoadmapOur 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.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
- We have included a version of the CoDel algorithm from Kathie Nicols and Van Jacobson, along with Eric Dumazet's fair queueing enhancements. These in turn rely on the Byte Queue Limits code that's in the Linux Kernel 3.3. These replace earlier Active Queue Management fixes for bufferbloat including: Stochastic Fair Queueing-Random Early Drop (SFQRED), working ECN, and other queue disciplines
- IPv6 support. Another major goal of CeroWrt is to make IPv6 networking in the home as simple as IPv4.
- Babel mesh routing protocol (Quagga RE-0.99.17.11 release). RA, bgp, rip, ripng, and ospf are also supported
- 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
Sources of Information about the projectGlossary 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