Click Modular Router
Click 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 classifcation, queueing, scheduling, and interfacing with network devices. A router configuration is a directed graph with elements at the vertices; packets follow along the edges of the graph. configurations are written in a declarative language that supports user-defined abstractions. This stencil facilitates the drawing of click routers using omnigraffle, with the correct notation: input/output ports, push/pull ports, queues.