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:
everything seem to run without problems
runs but further tests are required; some problems might remain
is currently ported as upstream is out of date
upstream source code not available (anymore) or too old so that a reimplementation is easier than porting
under review; we are investigating whether the implementation can be ported or is in a working state
upstream 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 | under review |
| AODV | 3561 | AODV-UU | 0.9.5 | Ported by Cofta | x | x | poor 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 | ASL has already been ported |
|
| AODV | 3561 | des-aodv | Implented with DES-SERT by Degtjarew | x | ![]() |
|||
| AODV | 3561 | HUT AODV for IPv6 | 0.20 | IPv6 variant | ? | ? | dead link to software |
|
| AODV | 3561 | Kernel AODV NIST | 2.2.2 | x | probably to old |
|||
| AODV | 3561 | MAODV | 0.7.2 | Multicast AODV based on AODV-UU | x | x | probably to old |
|
| AODV | 3561 | UoB-JAdhoc | 0.22 | Implementation in Java | x | probably to many dependencies |
||
| ARA | DES-ARA | 0.1 | Implented with DES-SERT by Schmidt | x | ![]() |
|||
| ARAN | ARAN | 0.3.2 | Based on Ad-hoc Support Library (ASL) | x | x | ASL has already been ported |
||
| AWDS | AWDS | 8.12 | Based on libgea, available as Debian package | x | did not discover neighbors |
|||
| Babel | Draft | Babel | 0.93 | Readme, Manual | Debianized by Cofta | x | ![]() |
|
| B.A.T.M.A.N. | batmand | 0.3 | How-To, Readme | Debian package, Layer 3 version | x | does 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 | ![]() |
||
| B.A.T.M.A.N. | des-batman | Implented with DES-SERT by Degtjarew | x | ![]() |
||||
| BGP | 4271 | bgpd | Implemented for Quagga, Version 4+ | x | ![]() |
|||
| DSDV | Simple DSDV in Click | ??? | Implemented with Click | x | ![]() |
|||
| DSDV | UIUC A-DSDV | 20041023 | Adaptive DSDV | x | ![]() |
|||
| DSDV | UIUC DSDV | 20041023 | x | ![]() |
||||
| DSR | 4728 | Click DSR Router | ??? | Implemented with Click | x | ![]() |
||
| DSR | 4728 | des-dsr | Implented with DES-SERT by Gutmann, multiple unicast and multicast variants | x | ![]() |
|||
| DSR | 4728 | DSR-UU | 0.2 | Ported by Cofta | x | works 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 | too old, reimplementation is easier |
||
| Dymo | Draft | DYMO-AU | 0.1.2 | Implemented in Lua | x | ![]() |
||
| Dymo | Draft | Dymoum | 0.3 | Ported by Cofta | x | x | works; further tests required, better performance than AODV-UU it is based on |
|
| Dymo | Draft | EK-DYMO | 0.1 | ? | ? | Source not available, binary not available anymore |
||
| Dymo | Draft | NIST-DYMO | 0.5 | Ported by Cofta | x | ![]() |
||
| Gossip | DES-Gossip | 0.1 | Implented with DES-SERT by Schmidt | x | not for production use just an example |
|||
| Gossip | DES-Gossip-Adv | 0.1 | Implented with DES-SERT by Blywis and Hofmann, multiple variants | x | ![]() |
|||
| LUNAR | Draft | LUNARng | 20050721 | Technical Report | x | ![]() |
||
| Mobilemesh | Mobilemesh | 1.0 | Documentation Section, How-To | Debian package (only available in etch?!) | x | works, further tests required |
||
| OLSR | 3626 | CRC OLSR | v2 | x | ![]() |
|||
| OLSR | 3626 | des-olsr | Implented with DES-SERT by Degtjarew | x | ![]() |
|||
| OLSR | 3626 | NRL OLSR | 7.8.1 | Seems to be incompatible with UniK OLSR, based on Protolib | x | ![]() |
||
| OLSR | 3626 | UniK OLSR / olsrd | 0.5.6 | Collection of Documentation | Debian package | x | ![]() |
|
| OLSR | 3626 | INRIA OOLSR |
0.99.15 |
Implemented in C++ | x | ![]() |
||
| OLSR | Draft |
NOA-OLSR | 0.91 | No Overhead Autoconfiguration OLSR, based on INRIA OOLSR | x | ![]() |
||
| OLSR | 3626 | pyOLSR | 0.0.2 | Implemented in Python | x | works, further tests required |
||
| OLSR | 3626 | Qolyester | 20090302 | QoS OLSR implemented in C++ | x | ![]() |
||
| OLSR | 3626 | SMOLSR-MOLSR | 0.3 | (Simple) Multicast OLSR, based on INRIA OOLSR | x | ![]() |
||
| OSPF | ospfd | Implemented for Quagga, Version 2&3 | x | ![]() |
||||
| PBM | SPBM | 0.2 | Paper, Paper | Ported by Blywis | x | works, further tests required, crashes on rmmod |
||
| RIP | ripd | Implemented for Quagga, Version 1&2 and RIPng | x | ![]() |
||||
| ZRP | Draft 04 | ZRP | 0.2.2 | x | x | too old, reimplementation is easier |
1 batman-adv is also available as proof-of-concept layer 2.5 implementation in user space
- 4347 reads
- Printer-friendly version