Abstract

Clicks is a new software architecture for building flexible and configurable routers. A Click router is assembled from packet processing modules called elements . Individual elements implement simple router functions like packet classification, queuing, scheduling, and interfacing with network devices. A router configurable is a directed graph with elements at the vertices; packets flow along the edges of the graph. Several features make individual elements more powerful and complex configurations easier to write, including pull connections, which model packet flow drivn by transmitting hardware devices, and flow-based router context, which helps an element locate other interesting elements. Click configurations are modular and easy to extend. A standards-compliant Click IP router has 16 elements on its forwarding path; some of its elements are also useful in Ethernet switches and IP tunnelling configurations. Extending the IP router to support dropping policies, fairness among flows, or Differentiated Services simply requires adding a couple of element at the right place. On conventional PC hardware, the Click IP router achieves a maximum loss-free forwarding rate of 333,000 64-byte packets per second, demonstrating that Click's modular and flexible architecture is compatible with good performance.

Keywords

Computer scienceCore routerRouterOne-armed routerComputer networkForwarding planeNetwork packetPacket forwardingOptical IP SwitchingPacket processingDistributed computingEmbedded systemOperating systemThe InternetInternet Protocol

Affiliated Institutions

Related Publications

Publication Info

Year
2000
Type
article
Volume
18
Issue
3
Pages
263-297
Citations
2412
Access
Closed

External Links

Social Impact

Altmetric
PlumX Metrics

Social media, news, blog, policy document mentions

Citation Metrics

2412
OpenAlex

Cite This

Eddie Kohler, Robert Morris, Benjie Chen et al. (2000). The click modular router. ACM Transactions on Computer Systems , 18 (3) , 263-297. https://doi.org/10.1145/354871.354874

Identifiers

DOI
10.1145/354871.354874