net: dsa: use NET_NAME_PREDICTABLE for user ports with name given in DT
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Wed, 16 Nov 2022 10:52:03 +0000 (11:52 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 18 Nov 2022 03:40:08 +0000 (19:40 -0800)
When a user port has a label in device tree, the corresponding
netdevice is, to quote include/uapi/linux/netdevice.h, "predictably
named by the kernel". This is also explicitly one of the intended use
cases for NET_NAME_PREDICTABLE, quoting 685343fc3ba6 ("net: add
name_assign_type netdev attribute"):

  NET_NAME_PREDICTABLE:
    The ifname has been assigned by the kernel in a predictable way
    [...] Examples include [...] and names deduced from hardware
    properties (including being given explicitly by the firmware).

Expose that information properly for the benefit of userspace tools
that make decisions based on the name_assign_type attribute,
e.g. a systemd-udev rule with "kernel" in NamePolicy.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.faineli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/slave.c

index 2ae75d4..5405b73 100644 (file)
@@ -2377,7 +2377,7 @@ int dsa_slave_create(struct dsa_port *port)
 
        if (port->name) {
                name = port->name;
-               assign_type = NET_NAME_UNKNOWN;
+               assign_type = NET_NAME_PREDICTABLE;
        } else {
                name = "eth%d";
                assign_type = NET_NAME_UNKNOWN;