Date: Fri, 30 Mar 2018 02:24:55 +0300 From: Alexander V. Chernikov <melifaro@freebsd.org> To: Bjoern A. Zeeb <bzeeb-lists@lists.zabbadoz.net> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r331098 - in head/sys: net netinet netinet6 Message-ID: <10903971522365895@web41j.yandex.ru> In-Reply-To: <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net> References: <201803171705.w2HH5mk1054256@repo.freebsd.org> <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net>
next in thread | previous in thread | raw e-mail | index | archive | help
30.03.2018, 02:10, "Bjoern A. Zeeb" <bzeeb-lists@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?10903971522365895>