Click Modular Router

The Click Modular Router Project is a software architecture for building flexible and configurable routers. A Click router is assembled from simple processing elements connected to define a processing flow.

Using the Click architecture, we have deployed a framework for protocol development, scenario setup, and protocol evaluation. The choice of Click to simplify network-level protocol development also allows evaluating the parameters of interest by adding simple counters or dumping trace files at selected points of the packet processing path in the nodes and by developing simple parsers to process all the data gathered at each of the nodes.

This framework allows fast development and testing of network-level protocols for wireless mesh networks. As an example of the utilization of such framework, we introduce here the development and testing of one of the mobility management building blocks (i.e. location management) over geographic routing, as part of the evaluation of the architecture developed in the WIP project. You can find further information about this framework and the some results obtained in publications.

Using Click for development of network-level protocols


Fig 1. Indoor wireless mesh networking testbed

Wireless Mesh Networking testbed

The software framework runs in an indoors wireless mesh networking testbed. The experimental setup includes a 12-node multi-radio backbone wireless mesh network over an approximate area of 1200 square meters. All nodes run Click over a Linux kernel 2.6.24. Backbone nodes are built based on a mini-ITX board (Pentium M 1.6 GHz) and mount up to four CM9 wireless cards (802.11abg) with Madwifi driver v0.9.4.

As for mobility, laptops with the same Linux kernel and Click versions are used for mobility tests, but they just mount one 802.11a wireless card.

Software framework at each node


Fig 2. Software framework in all nodes of the testbed

In Fig. 2, we show the software framework in all nodes of the testbed for the development of the location management schemes.

The Click framework

The software architecture for location management is based on the Click modular router. A Click router is composed by generic and simple packet processing elements and a configuration file that defines the interconnection of the processing elements and how the packets flow through the router. We use its capabilities using its elements but we have also developed new elements for location management.

Moreover, developing simple elements allows reusing these elements to implement different location management protocols only by changing the Click configuration file of the Click router. In Fig. 3, we show the main building blocks of our implementation of the location management, as a sample of protocol developed over this framework.


Fig 3. Software building blocks

These building blocks are:

  1. User interface
  2. Wireless interface
  3. Management and measurement interface
  4. Location Service engine
  5. Greedy forwarding module. It comes mainly from the one implemented by the MIT Grid project with some adaptations for the location management service and our testbed.

Three distributed location management schemes were implemented, namely simple proactive, simple reactive, and VIMLOC. Concerning implementation, Fig. 3 presents an overall view of the most relevant Click elements for VIMLOC. But, as explained above, the same elements combined in a different way, produce a completely different packet processing path. And the important thing is that this can be done at configuration time without having to develop the whole processing path from scratch. For a more detailed explanation of the VIMLOC implementation see publications.

Dynamic Click configuration files

Click configuration files are different for each node in the testbed. To ease the deployment and management of our location service, we have developed tools to generate the Click configuration file for each node in the testbed. Fig. 4 presents how it works. We use a generic template configuration file and we have different variable files for each node. A generation tool uses the generic template as a model and generates all the Click configuration files according to the values in the variable files. In Fig. 5, we show an example of this variable file. It contains the specific values for each node.


Fig 4. Operation of dynamic Click configuration files



Fig 5. Example of variable file