30.03.2018, 02:10, "Bjoern A. Zeeb" <bzeeb-li...@lists.zabbadoz.net>:
> On 17 Mar 2018, at 17:05, Alexander V. Chernikov wrote:
>
>> Author: melifaro
>> Date: Sat Mar 17 17:05:48 2018
>> New Revision: 331098
>> URL: https://svnweb.freebsd.org/changeset/base/331098
>>
>> Log:
>> Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration.
>>
>> Current arp/nd code relies on the feedback from the datapath
>> indicating
>> that the entry is still used. This mechanism is incorporated into
>> the
>> arpresolve()/nd6_resolve() routines. After the inpcb route cache
>> introduction, the packet path for the locally-originated packets
>> changed,
>> passing cached lle pointer to the ether_output() directly. This
>> resulted
>> in the arp/ndp entry expire each time exactly after the configured
>> max_age
>> interval. During the small window between the ARP/NDP request and
>> reply
>> from the router, most of the packets got lost.
>>
>> Fix this behaviour by plugging datapath notification code to the
>> packet
>> path used by route cache. Unify the notification code by using
>> single
>> inlined function with the per-AF callbacks.
>>
>> Reported by: sthaug at nethelp.no
>> Reviewed by: ae
>> MFC after: 2 weeks
>
> Does this mean that we now take an extra lock per-packet again?
No. This codepath is triggered only when ARP/NDP state machine requires
datapath feedback, e.g. at most once per second per LLE.
>
> /bz
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"