Aaron Kaplan <aaron@lo-res.org> Henning Rogge <hrogge@fgan.de> Oct 2008 Presentation at OLSR Interop 08, Ottawa, CA
Olsr.Org // FunkFeuer // Freifunk Aaron Kaplan - - PowerPoint PPT Presentation
Olsr.Org // FunkFeuer // Freifunk Aaron Kaplan - - PowerPoint PPT Presentation
Olsr.Org // FunkFeuer // Freifunk Aaron Kaplan <aaron@lo-res.org> Henning Rogge <hrogge@fgan.de> Oct 2008 Presentation at OLSR Interop 08, Ottawa, CA Disclaimer can only speak about Freifunk out of experience and I know the
Disclaimer
- can only speak about Freifunk out of
experience and I know the folks there, I am not Freifunk (if anybody is)
- can speak about FunkFeuer && olsr.org
Overview
- What and who is FunkFeuer || Freifunk ?
- The Olsr.org’s olsrd routing daemon
- Our way to OLSRv2
- Plans for the future
Who?
current olsr.org core team:
Hannes Gredler (juniper)
- L. Aaron Kaplan (cert.at)
Bernd Petrovitsch (firmix.at)
Henning Rogge (fgan.de) Sven-Ola Tücke (freifunk)
+ lots of contributors
folks @ Funkfeuer || Freifunk
- FunkFeuer Vienna:
around 300 members. 30 core members
- Freifunk: ? members,
around 800 nodes in Berlin
- who? everybody who
wants to participate
folks @ Funkfeuer || Freifunk
- crazy hackers
- creative ideas are
valued
- next project: rogue
fibre in the canalization ;-)
- regular Beerings
- many CS students, IT
folks, professionals but also doctors, amateur radio pros, etc.
folks @ Funkfeuer || Freifunk
- crazy hackers
- creative ideas are
valued
- next project: rogue
fibre in the canalization ;-)
- regular Beerings
- many CS students, IT
folks, professionals but also doctors, amateur radio pros, etc.
What?
FunkFeuer || Freifunk
FunkFeuer
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
- Vienna net: ~ 30 km diameter
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
- Vienna net: ~ 30 km diameter
- distributed ownership
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
- Vienna net: ~ 30 km diameter
- distributed ownership
- COTS hardware
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
- Vienna net: ~ 30 km diameter
- distributed ownership
- COTS hardware
- ~250 roofs
FunkFeuer
- city wide OLSR(.org) mesh network covering all
- f Vienna (2 mil. inhabitants), Graz and rural
areas of Austria
- community wifi project.
- Vienna net: ~ 30 km diameter
- distributed ownership
- COTS hardware
- ~250 roofs
- “because we can. Because the nodes are the
network”
FunkFeuer tech facts
FunkFeuer tech facts
- one single uplink (1 GBit)
FunkFeuer tech facts
- one single uplink (1 GBit)
- right across the street to VIX
FunkFeuer tech facts
- one single uplink (1 GBit)
- right across the street to VIX
- small colo center
FunkFeuer tech facts
- one single uplink (1 GBit)
- right across the street to VIX
- small colo center
- mixture of 5GHz bridges and 2.4GHz mesh
- nodes. Mostly broadcom chips. Some
atheros (FONs)
FunkFeuer tech facts
- one single uplink (1 GBit)
- right across the street to VIX
- small colo center
- mixture of 5GHz bridges and 2.4GHz mesh
- nodes. Mostly broadcom chips. Some
atheros (FONs)
- public IP ranges
FunkFeuer tech facts
- one single uplink (1 GBit)
- right across the street to VIX
- small colo center
- mixture of 5GHz bridges and 2.4GHz mesh
- nodes. Mostly broadcom chips. Some
atheros (FONs)
- public IP ranges
- semi-planned / semi random structure
Typical FunkFeuer roof
- on the roof (LOS!)
- 3 linksys WRT 54GL: omni
and/or directional antennas
- 1 or 2 5Ghz bridges
- 1 switch
- LAN cable into apartment
Freifunk
- Germany’s FunkFeuer
- same ideas, started at the same time
- Berlin, Leipzig, Rostock, Weimar, ...
- strong connection to CCC, openmoko,
- penwrt
- totally uncoordinated wifi network (Berlin)
- many “window” Linksyses
Leipzig Freifunk net
similar networks with
- lsr.org
- meraka institute (.za): IPv6 only (John Hayes)
- athens wireless metropolitan network
- uses BGP + partly olsr.org
- > 2400 nodes
- Harvard citysense net
AWMN
(http://wind.awmn.net/?page=gmap)
History
History
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
- olsr.org first working and portable solution we
- found. Open source!
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
- olsr.org first working and portable solution we
- found. Open source!
- parallel development: Berlin, Vienna
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
- olsr.org first working and portable solution we
- found. Open source!
- parallel development: Berlin, Vienna
- Freifunk Firmware (Sven-Ola)
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
- olsr.org first working and portable solution we
- found. Open source!
- parallel development: Berlin, Vienna
- Freifunk Firmware (Sven-Ola)
- ~ 2006: olsrd becomes a CPU bottleneck with
network growth -> BATMAN project in parallel with olsr-ng effort. Revolution vs. Evolution.
History
- initial experiments at SCII.nl (wireless
Amsterdam, mobile mesh) 2002/2003
- olsr.org first working and portable solution we
- found. Open source!
- parallel development: Berlin, Vienna
- Freifunk Firmware (Sven-Ola)
- ~ 2006: olsrd becomes a CPU bottleneck with
network growth -> BATMAN project in parallel with olsr-ng effort. Revolution vs. Evolution.
History of olsr.org
- Andreas Tønnesen’s diploma thesis
- portable and runs on Linux -> we took it and
improved it. andreto said “OK”
- ETX extension
- Fisheye
- plugin mechanism
- dyn_gw, basic multicast, txtinfo, dot_draw,
secure, ...
Portability
- linux (arm, mips, mipsel, i386, xscale...), FONs
- winxp, vista
- *BSD
- Nokia N770, N810
- openmoko
- 30MHz embedded linux webcam ;-)
- winCE missing
New ports
- iPhone (less than 1% CPU load ->
battery life!)
- iPod touch
- Nokia 770
- Nokia N810
- google android!
Current state
- the networks are constantly expanding
- olsrd’s CPU optimization is finished
- olsr.org is being reworked (slow process,
lots of work and re-testing in the field)
- benefit: we have a big test bed
- always have to upgrade with compatibility
Soon
- Robin Firmware for FONs with OLSRd
Overview
- What and who is FunkFeuer || Freifunk ?
- The Olsr.org’s olsrd routing daemon
- Our way to OLSRv2
- Plans for the future
Our work on the CPU bottleneck
- at 100 nodes losing packets already
- -> what to do?
- “OLSR does not work” or...
- let’s improve it ???
- -> “olsr-ng” == “let’s improve it”
CPU bottleneck
- Dijkstra was O(n^2) instead of O(n log n)
- memory churn
- inefficient datastructures
CPU bottleneck
- after all optimizations (~ 1 year ):
runs on a 30MHz embedded web cam with ~30 % CPU load in Berlin Freifunk
- < 5% CPU load on a linksys in FunkFeuer
- < 1% CPU load on an old i386 laptop
OLSR UML Test server
Tests with 1500-2000 virtual Linux instances
Olsr.org routing daemon (1)
Olsr.org routing daemon (1)
- Machine independant core
Olsr.org routing daemon (1)
- Machine independant core
- OS specific parts
Olsr.org routing daemon (2)
Olsr.org routing daemon (2)
- AVL tree
Olsr.org routing daemon (2)
- AVL tree
- Linked lists
Olsr.org routing daemon (2)
- AVL tree
- Linked lists
- Some hashtables
(old code, still needs cleanup !)
Olsr.org routing daemon (3)
Olsr.org routing daemon (4)
Olsr.org routing daemon (4)
- Hopcount metric with hysteresis
Olsr.org routing daemon (4)
- Hopcount metric with hysteresis
- ETX based on timers/message sequence
no.
Olsr.org routing daemon (4)
- Hopcount metric with hysteresis
- ETX based on timers/message sequence
no.
- ETX based on timers and package seq.no.
Olsr.org routing daemon (5)
Olsr.org routing daemon (5)
- Implementation is important
Olsr.org routing daemon (5)
- Implementation is important
- Routing metrics
Olsr.org routing daemon (5)
- Implementation is important
- Routing metrics
- Scales up to at least hundreds of nodes
(on embedded hardware). Probably ~ 2k nodes now
Overview
- What and who is FunkFeuer || Freifunk ?
- The Olsr.org’s olsrd routing daemon
- Our way to OLSRv2
- Plans for the future
Our way to OLSRv2 (1)
Our way to OLSRv2 (1)
- Distributed Locations
Our way to OLSRv2 (1)
- Distributed Locations
- Distributed Administration
Our way to OLSRv2 (1)
- Distributed Locations
- Distributed Administration
- Different daemon versions in the same net !
Our way to OLSRv2 (1)
- Distributed Locations
- Distributed Administration
- Different daemon versions in the same net !
How do we upgrade a net like this ?
Our way to OLSRv2 (2)
Our way to OLSRv2 (2)
- Hybrid routing daemon
Our way to OLSRv2 (2)
- Hybrid routing daemon
- Update the v1 daemon with v2
capabilites
Our way to OLSRv2 (2)
- Hybrid routing daemon
- Update the v1 daemon with v2
capabilites
- Then write a clean v2 daemon
Our way to OLSRv2 (3)
- Generic PacketBB parser/generator
- SAX style parser
- Preprocessing options
- Multiple consumer for TLVs
- Similar generator
- Automatic address compression
- Postprocessing callbacks
- 3 clause BSD licence
Overview
- What and who is FunkFeuer || Freifunk ?
- The Olsr.org’s olsrd routing daemon
- Our way to OLSRv2
- Plans for the future
Plans for the future (1)
- Cheap multiradio solutions
Cheap multiradio solutions
CH1 CH2 CH3 Switch
Ethernet
Hardware: OLSR:
Plans for the future (1)
- Cheap multiradio solutions
Cheap multiradio solutions
CH1 CH2 CH3 Switch
Ethernet
Bad for MPR algorithm Hardware: OLSR:
Plans for the future (1)
- Cheap multiradio solutions
Cheap multiradio solutions
CH1 CH2 CH3 Switch
Ethernet
Hardware: OLSR:
Plans for the future (1)
- Cheap multiradio solutions
Cheap multiradio solutions
CH1 CH2 CH3 Switch
Ethernet
Hardware: OLSR:
Virtual OLSR-Node
CH2 CH1 CH3
Plans for the future (1)
- Cheap multiradio solutions
Cheap multiradio solutions
CH1 CH2 CH3 Switch
Ethernet
Hardware: OLSR:
Virtual OLSR-Node
CH2 CH1 CH3
Master/Slave configuration
Plans for the future (2)
- Better routing metric
- OSI-Layer 1 and 2 statistics
- MIC-metric
(collision aware metric)
Plans for the future (3)
- Better logging
- Metric aware MPR algorithm
- Redundancy vs. Airtime... ?
.... still much work to do !
Thanks!
Bonustrack
Bonustrack
- Clemens Hopfner @
funkfeuer.at managed to hack into the osbridge 5GXi
- Runs busybox and linux of
course
- osbridge bootload was
replaces by our own ;-)
- means: no TIVO effect
anymore
- might soon run our mesh
daemons “natively” :)