Skip to content

Commit c0178ee

Browse files
ffmancerakuba-moo
authored andcommitted
net: hsr: prevent creation of HSR device with slaves from another netns
HSR/PRP driver does not handle correctly having slaves/interlink devices in a different net namespace. Currently, it is possible to create a HSR link in a different net namespace than the slaves/interlink with the following command: ip link add hsr0 netns hsr-ns type hsr slave1 eth1 slave2 eth2 As there is no use-case on supporting this scenario, enforce that HSR device link matches netns defined by IFLA_LINK_NETNSID. The iproute2 command mentioned above will throw the following error: Error: hsr: HSR slaves/interlink must be on the same net namespace than HSR link. Fixes: f421436 ("net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)") Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de> Link: https://patch.msgid.link/20251020135533.9373-1-fmancera@suse.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 441f064 commit c0178ee

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

net/hsr/hsr_netlink.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,18 @@ static int hsr_newlink(struct net_device *dev,
3434
struct netlink_ext_ack *extack)
3535
{
3636
struct net *link_net = rtnl_newlink_link_net(params);
37+
struct net_device *link[2], *interlink = NULL;
3738
struct nlattr **data = params->data;
3839
enum hsr_version proto_version;
3940
unsigned char multicast_spec;
4041
u8 proto = HSR_PROTOCOL_HSR;
4142

42-
struct net_device *link[2], *interlink = NULL;
43+
if (!net_eq(link_net, dev_net(dev))) {
44+
NL_SET_ERR_MSG_MOD(extack,
45+
"HSR slaves/interlink must be on the same net namespace than HSR link");
46+
return -EINVAL;
47+
}
48+
4349
if (!data) {
4450
NL_SET_ERR_MSG_MOD(extack, "No slave devices specified");
4551
return -EINVAL;

0 commit comments

Comments
 (0)