[PATCH ovpn net v2 0/5] ovpn: fix UDP route cache and endpoint handling

Ralf Lici <[email protected]> Wed, 29 Jul 2026 09:20:31 +0200
Newsgroups gmane.network.openvpn.devel
Message-ID <[email protected]>
Hi,

This is v2 of a net series that fixes several related issues in ovpn's
UDP endpoint and route-cache handling. The only change since v1 is the
addition of memory barriers in the last patch when reading IPv6 route
generations. Sashiko also noted that uninitialized stack memory in ss is
used as a hash key for peer endpoints but this is already covered by
Antonio's "ovpn: zero-initialize sockaddr before learning a floated
endpoint" patch
(https://lore.kernel.org/openvpn-devel/[email protected]/).

This series preserves IPv6 scope IDs supplied through netlink, handles
unspecified source addresses correctly, invalidates cached routes when
mutable socket route inputs change, avoids in-place updates of
RCU-published peer binds, and prevents stale IPv6 routes from being
cached across FIB updates.

Support for honoring UDP sockets bound to a device or local address will
follow separately for net-next, after these route-cache fixes are
available there.

Cheers,

Ralf Lici
Mandelbit Srl

---
Changes since v1 https://lore.kernel.org/openvpn-devel/[email protected]
- Patch 5/5: add memory barriers around IPv6 FIB generation reads to
  avoid reordering on weakly ordered architectures (Sashiko).

Ralf Lici (5):
  ovpn: preserve IPv6 scope id for netlink peer endpoints
  ovpn: skip UDP source validation for unspecified addresses
  ovpn: track UDP socket route key for peer dst cache
  ovpn: avoid in-place updates of peer bind local address
  ovpn: avoid caching stale IPv6 dst after FIB changes

 drivers/net/ovpn/netlink.c |   6 +
 drivers/net/ovpn/peer.c    |  37 ++++---
 drivers/net/ovpn/peer.h    |  19 +++-
 drivers/net/ovpn/udp.c     | 217 +++++++++++++++++++++++++++++++------
 include/net/dst_cache.h    |  13 +++
 net/core/dst_cache.c       |  16 ++-
 6 files changed, 253 insertions(+), 55 deletions(-)

-- 
2.54.0