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