freebsd-skq/sys/netinet6
Alexander V. Chernikov 1435dcd94f 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
2018-03-17 17:05:48 +00:00
..
dest6.c
frag6.c Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
icmp6.c Fix ICMPv6 redirects 2018-02-09 00:13:05 +00:00
icmp6.h
in6_cksum.c
in6_fib.c
in6_fib.h
in6_gif.c
in6_ifattach.c Assign IPv6 link-local address to loopback interfaces whith unit > 0. 2018-01-29 10:33:55 +00:00
in6_ifattach.h
in6_jail.c
in6_mcast.c
in6_pcb.c
in6_pcb.h
in6_pcbgroup.c
in6_proto.c
in6_rmx.c
in6_rss.c
in6_rss.h
in6_src.c
in6_var.h
in6.c Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration. 2018-03-17 17:05:48 +00:00
in6.h
ip6_ecn.h
ip6_fastfwd.c
ip6_forward.c
ip6_gre.c
ip6_id.c
ip6_input.c Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
ip6_mroute.c Merge r1.120 from NetBSD: 2018-02-02 07:39:34 +00:00
ip6_mroute.h
ip6_output.c
ip6_var.h Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
ip6.h
ip6protosw.h
ip_fw_nat64.h
ip_fw_nptv6.h
mld6_var.h
mld6.c
mld6.h
nd6_nbr.c
nd6_rtr.c Update the MTU in affected routes when IPv6 RA changes the MTU 2018-02-12 19:49:20 +00:00
nd6.c ND6: Set the correct state for new neighbor cache entries 2018-01-29 16:12:26 +00:00
nd6.h
pim6_var.h
pim6.h
raw_ip6.c Modify ip6_get_prevhdr() to be able use it safely. 2018-02-05 09:22:07 +00:00
raw_ip6.h
route6.c
scope6_var.h
scope6.c
sctp6_usrreq.c
sctp6_var.h
send.c
send.h
tcp6_var.h
udp6_usrreq.c
udp6_var.h