From 90058bdca9fbf1cc0856650088847c12a2e812a5 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 8 Sep 2022 16:02:08 +0200 Subject: executor: fix setup of netdevsim device 2 fixed: 1. netdevsim devices cannot be created via NETLINK anymore: https://elixir.bootlin.com/linux/v6.0-rc4/source/drivers/net/netdevsim/netdev.c#L397 But we already create them via /sys/bus/netdevsim/new_device, so just remove the netlink creation. 2. These devices are sticky and are not removed on net namspace destruction, so delete the previous version explicitly. --- pkg/csource/generated.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'pkg/csource') diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go index 4fccf0a99..e8f34b576 100644 --- a/pkg/csource/generated.go +++ b/pkg/csource/generated.go @@ -2644,7 +2644,7 @@ static void netlink_add_xfrm(struct nlmsg* nlmsg, int sock, const char* name) netlink_add_device_impl(nlmsg, "xfrm", name, true); netlink_nest(nlmsg, IFLA_INFO_DATA); int if_id = 1; - netlink_attr(nlmsg, IFLA_XFRM_IF_ID, &if_id, sizeof(if_id)); + netlink_attr(nlmsg, 2, &if_id, sizeof(if_id)); netlink_done(nlmsg); netlink_done(nlmsg); int err = netlink_send(nlmsg, sock); @@ -3369,10 +3369,9 @@ static void initialize_wifi_devices(void) static void netdevsim_add(unsigned int addr, unsigned int port_count) { - char buf[16]; - - sprintf(buf, "%u %u", addr, port_count); - if (write_file("/sys/bus/netdevsim/new_device", buf)) { + write_file("/sys/bus/netdevsim/del_device", "%u", addr); + if (write_file("/sys/bus/netdevsim/new_device", "%u %u", addr, port_count)) { + char buf[32]; snprintf(buf, sizeof(buf), "netdevsim%d", addr); initialize_devlink_ports("netdevsim", buf, "netdevsim"); } @@ -3629,7 +3628,6 @@ static void initialize_netdevices(void) {"caif", "caif0"}, {"batadv", "batadv0"}, {"vxcan", "vxcan1"}, - {"netdevsim", netdevsim}, {"veth", 0}, {"wireguard", "wg0"}, {"wireguard", "wg1"}, -- cgit mrf-deployment