[Commotion-dev] OLSRd plugin for service discovery

Dan Staples danstaples at opentechinstitute.org
Sun Feb 10 14:32:00 UTC 2013


Yes, I am aware of the BMF and mDNS plugins. The P2PD plugin which I
based my plugin on was actually based on the mDNS plugin, but with some
optimization and added configuration options. Mine then further refines
it with custom TTL values for local service advertisements. It does this
by stripping resource record entries out of mDNS packets sent to the
mesh and re-encapsulating them in new packets with TTL values
corresponding to the TTL values set by the local services.

So in that way, it's kind of a lineage from the mDNS plugin...  And BMF
just seemed to fit my purposes less than the P2PD plugin.

On 02/10/2013 09:02 AM, L. Aaron Kaplan wrote:
>
> On Feb 10, 2013, at 6:37 AM, Dan Staples <danstaples at opentechinstitute.org> wrote:
>
>> 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.
> Dan,
>
> Question & feedback:
>
> Were you aware of the previous mDNS plugins for OLSR? (BMF and ninux's mDNS plugin)?
> I did not compare your version with theirs yet, but I would be curious what the differences were and why you chose to re-implement it. Was it the reduced TTL ? Was there some problem with the existing mDNS plugins?
> Just curious - I don't use mDNS over here at all so I really don't know.
>
> a.
>
>
>

-- 
Dan Staples

Open Technology Institute
https://commotionwireless.net



More information about the Commotion-dev mailing list