-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, Jack,
I have looked into the code history and found that sys/dev/em/if_em.c,v 1.119 has introduced the arp_ifinit() call in order to fix the problem that if_em won't send ARP when IP address is changed. I think we can further improve it as attached, say, only do it when IFF_NOARP is not set. This should have no effect for usual configuration but fix the problem when NOARP is the desired behavior. Cheers, - -- Xin LI <delp...@delphij.net> http://www.delphij.net/ FreeBSD - The Power to Serve! -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.12 (FreeBSD) iEYEARECAAYFAkqLFykACgkQi+vbBBjt66CMFQCeOkESwsgDAbqe5PCtiMulaU1E lIAAoIm0LDJ6qHuR8jyo7dXFi/9iYA22 =9E54 -----END PGP SIGNATURE-----
Index: if_igb.c =================================================================== --- if_igb.c (revision 196363) +++ if_igb.c (working copy) @@ -952,7 +952,8 @@ igb_ioctl(struct ifnet *ifp, u_long command, caddr igb_init_locked(adapter); IGB_CORE_UNLOCK(adapter); } - arp_ifinit(ifp, ifa); + if (!(ifp->if_flags & IFF_NOARP)) + arp_ifinit(ifp, ifa); } else #endif error = ether_ioctl(ifp, command, data); Index: if_em.c =================================================================== --- if_em.c (revision 196363) +++ if_em.c (working copy) @@ -1204,7 +1204,8 @@ em_ioctl(struct ifnet *ifp, u_long command, caddr_ em_init_locked(adapter); EM_CORE_UNLOCK(adapter); } - arp_ifinit(ifp, ifa); + if (!(ifp->if_flags & IFF_NOARP)) + arp_ifinit(ifp, ifa); } else #endif error = ether_ioctl(ifp, command, data);
_______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"