Routing Protocols

Although hundreds of routing protocols have been specified for ad-hoc networks only few are available as implementations. The DES-Testbed wants to provide a large number of routing daemons for everyday experiments.

The following routing protocols are either currently available for DES-Mesh, will be made available after porting them to current kernel versions, or are under review if a port is viable at all. This table only lists implementations available for Linux; we do not consider implementations for simulation environments or other OS.

For documentation about an implementation you are refered to the official website (column "Implementation"). Further documentation is linked if no official documentation is available or if it provides additional information. The RFC column links to the newest RFC or draft of the protocol. The implementations do not have to be compliant to these RFC!!!

The following states are used for classification:

  • flag greeneverything seem to run without problems 
  • flag yellowruns but further tests are required; some problems might remain
  • blue yellowis currently ported as upstream is out of date
  • flag redupstream source code not available (anymore) or too old so that a reimplementation is easier than porting
  • reviewunder review; we are investigating whether the implementation can be ported or is in a working state
  • packageupstream software is currently being packaged as Debian package
Protocol RFC Implementation Version Documentation Notes

Kernel

Module

Userspace

Daemon

State
AODV 3561 AODV in Click ??? Master Thesis Implemented with Click x x reviewunder review
AODV 3561 AODV-UU 0.9.5   Ported by Cofta x x flag greenpoor performance with low throughput due to poor next hop selection
AODV 3561 AODV-UIUC 0.5   Based on Ad-hoc Support Library (ASL) x x reviewASL has already been ported
AODV 3561 des-aodv     Implented with DES-SERT by Degtjarew   x flag green
AODV 3561 HUT AODV for IPv6 0.20   IPv6 variant ? ? flag reddead link to software
AODV 3561 Kernel AODV NIST 2.2.2     x   reviewprobably to old
AODV 3561 MAODV 0.7.2   Multicast AODV based on AODV-UU x x reviewprobably to old
AODV 3561 UoB-JAdhoc 0.22   Implementation in Java   x reviewprobably to many dependencies
ARA   DES-ARA 0.1   Implented with DES-SERT by Schmidt   x flag green
ARAN   ARAN 0.3.2   Based on Ad-hoc Support Library (ASL) x x reviewASL has already been ported
AWDS   AWDS 8.12   Based on libgea, available as Debian package   x flag yellowdid not discover neighbors
Babel Draft Babel 0.93 Readme, Manual Debianized by Cofta   x flag green
B.A.T.M.A.N.   batmand 0.3 How-To, Readme Debian package, Layer 3 version   x flag greendoes not find routes to all mesh routers
B.A.T.M.A.N.   batman-adv 0.1 Readme Debian package, Layer 2.5 version1 x   flag green
B.A.T.M.A.N.   des-batman     Implented with DES-SERT by Degtjarew   x flag green
BGP 4271 bgpd     Implemented for Quagga, Version 4+   x flag green
DSDV   Simple DSDV in Click ???   Implemented with Click x   review
DSDV   UIUC A-DSDV 20041023   Adaptive DSDV   x review
DSDV   UIUC DSDV 20041023       x review
DSR 4728 Click DSR Router ???   Implemented with Click   x review
DSR 4728 des-dsr     Implented with DES-SERT by Gutmann, multiple unicast and multicast variants   x flag green
DSR 4728 DSR-UU 0.2   Ported by Cofta x   flag yellowworks somehow but implementations does not find routes to all mesh router; poor choice of routes results in abysmal throughput; possible race condition hinders configuration of interface
DSR 4728 picoNet 20021111   only compatible with Draft 05 x   flag redtoo old, reimplementation is easier
Dymo Draft DYMO-AU 0.1.2   Implemented in Lua x   review
Dymo Draft Dymoum 0.3   Ported by Cofta x x flag yellowworks; further tests required, better performance than AODV-UU it is based on
Dymo Draft EK-DYMO 0.1     ? ? flag redSource not available, binary not available anymore
Dymo Draft NIST-DYMO 0.5   Ported by Cofta x   review
Gossip   DES-Gossip 0.1   Implented with DES-SERT by Schmidt   x flag greennot for production use just an example
Gossip   DES-Gossip-Adv 0.1   Implented with DES-SERT by Blywis and Hofmann, multiple variants   x flag green
LUNAR  Draft LUNARng 20050721 Technical Report   x   review
Mobilemesh   Mobilemesh 1.0 Documentation Section, How-To Debian package (only available in etch?!)   x flag yellowworks, further tests required
OLSR 3626 CRC OLSR v2       x review
OLSR 3626 des-olsr     Implented with DES-SERT by Degtjarew   x flag green
OLSR 3626 NRL OLSR 7.8.1   Seems to be incompatible with UniK OLSR, based on Protolib   x flag green
OLSR 3626 UniK OLSR / olsrd 0.5.6 Collection of Documentation Debian package   x flag green
OLSR 3626 INRIA OOLSR

0.99.15

  Implemented in C++   x review
OLSR Draft
NOA-OLSR 0.91
No Overhead Autoconfiguration OLSR, based on INRIA OOLSR   x review
OLSR 3626 pyOLSR 0.0.2   Implemented in Python   x flag yellowworks, further tests required
OLSR 3626 Qolyester 20090302   QoS OLSR implemented in C++   x review
OLSR 3626 SMOLSR-MOLSR 0.3   (Simple) Multicast OLSR, based on INRIA OOLSR   x review
OSPF

1247

2740

ospfd     Implemented for Quagga, Version 2&3   x flag green
PBM   SPBM 0.2 Paper, Paper Ported by Blywis x   flag yellowworks, further tests required, crashes on rmmod
RIP

1058

2453

2080

ripd     Implemented for Quagga, Version 1&2 and RIPng    x flag green
ZRP Draft 04 ZRP 0.2.2     x x flag redtoo old, reimplementation is easier

 1 batman-adv is also available as proof-of-concept layer 2.5 implementation in user space