freebsd-dev/sys/net
Alexander V. Chernikov 0c325f53f1 Implement flowid calculation for outbound connections to balance
connections over multiple paths.

Multipath routing relies on mbuf flowid data for both transit
 and outbound traffic. Current code fills mbuf flowid from inp_flowid
 for connection-oriented sockets. However, inp_flowid is currently
 not calculated for outbound connections.

This change creates simple hashing functions and starts calculating hashes
 for TCP,UDP/UDP-Lite and raw IP if multipath routes are present in the
 system.

Reviewed by:	glebius (previous version),ae
Differential Revision:	https://reviews.freebsd.org/D26523
2020-10-18 17:15:47 +00:00
..
altq net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
route Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
bpf_buffer.c Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
bpf_buffer.h
bpf_filter.c
bpf_jitter.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
bpf_jitter.h
bpf_zerocopy.c Change synchonization rules for vm_page reference counting. 2019-09-09 21:32:42 +00:00
bpf_zerocopy.h
bpf.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
bpf.h
bpfdesc.h
bridgestp.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
bridgestp.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
debugnet_inet.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
debugnet_int.h Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
debugnet.c Convert debugnet to the new routing KPI. 2020-04-26 18:42:38 +00:00
debugnet.h Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
dlt.h MFV r353141 (by phillip): 2019-12-21 21:01:03 +00:00
ethernet.h typo: stray spaces. 2020-02-07 15:16:04 +00:00
firewire.h
ieee8023ad_lacp.c if_media: definitions for 40GE LM4 ethernet media type 2020-09-16 14:45:16 +00:00
ieee8023ad_lacp.h make lacp's use_numa hashing aware of send tags 2020-03-09 13:44:51 +00:00
ieee_oui.h Fix a typo in r349969 2019-07-14 03:49:48 +00:00
if_arp.h
if_bridge.c bridge: call member interface ioctl() without NET_EPOCH 2020-10-06 19:19:56 +00:00
if_bridgevar.h libifconfig: Add function to get bridge status 2020-07-01 02:32:41 +00:00
if_clone.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_clone.h epair: Do not abuse params to register the second interface 2020-01-28 22:44:24 +00:00
if_dead.c This adds the third step in getting BBR into the tree. BBR and 2019-08-01 14:17:31 +00:00
if_debug.c
if_disc.c
if_dl.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_edsc.c if_edsc: generate an arbitrary MAC address 2020-03-02 02:45:57 +00:00
if_enc.c Consistently include opt_ipsec.h for consumers of <netipsec/ipsec.h>. 2020-05-29 19:22:40 +00:00
if_enc.h
if_epair.c net: mitigate vnet / epair cleanup races 2020-09-08 14:54:10 +00:00
if_ethersubr.c Add IP(V6)_VLAN_PCP to set 802.1 priority per-flow. 2020-10-09 12:06:43 +00:00
if_fwsubr.c
if_gif.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_gif.h gif_transmit() must always be called in the network epoch. 2020-01-15 06:18:32 +00:00
if_gre.c Add if_reassing method to all tunneling interfaces. 2020-06-03 13:02:31 +00:00
if_gre.h
if_ipsec.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_ipsec.h
if_lagg.c Store the send tag type in the common send tag header. 2020-10-06 17:58:56 +00:00
if_lagg.h Decode the "LACP Fast Timeout" LAGG option flag 2020-06-11 22:46:08 +00:00
if_llatbl.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_llatbl.h Implement optional table entry limits for if_llatbl. 2020-03-04 17:17:02 +00:00
if_llc.h
if_loop.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_me.c Add if_reassing method to all tunneling interfaces. 2020-06-03 13:02:31 +00:00
if_media.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_media.h if_media: definitions for 40GE LM4 ethernet media type 2020-09-16 14:45:16 +00:00
if_mib.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_mib.h
if_pflog.h
if_pfsync.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_sppp.h
if_spppfr.c
if_spppsubr.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_stf.c Complete conversions from fib<4|6>_lookup_nh_<basic|ext> to fib<4|6>_lookup(). 2020-07-02 21:04:08 +00:00
if_tap.h tap: add support for virtio-net offloads 2019-10-18 21:53:27 +00:00
if_tun.h if_tuntap(4): Add TUNGIFNAME 2019-07-25 22:23:34 +00:00
if_tuntap.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_types.h
if_var.h Switch inet6 default route subscription to the new rib subscription api. 2020-07-12 11:24:23 +00:00
if_vlan_var.h
if_vlan.c Store the send tag type in the common send tag header. 2020-10-06 17:58:56 +00:00
if_vxlan.c if_vxlan(4): add support for hardware assisted checksumming, TSO, and RSS. 2020-09-18 02:37:57 +00:00
if_vxlan.h if_vxlan(4): add support for hardware assisted checksumming, TSO, and RSS. 2020-09-18 02:37:57 +00:00
if.c add SIOCGIFDATA ioctl 2020-09-28 16:54:39 +00:00
if.h Fix typo. 2020-10-07 10:58:56 +00:00
ifdi_if.m iflib: Stop interface before (un)registering VLAN 2020-04-27 22:02:44 +00:00
iflib_clone.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
iflib_private.h
iflib.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
iflib.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ifq.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
mp_ring.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
mp_ring.h
mppc.h
mppcc.c kernel: provide panicky version of __unreachable 2020-05-13 18:07:37 +00:00
mppcd.c
netisr_internal.h
netisr.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netisr.h
netmap_legacy.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
netmap_user.h netmap: fix constness warnings generated by "-Wcast-qual" 2020-10-03 09:33:29 +00:00
netmap_virt.h netmap: disable passthrough with no hypervisor support 2020-01-13 21:47:23 +00:00
netmap.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
paravirt.h
pfil.c Since now drivers that support pfil run their interrupts in the network 2020-01-23 01:49:22 +00:00
pfil.h
pfkeyv2.h Add SADB_SAFLAGS_ESN flag 2020-10-16 11:22:29 +00:00
pfvar.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ppp_defs.h
radix_mpath.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
radix_mpath.h Convert rtalloc_mpath_fib() users to the new KPI. 2020-04-28 08:06:56 +00:00
radix.c Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
radix.h
raw_cb.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
raw_cb.h
raw_usrreq.c
rndis.h
route.c Introduce scalable route multipath. 2020-10-03 10:47:17 +00:00
route.h Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
rss_config.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
rss_config.h
rtsock.c Fix route flags update during RTM_CHANGE. 2020-10-04 13:24:58 +00:00
sff8436.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sff8472.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
slcompress.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
slcompress.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
toeplitz.c
toeplitz.h
vnet.c Partially revert VNET change and expand VNET structure. 2020-02-17 11:08:50 +00:00
vnet.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00