opnsense-src/sys/dev/cxgbe/tom
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
..
t4_connect.c cxgbe(4): Overhaul CLIP (Compressed Local IPv6) table management. 2021-05-23 16:07:29 -07:00
t4_cpl_io.c tcp: TCP output method can request tcp_drop 2021-12-26 08:48:19 -08:00
t4_ddp.c cxgbe tom: Update rcv_nxt for a FIN after handle_ddp_close(). 2021-09-14 13:46:14 -07:00
t4_listen.c routing: Allow using IPv6 next-hops for IPv4 routes (RFC 5549). 2021-08-22 22:56:08 +00:00
t4_tls.c cxgbe tom: Remove orphaned function max_imm_tls_space(). 2021-06-16 11:39:39 -07:00
t4_tls.h cxgbe: De-duplicate some of the code for managing TLS key contexts. 2021-06-15 17:45:32 -07:00
t4_tom.c cxgbe tom: Don't queue AIO requests on listen sockets. 2021-09-14 13:46:14 -07:00
t4_tom.h cxgbei: Wait for the final CPL to be received in icl_cxgbei_conn_close. 2021-08-12 08:48:35 -07:00
t4_tom_l2t.c cxgbe/t4_tom: Use stale L2T entry and avoid busy-waiting for resolution. 2021-09-08 20:55:47 -07:00
t4_tom_l2t.h sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00