piconet logo mobile router

Undergraduate Honours Thesis Project of Alex Song 33696773

Thesis Topic: Piconet II - A Wireless Ad Hoc Network

for Mobile Handheld Devices

Thesis Supervisor: Dr Mark Schulz

multihop picture

Thesis Description: To implement an ad hoc multihop routing protocol for IPv4 on Linux 2.4 which will allow a dynamic network of mobile and handheld devices to be self-organizing and self-configuring.

802.11 LinuxCompaqiPAQ


10 November 2001

The source code is available. I released it for people who want to experiment with it. It is in pre-release state, but it should be stable at least. The software license is currently GPL, it might change in the future.

27 October 2001

The thesis report is now complete and the demonstration at the innovation expo is also ready. The demonstration info page is here.

20 September 2001

Haven't updated this site for quite a while because I have been working very hard on my software. My DSR implementation for Linux 2.4 is complete as far as basic functionality is concerned. Route discovery, route maintenance, packet forwarding, packet fragmentation and NAT gateway functionality is working. Some simple optimisations have been implemented as well. The kernel module is finally stable after debugging various crashes and memory leaks. Most of these crashes were triggered while going through massive ping floods.

Found a good network visualisation program called Cheops which I am going to use for graphically tracerouting my mobile nodes. Cheops is not currently maintained from the looks of things and some features in it were broken. Cheops being GPL, I fixed the bugs I found and added a auto remap feature which automatically retraces the routes to every node. I have the a source tarball and even RPMS with my updates and I will put them up somewhere once I find myself some webspace.

26 August 2001

Seminar slides are available. It was presented on the 31st of July.

31 July 2001

Managed to crash my PC as well, but I managed to fix it. Apparently skb_copy does not seem to copy "everything", it only copies "most" things so a pointer was left as NULL after the copy. A friend suggested User Mode Linux for kernel testing, but I decided to be hardcore and trust my coding skills. As I have had more exposure to kernel networking code I am more confident with it now. It has been stable for two and a half weeks now :-)

The kernel module now can forward packets with static routes and it is compatible with ICMP, all transport layer protocols and NAT. It has been tested with ping, traceroute and ssh. Route discovery, route maintenance and packet fragmentation coming soon.

18 July 2001

Wrote a preliminary kernel module for netfilter. Managed to crash the kernel a couple of times in the process. Luckily I was testing the kernel module on the iPAQs with 5 second reboots. Eventually managed to "uncrash" everything, now the kernel module can selectively dump packets for debugging and can do basic packet mangling. Packet forwarding and routing is coming soon.

Updated links page. Found some good documents on the Linux kernel at kernelnewbies.org.

14 July 2001

Brand New Logo, I think it looks better than the old one.

8 July 2001

Installed a pci to pcmcia adapter on the pc. The Linux 2.4.3 kernel's pcmcia drivers does not support isa or pci adapters. To make isa or pci adapter work in kernel 2.4 disable pcmcia in your kernel and use the pcmcia driver from the pcmcia-cs package. After a lot of compiles and script modifications the wireless cards now work on the pc.

28 June 2001

Installed and configured familiar-0.4/QPE on the iPAQs. Tested the Lucent wireless network cards and ping works :-)

12 June 2001

Progress Report completed. Contains protocol research and project plan.

Jan to June 2001

Conducted research on ad hoc routing protocols and various aspects of the thesis.

Plan: (updated 26 July 2001)

To implement most the dynamic source routing protocol (DSR) draft <draft-ietf-manet-dsr-05.txt> on an Linux/x86 and Linux/iPAQ/arm platform. There are some typos in the draft and the draft does not support packet fragmentation. I plan to extend the draft and support packet fragmentation.

To write a kernel module for Linux kernel 2.4, using the netfilter architecture, to forward DSR packets. Decided to perform route discovery and maintenance in the kernel as well. So the kernel module be doing all the routing and packet mangling.


Thesis Report: pdf

Seminar: pdf

Progress Report: pdf one-big-html multiple-page-html


H3600 series Compaq iPAQ (16MB flash, 32MB RAM, curtesy of Compaq Australia).

x86 PC and 11Mbps Lucent Orinoco 802.11b Wireless Network Cards.


Linux 2.4.3 kernel from www.kernel.org.

Linux 2.4.3 kernel for iPAQ, cross compiler and various tools from www.handhelds.org.

Was using the 0.20 iPAQ/Linux distribution from www.handhelds.org. Now using the Familiar Linux Distribution 0.4 from www.handhelds.org. I am not using X, I use QPE for iPAQ which is lean and mean.

About me:

Name: Alex Song

Email: piconet@poboxes.com

Degree: Bachelor of Electrical Engineering (specialising in Computer Systems)

Currently in 4th and final year of the degree at the School of Information Technology and Electrical Engineering, at The University of Queensland, Australia. Expected to graduate in December 2001 with first class honours.

I work at 47-403 in the CSE Thesis Labs.

Thesis Lab Phone Number: +61 7 33653723

Thesis Lab Web Cam: The Eye of Celab

HOME Last modified 10 November 2001 by Alex Song