1. Mesh network implementation
between
Nokia Internet Tablet and OLPC/XO devices
Arina Rudakova
(Open Source Linux Lab,
Saint-Petersburg Electrotechnical University «LETI»)
5th FRUCT seminar
Saint-Petersburg
30th of April 2009
2. Introduction
Goal
Heterogeneous Mesh Network
between:
1) Nokia N8x0
2) OLPC XO
Steps
1. Nokia Internet Tablet
1) mesh driver upgrade
2) kernel upgrade
2. OLPC XO
1) mesh driver upgrade
2) kernel upgrade
3. Other needed drivers patching
2
3. Mesh Network
Mesh Networking – network
technology providing multi-
hop data forwarding and
self-configuration.
It makes higher levels think
that the network is fully
connected.
The matter of our concern is
IEEE 802.11s network – a
wireless Mesh Network
based on Wi-Fi technology.
IEEE 802.11s standard has a
status of draft.
3
4. Hardware details
Nokia N800 Networking:
STLC4560 chip
802.11b/g (2.45GHz)
Nokia N810 Networking: OLPC XO Networking:
STLC4560 chip Marvell Libertas chipset
802.11b/g (2.45GHz) 802.11b/g (2.4GHz)
4
5. Prerequisites
Prism54 is a family of Wi-Fi PHY chips which may be wired to the host
computer through PCI/USB/SPI interface.
STLC4560 is a member of this family with SPI interface. Nokia's N800
and N810 carry this chip on-board.
5
6. Prerequisites
p54 driver that existed in Linux could work with chips connected through
PCI and USB. It is well modularized, with all common code in
p54common.c and bus-specific code in p54pci.c and p54usb.c
respectively. This driver supported all modes of Wi-Fi operation.
stlc45xx driver by Nokia can only work with STLC4550 and STLC4560.
This driver only supported Managed Mode of operation, i.e. a client of an
access point.
6
7. Initial Plan
1. Proof of concept.
Linux kernel from 2.6.26 supports mesh through mac80211 module.
Step: connection of two different adapters using 2.6.27 kernel:
1) rt73usb-based adapter
2) b43-based adapter
2. Patch STLC45xx driver for Nokia N8x0 for 2.6.27 kernel.
STLC45xx is mac80211-based driver.
Step: patching the driver for 2.6.27 kernel to enable Mesh on Nokia N8x0.
3. Libertas_tf set-up on XO for 2.6.27 kernel.
Libertas driver is a FullMAC driver so it doesn't work with mac80211.
Libertas_tf is a mac80211-based driver.
Step: the driver set-up for 2.6.27 kernel to enable Mesh on OLPC XO.
4. Connect N810 and XO via mesh.
Step: the devices' Mesh interfaces enabling.
Mesh Network configures automatically!
7
14. Nokia N8x0 test-plan
1. Common
1) Split-join cycles (by the loss of radio visibility): verify that
high level connection gets restored after split-join cycle.
2) Firmware buffer accounting
on beacon updates: verify that
firmware buffer doesn't get filled by abandoned frames;
on high load: verify that
flow control properly stops incoming packet queues once tx
space gets exhausted & restarts them when space appears.
2. IBSS
1) Establishing IBSS: verify that
beaconing starts in absence of other participants.
2) Joining IBSS (beacon update): verify that
TSF beacon gets updated and STAs are in sync.
3) Taking beacon ownership
on joining IBSS with one station: verify that
beaconing occurs at even interval, perhaps by different nodes;
on disappearing of beacon owner: verify that
on shutdown of initial IBSS starter beaconing doesn't stop.
3. Mesh
1) Establishing peer link.
2) Finding mesh path. 14
15. Testing scenario
1. Establish IP ping between two N8x0 and two OLPC XO
located close to each other.
2. Surround a building with mesh points
located at the corners of the surrounding square.
3. Make sure that two furthermost nodes can only see the closest
intermediate nodes and intermediate nodes can see each other.
4. Capture ping packets walking by the line of people with devices.
5. Display hardware addresses in captured packets, showing that
packets are retransmitted by the intermediate nodes.
15
16. References to sources
Initial stlc45xx IBSS patch:
https://garage.maemo.org/pipermail
/stlc45xx-devel/2008-November/000084.html
Thread with 2nd stlc45xx IBSS patches:
https://garage.maemo.org/pipermail
/stlc45xx-devel/2009-January/thread.html
P54spi patches are present in wireless-testing git tree
after v2.6.30-rc1 label:
http://git.kernel.org/?p=linux/kernel
/git/linville/wireless-testing.git;a=summary
OSLL site:
http://osll.spb.ru/
16