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