opnsense-src/sys
Andrew Gallatin 28d0a740dd ktls: auto-disable ifnet (inline hw) kTLS
Ifnet (inline) hw kTLS NICs typically keep state within
a TLS record, so that when transmitting in-order,
they can continue encryption on each segment sent without
DMA'ing extra state from the host.

This breaks down when transmits are out of order (eg,
TCP retransmits).  In this case, the NIC must re-DMA
the entire TLS record up to and including the segment
being retransmitted.  This means that when re-transmitting
the last 1448 byte segment of a TLS record, the NIC will
have to re-DMA the entire 16KB TLS record. This can lead
to the NIC running out of PCIe bus bandwidth well before
it saturates the network link if a lot of TCP connections have
a high retransmoit rate.

This change introduces a new sysctl (kern.ipc.tls.ifnet_max_rexmit_pct),
where TCP connections with higher retransmit rate will be
switched to SW kTLS so as to conserve PCIe bandwidth.

Reviewed by:	hselasky, markj, rrs
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D30908
2021-07-06 10:28:32 -04:00
..
amd64 On a failed fcmpset don't pointlessly repeat tests 2021-07-05 21:07:40 -05:00
arm armv7: allwinner: Add aw_r_intc driver 2021-07-05 11:38:23 +02:00
arm64 On a failed fcmpset don't pointlessly repeat tests 2021-07-05 21:07:40 -05:00
bsm
cam cam: drop unused 'saved_ccb' field from softcs 2021-07-06 10:04:38 +01:00
cddl fbt: Remove some handling for multiple CTF containers 2021-04-02 17:49:13 -04:00
compat LinuxKPI: Implement sequence counters and sequential locks 2021-07-05 03:20:55 +03:00
conf arm64: allwinner: Add r_intc driver 2021-07-01 18:46:38 +02:00
contrib dts: fsl-ls1028a: Correct ECAM PCIE window ranges 2021-07-01 20:23:40 +02:00
crypto ossl: Use crypto_cursor_segment(). 2021-05-25 16:59:19 -07:00
ddb fix style nit: space after if 2021-05-05 15:26:09 -06:00
dev enetc: Add support for 2.5G fixed-link speed 2021-07-06 09:01:30 +02:00
dts dts: Bump the freebsd branding version to 5.13 2021-07-01 18:48:56 +02:00
fs nfscl: Improve "Consider increasing kern.ipc.maxsockbuf" message 2021-06-30 15:15:41 -07:00
gdb gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
geom geom_label: Remove an old sysinstall(8) workaround 2021-07-05 16:15:32 +01:00
gnu
i386 Add infrastructure required for Linux coredump support 2021-06-29 08:49:12 +01:00
isa newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf 2021-06-22 20:52:06 -06:00
kern ktls: auto-disable ifnet (inline hw) kTLS 2021-07-06 10:28:32 -04:00
kgssapi opencrypto: Introduce crypto_dispatch_async() 2021-02-08 09:19:19 -05:00
libkern Use '.arch_extension crc' in the arm64 crc32 code 2021-05-06 07:42:35 +00:00
mips Add infrastructure required for Linux coredump support 2021-06-29 08:49:12 +01:00
modules linux(4): implement coredumps on arm64 2021-07-03 08:06:31 +01:00
net pf: padalign global locks found in pf.c 2021-07-05 09:56:54 +00:00
net80211 net80211: ieee80211_probereq_ie fix length calculation for hw scans 2021-06-28 12:17:11 +00:00
netgraph Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
netinet ktls: auto-disable ifnet (inline hw) kTLS 2021-07-06 10:28:32 -04:00
netinet6 sctp: initialize sequence numbers for ECN correctly 2021-06-27 20:14:48 +02:00
netipsec ipsec: globalize lft zone and zero out buffers at allocation time 2021-06-28 08:14:26 +00:00
netpfil pf: padalign global locks found in pf.c 2021-07-05 09:56:54 +00:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-05-26 10:45:40 -04:00
nfs Fix panic when using BOOTP to resolve root path. 2021-03-28 14:02:40 -05:00
nfsclient nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nfsserver nfs: Cleanup dead files 2021-03-17 06:16:31 +11:00
nlm
ofed mlx4/OFED: replace the struct net_device with struct ifnet 2021-06-18 21:20:08 +00:00
opencrypto crypto: Remove now-unused crypto_cursor_seg{base,len}. 2021-06-16 15:23:16 -07:00
powerpc Add infrastructure required for Linux coredump support 2021-06-29 08:49:12 +01:00
riscv riscv: Implement non-stub __vdso_gettc and __vdso_gettimekeep 2021-07-05 16:16:53 +01:00
rpc Consistently use the SOLISTENING() macro 2021-06-14 17:32:27 -04:00
security mac: cheaper check for ifnet_create_mbuf and ifnet_check_transmit 2021-06-29 15:06:45 +02:00
sys ktls: auto-disable ifnet (inline hw) kTLS 2021-07-06 10:28:32 -04:00
teken
tests tests: Revise FIB lookups per second benchmarking routines 2021-06-17 08:49:09 +02:00
tools makesyscalls.lua: improve generated file style(9) compliance 2021-05-13 13:59:25 -04:00
ufs ffs_softdep: force sync if journal is low in journal_check_space 2021-06-23 23:47:05 +03:00
vm Un-staticise vm_page_init_page() 2021-06-17 16:58:44 +03:00
x86 Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
xdr
xen x86/xen: remove PVHv1 code 2021-05-17 11:41:21 +02:00
Makefile