diff options
author | 2025-04-15 13:17:33 +0200 | |
---|---|---|
committer | 2025-04-17 12:30:03 +0200 | |
commit | 3ecfd9349f4093880d5884dbcd0b4be1b5471f47 (patch) | |
tree | f5156198431ed9580e8142fb68f2ec41932f0b03 /drivers/net/ovpn/main.c | |
parent | ovpn: implement peer lookup logic (diff) | |
download | wireguard-linux-3ecfd9349f4093880d5884dbcd0b4be1b5471f47.tar.xz wireguard-linux-3ecfd9349f4093880d5884dbcd0b4be1b5471f47.zip |
ovpn: implement keepalive mechanism
OpenVPN supports configuring a periodic keepalive packet.
message to allow the remote endpoint detect link failures.
This change implements the keepalive sending and timer expiring logic.
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
Link: https://patch.msgid.link/20250415-b4-ovpn-v26-16-577f6097b964@openvpn.net
Reviewed-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/ovpn/main.c')
-rw-r--r-- | drivers/net/ovpn/main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ovpn/main.c b/drivers/net/ovpn/main.c index 889c4585f06b..232eeb08e929 100644 --- a/drivers/net/ovpn/main.c +++ b/drivers/net/ovpn/main.c @@ -170,6 +170,7 @@ static int ovpn_newlink(struct net_device *dev, ovpn->dev = dev; ovpn->mode = mode; spin_lock_init(&ovpn->lock); + INIT_DELAYED_WORK(&ovpn->keepalive_work, ovpn_peer_keepalive_work); /* Set carrier explicitly after registration, this way state is * clearly defined. @@ -191,6 +192,7 @@ static void ovpn_dellink(struct net_device *dev, struct list_head *head) { struct ovpn_priv *ovpn = netdev_priv(dev); + cancel_delayed_work_sync(&ovpn->keepalive_work); ovpn_peers_free(ovpn, NULL, OVPN_DEL_PEER_REASON_TEARDOWN); unregister_netdevice_queue(dev, head); } |