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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"