[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
Thu Aug 20 13:09:52 UTC 2009



--- On Wed, 8/19/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: "Barney Cordoba" <barney_cordoba at yahoo.com>
> Cc: d at delphij.net, pyunyh at gmail.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: Wednesday, August 19, 2009, 3:34 PM
> Barney Cordoba wrote:
> > 
> > --- 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.
> 
> well they will be when they go to 8.
> They stay a revision or two back for stability reasons of
> course.
> why wouldn't they?

Because the generic drivers generally suck rocks? And from all of
the complaints, it certainly doesn't seem that they are stable.

> 
> 
> > 
> > NOARP does work. Does your network catch on fire if
> the interface sends
> > an ARP out? Does equipment start failing like dominos?
> 
> 
> well if your network sniffer started responding to arps,
> how would you feel?

The problem here is that an ARP is sent on address initialization. So
what does that have to do with responding to ARPs? Do you usually
give a network sniffer an IP address on the monitor port? You seem
to be arguing the case that NOARP isn't completely useless, which
has no relevance to this discussion.

Of course my solution would be to simply comment out the arp init code,
because trying to convince 34 bearded gurus of the correct way to do
it is way too much work. :)

BC


> > 
> > 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