[zeromq-dev] IPv6 multicast RADIO/DISH

Luca Boccassi luca.boccassi at gmail.com
Thu Apr 26 11:58:33 CEST 2018


On Thu, 2018-04-26 at 10:55 +0200, Lionel Flandrin wrote:
> On Thu, Apr 26, 2018 at 09:23:13AM +0100, Luca Boccassi wrote:
> > On Thu, 2018-04-26 at 10:00 +0200, Lionel Flandrin wrote:
> > > Hello everyone,
> > > 
> > > I'm trying to build a multicast protocol on top of an IPv6-only
> > > network. I found that the draft RADIO/DISH sockets seem to do
> > > exactly
> > > what I want, however the zmq_udp man page doesn't explicitely
> > > mention
> > > supporting IPv6 multicast and I couldn't get pyzmq to bind an
> > > IPv6
> > > multicast DISH with any URL format I've tried.
> > > 
> > > Is IPv6 multicast simply currently unsupported for UDP sockets?
> > > If
> > > that's the case is it because of a technical difficulty or simply
> > > because nobody bothered to implement it?
> > > 
> > > Thank you for your help (and your great library),
> > 
> > UDP right now supports only ipv4 - it's a work in progress:
> > https://github.com/zeromq/libzmq/issues/2891
> 
> Ah, I see, thank you for confirming that. Do you think adding IPv6
> support would be a huge amount of work for somebody not familiar with
> ZMQ's codebase? Is it just about adding a few branches changing
> AF_INET to AF_INET6 or am I being ridiculously naive?
> 
> My current backup solution if I can't get ZMQ to do what I want is to
> write my own IPv6 multicast code using BSD sockets directly, if
> hacking ZMQ's code to add support is not too daunting I could
> consider
> doing that instead.

I'm not too familiar with that module - but it shouldn't be too much
work. Address support is the first thing, and then the right socket
options for V6 multicast in the engine I suppose:

https://github.com/zeromq/libzmq/blob/master/src/udp_address.cpp
https://github.com/zeromq/libzmq/blob/master/src/udp_engine.cpp

Remember to add unit tests as the very first thing.

> > PUB/SUB with PGM or NORM should do what you are looking for.
> 
> I considered EPGM briefly but the zmq_pgm man page seems to say that
> only IPv4 is supported, so I didn't even attempt it:
> 
>   A multicast address is specified by an IPv4 multicast address in
> its
>   numeric representation.
> 
> Maybe I shoudln't have been so quick to dismiss it, I'm going to give
> it a try. That being said I don't actually need the guarantees of
> PGM/NORM, in particular I don't care if a frame gets mangled or
> dropped and I don't need SNDMORE.
> 
> Thank you,

IIRC both libraries should support IPv6 just fine. The manpage is just
older - if you find it works and want to update it with some v6
examples, feel free to send a PR.

-- 
Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20180426/8a18167b/attachment.sig>


More information about the zeromq-dev mailing list