On Fri, Apr 27, 2018 at 01:36:13PM +0100, Luca Boccassi wrote: > On Fri, 2018-04-27 at 14:29 +0200, Lionel Flandrin wrote: > > On Thu, Apr 26, 2018 at 10:58:33AM +0100, Luca Boccassi wrote: > > > 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. > > > > I've started doing that and I'm noticing that currently the UDP > > addressing code uses inet_addr to parse the IPv4 address instead of > > getaddrinfo like the TCP and PGM code. Is there a reason to avoid the > > additional functionality of getaddrinfo here or can I safely switch > > to > > it in the UDP code? Do we want to avoid resolving hostnames here for > > some reason? > > You can switch, I imagine it was done that way as it was quicker. > Remember to add tests.
Got it, thanks. I've already refactored the existing tests to add IPv6: https://github.com/simias/libzmq/commit/16834fd4d2dee3460e3c46f44241e73f2a3633f8 I'm thinking about adding multicast tests as well but I wonder if there are some caveats if I try to send and receive multicast traffic in the test suite? Am I allowed to subscribe to a random multicast address or is it forbidden to genererate external traffic in the tests? -- Lionel Flandrin
signature.asc
Description: PGP signature
_______________________________________________ zeromq-dev mailing list [email protected] https://lists.zeromq.org/mailman/listinfo/zeromq-dev
