[Olsr-dev] Idea for a new plugin

Roar Bjørgum Rotvik (spam-protected)
Mon Mar 9 10:52:30 CET 2009

ZioPRoTo (Saverio Proto) wrote:
> It is cool because 4 days ago I started developing a new OLSR plugin
> for mDNS support over the MESH.
> The key idea of the plugin is to intercept mDNS traffic on the HNA
> networks, get this traffic and flood it to the OLSR nodes into new
> OLSR message types. The receiving nodes decapsulate the traffic and
> inject it into their HNAs.


> Think about this plugin as the BMF plugin BUT just for mDNS traffic
> (udp port 5353) with the BIG difference that I do not open tuntap
> interfaces and other sockets but I send the little udp packets into
> OLSR messages. This is a BIG difference because not every node of the
> mesh must run the plugin to have its functionalities. In fact nodes
> that do not have the plugin installed will forward the unknown message
> types as default olsr behaviour.


I just wanted to inform you that I made a similar solution some years ago. I used the 
tmdns daemon that already implement mDNS, and modified it to send/receive UDP-packets (DNS 
packets) to/from the OLSRD daemon where I had an IPC plugin that encapsulated the 
DNS-packet and flooded it in the mesh. When the same IPC plugin received these DNS-packets 
from other OLSRD nodes, it decapsulated them and send it to the tmdns daemon.

That way I could reuse existing mDNS-implementation but use the OLSR flooding mechanism to 
flood mDNS packets.
This solution let every node announce itself on startup with an IP address (after IP 
address autoconfig) and a node name. It could also announce any services the node 
supported, like file sharing, ftp-server, web-server and so on.

Any node in the net looking for an web-server could then just do a DNS lookup for "http" 
service and get responses for every available web-server in the mesh network.

Unfortunately this was implemented internally in my company and only the IP address 
autoconfig part is Open Source as of today. Anyway I don't know if the tmdns project is 
still alive.

But it worked and we used it on up to 10 nodes in a lab environment, also over multihop (3 
hops was tested I think).

It seems like your plugin only forwards the mDNS-packets, or does it implement any other 
part of the mDNS like caching (both positive and negative answers), service records, 
announce of node IP address?
Or do you rely on other software to announce services and the node IP adress and name?

Roar Bjørgum Rotvik

More information about the Olsr-dev mailing list