Peter Memishian wrote: > Jan and Jerry, > > I've just noticed a rather nasty issue with upgrade for Clearview IPMP > that I'd like your input on. Specifically, if a machine running Nevada > IPMP is upgraded to Clearview IPMP, upon first reboot, all IP interfaces > using IPMP will fail to configure. Subsequent boots will work fine. > > The problem is due to a conflict between the new way interfaces using IPMP > are plumbed and the SMF dependency graph for the device/local service. > Specifically, each IP interface using IPMP is now also associated with > IPMP group IP interface (e.g., ipmp0). While we recommend that these IPMP > group IP interfaces be explicitly created before placing an interface into > a group, for backward compatibility, ifconfig(1M) will also create the > IPMP group IP interfaces on-demand. The IPMP group IP interface is > created by opening the special /dev/ipmpstub DLPI pseudo-datalink, which > advertises itself as a special SUNW_DL_IPMP DLPI type to the IP and ARP > kernel modules. > > This generally works fine, but in the case of first reboot, since > device/local indirectly depends on network/physical, devfsadm has not yet > run and thus /dev/ipmpstub does not yet exist. Thus, the attempt to > place the interfaces into an IPMP group fails. Later in boot, devfsadm > runs, creates /dev/ipmpstub, and subsequent boots work fine. > > I can't see a simple *and* elegant way to fix this. > > 1. Simple but hideous: have libdlpi`dlpi_open() explicitly fall > back to trying to open the node in /devices, like we used to > when netbooting pre-UV. The hack would be even worse than > before since the ipmpstub /devices node doesn't use the clone > driver because the backing driver (dlpistub) actually backs > both /dev/vni and /dev/ipmpstub. > > 2. Elegant but complex (and maybe impossible): create the /dev > symlinks earlier in boot. In theory, it seems like it's > possible to create the symlinks as soon as the root filesystem > is mounted r/w. Right now, we wait until /usr is mounted > (since devfsadm and many of its dependencies are on /usr). > However, for reasons I don't yet understand, even mounting root > r/w seems to have dependencies on network/physical, so this may > be hopeless.
That dependency is thanks to iscsi and diskless. > Are there other approaches I've missed? Is there some clean way to pre-create things with the old kernel, pre-reboot? If it's just ipmpstub that's needed, it could simply be delivered in SUNWcsd as well as patched, then it's simply always present. -jan
