This research was conducted by Joel Sommers, Paul Barford, and Ben Liblit. The paper appeared in the 4th International Conference on Communication Systems and Networks (COMSNETS 2012).
The vantage points of routers along end-to-end paths in the Internet have long made them a compelling target for additional functionality. In this paper, we describe a new method for router data plane programmability that is simple, general, ﬂexible and safe and enables complex network services to be built and deployed. Our method targets network processor (NP)- and FPGA-based routers, and is based on two central ideas: (1) primitive functions for routers that are designed for speciﬁc target service domains, and (2) a primitive-aware programming language that is expressive, easy to use and easy to analyze. To demonstrate our method, we describe a set of primitive functions in the context of three diverse domains — network measurement, real-time applications and trafﬁc engineering. Next, we describe Morpheme, our primitive-aware programming language, and show how it can be statically analyzed to safeguard router processor and memory resources. We demonstrate the efﬁcacy of our method by implementing the primitive functions in the Click modular router and a prototype Morpheme compiler. Through a series of microbenchmark experiments, we substantiate the capabilities of our prototype implementation.
The full paper is available as a single PDF document. A suggested BibTeX citation record is also available.