Closed wjwwood closed 10 years ago
References:
Troubleshooting:
Improvements:
Link to PDF for the Bloom filter-based protocol: http://dtstc.ugr.es/tl/pdf/pf/PFM_jsanchez_electronic-EN.pdf
Static discovery plug-in for RTI's implementation (page 7): http://www.rti.com/docs/DDS_Over_Low_Bandwidth.pdf
More info about firewalls, DDS and discovery (especially the ports being used):
Participants can be either discovered asynchronously (subscribing to the builtin DCPSParticipant
datareader) or synchronously via DDSDomainParticipant::get_discovered_participants
. I wrote a program that exemplifies the asynchronous API in example/cpp/src/Discovery.cpp
The standard DDS API provides other builtin mechanisms for discovering datareaders and datawriters (via the DCPSSubscription
and DCPSPublication
datareaders respectively). RTI's implementation provides the Subscriber::get_datareaders
and Publisher::get_datawriters
synchronous methods, but it's a custom extension.
DDS uses multicast for discovery by default, but it can be configured to a pre-defined topology. OpenDDS has two methods for achieving this, both via the XML configuration file. The first one is by defining a <Discovery>
section in <DDSI2Service>
:
`
... `
the other method is by defining a new networking
service, first in the <Domain>
section:
`
`
and then in the <OpenSplice>
section:
`
<Discovery enabled="true">
<PortNr>53360</PortNr>
</Discovery>
`
RTI's implementation provides more options for configuring discovery programmatically, but they work with OpenDDS:
http://community.rti.com/content/forum-topic/configure-rti-connext-dds-not-use-multicast
In my tests, discovery is very responsive, participants are notified of other participants joining and leaving the domain almost immediately, but more testing should be done.
Previously we appraised
mDNSResponder
(bonjour
) andavahi
for their use as a discovery system for ROS. We found the system easily got into inconsistent states and could sometimes be very unresponsive. We have similar concerns about DDS's discovery system.Things we would like to know more about DDS's discovery system: