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

Julian Elischer julian at elischer.org
Wed Aug 19 19:34:07 UTC 2009


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?


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

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