= Using AODV with the testbed = Currently, we support AODV-UU protocol 0.9.1 on kernel version 2.6.12. Using the application and prototype definition format, we can currently specify * the interface to run on * enable logging * enable route table logging == For Experimenters == * Step 1: In order to use AODV routing protocol in your experiment, make sure you use the baseline.ndz image on your nodes that has aodv installed. * Step 2: Use the following experiment script. This will launch both the traffic generator and AODV on the nodes. AODV currently logs locally to the node every N secs which is configurable. However, in the future, this will be OMLized to log into the database instead. * '''AODV router prototype and app defs are installed on all consoles. So users should be able to use it from any console''' == AODV/OLSR on ORBIT == 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. The demo below shows how to run and AODV on a minimal Ad-hoc network of three nodes. === Initial installation === 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. {{{ imageNodes adhoc_0.1.ndz }}} === Network creation - using Mackill === 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. To add a MAC address to mackill, {{{ echo - > /proc/net/mackill }}} To remove a node from this list, {{{ echo + > /proc/net/mackill }}} === Running AODV === AODV can be run as a module on a node using, {{{ aodvd -l -r <# of seconds> }}} 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. === Running OLSR === Easiest way of running OLSR is by executing: {{{ olsrd }}} on the nodes. === Network tests === To use AODV to run experiments on ORBIT: 1. Image nodes as per the topology required. 2. Emulate the topology using mackill on each node to block packets from non-neighbouring nodes. 3. Run AODV on each node. 4. Use ping or iperf for experiments on the Ad-hoc network and to perform any measurements required. === Ongoing work === 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. === Resources === * http://core.it.uu.se/core/index.php/AODV-UU - AODV Uppasala University implementation * 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) * Experiment scripts for AODV are available [wiki:HowTo/UsingAODV/Scripts here]