49-node Indoor Mesh
Their are a plethora of mesh routing protocols being used worldwide today (See: Wireless Mesh Networking). Some of these have become popular due to organizations taking the trouble to convert the specification into usable code that can be run on a wireless router while other protocols remain purely academic and have only been run on computer simulations. There is also a new 802.11s working group which is seeking to create Mesh Standards. Protocols for which code is available will be run on the massive mesh, indoor testbed, which consists of a grid of 49 nodes (See 1st thumbnail image). Some code will also be ported to run on the massive mesh - for example HSLS is being ported to FreeBSD and Linux. Performance metrics will be gathered such as average throughput and latency together with their variance.
Mobility on wireless mesh networks is also a feature that we aim to test. One method of doing this is by using roaming nodes built onto robots like the Mesh Wanderer Lego robot shown in the 2nd picture. Each protocol is generally suited to different scenarios, some scale better to very large meshes due to less broadcast traffic others are better at handling mobility. Once all these metrics are gathered, better protocol choices can be made when a mesh network is built.
The 3rd and 4th thumbnail images on the right show two scenarios represented by the OLSR Dot Draw visualization tool. The 3rd image shows mesh configuration with no omni antennas attached, while the 4th image shows mesh configuration with an omni attached to node 44.
Other visualization tools are also being worked on.
The lab has been designed so that it is possible to network boot every node off a single server. This allows us to easily change the software running on the clients right down to the operating system level. The server runs on FreeBSD and the first operating system that was used on the clients was also FreeBSD. The OLSR mesh routing protocol was also implemented on the FreeBSD enabled clients to test the concept. Since many of the routing protocols have been implemented in Linux rather than other OS's, the next step was to attempt Linux netbooting.
Getting protocols compiled for the massive mesh
HSLS was compiled for NetBSD but a partial port to Linux was done by Proveen Gurung at Telecordia. We recived the code and after some tweaks manged to get it running under linux. The key changes are to edit the /etc/services file before running the deamon.
The file should have the following entries added:
- etx 9090/udp
- hsls 9191/udp
- hslsapi 9292/tcp
- nodeinfo 500/tcp
Once this is done you can run the run_hsls script provided - just change the name of the wireless interface in the script.
How to flash a node in the massive mesh
Create a tar image of the linux file system Change to the root folder of the linux filesystem
tar cvf .../hardcore-linux.tar .
Make an image of the linux file system on the flash card
dd if=/dev/sdb of=hardcore-linux.img
Create a partition on the compact flash card
Make the file system
mkfs.ext3 /dev/sdb1 tune2fs -c o /dec/sdb1
Untar file system to flash drive
tar xvf hardcore-linux.tar -C /media/disk
Start qemu with info to boot
qemu -append root=/dev/hda1 -kernel/tmp/bzImage /dev/sdb
Run lilo on flash system once qemu is launched
Now test the flash card