Summary: We can use multicast DNS (mDNS) to automatically register and
locate remote Ach channels.
After some minor frustration last week trying to determine channel
names and origins in our still-developing software for the dual-LWA4
"Crichton", I realized that this problem already had an existing,
standard solution: multicast DNS (mDNS), implemented in Bonjour
(Apple, formerly know as Rendezvous, also for MSWindows) and Avahi
(Linux). This would let you:
1. Browse a listing of all channels accessible on the local network
2. Automatically determine the hostname and port for a channel
origin
Specifically, we can create a separate DNS SRV record for each Ach
channel. Then, doing a DNS lookup of the SRV record for
"channelname._ach._tcp.local" would give the hostname and port to
access that channel.
Relevant RFCs:
http://tools.ietf.org/html/rfc6762
http://tools.ietf.org/html/rfc6763
Avahi already implements the mDNS server side, and I put together a
simple client-side resolver last week, mostly using the standard
libresolv interface.
A question: when should a channel actually be registered in mDNS?
Reasonable choices seem to be:
* When the channel is created
* When a publisher is sending messages
* When a per-channel achd server is started
And a side note: many communication systems seems to implement their
own naming service. ONC RPC has the port mapper, CORBA has its own
naming service, ROS does this in the rosmaster. Far better, IMHO,
that we use a standard naming service.
Cheers,
--
Neil Dantam
http://www.cc.gatech.edu/~ndantam3