GP-Pro: The Generative Programming Protocol Generator for Routing in Mobile Ad Hoc Networks
University of Ottawa, Ontario, Canada. June 2009.

Routing in mobile ad hoc networks (MANETs), where network topology is potentially highly dynamic, is not a trivial task. Routing protocols have been profoundly researched but only four of them have reached RFC status (AODV, OLSR, TBRPF and DSR). Simulation is the tool of choice to test and analyze routing protocols in a controlled environment, however, its credibility has decreased due to simulations being poorly performed and the inaccurate match of performance results with the results obtained from real test-bed deployments. One of the reasons for that is that simulation studies do not always correctly reflect the physical realities. On the other hand, the constantly increasing network requirements in terms of bandwidth, robustness, reliability and quality of service for a broad range of multiplatform scenarios demand for fast development and implementation of routing protocols that satisfy specific user requirements. However, current practices for protocol development and implementation are costly and time-consuming, especially when existing knowledge is not properly reused. Generative Programming is an attractive solution that makes use of reusable components and is also powered with the knowledge to automatically assemble them. This thesis analyzes the problem of developing ad hoc routing protocols, proposes an approach to automate the development process, and discusses in detail the design and the steps to build the GP-Pro protocol generator. GP-Pro is based on Generative Programming and automatically generates ad hoc routing protocols according to user requirements, which are expressed by means of a specification language. GP-Pro is designed with the explicit goal of generating a large number of different protocols by different component combinations and it addresses the generation of proactive, reactive and position-based routing protocols ready for deployment.

 

To demonstrate the capabilities of GP-Pro, we generated deployable implementations of the reactive protocol DYMO, the proactive protocol OLSR and the position-based protocol GREEDY. It took about 8 months to develop GP-Pro and to generate the first protocol (DYMO), but just about a week to generate the third protocol (GREEDY). The more components are available, the faster the implementation can be achieved. Therefore, generation time is considerably reduced. Through performance evaluation over real networks, we show that the generated protocols perform very closely to their handcrafted counterparts.


This research work provides the following contributions: 1) A domain specific protocol architecture; 2) A component interconnection model; 3) A robust protocol specification mechanism; 4) GP-Pro the software tool and; 5) Further insights in related fields.