freebsd-dev/sys/netinet6
Bjoern A. Zeeb 09f8c3ff36 Remove the single global unlocked route cache ip6_forward_rt
from the inet6 stack along with statistics and make sure we
properly free the rt in all cases.

While the current situation is not better performance wise it
prevents panics seen more often these days.
After more inet6 and ipsec cleanup we should be able to improve
the situation again passing the rt to ip6_forward directly.

Leave the ip6_forward_rt entry in struct vinet6 but mark it
for removal.

PR:		kern/128247, kern/131038
MFC after:	25 days
Committed from:	Bugathon #6
Tested by:	Denis Ahrens <denis@h3q.com> (different initial version)
2009-02-01 21:11:08 +00:00
..
dest6.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
frag6.c Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00
icmp6.c Another step assimilating IPv[46] PCB code: 2008-12-17 13:00:18 +00:00
icmp6.h
in6_cksum.c Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
in6_gif.c Like with r185713 make sure to not leak a lock as rtalloc1(9) returns 2009-01-31 10:48:02 +00:00
in6_gif.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
in6_ifattach.c Like with r185713 make sure to not leak a lock as rtalloc1(9) returns 2009-01-31 10:48:02 +00:00
in6_ifattach.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
in6_pcb.c Another step assimilating IPv[46] PCB code - directly use 2008-12-15 21:50:54 +00:00
in6_pcb.h Merge in6_pcbfree() into in_pcbfree() which after the previous 2008-11-27 12:04:35 +00:00
in6_proto.c Put a global variables, which were virtualized but formerly 2008-12-11 16:26:38 +00:00
in6_rmx.c in6_clsroute() was applied to prefix routes causing some 2008-12-17 10:03:49 +00:00
in6_src.c check return from lla_lookup against NULL not zero 2008-12-16 02:30:42 +00:00
in6_var.h This main goals of this project are: 2008-12-15 06:10:57 +00:00
in6.c Like with r185713 make sure to not leak a lock as rtalloc1(9) returns 2009-01-31 10:48:02 +00:00
in6.h Default to ignoring potentially evil IPv6 Neighbor Solicitation 2008-10-02 00:32:59 +00:00
ip6_ecn.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
ip6_forward.c Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00
ip6_id.c Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
ip6_input.c Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00
ip6_ipsec.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
ip6_ipsec.h #if 0 out a currently unsued (and incomplete) function: ip6_ipsec_mtu(). 2008-03-14 11:44:30 +00:00
ip6_mroute.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
ip6_mroute.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
ip6_output.c Another step assimilating IPv[46] PCB code: 2008-12-17 13:00:18 +00:00
ip6_var.h Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00
ip6.h
ip6protosw.h struct ip6protosw is a copy of struct protosw, so remove pr_usrreq there 2009-01-04 21:13:51 +00:00
mld6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
mld6.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
nd6_nbr.c Like with r185713 make sure to not leak a lock as rtalloc1(9) returns 2009-01-31 10:48:02 +00:00
nd6_rtr.c Remove unused local MACROs. 2009-01-31 17:35:44 +00:00
nd6.c Remove unused local MACROs. 2009-01-31 17:35:44 +00:00
nd6.h in6_clsroute() was applied to prefix routes causing some 2008-12-17 10:03:49 +00:00
pim6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
pim6.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
raw_ip6.c For consistency with prison_{local,remote,check}_ipN rename 2009-01-25 10:11:58 +00:00
raw_ip6.h Second round of putting global variables, which were virtualized 2008-12-13 19:13:03 +00:00
route6.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
scope6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
scope6.c Rather than using hidden includes (with cicular dependencies), 2008-12-02 21:37:28 +00:00
sctp6_usrreq.c Code from the hack-session known as the IETF (and a 2008-12-06 13:19:54 +00:00
sctp6_var.h 1) Adds the rest of the VIMAGE change macros 2008-07-09 16:45:30 +00:00
tcp6_var.h Put a global variables, which were virtualized but formerly 2008-12-11 16:26:38 +00:00
udp6_usrreq.c Addresses Roberts comments on comments. Also adds 2009-01-06 13:27:56 +00:00
udp6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
vinet6.h Remove the single global unlocked route cache ip6_forward_rt 2009-02-01 21:11:08 +00:00