diff -ruN systemd-228/src/udev/udev-builtin-net_id.c systemd-228-new/src/udev/udev-builtin-net_id.c
--- systemd-228/src/udev/udev-builtin-net_id.c	2015-11-17 23:59:06.000000000 -0800
+++ systemd-228-new/src/udev/udev-builtin-net_id.c	2015-12-11 18:22:07.910440956 -0800
@@ -149,6 +149,21 @@
         if (idx <= 0)
                 return -EINVAL;
 
+        if (idx >> 24) {
+                unsigned domain, bus, slot, func;
+                /*
+                 * VMware acpi_index format:
+                 * |31 instance 24|23     16|15     8|7    3|2    0|
+                 * |    number    | domain? |   bus  | slot | func |
+                 * 
+                 * Let's use instance number to get enoX human readable
+                 */
+                if (sscanf(udev_device_get_sysname(names->pcidev), "%x:%x:%x.%u", &domain, &bus, &slot, &func) != 4)
+                        return -ENOENT;
+                if ((idx & 0xffff) == ((bus << 8) | (slot << 3) | func))
+                        idx >>= 24;
+        }
+
         /* kernel provided port index for multiple ports on a single PCI function */
         attr = udev_device_get_sysattr_value(dev, "dev_port");
         if (attr)