This tutorial assumes that you have an Atheros-based wireless interface and the madiwifi drivers properly installed and configured. Roofnet sources are currently available as part of the Click modular router. Click sources are maintained in a git repository. Git is a distributed source control management system.
First, download and install git (ready-to-install packages are available for the most common Linux distributions). Then use the following command to fetch the Click sources from the repository into a local directory called DIR inside your home directory (~):
git clone git://read.cs.ucla.edu/git/click click
To fetch the Click packages:
git clone git://read.cs.ucla.edu/git/click-packages click-packages
Create a link to the roofnet package in the click/elements:
ln -s ~/click-packages/roofnet/ ~/click/elements/
Enter the Click directory and run the configure script:
cd click ./configure --enable-wifi --enable-roofnet --disable-linuxmodule --enable-userlevel
Finally run make:
make
The configuration scripts available in the click repository have not been updated for a while, as a result it cannot handle properly the new wifi0 hardware address format. This is important because the lowest 24-bits of the node's IP address are based on the wifi0 hardware address.
An updated gen_config_roofnet.sh and sr2.bulk.click files can be downloaded here or using the following command:
wget http://www.wing-project.org/downloads/snapshots/scripts.tar.gz
Unpack the archive using the following command:
tar xvfz scripts.tar.gz
Here follows the major changes w.r.t. the upstream version:
wifi0 hardware address format.srcr1 virtual interface, thus only the second version (srcr2) of the routing protocol is supported.srcr.click file in the local directory. /tmp/is_gateway exists the node is configured as gateway. Run the Roofnet configuration script:
cd scripts sh gen_config_roofnet.sh sr2.click | ~/click/userlevel/click -
At this point running /sbin/ifconfig should show a new tap interfaces called srcr2, which is configured as 6.X.X.X and uses multi-hop routing.