[Commotion-dev] OLSRd plugin for service discovery

Dan Staples danstaples at opentechinstitute.org
Sun Feb 10 05:37:01 UTC 2013


I just finished an initial version of a plugin for OLSRd that propagates
mDNS/DNS-SD advertisements based on a service's TTL value. So basically,
local services are advertised over the mesh according to custom TTL
values declared in their Avahi service files. For example, a service
that has a TTL value of 3 will be advertised a maximum of 3 hops away.
This is useful for limiting application visibility on a mesh, when
service quality would degrade based on the number of hops. For instance,
an application with streaming voice or video might only want to be
advertised to nodes within two hops.

TTL values are specified as a txt-record in a service file, like so:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Example service on %h</name>
<service>
<type>_http._tcp</type>
<domain-name>mesh.local</domain-name>
<port>80</port>
<txt-record>application=Example service</txt-record>
<txt-record>*ttl=3*</txt-record>
<txt-record>ipaddr=10.1.1.1</txt-record>
</service>
</service-group>

The plugin is based on a previous OLSR plugin, P2PD, which used fixed
TTL values for all multicast traffic.

I'll send this out to the OLSR dev community soon, but I wanted to see
if anyone had any initial feedback first. It's kind of hard to test
without a large enough mesh to try it out on, but please try it out if
you're inclined: https://github.com/opentechinstitute/olsrd-dnssd.
Currently, OLSRd has to be restarted when local services are added or
removed, but that's something I'd like to fix in the next release.

Dan

-- 
Dan Staples

Open Technology Institute
https://commotionwireless.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.chambana.net/pipermail/commotion-dev/attachments/20130210/edb99cfd/attachment.html>


More information about the Commotion-dev mailing list