aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/csource
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-09-08 16:02:08 +0200
committerDmitry Vyukov <dvyukov@google.com>2022-09-09 12:14:52 +0200
commit90058bdca9fbf1cc0856650088847c12a2e812a5 (patch)
tree56ee191f28063eb179a087ce72bd89ba9bed8716 /pkg/csource
parenta29cf5afb0f318fae8b15230623d70549a8c5a8c (diff)
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.
Diffstat (limited to 'pkg/csource')
-rw-r--r--pkg/csource/generated.go10
1 files changed, 4 insertions, 6 deletions
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"},