[PATCH net-next 0/6] eth: mpnic: checksum and segmentation offloads
From: Daniel Zahka
Date: Fri Nov 06 2026 - 06:36:15 EST
Add checksum and segmentation offload support. Tx checksum offload
follows the generic csum_start/csum_offset model. Rx checksum also
follows the normal unnecessary/complete model. The device can validate l4
checksums for tcp or udp, when the l3 type is one of: ipv4, ipv6,
ipv4-in-ipv6, or ipv6-in-ipv6. The full l2 checksum of a frame is always
passed to driver via a Rx completion descriptor field, which can be used
for checksum complete on other packet types.
Tx segmentation supports tcp or udp in ipv4, ipv6, 4-in-6, or 6-in-6
natively, and can support most other tunnels with GSO_PARTIAL.
Counters for CSO/LSO are exported via the netdev qstats API.
Signed-off-by: Daniel Zahka <daniel.zahka@xxxxxxxxx>
---
Daniel Zahka (6):
eth: mpnic: Tx checksum offload
eth: mpnic: Rx checksum offload
eth: mpnic: TCP segmentation offload
eth: mpnic: UDP segmentation offload
eth: mpnic: IPv4 and IPv6 in IPv6 tunnel segmentation
eth: mpnic: add GSO_PARTIAL for other tunnels
drivers/net/ethernet/meta/mpnic/mpnic_csr.h | 41 +++++
drivers/net/ethernet/meta/mpnic/mpnic_init.c | 14 ++
drivers/net/ethernet/meta/mpnic/mpnic_netdev.c | 43 ++++-
drivers/net/ethernet/meta/mpnic/mpnic_netdev.h | 6 +
drivers/net/ethernet/meta/mpnic/mpnic_txrx.c | 235 ++++++++++++++++++++++++-
drivers/net/ethernet/meta/mpnic/mpnic_txrx.h | 9 +
6 files changed, 346 insertions(+), 2 deletions(-)
---
base-commit: 6584acd42820478910a771efb28a355a707e9cb0
change-id: 20261102-mpnic-lso-19aeb38e5648
Best regards,
--
Daniel Zahka <daniel.zahka@xxxxxxxxx>