freebsd-skq/sys/netinet
Alexander V. Chernikov da187ddb3d * Add rib_<add|del|change>_route() functions to manipulate the routing table.
The main driver for the change is the need to improve notification mechanism.
Currently callers guess the operation data based on the rtentry structure
 returned in case of successful operation result. There are two problems with
 this appoach. First is that it doesn't provide enough information for the
 upcoming multipath changes, where rtentry refers to a new nexthop group,
 and there is no way of guessing which paths were added during the change.
 Second is that some rtentry fields can change during notification and
 protecting from it by requiring customers to unlock rtentry is not desired.

Additionally, as the consumers such as rtsock do know which operation they
 request in advance, making explicit add/change/del versions of the functions
 makes sense, especially given the functions don't share a lot of code.

With that in mind, introduce rib_cmd_info notification structure and
 rib_<add|del|change>_route() functions, with mandatory rib_cmd_info pointer.
 It will be used in upcoming generalized notifications.

* Move definitions of the new functions and some other functions/structures
 used for the routing table manipulation to a separate header file,
 net/route/route_ctl.h. net/route.h is a frequently used file included in
 ~140 places in kernel, and 90% of the users don't need these definitions.

Reviewed by:		ae
Differential Revision:	https://reviews.freebsd.org/D25067
2020-06-01 20:49:42 +00:00
..
cc DCTCP: update alpha only once after loss recovery. 2020-05-21 21:42:49 +00:00
khelp
libalias libalias: retire cuseeme support 2020-05-16 02:29:10 +00:00
netdump Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_stacks bbr: Use arc4random_uniform from libkern. 2020-05-23 19:52:20 +00:00
accf_data.c Define a module version for accept filter modules. 2020-05-19 18:35:08 +00:00
accf_dns.c Define a module version for accept filter modules. 2020-05-19 18:35:08 +00:00
accf_http.c Define a module version for accept filter modules. 2020-05-19 18:35:08 +00:00
icmp6.h Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
icmp_var.h
if_ether.c Use interface fib for proxyarp checks. 2020-04-02 20:06:37 +00:00
if_ether.h
igmp_var.h
igmp.c Fix an issue of net.inet.igmp.stats handler. 2020-03-07 08:41:10 +00:00
igmp.h
in_cksum.c
in_debug.c
in_fib.c Move <add|del|change>_route() functions to route_ctl.c in preparation of 2020-05-23 19:06:57 +00:00
in_fib.h Convert debugnet to the new routing KPI. 2020-04-26 18:42:38 +00:00
in_gif.c Switch gif(4) path verification to fib[46]_check_urfp(). 2020-05-28 07:26:18 +00:00
in_jail.c
in_kdtrace.c Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
in_kdtrace.h Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
in_mcast.c Remove the "config" taskqgroup and its KPIs. 2020-03-30 14:24:03 +00:00
in_pcb.c Fix NULL-pointer bug from r361228. 2020-05-19 01:05:13 +00:00
in_pcb.h Allow TCP to reuse local port with different destinations 2020-05-18 22:53:12 +00:00
in_pcbgroup.c
in_prot.c
in_proto.c Avoid calling protocol drain routines more than once per reclamation event. 2020-04-16 20:17:24 +00:00
in_rmx.c * Add rib_<add|del|change>_route() functions to manipulate the routing table. 2020-06-01 20:49:42 +00:00
in_rss.c
in_rss.h
in_systm.h
in_var.h Eliminate now-unused parts of old routing KPI. 2020-04-28 07:25:34 +00:00
in.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
in.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip6.h Remove stale definitions. The removed definitions are not used right 2020-03-01 12:34:27 +00:00
ip_carp.c carp: Widen epoch coverage 2020-04-12 16:09:21 +00:00
ip_carp.h carp: replace caddr_t with char * 2019-12-06 16:35:48 +00:00
ip_divert.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_divert.h
ip_dummynet.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_ecn.c
ip_ecn.h
ip_encap.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
ip_encap.h
ip_fastfwd.c Convert IP/IPv6 forwarding, ICMP processing and IP PCB laddr selection to 2020-04-14 23:06:25 +00:00
ip_fw.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_gre.c Introduce NET_EPOCH_CALL() macro and use it everywhere where we free 2020-01-15 06:05:20 +00:00
ip_icmp.c * Add rib_<add|del|change>_route() functions to manipulate the routing table. 2020-06-01 20:49:42 +00:00
ip_icmp.h
ip_id.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_input.c Convert rtalloc_mpath_fib() users to the new KPI. 2020-04-28 08:06:56 +00:00
ip_mroute.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_mroute.h
ip_options.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
ip_options.h
ip_output.c Switch ip_output/icmp_reflect rt lookup calls with fib4_lookup. 2020-05-28 07:31:53 +00:00
ip_reass.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ip_var.h This commit adds BBR (Bottleneck Bandwidth and RTT) congestion control. This 2019-09-24 18:18:11 +00:00
ip.h
pim_var.h
pim.h
raw_ip.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
sctp_asconf.c Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_asconf.h Consistently provide arguments for timer start and stop routines. 2020-03-19 21:01:16 +00:00
sctp_auth.c Remove assignment without effect. 2020-05-18 19:48:38 +00:00
sctp_auth.h
sctp_bsd_addr.c Remove unused function. 2020-02-18 19:41:55 +00:00
sctp_bsd_addr.h Use an event handler to notify the SCTP about IP address changes 2019-10-13 18:17:08 +00:00
sctp_cc_functions.c Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
sctp_constants.h Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
sctp_crc32.c When the IP layer calls back into the SCTP layer to perform the SCTP 2019-09-15 18:29:45 +00:00
sctp_crc32.h
sctp_header.h
sctp_indata.c Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_indata.h Ensure that an stcb is not dereferenced when it is about to be 2020-05-16 19:26:39 +00:00
sctp_input.c Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_input.h
sctp_kdtrace.c Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
sctp_kdtrace.h Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
sctp_lock_bsd.h Cleanup the file and add two ASSERT variants for locks, which will be 2020-03-23 12:17:13 +00:00
sctp_os_bsd.h Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_os.h
sctp_output.c Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_output.h Improve the handling of state cookie parameters in INIT-ACK chunks. 2019-09-01 10:09:53 +00:00
sctp_pcb.c Replace snprintf() by SCTP_SNPRINTF() and let SCTP_SNPRINTF() map 2020-05-19 07:23:35 +00:00
sctp_pcb.h Some more uint32_t cleanups, no functional change. 2020-03-27 21:48:52 +00:00
sctp_peeloff.c
sctp_peeloff.h
sctp_ss_functions.c Fix the non-default stream schedulers such that do not interleave 2020-02-17 18:05:03 +00:00
sctp_structs.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp_syscalls.c sctp: use new capsicum helpers 2020-02-15 01:29:40 +00:00
sctp_sysctl.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (14 of many) 2020-02-24 10:47:18 +00:00
sctp_sysctl.h Make the message size limit used for SCTP_SENDALL configurable via 2020-01-04 20:33:12 +00:00
sctp_timer.c Ensure that we have a path when starting the T3 RXT timer. 2020-05-10 17:19:19 +00:00
sctp_timer.h More timer cleanups, no functional change. 2020-03-21 16:12:19 +00:00
sctp_uio.h
sctp_usrreq.c Don't check an unsigned variable for being negative. 2020-05-18 19:35:46 +00:00
sctp_var.h Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
sctp.h Make the message size limit used for SCTP_SENDALL configurable via 2020-01-04 20:33:12 +00:00
sctputil.c Remove redundant assignment. 2020-05-18 19:23:01 +00:00
sctputil.h Handle integer overflows correctly when converting msecs and secs to 2020-03-28 20:25:45 +00:00
siftr.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_debug.c
tcp_debug.h
tcp_fastopen.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_fastopen.h
tcp_fsm.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_hostcache.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_hostcache.h
tcp_hpts.c tcp_hpts: make RSS kernel compile again. 2020-03-03 14:15:30 +00:00
tcp_hpts.h Whitespace, remove from three files trailing white 2020-02-12 13:07:09 +00:00
tcp_input.c With RFC3168 ECN, CWR SHOULD only be sent with new data 2020-05-21 21:33:15 +00:00
tcp_log_buf.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_log_buf.h This change does a small prepratory step in getting the 2020-04-27 16:30:29 +00:00
tcp_lro.c White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_lro.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
tcp_offload.c Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcp_offload.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcp_output.c With RFC3168 ECN, CWR SHOULD only be sent with new data 2020-05-21 21:33:15 +00:00
tcp_pcap.c Step 4.2: start divorce of M_EXT and M_EXTPG 2020-05-03 00:37:16 +00:00
tcp_pcap.h
tcp_ratelimit.c Fix copyright year and eliminate the obsolete all rights reserved line. 2020-04-08 17:55:45 +00:00
tcp_ratelimit.h Fix copyright year and eliminate the obsolete all rights reserved line. 2020-04-08 17:55:45 +00:00
tcp_reass.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_sack.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_seq.h
tcp_stats.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_subr.c Use fib[46]_lookup() in mtu calculations. 2020-05-28 08:00:08 +00:00
tcp_syncache.c When using automatically generated flow labels and using TCP SYN 2020-03-04 16:41:25 +00:00
tcp_syncache.h Add flags for upcoming patches related to improved ECN handling. 2019-12-31 14:32:48 +00:00
tcp_timer.c Improve the TCP blackhole detection. The principle is to reduce the 2020-04-14 16:35:05 +00:00
tcp_timer.h Reduce default TCP delayed ACK timeout to 40ms. 2020-04-16 15:59:23 +00:00
tcp_timewait.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
tcp_usrreq.c Allow TCP to reuse local port with different destinations 2020-05-18 22:53:12 +00:00
tcp_var.h Adjust the fb to have a way to ask the underlying stack 2020-05-04 20:19:57 +00:00
tcp.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
tcpip.h
toecore.c Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
toecore.h Initial support for kernel offload of TLS receive. 2020-04-27 23:17:19 +00:00
udp_usrreq.c Convert route caching to nexthop caching. 2020-04-25 09:06:11 +00:00
udp_var.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
udp.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00
udplite.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00