Jason Gunthorpe wrote:
On Tue, Jan 15, 2008 at 04:28:16PM -0800, Sean Hefty wrote:
I'm prototyping this now (as part of our OMPI/rdma-cm/iwarp work).
I'm not sure about what the interface should be, since there could
be multiple addresses (IPv4 and IPv6) on a port.  As a generality,
my preference is to use sockaddr where possible.

Generally sockaddr alone for this kind of purpose is frowned on in my
view since there is no portable way to get the address length, and all
downstream functions require the length..

The best interface is something like getaddrinfo that returns a new
type that has the family, address and length in the structure.

Also, your second version would require the address array to be of
type sockaddr_storage, since sockaddr can only point to, not store
addresses..

Jason

Jason, maybe the if_index is a good start like you said.

Regardless, I don't see any way to know which if_index (or even if_name) maps to which port on a multi-port rdma device. The /sys/class/.../net:* entries show both port device if_names, but there is really no way to know which one is port 1 and which one is port 2. With interface renaming, it is not necessarily true, for example, given an rnic with 2 ports setup as eth1 and eth2, that eth1 maps to port 1 of a device and eth2 maps to port 2. They could be renamed to anything. Does if_index remain constant? IE maybe I can assume that the if_index ordering is the same as the port ordering. So if a 2 port rnic, for example, has if indecies 2 and 3. Then I can assume if_index 2 is port 1 and if_index 3 is port 2. Is that a valid assumption? The other way to do this, I guess, is to look at port gids and map them back to the nic mac address. But I was hoping for something easier.

Thoughts?
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to