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>