[PATCH ovpn net v4 0/9] ovpn: assorted net fixes

Antonio Quartulli <[email protected]> Tue, 28 Jul 2026 13:48:46 +0200
Newsgroups gmane.network.openvpn.devel
Message-ID <[email protected]>
From: Antonio Quartulli <[email protected]>

Hi all,

This is v4 of the collected ovpn fixes for net, sent here for review
(and sashiko re-review) before submission to netdev as a pull request.

v3 got a sashiko review that flagged three new issues; this v4 addresses
all of them.

Changes since v3:
* "ovpn: zero-initialize sockaddr before learning a floated endpoint":
  build the floated endpoint with a designated initializer instead of
  zeroing the whole sockaddr_storage on every received packet, so the
  padding is still cleared without a memset on the RX fast path
* "ovpn: invalidate the UDP TX dst_cache when the flow key changes":
  - re-validate sport/mark in the post-lookup check as well: the TX
    entry check alone could let a slow resolver cache a route tagged
    with a sport/mark another CPU had already changed
  - compare bind->local against the value snapshotted before the route
    lookup instead of the FIB-populated fl.saddr, so caching is no
    longer skipped for a peer whose local address is not yet known

No functional changes to the other patches.

Thanks,
	Antonio

Antonio Quartulli (9):
  ovpn: skip rehash for peers already removed from by_id
  ovpn: rehash peer in by_transp_addr table on CMD_PEER_SET
  ovpn: fix data race reading cached local endpoint on TX path
  ovpn: ensure socket is owned by ovpn before deref sk_user_data
  ovpn: zero-initialize sockaddr before learning a floated endpoint
  ovpn: hash floated peer by transport identity only
  ovpn: disable IPv4 redirects on MP interfaces
  ovpn: ensure TCP vars are initialized first
  ovpn: invalidate the UDP TX dst_cache when the flow key changes

 drivers/net/ovpn/main.c    |  60 ++++++++----
 drivers/net/ovpn/netlink.c |  19 +++-
 drivers/net/ovpn/peer.c    | 196 ++++++++++++++++++++++++++++---------
 drivers/net/ovpn/peer.h    |  15 +++
 drivers/net/ovpn/socket.c  |   9 ++
 drivers/net/ovpn/udp.c     | 108 +++++++++++++++++---
 6 files changed, 329 insertions(+), 78 deletions(-)

-- 
2.54.0