A Click router is assembled from packet processing modules called elements . Individual elements implement simple router functions like packet classification, queueing, scheduling, and interfacing with network devices. Several features make individual elements more powerful and complex configurations easier to write, including pull connections , which model packet flow driven 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.
Extending the IP router to support dropping policies, fairness among flows, or Differentiated Services simply requires adding a couple elements at the right place. Compared to the earlier paper, it has improved explanations of basic concepts, more detail, more examples, and significantly better performance results.