Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Aug 2009 06:09:51 -0700 (PDT)
From:      Barney Cordoba <barney_cordoba@yahoo.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        pyunyh@gmail.com, David Christensen <davidch@broadcom.com>, d@delphij.net, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Jack Vogel <jfvogel@gmail.com>, 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:  <233049.86158.qm@web63904.mail.re1.yahoo.com>
In-Reply-To: <4A8C53AD.1040102@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
=0A=0A--- On Wed, 8/19/09, Julian Elischer <julian@elischer.org> wrote:=0A=
=0A> From: Julian Elischer <julian@elischer.org>=0A> Subject: Re: [PATCH] F=
ix for e1000 (em/igb) NOARP issue [Was Re: em(4): sending ARP regardless of=
 NOARP flag]=0A> To: "Barney Cordoba" <barney_cordoba@yahoo.com>=0A> Cc: d@=
delphij.net, pyunyh@gmail.com, "David Christensen" <davidch@broadcom.com>, =
"freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, "Jack Vogel" <jfvogel@=
gmail.com>, "Jack F Vogel" <jfv@freebsd.org>, yongari@freebsd.org=0A> Date:=
 Wednesday, August 19, 2009, 3:34 PM=0A> Barney Cordoba wrote:=0A> > =0A> >=
 --- On Tue, 8/18/09, Julian Elischer <julian@elischer.org>=0A> wrote:=0A> =
> =0A> >> From: Julian Elischer <julian@elischer.org>=0A> >> Subject: Re: [=
PATCH] Fix for e1000 (em/igb) NOARP=0A> issue [Was Re: em(4): sending ARP r=
egardless of NOARP flag]=0A> >> To: d@delphij.net=0A> >> Cc: pyunyh@gmail.c=
om,=0A> "Barney Cordoba" <barney_cordoba@yahoo.com>,=0A> "David Christensen=
" <davidch@broadcom.com>,=0A> "freebsd-net@freebsd.org"=0A> <freebsd-net@fr=
eebsd.org>,=0A> "Jack Vogel" <jfvogel@gmail.com>,=0A> "Jack F Vogel" <jfv@f=
reebsd.org>,=0A> yongari@freebsd.org=0A> >> Date: Tuesday, August 18, 2009,=
 6:55 PM=0A> >> Xin LI wrote:=0A> >>> -----BEGIN PGP SIGNED MESSAGE-----=0A=
> >>> Hash: SHA1=0A> >>> =0A> >>> Barney Cordoba wrote:=0A> >>>> --- On Tue=
, 8/18/09, Pyun YongHyeon <pyunyh@gmail.com>=0A> >> wrote:=0A> >>>>> From: =
Pyun YongHyeon <pyunyh@gmail.com>=0A> >>>>> Subject: Re: [PATCH] Fix for e1=
000=0A> (em/igb)=0A> >> NOARP issue [Was Re: em(4): sending ARP regardless=
=0A> of NOARP=0A> >> flag]=0A> >>>>> To: "Xin LI" <delphij@delphij.net>=0A>=
 >>>>> Cc: "Barney Cordoba" <barney_cordoba@yahoo.com>,=0A> >> "David Chris=
tensen" <davidch@broadcom.com>,=0A> >> "d@delphij..net"=0A> >> <d@delphij.n=
et>,=0A> >> "freebsd-net@freebsd.org"=0A> >> <freebsd-net@freebsd.org>,=0A>=
 >> "Jack Vogel" <jfvogel@gmail.com>,=0A> >> "Jack F Vogel" <jfv@freebsd.or=
g>,=0A> >> yongari@freebsd.org,=0A> >> "Julian Elischer" <julian@elischer.o=
rg>=0A> >>>>> Date: Tuesday, August 18, 2009, 5:49=0A> PM=0A> >>>>> On Tue,=
 Aug 18, 2009 at 02:03:37PM=0A> >>>>> -0700, Xin LI wrote:=0A> >>>>>> -----=
BEGIN PGP SIGNED=0A> MESSAGE-----=0A> >>>>>> Hash: SHA1=0A> >>>>>> =0A> >>>=
>>> Hi, Jack,=0A> >>>>>> =0A> >>>>>> I have looked into the code=0A> histor=
y and=0A> >> found that=0A> >>>>> sys/dev/em/if_em.c,v=0A> >>>>>> 1.119 has=
 introduced the=0A> arp_ifinit() call=0A> >> in order to=0A> >>>>> fix the =
problem=0A> >>>>>> that if_em won't send ARP when IP=0A> address=0A> >> is =
changed.=0A> >>>>>> I think we can further improve it=0A> as=0A> >> attache=
d, say,=0A> >>>>> only do it when=0A> >>>>>> IFF_NOARP is not set.=A0 This=
=0A> should=0A> >> have no effect=0A> >>>>> for usual=0A> >>>>>> configurat=
ion but fix the problem=0A> when=0A> >> NOARP is the=0A> >>>>> desired beha=
vior.=0A> >>>>> That change was introduced by me. I=0A> guess the=0A> >> ro=
ot cause of=0A> >>>>> the=0A> >>>>> problem was long initialization time=0A=
> of=0A> >> hardware which in=0A> >>>>> turn=0A> >>>>> resulted in unbearab=
le boot time when=0A> >> multiple-alias=0A> >>>>> addresses are=0A> >>>>> a=
ssigned to em(4). I don't remember=0A> >> details,though.=0A> >>>>> Since w=
e're in the release cycle, the=0A> change=0A> >> you suggested=0A> >>>>> wo=
uld be=0A> >>>>> quick fix for 8.0. I think=0A> em(4)/igb(4) should=0A> >> =
remove=0A> >>>>> SIOCSIFADDR=0A> >>>>> handling in driver which is layering=
=0A> >> violation.=0A> >>>> There are 2 kinds of programmers; those=0A> who=
 do=0A> >> things "correctly',=0A> >>>> and those that do things that work.=
 =0A> >>>> 99.99999% of the people will be using=0A> ARPs, so=0A> >> don't =
be silly and=0A> >>>> break the driver to solve a case that=0A> almost=0A> =
>> no-one cares about please.=0A> >> Cisco.Ironport=A0 runs 50% (2 out of 4=
) of=0A> their em=0A> >> interfaces in noarp mode.=0A> > =0A> > =0A> > Ah, =
are they running Jack's drivers unmodified? Seems=0A> unlikely.=0A> =0A> we=
ll they will be when they go to 8.=0A> They stay a revision or two back for=
 stability reasons of=0A> course.=0A> why wouldn't they?=0A=0ABecause the g=
eneric drivers generally suck rocks? And from all of=0Athe complaints, it c=
ertainly doesn't seem that they are stable.=0A=0A> =0A> =0A> > =0A> > NOARP=
 does work. Does your network catch on fire if=0A> the interface sends=0A> =
> an ARP out? Does equipment start failing like dominos?=0A> =0A> =0A> well=
 if your network sniffer started responding to arps,=0A> how would you feel=
?=0A=0AThe problem here is that an ARP is sent on address initialization. S=
o=0Awhat does that have to do with responding to ARPs? Do you usually=0Agiv=
e a network sniffer an IP address on the monitor port? You seem=0Ato be arg=
uing the case that NOARP isn't completely useless, which=0Ahas no relevance=
 to this discussion.=0A=0AOf course my solution would be to simply comment =
out the arp init code,=0Abecause trying to convince 34 bearded gurus of the=
 correct way to do=0Ait is way too much work. :)=0A=0ABC=0A=0A=0A> > =0A> >=
 My point was don't make ARPs not work (the reason the=0A> "hack" is in=0A>=
 > there is to make something work better) to preserve=0A> some fantasy of=
=0A> > "layering" that went out with the 8-track player. The=0A> check for =
the NOARP flag is a better solution until the=0A> subsystem works the way i=
ts supposed to work.=0A> > =0A> > Barney=0A> > =0A> > =0A> >=A0 =A0 =A0=A0=
=A0=0A> =0A> =0A=0A=0A      




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