Electronic Systems Design Seminar
The Click modular router is a software architecture for building flexible and configurable routers. Router designers choose from an extensive set of components called elements, or write their own in C++, then connect them into router configuration graphs using a simple, declarative programming language. Click was first released in December 1999, and has a modest, but growing, user base at universities, industrial research labs, and companies. Some of this (partial) success has nothing to do with software structure: Click can use polling device drivers on PCs, increasing peak routing performance up to fivefold over unmodified Linux. People continue using Click because of its architecture, however. This talk discusses some reasons why, and briefly considers implications for component systems on network processors.
I'll present the Click architecture in general, then turn to features I find particularly important for usability. These include the component model's simplicity and flexibility, the high-level language used to plug components together, and the neutrality of basic primitives like packet transfer. I'll illustrate these features with examples of surprising reuse---elements and structures designed for one purpose that have been useful in unexpected ways.
Eddie Kohler is currently a researcher at ACIRI, the AT&T Center for Internet Research at ICSI, in Berkeley, and Chief Scientist of Mazu Networks. His research interests are mostly in systems, networks, programming languages, and software engineering, focusing on the construction of readable, useful systems. He got his Ph.D. from MIT in February 2001.