The design and implementation of software for switch/routers and routers often requires addressing some important technical issues, namely, the processing requirements and stability of the Layer 3 (routing) and Layer 2 (bridging) protocols and algorithms, performance of the packet forwarding mechanisms, interactions between the Layer 2 and Layer 3 functions, and network management requirements. Designers of switch/routers and routers nowadays use mostly licensed or open-source (and most often enhanced) real-time kernel software and protocol software. Designers generally adopt high-quality simulation, development, and testing methods when developing product-grade networking devices.
To minimize time, effort, and cost associated with device and network management, switch/routers and routers support a combination of command-line interface (CLI) features, scripts, web-based interfaces and tools, and menu-driven configuration programs and tools, which are carefully integrated into the overall system software. The ultimate design goal of the system software and hardware is to obtain high system performance and maximized packet forwarding rate while minimizing system latency for packets.
This chapter describes the most important technical issues encountered during the development of switch/router software and the industry practices and solutions involved in the development process [COBBGR93]. This chapter describes the complex ...