Wednesday, 3 June 2015

Re: Proposal: enable stateless persistant network interface names

Hello Seth,

Seth Arnold [2015-06-01 14:45 -0700]:
> I know I'll complain about the new names endlessly, please allow me to
> apologize in advance for that

Heh, yes. We all felt the same way about /dev/sda1 →
UUID=11223344DEADBEEF etc.

> How will ifnames handle:
> - a new pcie interface is added?

You'll get a new interface with a path based name.

> - a pcie interface is moved to a different slot?

We want to use path based names for PCI cards, thus the name will

> - two pcie interfaces are swapped?

The names will swap correspondingly. This is kind of a special case of
"replace a broken network card".

> - a quad-port pcie interface is replaced with a dual-port interface?

I don't know these, but in theory the first two slots should keep the
name (and the other two vanish entirely, of course). Do you have
(access to) such a device to verify?

> - usb interface added?
> - a usb interface is moved to a different hub?
> - two usb interfaces are swapped?

These will remain stable in all cases with the v2 proposal that I just
sent, as we'll use MAC based names for USB. This will make names even
fuglier, but as USB is significantly "more hotpluggy" than PCI it's a
concession I'm willing to make as there was quite some loud demand for

> Will there be changes to myrinet or infiniband interface names too?

I don't have access to either of those; at least for InfiniBand it
would certainly make sense, as it is very similar to ethernet from the
POV of naming (SUBSYSTEM=net, names like ib0, etc.). I asked Tom
Gunderson whether he happens to know about that.

I've never heard about myrinet, I'm afraid, so I can't answer that. In
general, if a network device has a proper sysfs entry (SUBSYSTEM=net),
and is on a PCI device, it'll get a path, otherwise it'll keep the
kernel name.

> There will be endless amounts of documentation invalidated once 'eth0'
> is no longer the name of the only NIC on the system

That has been true on Ubuntu server for some time with biosdevname,
and as RHEL moved to new names that'll hopefully helped a lot too. But
yes, pain. On the good side the moving to a hotpluggy world has caused
firewall tools to develop too, from "admin writes long shell scripts
with hardcoded if names and ports" towards a more friendly "service
based" firewalling.

> is there a handy one-liner available to use to discover The Name Of
> The One NIC on ifnames-based names?

"ls -d /sys/class/net/en*" or looking at "ip link" come to my mind.


Martin Pitt |
Ubuntu Developer ( | Debian Developer (