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

From: Koichiro Den

Date: Fri Oct 09 2026 - 01:13:40 EST


On Mon, Sep 14, 2026 at 05:48:28PM +0900, Koichiro Den wrote:
> 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.

Thanks to Joe (and Sashiko) for reviewing v4.

It's been a few weeks (almost one month) since v4, so just just a quick update:
I plan to send v5 once the NTB transport fixes below reach net-next.

[PATCH v3 00/15] NTB: ntb_transport: Miscellaneous fixes
https://lore.kernel.org/r/20260928152550.3354675-1-den@xxxxxxxxxxxxx/

Best regards,
Koichiro Den

>
> 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
>