David.Edmondson at sun.com wrote:
> Erik and I briefly discussed whether or not we might implement DR
> inside Nemo and hide (much of) what is happening from IP (and other DL
> clients).
>
> With the current implementation an application may fail as a result of
> DR (for example, in the time period between the removal of the failed
> interface and the insertion of the new interface, the IP address
> associated with the interface is not available). Some of the failure
> cases might be avoided if the work is done below IP.
Let me add even more discussion to this.
In a Xen setup with a only virtual Ethernet driver visible in the guest
OS, we actually get some more flexibility than we have in a single OS
instance on the hardware today; the NIC dying might result in a 'link
down' event in the guest OS, and domain zero can repair/replace the
broken NIC.
This is in a sense analogous to an external networking failure; if the
Ethernet switch or router dies there isn't a need to ifconfig things
down in order to repair things.
My understanding of the Clearview vanity naming support for DR is that
it still requires all the users of the device to go away (i.e., ifconfig
unplumb) before the device can be DRed.
If we want to have a uniform model of network devices/wires/paths coming
and going, it might make sense to be able to hide NIC DR operations
inside GLDv3 somewhere, so that at most IP sees a 'link down' and 'link
up' from a DR operation. (Of course, there is also the case of a NIC
permanently being removed, which would require IP to be unplumbed at
some point in time, but not necessarily before the NIC is ripped out.)
Erik