From: Stephen Hemminger <shemminger at linux-foundation.org> Date: Thu, 1 Mar 2007 17:30:30 -0800 > What about implementing the unused arp_announce flag on the inetdevice? > Something like the following. Totally untested... > > Looks like it either was there (and got removed) or was planned but > never implemented. This idea is fine. But: > + case NETDEV_CHANGEADDR: > + /* Send gratuitous ARP in case of address change or new device */ > + if (IN_DEV_ARP_ANNOUNCE(in_dev)) > + arp_send(ARPOP_REQUEST, ETH_P_ARP, > + in_dev->ifa_list->ifa_address, dev, > + in_dev->ifa_list->ifa_address, NULL, > + dev->dev_addr, NULL); We'll need to make sure the appropriate 'arp_anounce' address selection is employed here. One idea is to change arp_solicit() such that it can be invoked in this context, or provide a new helper function which will do the source address selection rules of 'arp_announce' and then invoke arp_send() as appropriate for us.