udev: Introduce predictable naming for InfiniBand NICs
authorArseny Maslennikov <arseny@altlinux.org>
Wed, 29 Aug 2018 01:07:55 +0000 (04:07 +0300)
committerArseny Maslennikov <arseny@altlinux.org>
Tue, 18 Sep 2018 17:13:42 +0000 (20:13 +0300)
We've long neglected IP-over-InfiniBand network interfaces, let's treat
them the same way we treat anyone else.

IPoIB interfaces will retain the 'ib' prefix; otherwise the naming scheme
is the same one we use for other network interfaces. E.g. a IPoIB network
device provided by a PCI card at bus 21 slot 0 function 6 will be named
'ibp21s0f6'.

src/udev/udev-builtin-net_id.c

index cb49ade..239a825 100644 (file)
@@ -11,6 +11,7 @@
  *
  * Two character prefixes based on the type of interface:
  *   en — Ethernet
+ *   ib — InfiniBand
  *   sl — serial line IP (slip)
  *   wl — wlan
  *   ww — wwan
  *   ID_NET_NAME_MAC=wlx0024d7e31130
  *   ID_NET_NAME_PATH=wlp3s0
  *
+ * PCI IB host adapter with 2 ports:
+ *   /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.0/net/ibp21s0f0
+ *   ID_NET_NAME_PATH=ibp21s0f0
+ *   /sys/devices/pci0000:00/0000:00:03.0/0000:15:00.1/net/ibp21s0f1
+ *   ID_NET_NAME_PATH=ibp21s0f1
+ *
  * USB built-in 3G modem:
  *   /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6
  *   ID_NET_NAME_MAC=wwx028037ec0200
@@ -704,7 +711,9 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
         struct netnames names = {};
         int err;
 
-        /* handle only ARPHRD_ETHER and ARPHRD_SLIP devices */
+        /* handle only ARPHRD_ETHER, ARPHRD_SLIP
+         * and ARPHRD_INFINIBAND devices
+         */
         s = udev_device_get_sysattr_value(dev, "type");
         if (!s)
                 return EXIT_FAILURE;
@@ -713,6 +722,9 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
         case ARPHRD_ETHER:
                 prefix = "en";
                 break;
+        case ARPHRD_INFINIBAND:
+                prefix = "ib";
+                break;
         case ARPHRD_SLIP:
                 prefix = "sl";
                 break;