|
![]() |
|
Designed by |
|
|
|
|
|
|
Router Plugins: A
Software Architecture for Next Generation Routers
Dan Decasper (ETH Zurich), Zubin Dittia (Washington University), Guru Parulkar (Washington University), and Bernhard Plattner (ETH Zurich)
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.
|
|