Click, From Extensible Router to Versatile Packet Processor
Friday, March 7, 2003
Host: Richard Cole, email@example.com, 212-998-3119
Modern router forwarding paths must simultaneously offer high performance and lots of configuration options. Even software routers have trouble with the combination, since performance requirements lead to monolithic, in-kernel implementations that are difficult to extend or change. The Click system attacks this problem with a configurable component framework for router construction. Application-specific abstractions, lean coding, and device driver improvements help Click achieve its original goal: a fully extensible, gigabit-speed forwarding path built from modular pieces. However, a continuing series of changes, both large and small, have evolved it into something more versatile. Now Click's single set of components cleanly supports packet processing applications like trace processing, simulation, wireless network protocol implementation, and traffic analysis, all while remaining fast enough for gigabit routing. This versatility seems unique among networking component systems, and useful enough to merit investigation. I'll describe Click, including the system itself and some support and optimization tools; present both routing applications and some other applications; and touch on the design principles that I think made Click a success, including seeming intangibles like readability and craft.