49-node Indoor Mesh: Difference between revisions

From WirelessAfrica
No edit summary
No edit summary
Line 33: Line 33:
Once this is done you can run the run_hsls script provided - just change the name of the wireless interface in the script.
Once this is done you can run the run_hsls script provided - just change the name of the wireless interface in the script.


==Some signal strength results from our massive mesh ... 16 Feb 2006==
==How to flash a node in the massive mesh==


I discovered that it is possible to measure the actual power received by a wifi card using the FreeBSD command
'''Create a tar image of the linux file system'''
  ifconfig ath0 list sta
Change to the root folder of the linux filesystem
  tar cvf .../hardcore-linux.tar .


[[Image:Wifi predict.jpg]]
'''Make an image of the linux file system on the flash card'''
dd if=/dev/sdb of=hardcore-linux.img


[[Image:Sig strength 12dBm.jpg]]
'''Create a partition on the compact flash card'''
cfdisk /dev/sdb


[[Image:Sig strength 16dBm.jpg]]
'''Make the file system'''
mkfs.ext3 /dev/sdb1
tune2fs -c o /dec/sdb1


[[Image:Sig strength 20dBm.jpg]]
'''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'''
lilo
 
'''Now test the flash card'''
qemu /dev/sdb

Revision as of 15:15, 12 February 2008

Introduction

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.

Operating Systems

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

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

cfdisk /dev/sdb

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

lilo

Now test the flash card

qemu /dev/sdb