Table Of Contents
Table Of Contents

Ad Hoc Routing

Overview

In ad hoc networks, the topology of the network is not known to the nodes. Instead, the topology must be discovered. When a new node joins the network, it announces its presence and listens for announcements from its neighbors. Each node learns about nearby nodes and how to reach them, and it may also announce that it can reach other nodes. The task of routing in ad hoc networks is complicated by the fact that nodes may be mobile, resulting in a changing topology.

There are two types of ad hoc routing protocols: proactive and reactive. Proactive or table-driven protocols maintain up-to-date lists of destinations and their routes by periodically distributing routing tables throughout the network. Reactive or on-demand protocols find a route on-demand by flooding the network with Route Request packets.

The INET Framework includes the implementation of several ad hoc routing protocols, including AODV, DSDV, DYMO, and GPSR.

The easiest way to add routing to an ad hoc network is to use the ManetRouter NED type for nodes. ManetRouter contains a submodule named routing which has parametric type, so it can be configured to be an AODV router, a DYMO router, or a router for any other supported routing protocol. For example, ManetRouter nodes in the network can be configured to use AODV by adding the following line to the ini file:

**.routingApp.typename = "Aodv" # as an application
**.routing.typename = "Gpsr" # as a routing protocol module

There are also NED types called AodvRouter, DymoRouter, DsdvRouter, and GpsrRouter. These types are all based on ManetRouter and have the routing protocol submodule type set appropriately.

AODV

AODV (Ad hoc On-Demand Distance Vector Routing) is a routing protocol for mobile ad hoc networks and other wireless ad hoc networks. It provides quick adaptation to dynamic link conditions, low processing and memory overhead, low network utilization, and determines unicast routes to destinations within the ad hoc network.

The Aodv module type implements AODV, based on RFC 3561.

AodvRouter is a ManetRouter with the routing module type set to Aodv.

DSDV

DSDV (Destination-Sequenced Distance-Vector Routing) is a table-driven routing scheme for ad hoc mobile networks based on the Bellman-Ford algorithm.

The Dsdv module type implements DSDV. It is currently a partial implementation.

DsdvRouter is a ManetRouter with the routing module type set to Dsdv.

DYMO

The DYMO (Dynamic MANET On-demand) routing protocol is the successor to the AODV routing protocol. DYMO can work as both a proactive and a reactive routing protocol, i.e. routes can be discovered just when they are needed.

The Dymo module type implements DYMO, based on the IETF draft “draft-ietf-manet-dymo-24”.

DymoRouter is a ManetRouter with the routing module type set to Dymo.

GPSR

GPSR (Greedy Perimeter Stateless Routing) is a routing protocol for mobile wireless networks that uses the geographic positions of nodes to make packet forwarding decisions.

The Gpsr module type implements GPSR, based on the paper “GPSR: Greedy Perimeter Stateless Routing for Wireless Networks” by Brad Karp and H. T. Kung, 2000. The implementation supports both GG and RNG planarization algorithms.

GpsrRouter is a ManetRouter with the routing module type set to Gpsr.