opnsense-src/sys
Gleb Smirnoff f64dc2ab5b tcp: TCP output method can request tcp_drop
The advanced TCP stacks (bbr, rack) may decide to drop a TCP connection
when they do output on it.  The default stack never does this, thus
existing framework expects tcp_output() always to return locked and
valid tcpcb.

Provide KPI extension to satisfy demands of advanced stacks.  If the
output method returns negative error code, it means that caller must
call tcp_drop().

In tcp_var() provide three inline methods to call tcp_output():
- tcp_output() is a drop-in replacement for the default stack, so that
  default stack can continue using it internally without modifications.
  For advanced stacks it would perform tcp_drop() and unlock and report
  that with negative error code.
- tcp_output_unlock() handles the negative code and always converts
  it to positive and always unlocks.
- tcp_output_nodrop() just calls the method and leaves the responsibility
  to drop on the caller.

Sweep over the advanced stacks and use new KPI instead of using HPTS
delayed drop queue for that.

Reviewed by:		rrs, tuexen
Differential revision:	https://reviews.freebsd.org/D33370
2021-12-26 08:48:19 -08:00
..
amd64 sysent: regenerate 2021-12-16 20:56:28 -06:00
arm tegra/ahci: do not advertise enclosure management facility 2021-12-24 20:36:46 +01:00
arm64 tegra210: Implement new get_gate method for tegra210 clocks. 2021-12-24 19:43:48 +01:00
bsm
cam adaspindown: check disk power mode before sending IDLE command 2021-12-24 11:02:22 +02:00
cddl dtrace: Disable getf() as it is broken on FreeBSD 2021-12-17 13:10:22 -05:00
compat LinuxKPI: Replace missed Giant with bus_topo_lock. 2021-12-25 22:02:07 -05:00
conf arm64: Don't rely on host readelf for u-boot booti image generation 2021-12-24 19:25:20 +00:00
contrib ipfilter: Move kernel bits to netpfil 2021-12-20 06:16:33 -08:00
crypto aesni: Fix an out-of-bounds read in AES_GCM_decrypt() 2021-12-16 09:17:06 -05:00
ddb
dev tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
dts add rk3328 overlay for enabling analog sound 2021-11-13 11:09:23 +02:00
fs rpc: Delete AUTH_NEEDS_TLS(_MUTUAL_HOST) auth_stat values 2021-12-23 14:31:53 -08:00
gdb
geom geom(4): Fix some of the "set but not used" warnings 2021-12-18 11:42:34 +00:00
gnu
i386 sysent: regenerate 2021-12-16 20:56:28 -06:00
isa
kern Fix buffer overread in preloaded hostuuid parsing 2021-12-22 16:47:23 +00:00
kgssapi
libkern
mips mips: Implement suword16 2021-12-19 12:48:49 +00:00
modules ipfilter: Move kernel bits to netpfil 2021-12-20 06:16:33 -08:00
net pf: make if_pfsync.h self-contained 2021-12-17 12:38:35 +01:00
net80211 net80211: fix debug printf 2021-12-23 15:21:32 +00:00
netgraph ng_pppoe: plug set-but-not-used vars 2021-12-15 12:32:40 +00:00
netinet tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
netinet6 inet6: fix a LOR between rip and rawinp 2021-12-19 14:43:04 +00:00
netipsec crypto: Consistently use AES instead of Rijndael128 for the AES-CBC cipher. 2021-12-16 13:47:27 -08:00
netpfil ipfilter: Move kernel bits to netpfil 2021-12-20 06:16:33 -08:00
netsmb
nfs nfs: don't truncate directory cookies to 32-bits in the NFS server 2021-12-15 20:54:57 -07:00
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto cryptodev.h: Drop 'extern' from function prototypes. 2021-12-21 12:33:49 -08:00
powerpc [PowerPC] PowerMac timebase sync for G4 2021-12-23 16:06:07 -06:00
riscv riscv: Fix PLIC -Wunused-but-set-variable warnings 2021-12-10 04:51:32 +00:00
rpc rpc: Delete AUTH_NEEDS_TLS(_MUTUAL_HOST) auth_stat values 2021-12-23 14:31:53 -08:00
security Thread creation privilege for realtime group 2021-12-15 00:01:58 +02:00
sys sys: make filedesc.h self-contained 2021-12-17 12:38:35 +01:00
teken
tests
tools arm64: Don't rely on host readelf for u-boot booti image generation 2021-12-24 19:25:20 +00:00
ufs Change VOP_READDIR's cookies argument to a **uint64_t 2021-12-15 20:54:57 -07:00
vm vm_page: Move a comment 2021-12-24 16:10:30 -06:00
x86 x86: Remove CTLFLAG_NEEDGIANT from sysctls. 2021-12-25 22:24:20 -05:00
xdr
xen Create wrapper for Giant taken for newbus 2021-12-09 17:04:45 -07:00
Makefile