[net-next, v3 0/2] psp: Support PSP Tx on logical devices like VLAN

From: Kiran Kella

Date: Thu Feb 26 2026 - 13:55:26 EST


This patch adds support to allow transmit on virtual devices if the
bottom most underlying transport device matches the PSP device associated
with the transmitting application socket.

python ./psp.py
TAP version 13
1..29
ok 1 psp.data_basic_send_v0_ip4
ok 2 psp.data_basic_send_v0_ip6
ok 3 psp.data_basic_send_v1_ip4
ok 4 psp.data_basic_send_v1_ip6
ok 5 psp.data_basic_send_v2_ip4
ok 6 psp.data_basic_send_v2_ip6
ok 7 psp.data_basic_send_v3_ip4
ok 8 psp.data_basic_send_v3_ip6
ok 9 psp.data_mss_adjust_ip4
ok 10 psp.data_mss_adjust_ip6
ok 11 psp.dev_list_devices
ok 12 psp.dev_get_device
ok 13 psp.dev_get_device_bad
ok 14 psp.dev_rotate
ok 15 psp.dev_rotate_spi
ok 16 psp.assoc_basic
ok 17 psp.assoc_bad_dev
ok 18 psp.assoc_sk_only_conn
ok 19 psp.assoc_sk_only_mismatch
ok 20 psp.assoc_sk_only_mismatch_tx
ok 21 psp.assoc_sk_only_unconn
ok 22 psp.assoc_version_mismatch
ok 23 psp.assoc_twice
ok 24 psp.data_send_bad_key
ok 25 psp.data_send_disconnect
ok 26 psp.data_stale_key
ok 27 psp.removal_device_rx
ok 28 psp.removal_device_bi
ok 29 psp.vlan_basic_send
# Totals: pass:29 fail:0 xfail:0 xpass:0 skip:0 error:0
#
# Responder logs (0):
# STDERR:
# # Set PSP enable on device 3 to 0xf
# # Set PSP enable on device 3 to 0x0

CHANGES:
v3:
- Enable 8021q module in the net/config for vlan test
- Guard against a race between psp_netdevice_event and psp_dev_unregister
by using psp_dev_tryget/put in the linking path to ensure the psp_dev
is still alive before propagating it to upper devices.

v2:
- Simplified the psp_netdevice_event() to return if the upper device is
bond device.
- Handle the scenario where the psp_dev_unregister() is invoked by a
driver before the unregister_netdev() that can result in stale
psp_dev pointer in the upper devices.
- Fix the vlan_basic_send test to run on any lower device and not
require nsim.

v1: https://lore.kernel.org/all/20260121073517.3323332-1-kiran.kella@xxxxxxxxxxxx/

Kiran Kella (2):
psp: Support for transmit on logical device when the underlying
transport device supports PSP.
selftests: drv-net: psp: add test for VLAN sub-interface

net/psp/psp_main.c | 117 ++++++++++++++++++++-
tools/testing/selftests/drivers/net/config | 1 +
tools/testing/selftests/drivers/net/psp.py | 81 +++++++++++++-
3 files changed, 197 insertions(+), 2 deletions(-)

--
2.45.4