opnsense-src/sys/dev/cxgbe
John Baldwin a5a965d759 cxgbe tom: Enable ULP_MODE_TCPDDP on demand
Most ULP modes in cxgbe's TOE are enabled on the fly when a protocol
is needed (e.g. ULP_MODE_ISCSI is enabled by cxgbei when offloading a
connection using iSCSI, and ULP_MODE_TLS is enabled when RX TLS keys
are programmed for a TOE connection).  The one exception to this is
ULP_MODE_TCPDDP.

Currently the cxgbe driver enables ULP_MODE_TCPDDP when a TOE
connection is first created.  However, since DDP connections cannot be
converted to other connection types, this requires some special
handling in the driver.  For example, iSCSI daemons use the SO_NO_DDP
socket option to ensure TOE connections use ULP_MODE_NONE so they can
be converted to ULP_MODE_ISCSI.  Similarly, using TLS receive offload
(ULP_MODE_TLS) requires disabling TCP DDP for new connections by
default.

This commit changes cxgbe to instead switch a connection from
ULP_MODE_NONE to ULP_MODE_TCPDDP when a connection first attempts to
use TCP DDP via aio_read(2).  This permits connections to always start
as ULP_MODE_NONE and switch to a protocol-specific mode as needed.

Reviewed by:	np
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D43670
2024-01-30 16:41:43 -08:00
..
common cxgbe(4): Use the correct size for the CIM LA on the T6. 2024-01-09 13:27:00 -08:00
crypto sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
cudbg sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
cxgbei sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
firmware cxgbe(4): Update firmwares to 1.27.5.0 2024-01-04 12:37:27 -08:00
iw_cxgbe sockets: don't malloc/free sockaddr memory on getpeername/getsockname 2023-11-30 08:31:10 -08:00
tom cxgbe tom: Enable ULP_MODE_TCPDDP on demand 2024-01-30 16:41:43 -08:00
adapter.h cxgbe: Add counters for POSIX async I/O requests handled by the driver 2024-01-30 16:40:31 -08:00
if_cc.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
if_ccv.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
if_cxl.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
if_cxlv.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
offload.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
osdep.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_clip.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
t4_clip.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_filter.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
t4_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
t4_ioctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_iov.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
t4_l2t.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
t4_l2t.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_main.c cxgbe tom: Limit TOE connections to 2 reassembly islands always 2024-01-30 16:41:23 -08:00
t4_mp_ring.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
t4_mp_ring.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_netmap.c cxgbe(4): Add support for netmap offsets. 2024-01-08 12:04:07 -08:00
t4_sched.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
t4_sge.c cxgbe: Add counters for POSIX async I/O requests handled by the driver 2024-01-30 16:40:31 -08:00
t4_smt.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
t4_smt.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
t4_tracer.c cxgbe(4): Fix tracing with netlink enabled kernels. 2023-09-10 07:06:32 -07:00
t4_vf.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00