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 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 of Vienna (2 mil. inhabitants), Graz and rural areas of Austria
FunkFeuer • city wide OLSR(.org) mesh network covering all of Vienna (2 mil. inhabitants), Graz and rural areas of Austria • community wifi project.
FunkFeuer • city wide OLSR(.org) mesh network covering all of 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 of 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 of 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 of 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 of 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 r oof (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, openwrt • totally uncoordinated wi fi network (Berlin) • many “window” Linksyses
Leipzig Freifunk net
similar networks with olsr.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 fi rst working and portable solution we found. Open source!
History • initial experiments at SCII.nl (wireless Amsterdam, mobile mesh) 2002/2003 • olsr.org fi rst 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 fi rst 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 fi rst 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 fi rst 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 fi nished • olsr.org is being reworked (slow process, lots of work and re-testing in the fi eld) • bene fi t: 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 • inef fi cient 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 speci fi c 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)
Recommend
More recommend