| 13 |   | For more details, please follow this [wiki:HowTo/UsingAODV/AODVonORBIT link] | 
          
          
            |   | 13 |  == AODV/OLSR on ORBIT == | 
          
          
            |   | 14 |  | 
          
          
            |   | 15 | The aim of this effort is to run the AODV routing protocol for an Ad-hoc network of arbitrary topology on ORBIT. The topology of the Ad-hoc network can be provided by the experimenter or one can use from a set of available topologies. | 
          
          
            |   | 16 |  | 
          
          
            |   | 17 | The demo below shows how to run and AODV on a minimal Ad-hoc network of three nodes. | 
          
          
            |   | 18 |  | 
          
          
            |   | 19 |  === Initial installation === | 
          
          
            |   | 20 | The nodes to be used in the network must be imaged with __adhoc_0.1.ndz__. This image has AODV-UU-0.9.1 installed. It also contains the mackill module. This module is used to emulate an Ad-hoc network by supressing packets from desired nodes. This image also contains the modified madwifi-0.9.2 driver with the BSSID problem solved. | 
          
          
            |   | 21 |  | 
          
          
            |   | 22 | {{{ | 
          
          
            |   | 23 | imageNodes <node list> adhoc_0.1.ndz | 
          
          
            |   | 24 | }}} | 
          
          
            |   | 25 |  | 
          
          
            |   | 26 |  === Network creation - using Mackill === | 
          
          
            |   | 27 | Mackill is a MAC filter wich is used to emulate Ad-hoc network topologies on ORBIT. The mackill module creates a mackill file in /proc/net on each node. The nodes which should not be heard are specified in this file. This is done by echoing the MAC addresses of such nodes into this file. | 
          
          
            |   | 28 | To add a MAC address to mackill, | 
          
          
            |   | 29 |  | 
          
          
            |   | 30 | {{{ | 
          
          
            |   | 31 | echo - <MAC address> > /proc/net/mackill | 
          
          
            |   | 32 | }}} | 
          
          
            |   | 33 |  | 
          
          
            |   | 34 | To remove a node from this list, | 
          
          
            |   | 35 |  | 
          
          
            |   | 36 | {{{ | 
          
          
            |   | 37 | echo + <MAC address> > /proc/net/mackill | 
          
          
            |   | 38 | }}} | 
          
          
            |   | 39 |  | 
          
          
            |   | 40 |  === Running AODV === | 
          
          
            |   | 41 | AODV can be run as a module on a node using, | 
          
          
            |   | 42 |  | 
          
          
            |   | 43 | {{{ | 
          
          
            |   | 44 | aodvd -l -r <# of seconds> | 
          
          
            |   | 45 | }}}  | 
          
          
            |   | 46 |  | 
          
          
            |   | 47 | The ''-l'' option enables logging of all events to /var/net/aodvd.log and ''-r'' enables logging of the routing tables to /var/net/aodvd.rtlog. | 
          
          
            |   | 48 |  | 
          
          
            |   | 49 |  === Running OLSR === | 
          
          
            |   | 50 | Easiest way of running OLSR is by executing:  | 
          
          
            |   | 51 | {{{ | 
          
          
            |   | 52 | olsrd  | 
          
          
            |   | 53 | }}}  | 
          
          
            |   | 54 |  | 
          
          
            |   | 55 | on the nodes.  | 
          
          
            |   | 56 |  === Network tests === | 
          
          
            |   | 57 | To use AODV to run experiments on ORBIT: | 
          
          
            |   | 58 | 1. Image nodes as per the topology required. | 
          
          
            |   | 59 | 2. Emulate the topology using mackill on each node to block packets from non-neighbouring nodes. | 
          
          
            |   | 60 | 3. Run AODV on each node. | 
          
          
            |   | 61 | 4. Use ping or iperf for experiments on the Ad-hoc network and to perform any measurements required. | 
          
          
            |   | 62 |  | 
          
          
            |   | 63 |  === Ongoing work === | 
          
          
            |   | 64 | The ongoing effort to integrate AODV involves automation of mackill so that the experimenter can provide the network topology in a file and create it on ORBIT without having to manually modify /proc/net/mackill on each node. | 
          
          
            |   | 65 |  | 
          
          
            |   | 66 |  === Resources === | 
          
          
            |   | 67 | * http://core.it.uu.se/core/index.php/AODV-UU - AODV Uppasala University implementation | 
          
          
            |   | 68 |  | 
          
          
            |   | 69 | * http://www.docs.uu.se/docs/research/projects/scanet/aodv/aodvuu.shtml - Mackill (scroll to the middle section - this is from the old AODV-UU site) |