[Olsr-dev] arproaming plugin

Amadeus (spam-protected)
Mon Dec 27 14:07:43 CET 2010

Hello everyone,

I'm pretty new to your mailing list since I've never been
working on olsrd as a developer. The reason for subscribing now
is an actual plugin called 'arproaming' I was coding over the last
couple days (some basic testing included).

>> What:
Imagine the following situation on olsr driven networks:

 [NODE: Alice]  <------------------------>  [NODE: Bob]

      [CLIENT: Dude]

 * Alice:,, OLSRD (
 * Bob:,, OLSRD (
 * Dude:, gateway:

The client Dude is connected with Alice using his wireless
connection. An IP address has been assigned (static or DHCP).
(Dude is not running any routing software.)

If Dude is moving on to Bob he will probably use his AP to
connect (since the network is sharing the same bssid).

Now this is the part where 'arproaming' comes into play. It will detect
that Dude is now using Bob's AP and as a result Dude's IP address
will be announced through HNA table to all nodes running olsrd.

Using the specified timeout value from olsrd config file the plugin
periodically asks if the client is still there (arp requests).
If no longer responding its IP address will be removed from HNA.

Note: Using on all nodes as a gateway will ensure outgoing
client connections are still feasible.

>> Why:
You can jump from AP to AP using the same IP address without service
interruption (depending how fast HNA spreads out).

>> Features:
Flap detection avoids fast changing HNA entries between node
neighbors (not implemented yet). Garbage collection wipes out possible
identical entries for client MAC addresses on different IPs.

>> Possible problems:
Every connected client creates a HNA entry which could be an issue
when having tons of clients. Also every client creates an arp
request on associated AP due to timeout checks.

>> Source:
The project is currently hosted on SourceForge:

Check out the code:

>> Use:
LoadPlugin "lib/arproaming/olsrd_arproaming.so.0.1"
 PlParam "Interface" "wlan0"
 PlParam "Timeout" "60"

>> Difference to olsrd-cl:
I'm sure everyone is aware of the already working roaming implemention
called 'olsrd-c'l by ralisi. Now 'arproaming' is not patching olsrd
itself nor is it relying on dnsmasq lease files or web servers used to
share them.

>> TODO:
* Flap detection
* Don't perform arp requests at all if timeout is greater than timeout
of kernel's arp table (just use netlink then to determine disconnected
clients, avoid network traffic as a result)
* (Get it to work with Windows?)

Thanks for reading. I would love to see this in the official olsr tree
after some code reviews.

Best regards,

More information about the Olsr-dev mailing list