Re: [PATCH net-next v3 07/24] ovpn: introduce the ovpn_peer object
From: Antonio Quartulli <antonio@openvpn.net>
Date: 2024-05-13 10:51:51
On 13/05/2024 12:09, Simon Horman wrote:
On Mon, May 06, 2024 at 03:16:20AM +0200, Antonio Quartulli wrote:quoted
An ovpn_peer object holds the whole status of a remote peer (regardless whether it is a server or a client). This includes status for crypto, tx/rx buffers, napi, etc. Only support for one peer is introduced (P2P mode). Multi peer support is introduced with a later patch. Along with the ovpn_peer, also the ovpn_bind object is introcued as the two are strictly related. An ovpn_bind object wraps a sockaddr representing the local coordinates being used to talk to a specific peer. Signed-off-by: Antonio Quartulli <antonio@openvpn.net>...quoted
diff --git a/drivers/net/ovpn/ovpnstruct.h b/drivers/net/ovpn/ovpnstruct.h index ee05b8a2c61d..b79d4f0474b0 100644 --- a/drivers/net/ovpn/ovpnstruct.h +++ b/drivers/net/ovpn/ovpnstruct.h@@ -17,12 +17,19 @@ * @dev: the actual netdev representing the tunnel * @registered: whether dev is still registered with netdev or not * @mode: device operation mode (i.e. p2p, mp, ..) + * @lock: protect this object + * @event_wq: used to schedule generic events that may sleep and that need to be + * performed outside of softirq contextnit: events_wq
Thanks for the report. I fixed this locally already. You don't know how long I had to stare at the kdoc warning and the code in order to realize that I missed a 's' :-S Regards,
quoted
+ * @peer: in P2P mode, this is the only remote peer * @dev_list: entry for the module wide device list */ struct ovpn_struct { struct net_device *dev; bool registered; enum ovpn_mode mode; + spinlock_t lock; /* protect writing to the ovpn_struct object */ + struct workqueue_struct *events_wq; + struct ovpn_peer __rcu *peer; struct list_head dev_list; };...
-- Antonio Quartulli OpenVPN Inc.