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.

diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index e10794d..cefc339 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1089,6 +1089,16 @@ static int inetdev_event(struct notifier
                        }
                }
                ip_mc_up(in_dev);
+               /* fallthru */
+
+       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);
+                       
                break;
        case NETDEV_DOWN:
                ip_mc_down(in_dev);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to