I can understand why people will resist this, thinking that somehow renaming eth0 to em0 or similar will break stuff, but here's the rub: It'll only break stuff that's badly written.<p>There's a right way to enumerate network interfaces and a wrong way (which is dependent on the language you're using for enumeration - the wrong way is assuming that eth0 is the only network device).<p>Bear in mind that the new convention is not entirely dissimilar to how WiFi cards have worked on Linux for some time, so the only things that will break will be things that:<p><pre><code> a) Assume eth0 instead of enumerating devices
b) Have a legitimate reason for using eth0 only (I can't think of one, but I wouldn't be surprised if one existed)</code></pre>
Mac OS X and Linux are the only OS's that I'm aware of that put all ethernet nics in the same device namespace.<p>Everyone else has separate device namespaces for - you might have an fxp0 , rl0, hme0, etc. on any BSD or Solaris machine.<p>Rather than looking in /dev, they really ought to be parsing the output of <i>ifconfig -a</i>.
From the limitations section of the wiki page linked in the article:<p><i>Not all add-in cards have a method to expose their Linux interface name(s) to external port mapping. biosdevname may provide incorrect names for such. Discussions are ongoing on the netdev mailing list to standardize a method of exposing such mapping.</i><p>Seems like this would be kind of a deal-breaker for any wholesale move like this. I'd be fairly surprised if this got any widespread adoption anytime soon.
There was a pretty good discussion about this on LWN a while back, I recommend it to anyone who wants more information (both the commentary their, as well as the linked article): <a href="https://lwn.net/Articles/424859/" rel="nofollow">https://lwn.net/Articles/424859/</a>
Here is a whitepaper from Dell that discusses some of these issues and provides some of the solutions. It is a couple of years old but still relevant:<p><a href="http://linux.dell.com/files/whitepapers/nic-enum-whitepaper-v3.pdf" rel="nofollow">http://linux.dell.com/files/whitepapers/nic-enum-whitepaper-...</a>
The BSDs have always done this... if I recall correctly, em is an Intel based NIC.<p>NAME
em - Intel PRO/1000 10/100/Gigabit Ethernet device<p><a href="http://www.openbsd.org/cgi-bin/man.cgi?query=em&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html" rel="nofollow">http://www.openbsd.org/cgi-bin/man.cgi?query=em&apropos=...</a><p>Edit: Reading more of that thread I may be off-base here, but naming a network interface em that's not powered by certain Intel chipsets will be very confusing to BSD users. Just my 2 cents.
People will whine and complain about this, but it's about time some sanity was brought to Linux's network device names. The eth* enumeration has been terrible for quite a long time, especially when dealing with servers housing multiple interfaces. And if you don't like the solution, they explicitly say you can just set biosdevname=0 on the kernel params and carry on with the previous insanity.
From a quick look on a fresh ubuntu small server install it does not seem there is much that reference eth* scheme :<p><pre><code> ~$ sudo egrep -Irl 'eth[0-9]' /etc /usr 2>/dev/null |wc -l
27</code></pre>