Skip to content

Commit 8327a3b

Browse files
ordexPaolo Abeni
authored andcommitted
ovpn: keep carrier always on for MP interfaces
An ovpn interface configured in MP mode will keep carrier always on and let the user decide when to bring it administratively up and down. This way a MP node (i.e. a server) will keep its interface always up and running, even when no peer is connected. Signed-off-by: Antonio Quartulli <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Sabrina Dubroca <[email protected]> Tested-by: Oleksandr Natalenko <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent c2d950c commit 8327a3b

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

drivers/net/ovpn/main.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,18 @@ static int ovpn_newlink(struct net_device *dev,
9393
ovpn->dev = dev;
9494
ovpn->mode = mode;
9595

96-
/* turn carrier explicitly off after registration, this way state is
97-
* clearly defined
96+
/* Set carrier explicitly after registration, this way state is
97+
* clearly defined.
98+
*
99+
* In case of MP interfaces we keep the carrier always on.
100+
*
101+
* Carrier for P2P interfaces is initially off and it is then
102+
* switched on and off when the remote peer is added or deleted.
98103
*/
99-
netif_carrier_off(dev);
104+
if (ovpn->mode == OVPN_MODE_MP)
105+
netif_carrier_on(dev);
106+
else
107+
netif_carrier_off(dev);
100108

101109
return register_netdevice(dev);
102110
}

0 commit comments

Comments
 (0)