opnsense-src/sys/netinet
Richard Scheffenegger 4012ef7754 tcp: Functional implementation of Accurate ECN
The AccECN handshake and TCP header flags are supported,
no support yet for the AccECN option. This minimalistic
implementation is sufficient to support DCTCP while
dramatically cutting the number of ACKs, and provide ECN
response from the receiver to the CC modules.

Reviewed By:		#transport, #manpages, rrs, pauamma
Sponsored by:		NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D21011
2022-08-31 15:05:53 +02:00
..
cc tcp cc: don't recurse on non recursive mutex 2022-04-05 13:52:36 +02:00
khelp khelp(9): Fix a typo in a source code comment 2022-04-02 14:10:59 +02:00
libalias libalias(3): Fix two typos in source code comments 2022-04-09 09:14:00 +02:00
netdump ddb: use _FLAGS command macros where appropriate 2022-07-05 11:56:55 -03:00
tcp_stacks tcp: Functional implementation of Accurate ECN 2022-08-31 15:05:53 +02: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 net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
dccp.h Add header definition for RFC4340, Datagram Congestion Control Protocol 2020-06-17 13:27:13 +00:00
icmp6.h mld6: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
icmp_var.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
if_ether.c netinet6: Fix mbuf leak in NDP 2022-05-31 21:06:14 +00:00
if_ether.h Retire arpresolve_addr(), which is not used anywhere, from if_ether.c. 2018-11-17 16:08:36 +00:00
igmp.c igmp: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
igmp.h
igmp_var.h igmp: use callout(9) directly instead of pr_slowtimo, pr_fasttimo 2022-08-17 11:50:31 -07:00
in.c Revert "routing: install prefix and loopback routes using new nhop-based KPI." 2022-08-29 16:20:42 +00:00
in.h protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
in_cksum.c netinet: Implement in_cksum_skip() using m_apply() 2021-11-24 13:31:16 -05:00
in_debug.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_fib.c routing: refactor private KPI 2022-08-01 10:02:12 +00:00
in_fib.h Refactor fib4/fib6 functions. 2020-11-29 13:41:49 +00:00
in_fib_algo.c Fix IPv4 fib bsearch4() lookup array construction. 2021-01-17 20:32:26 +00:00
in_fib_dxr.c fib_algo: shift / mask by constants in dxr_lookup() 2022-01-17 00:13:47 +01:00
in_gif.c Use network epoch to protect local IPv4 addresses hash. 2021-10-22 14:40:53 -07:00
in_jail.c sysent: Get rid of bogus sys/sysent.h include. 2022-05-28 20:52:17 +03:00
in_kdtrace.c Fix dtrace SDT probe tcp:::debug-input 2021-12-20 17:15:43 -09:00
in_kdtrace.h Separate out SCTP related dtrace code. 2019-10-14 20:32:11 +00:00
in_mcast.c divert: declare PF_DIVERT domain and stop abusing PF_INET 2022-08-30 15:09:21 -07:00
in_pcb.c inpcb: gather v4/v6 handling code into in_pcballoc() from protocols 2022-08-10 11:09:34 -07:00
in_pcb.h tcp: add sysctl interface for setting socket options 2022-02-09 12:24:41 +01:00
in_pcb_var.h in_pcb: use jenkins hash over the entire IPv6 (or IPv4) address 2021-12-26 10:47:28 -08:00
in_prot.c
in_proto.c protosw: cleanup protocols that existed merely to provide pr_input 2022-08-30 15:09:21 -07:00
in_rmx.c routing: add nhop(9) kpi. 2022-08-01 08:52:26 +00:00
in_rss.c in_rss: fix set but not used warning 2022-05-07 18:17:33 +02:00
in_rss.h Implement flowid calculation for outbound connections to balance 2020-10-18 17:15:47 +00:00
in_systm.h
in_var.h protosw: change prototype for pr_control 2022-08-12 12:08:18 -07:00
ip.h tcp: Prevent setting of ECN bits with setsockopt() 2022-02-03 20:06:42 +01:00
ip6.h net: Introduce IPV6_DSCP(), IPV6_ECN() and IPV6_TRAFFIC_CLASS() macros 2021-03-04 20:56:48 +01:00
ip_carp.c protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
ip_carp.h protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07:00
ip_divert.c divert(4): make it compilable and working without INET 2022-08-30 15:09:21 -07:00
ip_divert.h divert(4): provide statistics 2022-08-30 15:09:21 -07:00
ip_dummynet.h ipfw: use unsigned int for dummynet bandwidth 2021-08-19 10:48:53 +02: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 IPv4: fix redirect sending conditions 2021-12-26 15:33:48 +00:00
ip_fw.h ipfw: add support radix tables and table lookup for MAC addresses 2022-06-04 19:12:29 +03:00
ip_gre.c udp: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-12 10:04:59 +02:00
ip_icmp.c protosw: separate pr_input and pr_ctlinput out of protosw 2022-08-17 11:50:31 -07: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 ip_reass: separate ipreass_init() into global and VIMAGE parts 2022-08-17 11:50:31 -07:00
ip_mroute.c IPv4 multicast: fix LOR in shutdown path 2022-04-11 14:51:16 -05:00
ip_mroute.h IPv4 multicast: fix netstat -g 2022-03-22 07:38:01 -05:00
ip_options.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
ip_options.h
ip_output.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
ip_reass.c ip_reass: don't drain all vnets on a vnet destroy 2022-08-21 07:44:58 -07:00
ip_var.h protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
pim.h
pim_var.h
raw_ip.c protosw: cleanup protocols that existed merely to provide pr_input 2022-08-30 15:09:21 -07:00
sctp.h Improve the handling of cookie life times. 2020-10-16 10:44:48 +00:00
sctp_asconf.c sctp: improve consistency 2022-05-14 06:28:19 +02:00
sctp_asconf.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_auth.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_auth.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_bsd_addr.c sctp: Remove unused variable. 2022-04-12 14:58:59 -07:00
sctp_bsd_addr.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_cc_functions.c sctp: plug set-but-not-used vars 2022-04-19 12:45:57 +00:00
sctp_constants.h sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_crc32.c sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_crc32.h sctp: fix a signed/unsigned mismatch. 2022-02-17 22:45:57 +01:00
sctp_header.h Whitespace changes. 2020-09-24 12:26:06 +00:00
sctp_indata.c sctp: tweak panic message 2022-08-03 17:28:15 +02:00
sctp_indata.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_input.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctp_input.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
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 sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_module.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
sctp_os.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_os_bsd.h sctp: use sb_avail() when accessing sb_acc for reading 2022-05-14 12:38:43 +02:00
sctp_output.c sctp: improve handling of send() calls with no user data` 2022-08-08 12:53:42 +02:00
sctp_output.h sctp: cleanup the SCTP_MAXSEG socket option. 2021-12-27 23:40:31 +01:00
sctp_pcb.c protosw: retire pr_drain and use EVENTHANDLER(9) directly 2022-08-17 11:50:31 -07:00
sctp_pcb.h protosw: retire pr_drain and use EVENTHANDLER(9) directly 2022-08-17 11:50:31 -07:00
sctp_peeloff.c sctp: Remove an unused sctp_inpcb field 2021-09-07 11:19:29 -04:00
sctp_peeloff.h
sctp_ss_functions.c sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_structs.h sctp: cleanup, no functional change 2022-06-08 22:35:14 +02:00
sctp_syscalls.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sctp_sysctl.c Adjust sctp_init_sysctls() definition to avoid clang 15 warning 2022-07-25 22:08:35 +02:00
sctp_sysctl.h sctp: fix typos 2022-03-29 21:09:51 +02:00
sctp_timer.c Fix unused variable warning in sctp_timer.c 2022-07-25 22:08:28 +02:00
sctp_timer.h net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
sctp_uio.h sctp: get rid of stcb send lock 2022-03-29 01:50:17 +02:00
sctp_usrreq.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
sctp_var.h protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
sctputil.c sctp: improve handling of sctp inpcb flags 2022-06-04 07:38:19 +02:00
sctputil.h sctp: more sb_cc related cleanups 2022-05-23 16:09:23 +02:00
siftr.c siftr: expose t_flags2 in siftr output 2022-04-07 10:17:09 +01:00
tcp.h tcp: LRO code to deal with all 12 TCP header flags 2022-02-01 18:41:36 +01:00
tcp_accounting.h This brings into sync FreeBSD with the netflix versions of rack and bbr. 2021-05-06 11:22:26 -04:00
tcp_debug.c protosw: retire PRU_ flags and their char names 2022-08-17 11:50:32 -07:00
tcp_debug.h protosw: retire PRU_ flags and their char names 2022-08-17 11:50:32 -07:00
tcp_ecn.c tcp: Functional implementation of Accurate ECN 2022-08-31 15:05:53 +02:00
tcp_ecn.h tcp: Functional implementation of Accurate ECN 2022-08-31 15:05:53 +02:00
tcp_fastopen.c net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
tcp_fastopen.h Use stub inline functions for no-op versions of tcp_fastopen*(). 2022-04-08 17:25:13 -07:00
tcp_fsm.h tcp: Remove unused v6 state definitions 2021-08-27 08:31:32 -04:00
tcp_hostcache.c tcp(4): Fix a typo in a sysctl description 2021-11-30 07:17:30 +01:00
tcp_hpts.c Fix unused variable warnings in tcp_hpts.c 2022-08-15 20:48:34 +02:00
tcp_hpts.h tcp - hpts timing is off when we are above 1200 connections. 2022-04-14 16:04:08 -04:00
tcp_input.c tcp: finish SACK loss recovery on sudden lack of SACK blocks 2022-08-31 14:49:47 +02:00
tcp_log_buf.c prometheus_sysctl_exporter: fix metric aliasing 2022-04-19 06:56:39 -06:00
tcp_log_buf.h tcp: Rack rwnd collapse. 2022-08-23 09:17:05 -04:00
tcp_lro.c TCP Lro has a loss of timestamp precision and reorders packets. 2022-08-23 09:12:31 -04:00
tcp_lro.h tcp: Avoid conditionally defined fields in union lro_address 2022-02-10 15:39:58 -05:00
tcp_offload.c Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_offload.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
tcp_output.c tcp: Functional implementation of Accurate ECN 2022-08-31 15:05:53 +02:00
tcp_pcap.c tcp: fix TCPPCAP for kernels enabling VNET 2022-06-15 23:28:54 +02:00
tcp_pcap.h
tcp_ratelimit.c tcp_ratelimit: Handle some edge cases with TLS + RL send tags. 2022-01-31 16:40:04 -08:00
tcp_ratelimit.h This takes Warners suggested approach to making it so that 2021-05-07 17:32:32 -04:00
tcp_reass.c tcp: Access all 12 TCP header flags via inline function 2022-02-03 16:21:58 +01:00
tcp_sack.c tcp: exclude KASSERTS when rescue retransmissions are in play. 2022-06-08 14:51:31 +02:00
tcp_seq.h tcp: Correctly compute the retransmit length for all 64-bit platforms. 2022-06-03 10:49:17 +02:00
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 mbufs: isolate max_linkhdr and max_protohdr handling in the mbuf code 2022-08-29 19:14:25 -07:00
tcp_syncache.c tcp: fix stats counter for SYN_RCVD state when TCP-FO is used 2022-08-28 18:45:59 +02:00
tcp_syncache.h tcp: Add/update AccECN related statistics and numbers 2022-02-10 00:21:31 +01:00
tcp_timer.c protosw: retire PRU_ flags and their char names 2022-08-17 11:50:32 -07:00
tcp_timer.h tcp: virtualise net.inet.tcp.msl sysctl. 2021-12-26 14:56:04 +00:00
tcp_timewait.c sockets: use only soref()/sorele() as socket reference count 2022-07-04 12:40:51 -07:00
tcp_usrreq.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
tcp_var.h tcp: Functional implementation of Accurate ECN 2022-08-31 15:05:53 +02:00
tcpip.h
toecore.c tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
toecore.h Path MTU discovery hooks for offloaded TCP connections. 2021-04-21 13:00:16 -07:00
udp.h headers: make a few more headers self-contained 2022-01-03 10:12:30 +01:00
udp_usrreq.c protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
udp_var.h protosw: refactor protosw and domain static declaration and load 2022-08-17 11:50:32 -07:00
udplite.h White space cleanup -- remove trailing tab's or spaces 2020-02-12 13:31:36 +00:00