[PATCH net-next v4 00/10] net: ntb_netdev: Preserve checksum offload across NTB

From: Koichiro Den

Date: Mon Sep 14 2026 - 04:53:57 EST


Hi,

ntb_netdev may be used on embedded systems, where CPU resources are
often limited. L4 checksum calculation can therefore become a bottleneck
even when traffic stays within a trusted PCIe fabric.

This series carries CHECKSUM_PARTIAL across NTB in an ntb_netdev header.
A per-payload metadata bit in ntb_transport marks its presence. Receive
support is exchanged at QP link-up through scratchpads. Peers without
capability exchange continue to use software checksumming. The feature
remains disabled by default and must be enabled explicitly on trusted
links. RX checksum offload settings stay unchanged while the interface
is up.

Best regards,
Koichiro
---
Changes in v4:
- Move offload metadata into an ntb_netdev header (Jakub)
- Add an RX entry completion ordering fix (Sashiko)
- Learn checksum support from link events, not RX callbacks, and keep
it per QP (Sashiko)
https://lore.kernel.org/r/xsaocp32a6siggahziu4jqbwgmdasmp6v64pd5aujfkoxhiqws@n5luestlntzc/
- Advertise receive support only with RXCSUM enabled. Drop
partial-checksum frames when it is disabled (Sashiko)
- Keep local QP link requests separate from peer readiness
- Reject short RX frames before parsing them
- Factor out RX packet and byte accounting
- Add a transport API to exchange client capabilities at QP link-up
- Keep NETIF_F_RXCSUM unchanged while the interface is up

Changes in v3:
- Rebase after the related ntb_netdev fixes landed in net-next
- Avoid counting RX checksum failures as both errors and drops (Jakub)
- Reject csum_start below ETH_HLEN on RX and fall back to software on
TX (Jakub)
- Use READ_ONCE() for hdr->ver and hdr->len (Sashiko)

Changes in v2:
- Reset peer checksum capability on every link event (Sashiko)
- Add prerequisite fixes for RX ordering and shared field endianness
(Sashiko)

v3: https://lore.kernel.org/r/20260904052134.2970111-1-den@xxxxxxxxxxxxx/
v2: https://lore.kernel.org/r/20260817064916.13278-1-den@xxxxxxxxxxxxx/
v1: https://lore.kernel.org/r/20260814032913.3558500-1-den@xxxxxxxxxxxxx/


Koichiro Den (10):
NTB: ntb_transport: Order RX descriptor reads after completion
NTB: ntb_transport: Use little-endian shared fields
NTB: ntb_transport: Order RX entry completion
NTB: ntb_transport: Keep local QP link requests separate
NTB: ntb_transport: Exchange client capabilities at link-up
NTB: ntb_transport: Add per-payload client metadata
net: ntb_netdev: Reject short RX frames
net: ntb_netdev: Factor out RX statistics update
net: ntb_netdev: Introduce an optional packet header, ntb_netdev_hdr
net: ntb_netdev: Preserve CHECKSUM_PARTIAL across NTB

drivers/net/ntb_netdev.c | 191 ++++++++++++++++++++++++++++------
drivers/ntb/ntb_transport.c | 177 +++++++++++++++++++++++--------
include/linux/ntb_transport.h | 12 ++-
3 files changed, 303 insertions(+), 77 deletions(-)


base-commit: 879e280b8486d4612ad1aa050d6fada2dd80cf1c
prerequisite-patch-id: 0000000000000000000000000000000000000000
--
2.51.0