Multicast for OLSR mesh networks: Obamp release by Saverio Proto

Saverio Proto (ZioPRoTo) has the released the olsr OBAMP plugin, that was a freifunk project for the Google Summer Of Code. The OBAMP plugin allows multicast traffic to be forwarded in a OLSR mesh network. OBAMP is an overlay protocol. It first makes a mesh network with overlay links (udp tunnels) between the OBAMP nodes, and then it creates a distribution spanning tree over these mesh links.

This version of the OBAMP protocol, implemented as an OLSR plugin, is a simplified one for Wireless Community Networks, where we assume the nodes to be in fixed positions on the roof of the houses. Protocol features regarding mobility have not been implemented (yet).

To explain how the plugin works consider the scenario in the following figure:

There are 7 routers, where only 5 have the OBAMP plugin working. Router 1 2 and 6 also have an attached HNA network with some hosts.

OBAMP nodes generate OLSR OBAMP_ALIVE messages, these OLSR messages are forwarded in the whole network (also by the nodes that do not understand OBAMP thanks to the OLSR design). Because of the flooding mechanism every OBAMP node has a complete list of all the other OBAMP nodes in the mesh network. Every OBAMP node listens on the UDP port 6226 for OBAMP signalling.

When a OBAMP nodes starts it has 5 timers to periodically start operations:

OBAMP_alive_timer: every obamp node sends alive messages to advertise its presence to the other obamp nodes in the network. In the alive message every nodes states its IP address, and if it has already a tree link or not (we will see later this information is important for the outer tree create procedure).
The OBAMP network must have a member called “Core”, that starts the TREE_CREATE procedure. The core is the node with the smallest IP address. When the list of known OBAMP nodes changes, the Core Election procedure is eventually called.

mesh_create_timer: every obamp node every OBAMP_MESH_CREATE_IVAL evaluates how far the other obamp nodes are and selects a subset of nodes to keep mesh links with. Note that to reduce signalling and to increase scalability, the overylay mesh links are setup only with a subset of the nearest OBAMP nodes. To select the overlay neighbor the OBAMP nodes first calculates the ETX distance of the nearest OBAMP nodes, and the creates overlay mesh links to every node that are far in the range (minETX,minETX+1)

tree_create_timer: the core of the network every OBAMP_TREE_CREATE_IVAL sends a message called TREE_CREATE on its mesh links. The creation of the spanning tree is very similar to the spanning tree protocol. When a TREE_CREATE message is received a OBAMP node enables a tree link with its parent and forwards the TREE_CREATE on the other mesh links. TREE_CREATE messages are generated only by the core and are numbered, so TREE_CREATE received over loops can be discarded.

outer_tree_create_timer: The mesh_create algorithm may create cluster of OBAMP nodes within the network that are disconnected between each other. This happens if there are groups OBAMP nodes that are far from each other. If this happens only the cluster where the Core is present will receive the TREE_CREATE and will receive traffic from the distribution tree. To overcome this problem if in a cluster there are not TREE_CREATE every OBAMP_TREE_CREATE_IVAL the node with the smallest IP in the cluster will make a long mesh link with the nearest node that has at least a tree link. All the necessary information to perform this procedure is diffused in the OBAMP_ALIVE messages.

purge_nodes_timer: checks expire time of various variables, and deletes nodes or tree links in a soft state fashion

The OBAMP nodes will capture the multicast udp traffic from the non-OLSR interfaces, and will forward this traffic encapsulated in the UDP tunnels of the distribution tree. The other OBAMP nodes will forward the traffic in the tree and will decapsulate it on their non-OLSR interfaces. To avoid duplicated packets the data is carried into OBAMP_DATA messages, that are identified by a sequence number, and the OBAMP source node where the traffic has been encapsulated.

In the figure black links represent real radio links, and red links represent overlay mesh links (udp tunnels). Router 1 2 3 and will create a OBAMP cluster, with two mesh links. Router 6 and 7 will create a mesh link between them. Because the mesh_create algorithm does not create a mesh link between the two clusters, the router 6 (supposing it has the smallest IP address in the mesh) will create an outer tree link with Router 3.

So please download the code and use it . If you find bugs please report them to Saverio and in the Sourceforge tracker here:

Thanks for this great result of the summer. Special thanks also to Nino from who was the mentor for this projet.



Wo kann ich Freifunk-Hardware kaufen?

Immer wieder wird von Newcomern die Frage gestellt, wo kann ich die richtige Hardware fuer Freifunk kaufen? Ich habe nun eine Wikiseite angelegt auf der wir Laeden sammeln koennen, die Freifunk-Hardware verkaufen:

Towards Wireless Open Hardware Routers and WLAN Servers

At the CeBIT I had the chance to talk to some fantastic folks of direct open embedded systems, a new Latvian company that is producing WLAN devices based on the GNU/Linux distributions like OpenWRT, OpenEmbedded and FlashSYS Linux.

In the video they present their devices and some show cases as well as FlashSYS, their own web based firmware for small router computers.

FlashSYS environment is a cross-operating system clent-server environment that allows developers to use existing web development skills (HTML, JavaScript, Ajax, Flash, SQLite, and Lua) to build and deploy Rich Internet Applications (RIA) for an embedded system with a very small footprint. (

direct open embedded systems is able to produce WLAN devices that can act as small web servers with currently up to 64 GB storage space.

Most of the free and open source companies presented their products in hall 5, which was packed with crowds of people. You can get an idea when you hear the background noise in the video. The interest in free and open source technologies is amazing and ever increasing.


Some more specifications of the router devices:

  • Bittorent, FTP, HTTP download clients included. Now you don’t have to leave your computer on to complete your downloads, they can be easily stored on a Compact Flash card (up to 64GB) or on external USB Flash / hard disk

  • Network OS with AJAX user interface

  • Integrated organizer with Calendar, To-do and Notes

  • RSS feed reader

  • LCD screen for displaying news, notes and current activities

  • P2P streaming media server for video and audio

  • Very rich network functionality (QoS, tunnels, routing, firewall, NAT, etc.)


  • PCI bus for wireless interfaces, video, Ethernet and other miniPCI devices

  • I2C bus for serial memory, A/D and D/A converters, temperature/voltage monitors

  • RS232/RS485 for keyboard, LCD and other devices for industrial applications

  • USB host with two ports for various serial devices from flash disks to web cameras

  • GPIO for relays, LEDs, etc.


  • RAM: up to 512 MB

  • Flash: 8 MB on-board, extendable up to 64 GB using CompactFlash

Green and energy saving

  • Fully ROHS compliant

  • Processor power consumption (typical): 0.72 W at 266 MHz


  • Hardware watchdog timer

  • Industrial temperature grade

  • ESD protected Ethernet and power ports

  • Reliable tantalum capacitors on board except for only one electrolytic cap

Software ported to

  • OpenEmbedded Linux

  • OpenWRT Linux

  • FlashSYS Linux with revolutionary AJAX interface

  • eCOS Real Time operating system

Created for

  • Wireless and wired router solutions

  • Machine2Machine (M2M) applications

  • Industrial applications

  • Home wireless AP and media servers

  • Automation devices


  • Chipset Atheros AR5414

  • IEEE Standards 802.11a/b/g (2.4/5 GHz)

  • Security Hardware 64 and 128 bit WEP; Hardware TKIP and AES-CCM encryption; WPA authentication

  • Bandwidth up to 108 Mbps

  • Modulation OFDM, TDD

Technical details

  • PowerPC processor: 266 or 333 MHz clock frequency

  • 1 or 2 ESD protected Ethernet ports

  • miniPCI sockets for 802.11 wireless cards and other expansion

  • 32-512 MB SDRAM, 64 bit wide for high memory bandwidth

  • 8 MB FLASH for system BIOS and programs

  • True IDE CompactFlash (CF) header for custom OS and applications

  • 7 to 36 V DC supply through DC jack or passive power over LAN connector

  • 2 RS232 serials ports (1 DB9 male socket), RS485 interface header

  • JTAG interface header

  • Hardware and software watchdog timers

  • LM75 thermal monitor

  • GPIO header

  • USB 2.0 host

  • I2C bus header (can be used for front panel interface)

  • 2 LEDs and 1 pushbutton switch, freely programmable

  • Board size: 115 mm x 97 mm

  • CE certified

Chaosradio mit Felix Fietkau über die Freifunk-Firmware-Basis OpenWRT

Chaosradio Express hat eine Sendung über OpenWRT mit Felix Fietkau gemacht. Auch die Freifunk-Firmware beruht auf der Linuxdistribution OpenWRT.

Aufnahme vom: 17.02.2008
Teilnehmer: Tim Pritlove (Moderation), Felix Fietkau

OpenWRT ist eine Linux-Distribution speziell für kleine WLAN-Router. Felix Fietkau ist einer der Entwickler des Projektes und berichtet im Gespräch mit Tim Pritlove über die Zeile, Schwerpunkte und Besonderheiten der Distribution. Felix berichtet, was OpenWRT genau ausmacht, warum man nicht einfach einen Standard-Linux-Kernel auf kleinen Geräten ohne weiteres laufen lassen kann, wie zusätzliche Software installiert wird, wie das Projekt mit Änderungen bei Linux Schritt hält, die Bemühungen des Projektes, freie Treiber für WLAN-Subsysteme bereitzustellen, welche Aufgaben ein WLAN-Treiber konkret erfüllen muss, wie heutige Treiber-Features langsam in den Kernel wandern, welche Probleme Hersteller haben, eine laufende Firmware zum Laufen zu bekommen und welche Chancen OpenWRT hat, künftig zur Standard-Software auf neuen Geräten zu werden, wie Kommunikation in einem WLAN funktioniert, wie man OpenWRT installiert, welche aktuellen und geplanten Oberflächen zur Konfiguration existieren, wie die Kommunikation innerhalb des Projektes funktioniert, welche Firmen mit OpenWRT kooperieren und warum ein XO Laptop (OLPC) mit OpenWRT schneller läuft.


Freifunk-Firmware auf Basis der Linuxdistribution OpenWRT ermöglicht Aufbau freier Netze

Was ist eine Firmware? Wozu brauche ich sie? Diese und weitere Fragen werden im Freifunk-Wiki behandelt. Ich habe versucht dies für Neueinsteiger etwas deutlicher zu machen und hierzu einige Hintergründe erläutert. Verbesserungen und Korrektionen bitte als Kommentar oder direkt im Wiki verbessern 🙂

Freifunk steht für den Aufbau freier lokaler Netze. Dies ermöglicht
die Freifunk-Firmware. Jeder Nutzer im Freifunk-Netz stellt seinen
WLAN-Router für den Datentransfer der anderen Teilnehmer zur Verfügung.
Die Router verbinden sich untereinander. Ein lokales Netz entsteht.
Dies funktioniert unabhängig vom Internet.

Standardmäßig verfügen WLAN-Router jedoch nur selten über die
Funktionalität sich untereinander zu verbinden. Die Software der Geräte
ist nicht dafür ausgelegt, dass sie sich automatisch mit anderen
verbinden und ein vermaschtes Netzwerk bilden. Sie sind oft lediglich
in der Lage Drahtlosgeräte wie z.B. Laptops per Funk an ein ebenfalls
angeschlossenes oder manchmal auch integriertes DSL-Gerät in das
Internet "zu routen".

In vielen WLAN-Routern ist die Hardware jedoch zu mehr in der
Lage. Damit ein WLAN-Router versteht, was er tun soll, braucht man
Software, ein System, was die Hardware steuert. Genauso wie jeder
Computer braucht ein WLAN-Router ein Betriebssystem. Kauft man einen
Router im Laden werden diese bereits mit einem System (oft proprietäres
unfreies System) ausgeliefert. Damit der Router in die Lage versetzt
wird zusätzliche Funktionalitäten auszuüben, braucht er ein
höherwertiges Betriebssystem. Aufgrund jahrelanger Vorarbeit der GNU
und Linuxcommunity, konnten Freifunk-Aktive auf Basis von OpenWRT ein
Betriebssystem für Router entwickeln, dass Routern neue
Funktionalitäten "beibringt" – die Freifunk-Firmware.

Mit Hilfe der auf WLAN-Routern installierten Freifunk Firmware können sich Nutzer in freien Funknetzen untereinander verbinden und freie Meshnetzwerke aufbauen. Unabhängig vom Internet können sie innerhalb dieser Netze Daten, wie zum Beispiel Text, Musik und Filme über das interne Freifunk-Netz übertragen oder über von Teilnehmern eingerichtete Dienste im Netz Chatten, Telefonieren und gemeinsam Onlinegames spielen. Viele Teilnehmer stellen ebenfalls ihren Internetzugang zur Verfügung und ermöglichen anderen mit ihnen verbundenen Teilnehmern den Zugang zum weltweiten Netz. Über Plugins kann die Freifunk-Firmware zudem erweitert werden, so wie man es auch vom Firefox-Browser kennt.

Mehr im Freifunk-Wiki unter: und

Chatten via Messengern funktioniert schlecht. Welche Ports sind offen? Webcam einsetzbar?

Die richtige Kategorie für mein Posting ist mir nicht klar. Keine scheint zu passen.

ich bin neu in berlin und kann zum mac 02.CA.FF.EE.BA.BE am görlitzer park, kreuzberg, connecten. ich benutze dabei den switch 0.4.9, den ich so konfiguriert habe, wie im wiki beschrieben.
das wiki habe ich so verstanden, dass ich in berlin meinem usb-wlan-stick eine feste ip geben muss.
die allgemeinen beschreibungen von freifunknet verstehe ich allerdings gerade andersrum: man darf sich selbst keine feste ip geben.

mit der benutzung von instant messengern hapert's. trillian 3.1, der die üblichen messengerprotokolle beherrscht (aim, icq, msn, yahoo, jaber), geht fürs chatten relativ gut, allerdings reißen die icq- und die msn-verbindung häufiger ab und nur die yahoo-verbindung ist ziemlich stabil. windows live messenger 8.1, nachfolger von msn, und yahoo messenger 8.1 können sich selten anmelden bzw. verlieren oft die verbindung.
da mir mit trillian video- und sprachverbindungen bisher nicht gelangen, dagegen via windows live/msn beides in ansätzen klappte, müssten vielleicht besondere ports für mich offen sein bzw. müsste ich ports einstellen – so man das kann -, die im offen sind.

ich stelle mir vor, dass mein surfen über so ist, wie über einen router. beim router kann ich port-forwarding einstellen, im aber nicht. switch, reiter 'output', zeigt folgendes an, was ich nicht interpretieren kann:

Parsing file: "C:\DOKUME~1\x\LOKALE~1\Temp\GNUBF.tmp"
Httpinfo olsrd plugin 0.1 by Andreas Tønnesen


DeleteIpForwardEntry() = 00000057, Falscher Parameter.
DeleteIpForwardEntry() = 00000057,Falscher Parameter.

ERROR – sendto(v4): Ein nicht blockierender Socketvorgang konnte nicht sofort ausgeführt werden.

DeleteIpForwardEntry() = 00000057, Falscher Parameter.
DeleteIpForwardEntry() = 00000057, Falscher Parameter.


wer kann mir tipps geben oder wohin kann ich mich wenden? für die mailingliste habe ich mich vor ein paar tagen eingetragen, aber habe bisher nichts erhalten, weiß auch nicht, wie ich selbst was 'posten' könnte.
vielleicht gibts hier im blog antworten oder eine pn an mich.


Was unterscheidet den Linksys WAP54G eigentlich von dem Linksys WRT54G?

Einige Ideen dazu hat Volker vor ein paar Tagen auf der
Berliner freifunk-Mailingliste geliefert.

Vorteile des WAP gegenüber dem WRT

– Der WAP hat nur ca. den halben Stromverbrauch im Vergleich
zum WRT. Ein Fakt, der für alle interessant sein könnte, die das Gerät an einer
Solaranlage betreiben wollen.

– Der WAP tut auch noch bei relativ geringer
Versorgungsspannung seinen Dienst. Das macht es relativ einfach, ihn mit einer
kleinen POE-Bastelei auch über relativ lange Strecken mit dem Original-Netzteil
ausreichend mit Spannung zu versorgen.

– Die Platine des WAP ist sehr klein, sie braucht etwa die
halbe Breite des Gehäuses. BastlerInnen könnten also theoretisch 2 solcher
Platinen in ein Gehäuse verbauen bzw. ein "Allwettergehäuse" müßte
wesentlich kleiner sein als für einen WRT. Auch zusätzliche Einbauten (z. B.
Akkus) wären relativ unkompliziert im Originalgehäuse realisierbar.

Nachteil des WAP gegenüber dem WRT

– Das Gerät hat keine WAN-Schnittstelle. Für
Freifunk-NutzerInnen, die nicht selbst einen Internet-Zugang bereitstellen
wollen/können, stellt das jedoch kein Problem dar.


– Was den Neupreis betrifft unterscheiden sich WAP und WRT

Wer gerne über freifunk in Berlin auf dem Laufenden bleiben möchte, kann
sich in die Mailingliste eintragen unter: