Router plugins: a software architecture for next generation routers

  • Authors:
  • Dan Decasper;Zubin Dittia;Guru Parulkar;Bernhard Plattner

  • Affiliations:
  • Computer Engineering and Networks Laboratory, ETH Zurich, Switzerland;Applied Research Laboratory, Washington University, St. Louis;Applied Research Laboratory, Washington University, St. Louis;Computer Engineering and Networks Laboratory, ETH Zurich, Switzerland

  • Venue:
  • Proceedings of the ACM SIGCOMM '98 conference on Applications, technologies, architectures, and protocols for computer communication
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Present day routers typically employ monolithic operating systems which are not easily upgradable and extensible. With the rapid rate of protocol development it is becoming increasingly important to dynamically upgrade router software in an incremental fashion. We have designed and implemented a high performance, modular, extended integrated services router software architecture in the NetBSD operating system kernel. This architecture allows code modules, called plugins, to be dynamically added and configured at run time. One of the novel features of our design is the ability to bind different plugins to individual flows; this allows for distinct plugin implementations to seamlessly coexist in the same runtime environment. High performance is achieved through a carefully designed modular architecture; an innovative packet classification algorithm that is both powerful and highly efficient; and by caching that exploits the flow-like characteristics of Internet traffic. Compared to a monolithic best-effort kernel, our implementation requires an average increase in packet processing overhead of only 8%, or 500 cycles/2.1ms per packet when running on a P6/233.