opnsense-src/sys/dev/cxgbe
John Baldwin 51983604da iscsi: Teach the iSCSI stack about "large" received PDUs.
When using iSCSI PDU offload (cxgbei) on T6 adapters, a burst of
received PDUs can be reported via a single message to the driver.

Previously the driver passed these multi-PDU bursts up to the iSCSI
stack up as a single "large" PDU by rewriting the buffer offset, data
segment length, and DataSN fields in the iSCSI header.  The DataSN
field in particular was rewritten so that each of the "large" PDUs
used consecutively increasing values.  While this worked, the forged
DataSN values did not match the ExpDataSN value in the subsequent SCSI
Response PDU.  The initiator does not currently verify this value, but
the forged DataSN values prevent adding a check.

To avoid this, allow a logical iSCSI PDU (struct icl_pdu) to describe
a burst of PDUs via a new 'ip_additional_pdus' field.  Normally this
field is set to zero when 'struct icl_pdu' represents a single PDU.
If logical PDU represents a burst of on-the-wire PDUs, then 'ip_npdus'
contains the count of additional on-the-wire PDUs.  The header of this
"large" PDU is still modified, but the DataSN field now contains the
DataSN value of the first on-the-wire PDU in the burst.

Reviewed by:	mav
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D31577

(cherry picked from commit c261b6ea4e)
2021-10-29 16:30:51 -07:00
..
common cxgbe(4): Display HMA information in meminfo. 2021-10-20 10:48:22 -07:00
crypto cryptosoft: Fix support for variable tag lengths in AES-CCM. 2021-10-21 14:19:04 -07:00
cudbg Fix some common typos in source code comments 2021-08-31 08:13:15 +02:00
cxgbei iscsi: Teach the iSCSI stack about "large" received PDUs. 2021-10-29 16:30:51 -07:00
firmware cxgbe(4): Update firmwares to 1.26.2.0. 2021-10-20 10:36:34 -07:00
iw_cxgbe cxgbe/iw_cxgbe: Support for 512 SGL entries in one memory registration. 2021-10-20 10:32:18 -07:00
tom cxgbei: Wait for the final CPL to be received in icl_cxgbei_conn_close. 2021-10-29 16:27:31 -07:00
adapter.h cxgbei: Support for ISO (iSCSI segmentation offload). 2021-10-29 16:27:10 -07:00
if_cc.c
if_ccv.c
if_cxl.c
if_cxlv.c
offload.h cxgbei: Support for ISO (iSCSI segmentation offload). 2021-10-29 16:27:10 -07:00
osdep.h cxgbe(4): make the logging helpers a little more robust. 2021-05-15 20:26:22 -07:00
t4_clip.c cxgbe(4): Empty the clib_db before trying to destroy it. 2021-10-20 10:16:58 -07:00
t4_clip.h cxgbe(4): Overhaul CLIP (Compressed Local IPv6) table management. 2021-10-20 10:05:02 -07:00
t4_filter.c cxgbe(4): Add support for NIC suspend/resume and live reset. 2021-10-20 06:59:41 -07:00
t4_if.m
t4_ioctl.h cxgbe(4): Overhaul CLIP (Compressed Local IPv6) table management. 2021-10-20 10:05:02 -07:00
t4_iov.c cxgbe(4): Allow the PF driver to set a VF's MAC address. 2020-11-09 00:08:35 +00:00
t4_l2t.c
t4_l2t.h
t4_main.c cxgbei: Support for ISO (iSCSI segmentation offload). 2021-10-29 16:27:10 -07:00
t4_mp_ring.c cxgbe(4): changes in the Tx path to help increase tx coalescing. 2020-07-03 04:44:23 +00:00
t4_mp_ring.h cxgbe(4): changes in the Tx path to help increase tx coalescing. 2020-07-03 04:44:23 +00:00
t4_netmap.c cxgbe(4): Separate the sw- and hw-specific parts of resource allocations 2021-10-20 06:55:38 -07:00
t4_sched.c cxgbe(4): Do not configure traffic classes automatically on attach. 2021-10-20 10:35:14 -07:00
t4_sge.c cxgbei: Support for ISO (iSCSI segmentation offload). 2021-10-29 16:27:10 -07:00
t4_smt.c
t4_smt.h
t4_tracer.c cxgbe(4): Add support for NIC suspend/resume and live reset. 2021-10-20 06:59:41 -07:00
t4_vf.c cxgbe(4): Break up t4_read_chip_settings. 2021-05-15 19:45:16 -07:00