]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge branch 'psp-add-support-for-dev-assoc-disassoc'
authorJakub Kicinski <kuba@kernel.org>
Sat, 13 Jun 2026 01:31:35 +0000 (18:31 -0700)
committerJakub Kicinski <kuba@kernel.org>
Sat, 13 Jun 2026 01:31:36 +0000 (18:31 -0700)
Wei Wang says:

====================
psp: Add support for dev-assoc/disassoc

The main purpose of this feature is to associate virtual devices like
veth or netkit with a real PSP device, so we could provide PSP
functionality to the application running with virtual devices.

A typical deployment that works with this feature is as follows:
     Host Namespace:
     psp_dev_local  ←──physically linked──→ psp_dev_peer
  (PSP device)
       │
       │ BPF on psp_dev_local ingress: bpf_redirect_peer() to nk_guest
       │
  nk_host / veth_host
       │
       │ BPF on nk_host ingress: bpf_redirect_neigh() to psp_dev_local
       │
      Guest Namespace (netns):
       │
  nk_guest / veth_guest
  ★ PSP application run here

      Remote Namespace (_netns):
  psp_dev_peer
  ★ PSP server application runs here

Note:
The general requirement for this feature to work:
For PSP to work correctly, the egress device at validate_xmit_skb()
time must have psp_dev matching the association's psd. Any device
stacking or traffic redirection that changes the egress device will
cause either:
1. TX validation failure (SKB_DROP_REASON_PSP_OUTPUT) - fail-safe
2. RX policy failure after tx-assoc - packets without PSP extension
   are rejected by receiver expecting encrypted traffic

Here are a few examples that this feature would not work:
- Bonding with load balancing in round-robin, XOR, 802.3ad mode across
  multiple PSP devices, or mixed PSP and non-PSP devices
- Bonding with active-backup mode might work without PSP migration for
  failover case.
- ipvlan/macvlan in bridge mode would not work given packets are
  loopbacked locally without going through the PSP device.
====================

Link: https://patch.msgid.link/20260608233118.2694144-1-weibunny.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Trivial merge