designing extensible ip router software
Many problems with today's Internet routing infrastructure--slow BGP convergence times exacerbated by timer-based route scanners, the difficulty of evaluating new protocols--are not architectural or protocol problems, but software problems. Router software designers have tackled scaling challenges above all, treating extensibility and latency concerns as secondary. At this point in the Internet's evolution, however, further scaling and security issues require tackling latency and extensibility head-on. We present the design and implementation of XORP, an IP routing software stack with strong emphases on latency, scaling, and extensibility. XORP is event-driven, and aims to respond to routing changes with minimal delay--an increasingly crucial requirement, given rising expectations for Internet reliability and convergence time. The XORP design consists of a composable framework of routing processes, each in turn composed of modular processing stages through which routes flow. Extensibility and latency concerns have influenced XORP throughout, from IPC mechanisms to process arrangements to intra-process software structure, and leading to novel designs. In this paper we discuss XORP's design and implementation, and evaluate the resulting software against our performance and extensibility goals.
design extensibility router routing software internet structure convergence timing evaluation architecture scale challenge latency point evolution secure requirements implementation change minimal reliability process modular flow arrangement paper performance goals  framework  event delay infrastructure