LCS Publication Details
Publication Title: Programming Language Techniques for Modular Router Configurations
Publication Author: Kohler, Eddie
Additional Authors: Benjie Chen, M. Frnas Kaashoek, Robert Morris, Massimiliano Poletto
LCS Document Number: MIT-LCS-TR-812
Publication Date: 8-21-2000
LCS Group: Parallel and Distributed Operating Systems
Additional URL: No URL Given
This paper applies programming language techniques to a high-level system description, both to optimize the system and to prove useful properties about it. The system in question is Click, a modular software router framework. Click routers are built from components called elements. Elements are written in C++, but the user creates a configuration using a simple, declarative data flow language. This language is amenable to data flow analysis and other conventional programming language techniques. Applied to a router configuration, these techniques have high-level results---for example, optimizing the router or verifying its high-level properties. This paper describes several programming language techniques that have been useful in practice, including optimization tools that remove virtual function calls from router definitions and remove redundant parts of adjacent routers. We also present performance results for an extensively optimized standards-compliant IP router. On conventional PC hardware, this router can forward up to 456,000 64-byte packets per second.
To obtain this publication:

To purchase a printed copy of this publication please contact MIT Document Services.