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

Reply via email to