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

Reply via email to