Testing and code examination have revealed a number of additional issues with the Nevada RPCIB/SDP/RDS code which need to be fixed for it to work properly with IPMP (and vanity naming, for that matter). The changes simplify the code a great deal by introducing a new lifr_type field which IP fills in for each lifreq returned via SIOCGLIFCONF. We can do this without affecting binary compatibility since the Clearview IPMP work freed up the project-private lifr_movetoindex field, which has been recycled for lifr_type.
All of this means that RPCIB/SDP/RDS can simply check if lifr_type is IFT_IB, rather than all the machinations they used to do. Along the way, I noticed that I forgot to update ill_type on the IPMP IP interface as underlying IP interfaces come and go, which is essential to the solution. (It'd also be nice if loopback used IFT_LOOP or somesuch so we could remove the lo0 checks, but that's for another time.) Oh, and there are also a bunch of other bugs in the Nevada code that I fixed along the way, discussed in the Evalaution for 6784852. There are also some small changes to fix a problem where the IPv6 solicited-node multicast address for the IPMP IP interface didn't work. http://zhadum.east/ws/clearview/clearview-ipmpdev/misc-bugfixes/ -- meem
