The goal of this project is to design and build packet-processing platforms that offer both extensibility and high performance. We are exploring the feasibility of building high-speed routers using PC server-based hardware and software to enable developers to build and program networks using the operating systems and hardware platforms of general-purpose computers, in much the same way as end-systems.
Extending the functionality of the Internet network layer is notoriously hard. One reason is that extensibility and high performance are often competing goals, if not mutually exclusive. On the one hand, high-end routers (because they rely on specialized and closed hardware and software) are notoriously difficult to extend, program, or otherwise experiment with. On the other hand, “software routers” perform packet-processing in software running on general-purpose platforms.These are easily programmable, but have so far been suitable only for low-packet-rate environments.
As a first step, we are exploring the feasibility of building high-speed routers using only PC serverbased hardware and software. This would allow a broad community of developers to build and program networks using the operating systems and hardware platforms they tend to be most familiar with: that of the general-purpose computer. Such networks promise greater extensibility: data and control plane functionality can be modified through a software-only upgrade, and router developers are spared the burden of hardware design and development. If feasible, this could enable networks that are built and programmed in much the same way as end-systems are today.