freebsd-nq/sys/netinet6
Mike Karels 8c1960d506 Fix reference count leak with L2 caching.
ip_forward, TCP/IPv6, and probably SCTP leaked references to L2 cache
entry because they used their own routes on the stack, not in_pcb routes.
The original model for route caching was callers that provided a route
structure to ip{,6}input() would keep the route, and this model was used
for L2 caching as well. Instead, change L2 caching to be done by default
only when using a route structure in the in_pcb; the pcb deallocation
code frees L2 as well as L3 cacches. A separate change will add route
caching to TCP/IPv6.

Another suggestion was to have the transport protocols indicate willingness
to use L2 caching, but this approach keeps the changes in the network
level

Reviewed by:    ae gnn
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D10059
2017-03-25 15:06:28 +00:00
..
dest6.c
frag6.c When IPv6 fragments reassembly is complete, update mbuf's csum_data 2017-02-28 22:58:19 +00:00
icmp6.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
icmp6.h
in6_cksum.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_fib.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_fib.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_gif.c
in6_ifattach.c Garbage collect IFT_IEEE80211 (but leave the define for possible reuse) 2017-01-28 17:08:40 +00:00
in6_ifattach.h Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
in6_jail.c Move IPv4-specific jail functions to new file netinet/in_jail.c 2016-08-09 02:16:21 +00:00
in6_mcast.c
in6_pcb.c The patch provides the same socket option as Linux IP_ORIGDSTADDR. 2017-03-06 04:01:58 +00:00
in6_pcb.h The patch provides the same socket option as Linux IP_ORIGDSTADDR. 2017-03-06 04:01:58 +00:00
in6_pcbgroup.c
in6_proto.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6_rmx.c
in6_rss.c
in6_rss.h
in6_src.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
in6_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
in6.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
in6.h The patch provides the same socket option as Linux IP_ORIGDSTADDR. 2017-03-06 04:01:58 +00:00
ip6_ecn.h
ip6_fastfwd.c Add ip6_tryforward() - a run to completion forwarding implementation 2016-12-12 10:57:32 +00:00
ip6_forward.c Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
ip6_gre.c
ip6_id.c
ip6_input.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip6_mroute.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip6_mroute.h
ip6_output.c Fix reference count leak with L2 caching. 2017-03-25 15:06:28 +00:00
ip6_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip6.h
ip6protosw.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
ip_fw_nat64.h Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
ip_fw_nptv6.h Add ipfw_nptv6 module that implements Network Prefix Translation for IPv6 2016-07-18 19:46:31 +00:00
mld6_var.h
mld6.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
mld6.h
nd6_nbr.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
nd6_rtr.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
nd6.c Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
nd6.h Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
pim6_var.h
pim6.h
raw_ip6.c The patch provides the same socket option as Linux IP_ORIGDSTADDR. 2017-03-06 04:01:58 +00:00
raw_ip6.h
route6.c
scope6_var.h
scope6.c
sctp6_usrreq.c Remove IPsec related PCB code from SCTP. 2017-02-13 11:37:52 +00:00
sctp6_var.h Whitespace changes. 2016-12-06 10:21:25 +00:00
send.c
send.h
tcp6_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
udp6_usrreq.c The patch provides the same socket option as Linux IP_ORIGDSTADDR. 2017-03-06 04:01:58 +00:00
udp6_var.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00