Subject: changing MAC addresses out from underneath an interface.
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: tech-net
Date: 11/06/1999 09:23:12
> Hot-swapping just this way will not work quite good because you've changed
> the mac address. You have to flush states in switches and arp tables in
> clients. Otherwise you'll have to wait for timeout, which can be
> quite long.

gratutious arp can do wonders for fixing this.  (i.e., sending
unsolicited arps when coming up on the network).

It's worth noting that I think this problem can arise today if you
swap cards while a laptop's suspended (particularly if it's in one of
the "suspend-to-disk" modes).

This brings to mind a related issue with ether_ifattach.

You can't call ether_ifattach until you know what the mac address of
the interface card is.  With the awi driver, as far as I can tell from
the documentation, it *can't* get the ethernet address out of the card
until it completes its self tests.  the self tests take up to 2
seconds to complete, and it's a little unfriendly to hang the machine
for 2 seconds just because a card got popped in, when (given our
pcmcia power management model) it's going to have to get powered down
and then powered back up (and have another 2s wait) when we actually
bring up the interface later on.

Currently, the driver is deferring calling ether_ifattach until the
MAC address is available, but this causes problems for multicast
address setup, which breaks IPv6.  I'd like to be able to change
things so the ether_ifattach happens when it's supposed to (at attach
time), with a NULL/placeholder ethernet address, and then another call
later on is used to set the ethernet layer's idea of the device's mac
address once the device is ready to tell us what it is..

					- Bill