The CeroWrt Project is complete. The last build (3.10.50-1) was released in July 2014. The principles learned from that research project have been transferred to the Linux kernel and OpenWrt.
Note: These pages remain as a historical reference for the work that was done to complete CeroWrt, and as a record of the initial research work for codel & fq_codel. See the CeroWrt Index page for all CeroWrt documentation.
Note: The “LEDE Project” was a fork of OpenWrt in 2016. In 2018, all changes to LEDE became the new OpenWrt mainline. Any reference in this wiki to “LEDE” applies to OpenWrt as well.
Bufferbloat is the undesirable latency that comes from a router or other network equipment buffering too much data. It 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 was 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 was 100% open source, top to bottom. No binary blobs whatsoever. Every aspect of the code and hardware can be inspected and/or modified. As a project, most of the results have been pushed up into mainline linux, OpenWrt releases, many firewall and router distributions and it is beginning to appear in commercial firmware. Active research (due to lack of funding, and succeeding in the primary goals) has ceased, with the exception of ongoing work into standardization efforts, and into something even better than fq_codel, called cake, which is not ready for prime time yet.
If you find bufferbloat is present, read What Can I do about Bufferbloat.
CeroWrt 3.10.50-1 Works! This build has been very stable since it was released on 28 July 2014. We strongly recommend replacing all earlier builds with this build. Read the News item for the update. See the CeroWrt 3.10 Release Notes and the mailing list for more details.
Note: All the important features of the CeroWrt software are now available in mainline OpenWrt builds. You may be better served by installing one of those supported builds that are available on a much wider range of router hardware.
Our plan has always been 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
The latest CeroWrt build is solid. We believe it solves virtually all the bufferbloat problem, and deserves wider use. Lots of people are using it as their production router.
To minimize the effects of hardware dependencies, we have chosen the Netgear WNDR3700v2 and WNDR3800 as the sole hardware for the experiments. Note: The WNDR3700v3 and v4 models 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. As of October 2015, both the target router models have become scarce. You can search for “WNDR3800” on amazon.com, frys.com, ebay.com, etc. but might be better served by looking at the OpenWrt software which is available for a wide variety of common routers.
There are ubnt builds available as well, but specialized for a specific deployment scenario. Ask if you want them.
As noted above, 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
The following give detailed descriptions of CeroWrt’s operation.
The documents below describe the older Linux 3.7 and earlier builds.
The Historical Documents page links to many documents that describe the history and earlier releases of the project.