|
Description
|
During Clearview IPMP development, I noticed that RPCIB, SDP, and RDS all
have significant issues that prevent them from working with Clearview
Vanity Naming (integrated into snv_83). Specifically:
* RDS and RPCIB (which appear to share reams of similar-looking code)
both issue a SIOCGIFCONF and try to filter out any non-RDMA-capable
interfaces. They do this by taking the IP interface name and
attempting to open it as DLPI link in /dev. They then issue a
DL_INFO_REQ, get the type information back, and check for DL_IB.
For more, see rpcib_is_ib_interface(), rds_is_ib_interface(), and
several related functions.
Obviously, this won't work if DLPI link has been renamed
since the vanity names are in /dev/net. Moreover, this will be
rendered even more broken by the upcoming Clearview IPMP work
because an IPMP IP interface has no direct corresponding DLPI link.
* The RDS code further does additional checks in ibcm_arp_link.c.
In this case, specific bcmp() calls are made to test if the IP
interface begins with the letters "ibd", which is even more broken.
* The SDP code has its own set of interface checks in sdp_link.c
(this seems to be cut-and-pasted from RDS). Again, bcmp() calls
are made to test if the IP interface begins with the letters "ibd".
All of this needs to be fixed both for Clearview Vanity Naming to work --
and for Clearview IPMP to be supported with RDS, SDP and RPCIB.
|