X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-net_id.c;h=e6db2e4798871da81cfc6458843c87dc0748d2ac;hp=ebada80e1bd205ceff1d3233aa14c9aa4adebf6a;hb=971e7fb62548f2c9c4e32684bb13409e6579dc6a;hpb=f610d6de38119b372b377ec41b2a6089872d3294 diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index ebada80e1..e6db2e479 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -18,39 +18,44 @@ ***/ /* - * predictable network interface device names based on: + * Predictable network interface device names based on: * - firmware/bios-provided index numbers for on-board devices * - firmware-provided pci-express hotplug slot index number * - physical/geographical location of the hardware * - the interface's MAC address * - * two character prefixes based on the type of interface: + * Two character prefixes based on the type of interface: * en -- ethernet * wl -- wlan * ww -- wwan * - * type of names: + * Type of names: * o -- on-board device index number * s[f] -- hotplug slot index number * x -- MAC address * ps[f] -- PCI geographical location - * ps[f][u][u][c][i] + * ps[f][u][...][c][i] * -- USB port number chain * - * All multi-function devices will carry the [f] number in the + * All multi-function PCI devices will carry the [f] number in the * device name, including the function 0 device. * - * PCI card with firmware index + * For USB devices the full chain of port numbers of hubs is composed. If the + * name gets longer than the maximum number of 15 characters, the name is not + * exported. + * The usual USB configuration == 1 and interface == 0 values are suppressed. + * + * PCI ethernet card with firmware index * ID_NET_NAME_ONBOARD=eno1 * ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1 * - * PCI card + * PCI ethernet card * /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1 * ID_NET_NAME_MAC=enx000000000466 * ID_NET_NAME_PATH=enp5s0 * ID_NET_NAME_SLOT=ens1 * - * PCI card in hotplug slot with firmware index number: + * PCI ethernet card in hotplug slot with firmware index number: * /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1 * ID_NET_NAME_MAC=enx000000000466 * ID_NET_NAME_PATH=enp5s0 @@ -325,9 +330,9 @@ static int names_mac(struct udev_device *dev, struct netnames *names) { /* IEEE Organizationally Unique Identifier vendor string */ static int ieee_oui(struct udev_device *dev, struct netnames *names, bool test) { - char str[IFNAMSIZ]; + char str[32]; - if (names->mac_valid) + if (!names->mac_valid) return -ENOENT; /* skip commonly misused 00:00:00 (Xerox) prefix */ if (memcmp(names->mac, "\0\0\0", 3) == 0)