See https://lists.ubuntu.com/archives/ubuntu-devel/2015-May/038761.html
for more details about the change, and
/usr/share/doc/udev/README.Debian.gz how the current schema works, and
how to set custom names or change the policy, if you desire so.

So the lack of /etc/udev/rules.d/70-persistent-net.rules is intended,
unless this was an upgrade from trusty -- in that case the file should
of course continue to exist (we don't remove it automatically on
upgrades). But it sounds like this was a new install.

So for the most part this all works as intended. The main point of
contention is the naming of USB devices ("enx8cae4cff4099") -- see the
ML discussion for why this is currently done. I'm fine to change this to
a different policy if desired by the server or other teams, but
everytime I asked about it I get a resounding silence as an answer :-)
Retitling the bug accordingly.

I. e. an alternative policy would be: Always use the kernel names for
USB devices. As long as you have only one, it will always be eth0, but
as soon as you have multiple ones *and* you need to refer to their names
in configuration files, then you need to define a naming policy
yourself, as the kernel names are not persistent and predictable.

In theory we could also use the path based names for USB devices, which
would name the interface according to the port you plug it into. That'd
be a good policy for things like a RasPi where you deploy the same image
(with that policy) to lots of devices and port location would make
sense. This policy makes less sense on a laptop where you might plug in
your mobile phone on different ports every time -- but then again those
usually use NetworkManager and dynamic configurations where you don't
care about device names.

** Summary changed:

- No udev persistent rules in Xenial = strange device names for NICs
+ Strange device names for USB NICs

** Changed in: systemd (Ubuntu)
       Status: New => Incomplete

** Changed in: systemd (Ubuntu)
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1544747

Title:
  Strange device names for USB NICs

Status in systemd package in Ubuntu:
  Incomplete

Bug description:
  Fresh install of Xenial on an intel NUC with 1 onboard GigE and one
  USB GigE NIC.

  I was setting up networking for MAAS and discovered that the device
  names were ridiculous:

  bladernr@critical-maas:/etc/udev$ ifconfig |grep HWaddr
  eno1      Link encap:Ethernet  HWaddr ec:a8:6b:fb:9f:66  
  enx8cae4cff4099 Link encap:Ethernet  HWaddr 8c:ae:4c:ff:40:99  

  In the previous Trusty install on this NUC with the same USB dongle,
  they were named eth0 and em1.  The predictable standard device names.

  Looking at udevadm:
  P: /devices/pci0000:00/0000:00:19.0/net/eno1
  E: DEVPATH=/devices/pci0000:00/0000:00:19.0/net/eno1
  E: ID_BUS=pci
  E: ID_MM_CANDIDATE=1
  E: ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection
  E: ID_MODEL_ID=0x1502
  E: ID_NET_DRIVER=e1000e
  E: ID_NET_LABEL_ONBOARD=en L1U1
  E: ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
  E: ID_NET_NAME_MAC=enxeca86bfb9f66
  E: ID_NET_NAME_ONBOARD=eno1
  E: ID_NET_NAME_PATH=enp0s25
  E: ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEMS CO., LTD.
  E: ID_PATH=pci-0000:00:19.0
  E: ID_PATH_TAG=pci-0000_00_19_0
  E: ID_PCI_CLASS_FROM_DATABASE=Network controller
  E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
  E: ID_VENDOR_FROM_DATABASE=Intel Corporation
  E: ID_VENDOR_ID=0x8086
  E: IFINDEX=2
  E: INTERFACE=eno1
  E: SUBSYSTEM=net
  E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno1
  E: TAGS=:systemd:
  E: USEC_INITIALIZED=5400250

  P: 
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/net/enx8cae4cff4099
  E: 
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/net/enx8cae4cff4099
  E: ID_BUS=usb
  E: ID_MM_CANDIDATE=1
  E: ID_MODEL=AX88178
  E: ID_MODEL_ENC=AX88178\x20
  E: ID_MODEL_FROM_DATABASE=AX88178
  E: ID_MODEL_ID=1780
  E: ID_NET_DRIVER=asix
  E: ID_NET_LINK_FILE=/lib/systemd/network/90-mac-for-usb.link
  E: ID_NET_NAME=enx8cae4cff4099
  E: ID_NET_NAME_MAC=enx8cae4cff4099
  E: ID_NET_NAME_PATH=enp0s29u1u5
  E: ID_OUI_FROM_DATABASE=Plugable Technologies
  E: ID_PATH=pci-0000:00:1d.0-usb-0:1.5:1.0
  E: ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_5_1_0
  E: ID_REVISION=0001
  E: ID_SERIAL=ASIX_Elec._Corp._AX88178_000002
  E: ID_SERIAL_SHORT=000002
  E: ID_TYPE=generic
  E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
  E: ID_USB_DRIVER=asix
  E: ID_USB_INTERFACES=:ffff00:
  E: ID_USB_INTERFACE_NUM=00
  E: ID_USB_SUBCLASS_FROM_DATABASE=Vendor Specific Subclass
  E: ID_VENDOR=ASIX_Elec._Corp.
  E: ID_VENDOR_ENC=ASIX\x20Elec.\x20Corp.
  E: ID_VENDOR_FROM_DATABASE=ASIX Electronics Corp.
  E: ID_VENDOR_ID=0b95
  E: IFINDEX=3
  E: INTERFACE=enx8cae4cff4099
  E: SUBSYSTEM=net
  E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enx8cae4cff4099 
/sys/subsystem/net/devices/enx8cae4cff4099
  E: TAGS=:systemd:
  E: USEC_INITIALIZED=8700146

  And finally, looking in /etc/udev:
  bladernr@critical-maas:/etc/udev$ sudo ls -ra /etc/udev/*
  /etc/udev/udev.conf

  /etc/udev/rules.d:
  ..  .

  /etc/udev/hwdb.d:
  ..  .

  There are NO rules at all in udev for persistent names.  Not even some
  samples and defaults.

  Looking at a completely different Xenial system with a single GigE NIC:
  bladernr@galactica:~$ ifconfig
  enp2s0    Link encap:Ethernet  HWaddr 40:8d:5c:51:5b:0d  

  P: /devices/pci0000:00/0000:00:1b.2/0000:02:00.0/net/enp2s0
  E: DEVPATH=/devices/pci0000:00/0000:00:1b.2/0000:02:00.0/net/enp2s0
  E: ID_BUS=pci
  E: ID_MM_CANDIDATE=1
  E: ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller
  E: ID_MODEL_ID=0xe091
  E: ID_NET_DRIVER=alx
  E: ID_NET_LINK_FILE=/lib/systemd/network/99-default.link
  E: ID_NET_NAME_MAC=enx408d5c515b0d
  E: ID_NET_NAME_PATH=enp2s0
  E: ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD.
  E: ID_PATH=pci-0000:02:00.0
  E: ID_PATH_TAG=pci-0000_02_00_0
  E: ID_PCI_CLASS_FROM_DATABASE=Network controller
  E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
  E: ID_VENDOR_FROM_DATABASE=Qualcomm Atheros
  E: ID_VENDOR_ID=0x1969
  E: IFINDEX=2
  E: INTERFACE=enp2s0
  E: SUBSYSTEM=net
  E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp2s0
  E: TAGS=:systemd:
  E: USEC_INITIALIZED=752502

  and again, nothing in the udev rules:
  bladernr@galactica:~$ ls -a /etc/udev/*
  /etc/udev/udev.conf

  /etc/udev/hwdb.d:
  .  ..

  /etc/udev/rules.d:
  .  ..

  ProblemType: Bug
  DistroRelease: Ubuntu 16.04
  Package: udev 228-6ubuntu1
  ProcVersionSignature: Ubuntu 4.4.0-2.16-generic 4.4.0
  Uname: Linux 4.4.0-2-generic x86_64
  ApportVersion: 2.19.4-0ubuntu2
  Architecture: amd64
  Date: Thu Feb 11 16:36:35 2016
  InstallationDate: Installed on 2016-02-10 (1 days ago)
  InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Alpha amd64 (20160210)
  ProcEnviron:
   TERM=xterm
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-2-generic.efi.signed 
root=UUID=b53bf9e5-5cab-4ebd-98cc-a07ddffe53af ro quiet splash vt.handoff=7
  SourcePackage: systemd
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 03/03/2014
  dmi.bios.vendor: Intel Corp.
  dmi.bios.version: RKPPT10H.86A.0032.2014.0303.1322
  dmi.board.asset.tag: To be filled by O.E.M.
  dmi.board.name: D53427RKE
  dmi.board.vendor: Intel Corporation
  dmi.board.version: G87971-403
  dmi.chassis.type: 3
  dmi.modalias: 
dmi:bvnIntelCorp.:bvrRKPPT10H.86A.0032.2014.0303.1322:bd03/03/2014:svn:pn:pvr:rvnIntelCorporation:rnD53427RKE:rvrG87971-403:cvn:ct3:cvr:

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1544747/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to