opnsense-src/sys
John Baldwin c261b6ea4e 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
2021-08-18 10:56:28 -07:00
..
amd64 vmm: Add credential to cdev object 2021-08-18 13:41:33 -04:00
arm arm: hide busdma statistics behind ifdef ARM_BUSDMA_MAPLOAD_STATS 2021-08-18 17:24:53 +02:00
arm64 Enable arm64 SError exceptions in the kernel 2021-08-12 08:53:06 +00:00
bsm Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
cam iscsi: Teach the iSCSI stack about "large" received PDUs. 2021-08-18 10:56:28 -07:00
cddl sys/cddl: remove extraneous semicolons 2021-08-16 10:29:44 -04:00
compat linux(4): Improve comment. 2021-08-13 11:36:42 +03:00
conf kvm_clock: KVM paravirtual clock support 2021-08-14 15:57:54 +03:00
contrib routing: Fix crashes with dpdk_lpm[46] algo. 2021-08-17 20:46:22 +00:00
crypto Use arm64 sha256 intrinsics in libmd 2021-08-11 10:20:48 +00:00
ddb
dev iscsi: Teach the iSCSI stack about "large" received PDUs. 2021-08-18 10:56:28 -07:00
dts Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
fs nfsd: Fix sanity check for NFSv4.2 Allocate operations 2021-08-12 16:48:28 -07:00
gdb
geom geom_disk: Add KMSAN checks 2021-08-11 16:33:41 -04:00
gnu
i386 kvm_clock: KVM paravirtual clock support 2021-08-14 15:57:54 +03: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 uipc: avoid circular pr_{slow,fast}timos 2021-08-18 12:46:54 -05:00
kgssapi
libkern arc4random: Avoid KMSAN false positives from pre-seeding results 2021-08-13 09:58:42 -04:00
mips Fix a common typo in source code comments 2021-08-14 14:08:46 +02:00
modules zfs: merge openzfs/zfs@8ae86e2ed (master) into main 2021-08-17 21:10:44 +02:00
net gre: simplify RSS ifdefs 2021-08-18 10:05:29 -07:00
net80211 Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
netgraph Fix a few typos in source code comments 2021-08-14 09:39:17 +02:00
netinet tcp: Add support for DSACK based reordering window to rack. 2021-08-17 16:29:22 -04:00
netinet6 frag6: do less work in frag6_slowtimo if possible 2021-08-14 18:51:00 +02:00
netipsec ipsec: fix race condition in key.c 2021-08-13 12:52:38 +02:00
netpfil pf: assert dir state on pf_test{,6} 2021-08-17 21:56:50 +02:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-05-26 10:45:40 -04:00
nfs
nfsclient
nfsserver
nlm
ofed ibcore: Kernel space update based on Linux 5.7-rc1. 2021-07-28 13:28:29 +02:00
opencrypto Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
powerpc powerpc/pseries: Allow radix pmap in pseries for ISA 3.0 2021-08-11 19:07:04 -05:00
riscv riscv: Fix pmap_alloc_l2 when it should allocate a new L1 entry 2021-08-09 20:28:37 +01:00
rpc rpc: Make function tables const 2021-08-14 11:26:12 -04:00
security Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
sys Introduce m_get3() 2021-08-18 08:48:27 +02:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
ufs ufs rename: ensure that the result of ufs_checkpath() is stable 2021-08-13 17:52:26 +03:00
vm Fix a few typos in source code comments 2021-08-14 09:06:09 +02:00
x86 pvclock: Add vDSO support 2021-08-14 15:57:54 +03:00
xdr
xen xen: introduce xen_pv_disks_disabled() 2021-07-28 17:27:04 +02:00
Makefile