Currently, on Linux, if you try to create a system datapath called
"bonding_masters", when you have bonding module loaded, you have a
kernel trace
("sysfs: cannot create duplicate filename '/class/net/bonding_masters'").This trace appears since "bonding" kernel modules creates a file called "/sys/class/net/bonding_masters", that prevents any network interface to be called "bonding_masters". This commits forbid an user to create a system datapath (that is a network interface) called "bonding_masters" to avoid the kernel trace and to avoid that bonding module can't work if it's loaded after "bonding_masters" interface is created. Reported-at: https://bugzilla.redhat.com/1974303 Signed-off-by: Timothy Redaelli <[email protected]> --- lib/dpif-netlink.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c index 73d5608a8..ada1d8479 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -330,6 +330,14 @@ dpif_netlink_open(const struct dpif_class *class OVS_UNUSED, const char *name, uint32_t upcall_pid; int error; + /* "bonding_masters" is a reserved interface name under Linux, + * since bonding module creates /sys/class/net/bonding_masters + * and so no interface can be called "bonding_masters". + */ + if (!strcmp(name, "bonding_masters")) { + return EINVAL; + } + error = dpif_netlink_init(); if (error) { return error; -- 2.31.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
