The project has two parts:
- COMBO6, a high-performance hardware accelerator for packet forwarding and filtering functions
- Netopeer, a software system for platform-independent configuration of routers and entire networks
The idea of using commodity computers as IP routers is not new. In the Czech academic networks, PCs with NetBSD, FreeBSD or Linux have been (and still are!) used in several places since early nineties. For example, in the Brno MAN, around 60 PC routers are in routine operation. The biggest surprise has perhaps been their extreme reliability, not just of software but of hardware as well. Itis nonetheless clear that PC routers lag behind their modern commercial counterparts in these areas:
-
Performance:
Actually, the raw forwarding performance of high-end PCs is rather impressive, better than, for example, boxes like Cisco 7500. Maximum througput of the PCI bus (4 Gbps) is not enough though for today's gigabit networks and in other cases CPU can be the bottleneck, especially when special functions like multicast, packet filtering or QoS management come into play. Hence, we are developing an FPGA-based accelerator board named COMBO6 , which is intended to take over the bandwidth- and CPU-demanding tasks from the main processor and PCI bus and do them in wire speed. The projected throughput is currently around 10 Gbps.
- Ease of configuration: In a typical Unix box, the functions of an IP router are divided among several software components: some are done in the kernel (data plane, packet filtering, queue management) while others are accomplished in user space by means of several daemons. Configuration of these software components is accordingly scattered among a number of configuration files and scripts that also differ considerably from one OS (or even distribution) to another. While Unix gurus can usually live with/are fond of it, spoiled network administrators expect something different: a homogeneous and user-friendly configuration interface, either command-line or even web-based. So the second part of our project, named Netopeer , deals with the development of a uniform and device-independent router configuration platform, utilizing XML for internal data representation.
- Control plane functionality: Commercial router platforms offer a wide array of functions in the control plane (routing and signaling protocols etc.) that may not be readily available for NetBSD or Linux. However, if we limit ourselves to IP, the situation is not all that bad. In fact, new control plane functions for IPv6 are more likely to be found first in open-source software like KAME . That being said, we know there is still lot of work to be done on part of the daemons like Zebra or XORP before PC routers can be used extensively in modern IP networks.
We believe the expected results of this project can be useful in the following areas:
- Edge routers of gigabit networks or even core routers in lessdeveloped parts of the Internet,
- Research on network protocols,
- Special-purpose network devices.
The licenses of all components (hardware, firmware, software) conform to the open source definition as much as possible. See the licensing section for details.
Got interested? Then read more in the document section, join the mailing lists and, most importantly, consider contributing to the project.
We are grateful to CESNET and 6NET for supporting this project.


