freebsd-nq/sys/netinet6
Alexander V. Chernikov 9e02229580 Remove now-unused rt_ifp,rt_ifa,rt_gateway,rt_mtu rte fields.
After converting routing subsystem customers to use nexthop objects
 defined in r359823, some fields in struct rtentry became unused.

This commit removes rt_ifp, rt_ifa, rt_gateway and rt_mtu from struct rtentry
 along with the code initializing and updating these fields.

Cleanup of the remaining fields will be addressed by D24669.

This commit also changes the implementation of the RTM_CHANGE handling.
Old implementation tried to perform the whole operation under radix WLOCK,
 resulting in slow performance and hacks like using RTF_RNH_LOCKED flag.
New implementation looks up the route nexthop under radix RLOCK, creates new
 nexthop and tries to update rte nhop pointer. Only last part is done under
 WLOCK.
In the hypothetical scenarious where multiple rtsock clients
 repeatedly issue RTM_CHANGE requests for the same route, route may get
 updated between read and update operation. This is addressed by retrying
 the operation multiple (3) times before returning failure back to the
 caller.

Differential Revision:	https://reviews.freebsd.org/D24666
2020-05-04 14:31:45 +00:00
..
dest6.c Fix m_pullup() problem after removing PULLDOWN_TESTs and KAME EXT_*macros. 2019-12-01 00:22:04 +00:00
frag6.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
icmp6.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
icmp6.h
in6_cksum.c
in6_fib.c Move route_temporal.c and route_var.h to net/route. 2020-04-28 19:14:09 +00:00
in6_fib.h Convert debugnet to the new routing KPI. 2020-04-26 18:42:38 +00:00
in6_gif.c Mechanically substitute assertion of in_epoch(net_epoch_preempt) to 2020-01-15 05:45:27 +00:00
in6_ifattach.c Don't cover in6_ifattach() with network epoch, as it may call into 2019-10-13 04:25:16 +00:00
in6_ifattach.h
in6_jail.c Move most of the contents of opt_compat.h to opt_global.h. 2018-04-06 17:35:35 +00:00
in6_mcast.c Use a dedicated taskqueue thread for in6m_release_task(). 2020-03-31 02:25:53 +00:00
in6_pcb.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
in6_pcb.h Fix race when accepting TCP connections. 2020-01-12 17:52:32 +00:00
in6_pcbgroup.c
in6_proto.c Avoid calling protocol drain routines more than once per reclamation event. 2020-04-16 20:17:24 +00:00
in6_rmx.c Remove now-unused rt_ifp,rt_ifa,rt_gateway,rt_mtu rte fields. 2020-05-04 14:31:45 +00:00
in6_rss.c
in6_rss.h
in6_src.c Fix IPv6 link-local operations with RADIX_MPATH. 2020-04-26 18:07:35 +00:00
in6_var.h Eliminate now-unused parts of old routing KPI. 2020-04-28 07:25:34 +00:00
in6.c Introduce NET_EPOCH_CALL() macro and use it everywhere where we free 2020-01-15 06:05:20 +00:00
in6.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
ip6_ecn.h
ip6_fastfwd.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
ip6_forward.c Convert ip6_forward() to the new routing KPI. 2020-04-15 12:56:05 +00:00
ip6_gre.c Introduce NET_EPOCH_CALL() macro and use it everywhere where we free 2020-01-15 06:05:20 +00:00
ip6_id.c ip6_randomflowlabel: Avoid blocking if random(4) is not available 2019-04-23 17:18:20 +00:00
ip6_input.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip6_mroute.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip6_mroute.h
ip6_output.c Step 3: anonymize struct mbuf_ext_pgs and move all its fields into mbuf 2020-05-03 00:12:56 +00:00
ip6_var.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
ip6.h
ip6protosw.h
ip_fw_nat64.h Reapply r345274 with build fixes for 32-bit architectures. 2019-03-19 10:57:03 +00:00
ip_fw_nptv6.h Add ability to use dynamic external prefix in ipfw_nptv6 module. 2018-11-12 11:20:59 +00:00
mld6_var.h icmpv6: Fix mbuf change in mld 2019-11-18 21:59:47 +00:00
mld6.c mld6: initialize oifp to avoid bogus results/panics in edge cases 2020-02-28 11:16:41 +00:00
mld6.h
nd6_nbr.c Remove RADIX_MPATH headers, they were unused since r293159. 2020-04-11 07:56:11 +00:00
nd6_rtr.c Move route_temporal.c and route_var.h to net/route. 2020-04-28 19:14:09 +00:00
nd6.c Add nhop to the ifa_rtrequest() callback. 2020-04-29 19:28:56 +00:00
nd6.h Convert rtentry field accesses into nhop field accesses. 2020-04-23 08:04:20 +00:00
pim6_var.h Rework IP encapsulation handling code. 2018-06-05 20:51:01 +00:00
pim6.h
raw_ip6.c Make ip6_output() and ip_output() require network epoch. 2020-01-22 05:51:22 +00:00
raw_ip6.h
route6.c Fix m_pullup() problem after removing PULLDOWN_TESTs and KAME EXT_*macros. 2019-12-01 00:22:04 +00:00
scope6_var.h Convert ip6_forward() to the new routing KPI. 2020-04-15 12:56:05 +00:00
scope6.c Convert ip6_forward() to the new routing KPI. 2020-04-15 12:56:05 +00:00
sctp6_usrreq.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (14 of many) 2020-02-24 10:47:18 +00:00
sctp6_var.h Whitespace changes due to changes in ident. 2018-07-19 20:16:33 +00:00
send.c Use the new VNET_DEFINE_STATIC macro when we are defining static VNET 2018-07-24 16:35:52 +00:00
send.h
tcp6_var.h Remove tcp_rtlookup6() function signature. 2020-04-13 08:26:11 +00:00
udp6_usrreq.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
udp6_var.h