On 5 January 2016 at 09:41, Jim Hague <jim.ha...@acm.org> wrote: > I've read the network parameters docs, and I don't think it helps in my > case. > ZMQ pgm_socket.cpp calls pgm_getaddrinfo() to parse the transport, and then > uses the interface number when setting up the call to pgm_bind3(). Inside > pgm_bind3(), pgm_if_indextoaddr() is used to get the address used in the > call > to bind(). The socket is therefore always bound to the first IP address > associated with the interface, and packets sent out have that address as > their > origin. And I need the packet origin address to be the second IP address. > Am I > missing something? >
I think I remember this is due to IPv6 addressing requiring a bind on the local link instead of the global link for addressing. I'm thus not sure how one would distinguish between IPv6 and AIX interface logic. What happens with IPv6 on AIX? With AIX Linux compatibility how do the APIs getifaddrs() and if_indextoaddr() work? See the code comment: /* interfaces indexes refer to the link layer, we want to find the internet layer address. * the big problem is that multiple IPv6 addresses can be bound to one link - called scopes. * we can just pick the first scope and let IP routing handle the rest. */ https://github.com/steve-o/openpgm/blob/master/openpgm/pgm/indextoaddr.c#L34 So outside of the routing table how can one resolve the interface correctly here? -- Steve-o
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev