[PATCH] Fix for e1000 (em/igb) NOARP issue [Was Re: em(4): sending ARP regardless of NOARP flag]

Barney Cordoba barney_cordoba at yahoo.com
Wed Aug 19 18:14:34 UTC 2009



--- On Tue, 8/18/09, Julian Elischer <julian at elischer.org> wrote:

> From: Julian Elischer <julian at elischer.org>
> Subject: Re: [PATCH] Fix for e1000 (em/igb) NOARP issue [Was Re: em(4): sending ARP regardless of NOARP flag]
> To: d at delphij.net
> Cc: pyunyh at gmail.com, "Barney Cordoba" <barney_cordoba at yahoo.com>, "David Christensen" <davidch at broadcom.com>, "freebsd-net at freebsd.org" <freebsd-net at freebsd.org>, "Jack Vogel" <jfvogel at gmail.com>, "Jack F Vogel" <jfv at freebsd.org>, yongari at freebsd.org
> Date: Tuesday, August 18, 2009, 6:55 PM
> Xin LI wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > Barney Cordoba wrote:
> >> --- On Tue, 8/18/09, Pyun YongHyeon <pyunyh at gmail.com>
> wrote:
> >>
> >>> From: Pyun YongHyeon <pyunyh at gmail.com>
> >>> Subject: Re: [PATCH] Fix for e1000 (em/igb)
> NOARP issue [Was Re: em(4): sending ARP regardless of NOARP
> flag]
> >>> To: "Xin LI" <delphij at delphij.net>
> >>> Cc: "Barney Cordoba" <barney_cordoba at yahoo.com>,
> "David Christensen" <davidch at broadcom.com>,
> "d at delphij..net"
> <d at delphij.net>,
> "freebsd-net at freebsd.org"
> <freebsd-net at freebsd.org>,
> "Jack Vogel" <jfvogel at gmail.com>,
> "Jack F Vogel" <jfv at freebsd.org>,
> yongari at freebsd.org,
> "Julian Elischer" <julian at elischer.org>
> >>> Date: Tuesday, August 18, 2009, 5:49 PM
> >>> On Tue, Aug 18, 2009 at 02:03:37PM
> >>> -0700, Xin LI 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.
> >>> That change was introduced by me. I guess the
> root cause of
> >>> the
> >>> problem was long initialization time of
> hardware which in
> >>> turn
> >>> resulted in unbearable boot time when
> multiple-alias
> >>> addresses are
> >>> assigned to em(4). I don't remember
> details,though.
> >>>
> >>> Since we're in the release cycle, the change
> you suggested
> >>> would be
> >>> quick fix for 8.0. I think em(4)/igb(4) should
> remove
> >>> SIOCSIFADDR
> >>> handling in driver which is layering
> violation.
> >> There are 2 kinds of programmers; those who do
> things "correctly',
> >> and those that do things that work. 
> >>
> >> 99.99999% of the people will be using ARPs, so
> don't be silly and
> >> break the driver to solve a case that almost
> no-one cares about please.
> > 
> 
> Cisco.Ironport  runs 50% (2 out of 4) of their em
> interfaces in noarp 
> mode.


Ah, are they running Jack's drivers unmodified? Seems unlikely.

NOARP does work. Does your network catch on fire if the interface sends
an ARP out? Does equipment start failing like dominos? 

My point was don't make ARPs not work (the reason the "hack" is in
there is to make something work better) to preserve some fantasy of
"layering" that went out with the 8-track player. The check for 
the NOARP flag is a better solution until the subsystem works the 
way its supposed to work.

Barney


      



More information about the freebsd-net mailing list