Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Dec 2008 10:47:55 -0800
From:      Sam Leffler <sam@freebsd.org>
To:        Hartmut Brandt <hartmut.brandt@dlr.de>
Cc:        Gerald Pfeifer <gerald@pfeifer.com>, Vladimir Grebenschikov <vova@fbsd.ru>, Kip Macy <kip.macy@gmail.com>, Qing Li <qingli@freebsd.org>, freebsd-current@freebsd.org, freebsd-net@freebsd.org
Subject:   Re: HEADSUP: arp-v2 has been committed
Message-ID:  <494E8F5B.3060205@freebsd.org>
In-Reply-To: <494E7481.1090606@dlr.de>
References:  <200812150634.mBF6YDVC060565@freefall.freebsd.org>	<873agpk11i.fsf@kobe.laptop>	<1229691231.1818.53.camel@localhost>	<alpine.LSU.1.99.0812210459130.16577@acrux.dbai.tuwien.ac.at>	<3c1674c90812202300y6dc37e89l7936880179f140b5@mail.gmail.com> <494E7481.1090606@dlr.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Hartmut Brandt wrote:
> Kip Macy wrote:
>> The flag is not needed. It is only possible to retrieve arp entries by
>> way of sysctl. The converse of this is you no longer need to grab all
>> the entries in the routing table and look at each one to determine
>> which are cloned routes (dynamic host routes) which contain ARP
>> entries.
>
> Does this mean that the snmp daemon cannot monitor the arp entries 
> through the routing socket anymore? This would be a performance issue, 
> since it would have to fetch the ARP table from the kernel each time 
> it is asked for. Now it refreshes the table only if it is older than 
> 30 seconds and in the mean time monitors routing messages.

If this really becomes an issue you could add a generation # to the arp 
table and watch for changes to trigger an update.

Alternatively it's possible to push the arp table bits through the 
routing socket but that would likely require more work.  We could also 
define new arp-specific msgs; e.g. to track changes (or just reuse the 
old msg format).  Doing this however perpetuates the routing socket as a 
kitchen-sink-kinda mechanism--at some point it's worth creating an 
entirely new path for info like this with a proper TLV-style protocol 
and support for features like filtering.

    Sam

>
> harti
>
>>
>> -Kip
>>
>> On Sat, Dec 20, 2008 at 9:01 PM, Gerald Pfeifer <gerald@pfeifer.com> 
>> wrote:
>>> The code in question on the Wine side is
>>>
>>> #if defined(HAVE_SYS_SYSCTL_H) && defined(NET_RT_DUMP)
>>>  int mib[] = {CTL_NET, PF_ROUTE, 0, AF_INET, NET_RT_FLAGS, RTF_LLINFO};
>>>
>>> and there is nothing FreeBSD-specific in dlls/iphlpapi/ipstats.c as far
>>> as I can see.
>>>
>>> If the arp-v2 update now made us incompatible both with earlier 
>>> versions
>>> of FreeBSD and Linux, that sounds like something that should be fixed
>>> (instead of hacking applications like Wine).
>>>
>>> On the other hand, the commit message at
>>>  http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/route.h
>>> explicitly says
>>>  The change in design obsoletes the semantics of RTF_CLONING,
>>>  RTF_WASCLONE and RTF_LLINFO routing flags. The userland applications
>>>  such as "arp" and "ndp" have been modified to reflect those changes.
>>> so I guess it's not so easy.
>>>
>>> How many other ports are affected?
>>>
>>> What shall we do on the Wine front?  Simply #ifdef-ing out the code in
>>> question may not be the best of ideas, either. :-(
>>>
>>> Gerald
>>>
>>> On Fri, 19 Dec 2008, Vladimir Grebenschikov wrote:
>>>> On Mon, 15 Dec 2008 06:34:13 GMT, Qing Li <qingli@freebsd.org> wrote:
>>>>
>>>>>> The arp-v2 changes have been committed into HEAD.
>>>>>> Please report problems to me and Kip Macy.
>>>> Wine is not build any more:
>>>>
>>>> ...
>>>> cc -c -I. -I. -I../../include -I../../include  -D__WINESRC__  
>>>> -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing 
>>>> -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith 
>>>> -I/usr/local/include -O2 -pipe -fno-strict-aliasing  -o ipstats.o 
>>>> ipstats.c
>>>> ipstats.c: In function 'getNumArpEntries':
>>>> ipstats.c:1253: error: 'RTF_LLINFO' undeclared (first use in this 
>>>> function)
>>>> ipstats.c:1253: error: (Each undeclared identifier is reported only 
>>>> once
>>>> ipstats.c:1253: error: for each function it appears in.)
>>>> ipstats.c: In function 'getArpTable':
>>>> ipstats.c:1311: error: 'RTF_LLINFO' undeclared (first use in this 
>>>> function)
>>>> ipstats.c:1311: warning: initialization makes integer from pointer 
>>>> without a cast
>>>> gmake[2]: *** [ipstats.o] ?????? 1
>>>> gmake[2]: Leaving directory 
>>>> `/usr/ports/emulators/wine/work/wine-1.1.10/dlls/iphlpapi'
>>>> gmake[1]: *** [iphlpapi] ?????? 2
>>>> gmake[1]: Leaving directory 
>>>> `/usr/ports/emulators/wine/work/wine-1.1.10/dlls'
>>>> gmake: *** [dlls] ?????? 2
>>>>
>>>>
>>> -- 
>>> Gerald (Jerry) Pfeifer   gerald@pfeifer.com   
>>> http://www.pfeifer.com/gerald/
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>>>
>>
>>
>>
>
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to 
> "freebsd-current-unsubscribe@freebsd.org"
>
>




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