[PATCH net v3 0/4] psp: fix transport mode with ipv6 extension headers
From: Todd Freed
Date: Fri Oct 23 2026 - 19:47:58 EST
While working on adding support for socket-less psp associations, I
noticed that this case was not being handled correctly. It will be more
relevant with that series, because it adds udp support, for which the
psp nexthdr will be taken from the inner packet.
Since the tx association encodes intent to send encrypted packets, but
because of other configuration (socket options, routes) the packets are
sent unencrypted, sending this change as a fix.
The first patch fixes an mlx5e bug in tso checksum calculation for psp
with ipv6 routing headers.
The second patch fixes the receive path when ipv6 extension headers are
present.
The third patch fixes the send path when ipv6 extension headers are
present.
The fourth patch adds selftests for these cases.
Note that no test case is added for ipv6 fragment headers. As far as
I can tell it's not possible to tx fragments from an ipv6 tcp socket.
All testing was done on connectx-7.
v3:
- new patch 1 to fix tso checksum seed calculation in mlx5e (Daniel)
- accept routing headers and reject ah (Daniel)
- split the psp_dev_rcv() change into its own patch (Daniel)
- return -EINVAL instead of -1 (Daniel)
- selftest: one variant per extension header type (Daniel)
v2: https://lore.kernel.org/netdev/20261022223014.556388-1-toddfreed@xxxxxxxx
- walk the extension headers instead of dropping (Daniel)
- reject fragment headers (Bjorn, Daniel)
- reject routing headers
- psp_dev_rcv() handle the rx case as well
v1: https://lore.kernel.org/netdev/20261021210200.788191-1-toddfreed@xxxxxxxx
Todd Freed (4):
net/mlx5e: psp: tso: replace only the length in checksum seed
psp: support ipv6 extension headers in psp_dev_rcv() decap
psp: support ipv6 extension headers in psp_dev_encapsulate()
selftests: drv-net: psp: test ipv6 tcp socket with extension headers
.../mellanox/mlx5/core/en_accel/psp_rxtx.c | 21 ++-
net/psp/psp_main.c | 79 +++++++++-
tools/testing/selftests/drivers/net/config | 1 +
tools/testing/selftests/drivers/net/psp.py | 137 +++++++++++++++++-
4 files changed, 215 insertions(+), 23 deletions(-)
--
2.53.0-Meta