freebsd-skq/sys/netinet
Andrew Gallatin b99781834f TCP: remove special treatment for hardware (ifnet) TLS
Remove most special treatment for ifnet TLS in the TCP stack, except
for code to avoid mixing handshakes and bulk data.

This code made heroic efforts to send down entire TLS records to
NICs. It was added to improve the PCIe bus efficiency of older TLS
offload NICs which did not keep state per-session, and so would need
to re-DMA the first part(s) of a TLS record if a TLS record was sent
in multiple TCP packets or TSOs. Newer TLS offload NICs do not need
this feature.

At Netflix, we've run extensive QoE tests which show that this feature
reduces client quality metrics, presumably because the effort to send
TLS records atomically causes the server to both wait too long to send
data (leading to buffers running dry), and to send too much data at
once (leading to packet loss).

Reviewed by:	hselasky,  jhb, rrs
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D26103
2020-08-19 17:59:06 +00:00
..
cc TCP Cubic: recalculate cwnd for every ACK. 2020-08-18 19:34:31 +00:00
khelp
libalias libalias: retire cuseeme support 2020-05-16 02:29:10 +00:00
netdump Use zfree() instead of explicit_bzero() and free(). 2020-06-25 20:17:34 +00:00
tcp_stacks TCP: remove special treatment for hardware (ifnet) TLS 2020-08-19 17:59:06 +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
dccp.h Add header definition for RFC4340, Datagram Congestion Control Protocol 2020-06-17 13:27:13 +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 Complete conversions from fib<4|6>_lookup_nh_<basic|ext> to fib<4|6>_lookup(). 2020-07-02 21:04:08 +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 Complete conversions from fib<4|6>_lookup_nh_<basic|ext> to fib<4|6>_lookup(). 2020-07-02 21:04:08 +00:00
in_fib.h Complete conversions from fib<4|6>_lookup_nh_<basic|ext> to fib<4|6>_lookup(). 2020-07-02 21:04:08 +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 Use a static initializer for the multicast free tasks. 2020-08-11 08:31:40 +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 Simplify dom_<rtattach|rtdetach>. 2020-08-14 21:29:56 +00:00
in_rmx.c Simplify dom_<rtattach|rtdetach>. 2020-08-14 21:29:56 +00:00
in_rss.c
in_rss.h
in_systm.h
in_var.h Simplify dom_<rtattach|rtdetach>. 2020-08-14 21:29:56 +00:00
in.c Make sure the multicast release tasks are properly drained when 2020-08-10 10:46:08 +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 Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +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 Fix a possible next-hop refcount leak when handling IPSec traffic. 2020-07-01 15:42:48 +00:00
ip_mroute.c Rather than zeroing MAXVIFS times size of pointer [r362289] (still better than 2020-06-21 22:09:30 +00:00
ip_mroute.h
ip_options.c Complete conversions from fib<4|6>_lookup_nh_<basic|ext> to fib<4|6>_lookup(). 2020-07-02 21:04:08 +00:00
ip_options.h
ip_output.c Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +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 Improve the error handling in generating ASCONF chunks. 2020-07-14 20:32:50 +00:00
sctp_asconf.h Remove last argument of sctp_addr_mgmt_ep_sa(), since it is not used. 2020-06-19 12:35:29 +00:00
sctp_auth.c Non-functional changes due to upstream cleanup. 2020-06-11 13:34:09 +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 Detect and handle an invalid reassembly constellation, which results in 2020-07-23 01:35:24 +00:00
sctp_crc32.c No need to include netinet/sctp_crc32.h twice. 2020-06-22 14:36:14 +00:00
sctp_crc32.h Add the SCTP_SUPPORT kernel option. 2020-06-18 19:32:34 +00:00
sctp_header.h
sctp_indata.c Detect and handle an invalid reassembly constellation, which results in 2020-07-23 01:35:24 +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 Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +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 Improve the locking of address lists by adding some asserts and 2020-07-17 15:09:49 +00:00
sctp_module.c Provide support for building SCTP as a loadable module. 2020-07-10 14:56:05 +00:00
sctp_os_bsd.h Add reference counts for inp/stcb/net when timers are running. 2020-07-19 12:34:19 +00:00
sctp_os.h Non-functional changes due to cleanup (upstream removing of Panda support) 2020-06-06 18:20:09 +00:00
sctp_output.c Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +00:00
sctp_output.h Non-functional changes due to upstream cleanup. 2020-06-11 13:34:09 +00:00
sctp_pcb.c Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +00:00
sctp_pcb.h More cleanups due to ifdef cleanup done upstream 2020-06-12 16:31:13 +00:00
sctp_peeloff.c Non-functional changes due to upstream cleanup. 2020-06-11 13:34:09 +00:00
sctp_peeloff.h
sctp_ss_functions.c Cleanups, no functional change. 2020-06-14 09:50:00 +00:00
sctp_structs.h Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +00:00
sctp_syscalls.c Cleanup, no functional change intended. 2020-07-12 18:34:09 +00:00
sctp_sysctl.c Whitespace cleanups and removal of a stale comment. 2020-06-08 20:23:20 +00:00
sctp_sysctl.h Retire SCTP_SO_LOCK_TESTING. 2020-06-07 14:39:20 +00:00
sctp_timer.c Non-functional changes due to upstream cleanup. 2020-06-11 13:34:09 +00:00
sctp_timer.h More timer cleanups, no functional change. 2020-03-21 16:12:19 +00:00
sctp_uio.h Cleanup the defintion of struct sctp_getaddresses. This stucture 2020-06-21 23:12:56 +00:00
sctp_usrreq.c Fix two bugs I introduced in r362563. 2020-08-18 19:25:03 +00:00
sctp_var.h Add reference counts for inp/stcb/net when timers are running. 2020-07-19 12:34:19 +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 Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +00:00
sctputil.h Improve the handling of concurrent send() calls for SCTP sockets, 2020-08-16 11:50:37 +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 Improve SACK support code for RFC6675 and PRR 2020-08-13 16:30:09 +00:00
tcp_log_buf.c An important statistic in determining if a server process (or client) is being delayed 2020-06-08 11:48:07 +00:00
tcp_log_buf.h An important statistic in determining if a server process (or client) is being delayed 2020-06-08 11:48:07 +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 TCP: remove special treatment for hardware (ifnet) TLS 2020-08-19 17:59:06 +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 Improve SACK support code for RFC6675 and PRR 2020-08-13 16:30:09 +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 The recent changes to move the ref count increment 2020-07-31 10:03:32 +00:00
tcp_syncache.c Fix the following issues related to the TCP SYN-cache: 2020-08-10 20:24:48 +00:00
tcp_syncache.h Fix the following issues related to the TCP SYN-cache: 2020-08-10 20:24: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 (Re)-allow 0.0.0.0 to be used as an address in connect() for TCP 2020-07-16 16:46:24 +00:00
tcp_var.h Improve SACK support code for RFC6675 and PRR 2020-08-13 16:30:09 +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 IPV6_PKTINFO support for v4-mapped IPv6 sockets 2020-08-07 15:13:53 +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