Skip to content

ovpn: avoid caching stale IPv6 dst after FIB changes

Ralf Lici netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest1 patch 10 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/1ovpn: avoid caching stale IPv6 dst after FIB changesdrivers/net/ovpn/udp.c include/net/dst_cache.h net/core/dst_cache.c+45 -710 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH net 0/1] ovpn: avoid caching stale IPv6 dst after FIB changes

Hi,

This patch was originally part of a wider ovpn series addressing UDP route-cache correctness when mutable socket routing properties or peer endpoint state change while packets are being transmitted [1]. The ovpn-specific fixes were resubmitted separately after dropping this patch, which addresses an independent IPv6 FIB race reproduced in ovpn.

During review, Sabrina suggested submitting the patch directly to netdev rather than through the ovpn pull request because it touches generic dst_cache code and the underlying late-cookie sampling pattern is not specific to ovpn. I first sent an RFC describing the race and a possible kernel-wide solution [2], but it has not received any feedback so far.

After discussing the submission path with Antonio, we decided to post the concrete ovpn fix directly to netdev. It prevents ovpn from caching a route if the IPv6 FIB generation changed during lookup, without attempting the broader network-stack refactoring discussed in the RFC.

[1] https://lore.kernel.org/openvpn-devel/[email protected]/
[2] https://lore.kernel.org/netdev/[email protected]/

Compared with the version previously posted as part of the ovpn series, this patch has been rebased on current net/main and made independent of the pending ovpn route-cache and endpoint changes.

Thanks,

Ralf Lici
Mandelbit Srl

---
Ralf Lici (1):
ovpn: avoid caching stale IPv6 dst after FIB changes

 drivers/net/ovpn/udp.c  | 20 +++++++++++++++++---
 include/net/dst_cache.h | 13 +++++++++++++
 net/core/dst_cache.c    | 19 +++++++++++++++----
 3 files changed, 45 insertions(+), 7 deletions(-)

base-commit: c9151088f1674fd29ff26a20f5fc687acf53a2f0

Signature · 1 line
2.55.0