![]() |
Network Systems Group Princeton University Extensible Router |
The goal of this project is to build a prototype router that (1) is easily extended to support new network services (including overlay and peer-to-peer networks, firewalls, media gateways, proxies, and cluster-based servers), and (2) exploits commercially available hardware components (including commodity processors, network processors, and high-speed system area networks).
We are distributing VERA, a Linux device driver (plus microcode and development tools) for Intel's IXP1200 network processor.
We have made a case for extensible routers and defined their basic architecture [HotOS 1999], [Computer Networks 2002], [OpenArch 2002].
We have implemented and evaluated an extensible router using the IXP1200 network processor, measuring how many vanilla IP packets it can forward each second and how many instructions and memory accesses are available to compute on each packet. We also describe how extensions are loaded onto the IXP microengines [SOSP 2001].
We have developed a process model for software-based routers, and investigated the issues involved in scheduling CPU cycles on such a router [SIGMETRICS 2001].
We have designed and implemented an OS interface by which active network routers are programmed [JSAC 2001].
We have developed a TCP splicing mechanism to optimize the performance of TCP proxies [TON 2000].
We have developed a signalling protocols to instruct routers (proxies) along a TCP flow what code to load [JCN 2001].