General description: A cross-layer implementation of CBRP [1].

Implementation period: 2006

Technical details:

Cluster Based Routing Protocol (CBRP) is a routing algorithm which is designed for mobile ad hoc networks (MANETs). CBRP divides nodes of a network into a number of overlapping or disjoint 2-hop-diameter clusters in a distributed manner. A cluster head (CH) is elected for each cluster to maintain cluster membership information. By clustering nodes into groups, the protocol efficiently minimizes the flooding traffic during route discovery and also speeds up the route discovery process. The original CBRP chooses the node with the lowest ID as CHs. This mechanism in return degrades the stability of the formed clusters due to nodes mobility. To alleviate this inefficiency, we modified the CBRP clustering strategy by sending information from MAC layer to the routing layer. We implemented a novel relative mobility metric in order to measure the nodes mobility levels. This metric was based on the ratio between power levels of two successive signal received at each node from its neighbors. The signal power information can be measured at physical layer. We used our mobility metric for selecting CHs.

Our new implemented algorithm makes the behaviour of the network more adaptive to nodes mobility. Our code was implemented in ns-2 (network simulator) in which we modified the original implementation of the CBRP. For such, we extracted the code design of the original CBRP in ns-2 and then applied our changes to it. Our Cross-CBRP improved the clusters stability by 38%. Furthermore, we obtained 9% improvement in different network performance parameters such as throughput and packet delivery ratio.

You can download the source code for the Cross-CBRP from here: Cross-CBRP.tar.gz.

Instruction: You should first download the CBRP source code (with cmu-extention 1.1.2) from CBRP link. Next, you need to replace the "ntables.h" and "" source codes in the CBRP package with the new ones listed above. Then, you will be ready to compile and use the Cross-CBRP!

[1] CBRP


You should follow Follow @kjahanbakhsh me on Twitter.