[libfabric-users] Obtaining an External Address

Smith, Jonathan D jonathan.d.smith at intel.com
Mon Oct 10 12:56:01 PDT 2016


When doing this, I invariably retrieve an address at localhost/127.0.0.1. I would like an external address which some other node could reach my process at, so I can discover and propagate addresses in my system. My "gut feeling" is that I need another process to resolve this (like how we need address reflection with IP addresses sometimes).

So far, I'm seeing that I could potentially identify what address I received a message from if I use fi_cq_sreadfrom to fill an fi_addr_t structure.

Would that work? CQ gives fi_addr_t, which I use to look up the raw address in my AV, then send it back?

Or is there something easier for getting my ext. address?

-----Original Message-----
From: Hefty, Sean 
Sent: Monday, October 10, 2016 12:45 PM
To: Smith, Jonathan D <jonathan.d.smith at intel.com>; libfabric-users at lists.openfabrics.org
Subject: RE: Obtaining an External Address

> I would like to open an unconnected endpoint and determine the address 
> it can be reached at. The caveat is that I need to do this in a way 
> that is agnostic of the provider selected.

After allocating the endpoint, enable it, then retrieve the address:

fi_endpoint(..., *ep, ...);
fi_enable(ep);
fi_getname(ep, &addr, *addrlen);

A usable source address is not guaranteed to be available until after the EP has been enabled.



More information about the Libfabric-users mailing list