1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-30 16:51:41 +00:00
freebsd/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
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
in6_ifattach.h
in6_jail.c
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
ip6_forward.c
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
ip_fw_nptv6.h
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
sctp6_var.h
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