Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Aug 2009 14:34:09 -0700
From:      Jack Vogel <jfvogel@gmail.com>
To:        d@delphij.net, Sam Leffler <sam@freebsd.org>
Cc:        Barney Cordoba <barney_cordoba@yahoo.com>, David Christensen <davidch@broadcom.com>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Julian Elischer <julian@elischer.org>, Jack F Vogel <jfv@freebsd.org>, yongari@freebsd.org
Subject:   Re: [PATCH] Fix for e1000 (em/igb) NOARP issue [Was Re: em(4):  sending ARP regardless of NOARP flag]
Message-ID:  <2a41acea0908181434l7a8119ffxbe03a5d312947757@mail.gmail.com>
In-Reply-To: <4A8B1729.8070503@delphij.net>
References:  <5D267A3F22FD854F8F48B3D2B523819339EC3813D2@IRVEXCHCCR01.corp.ad.broadcom.com> <692150.91493.qm@web63906.mail.re1.yahoo.com> <2a41acea0908060905n69edf1dfkbf993d9f8a4edf37@mail.gmail.com> <4A8B1729.8070503@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Yes, this would work, although talking to Sam about this, he said the whole
reason for this hack in the driver was some other brokenness in the if code,
and he said he was going to fix that, just not before 8 RELEASE.

So, I would rather fix it upstream as it where, and then take this hack
out of the code altogether instead of refining the hack :)

Just my .02

Jack


On Tue, Aug 18, 2009 at 2:03 PM, Xin LI <delphij@delphij.net> wrote:

> -----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 <delphij@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);
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2a41acea0908181434l7a8119ffxbe03a5d312947757>