|Summary:||Does not write HWADDR to ifcfg file|
|Product:||[Fedora] Fedora||Reporter:||Bill Nottingham <notting>|
|Component:||kernel||Assignee:||Kernel Maintainer List <kernel-maint>|
|Status:||CLOSED RAWHIDE||QA Contact:||Brian Brock <bbrock>|
|Version:||rawhide||CC:||dchapman, michael.steele, rvokal, wtogami|
|Fixed In Version:||kernel-2.6.19-1.2914.fc7||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2007-01-27 02:20:44 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Cloudforms Team:||---||Target Upstream Version:|
Description Bill Nottingham 2007-01-26 22:31:21 UTC
On reboot, my ifcfg-eth0 didn't have HWADDR, so the ethernet device wasn't named correctly. rawhide-20070126
Comment 1 Bill Nottingham 2007-01-26 22:36:55 UTC
I hate sysfs. A lot.
Comment 2 Bill Nottingham 2007-01-26 22:38:26 UTC
*** Bug 224662 has been marked as a duplicate of this bug. ***
Comment 3 Pete Zaitcev 2007-01-27 00:57:39 UTC
One more reason to use /etc/mactab always.
Comment 4 Bill Nottingham 2007-01-27 02:20:44 UTC
One more reason to not randomly change public interfaces. Ah well, sysfs beaten in kernel-2.6.19-1.2914.fc7.
Comment 5 michael.steele 2011-01-11 15:45:14 UTC
Network interfaces named ___tmpxxxx when HWADDR is not specified Article ID: 36572 - Created on: Nov 18, 2009 2:46 PM - Last Modified: Dec 15, 2010 9:55 AM Issue Ethernet interface keeps changing into '__tmpxxxx'. When server is rebooted, interfaces are named as '__tmp' instead of ethx. Invalid network interface name after reboot Environment Red Hat Enterprise Linux 5.3 initscripts-8.45.25-1.el5-x86_64 Resolution To prevent this from occurring, the "HWADDR=" parameter should be used in /etc/sysconfig/network-scripts/ifcfg-ethx as follows: Ethernet Device DEVICE=ethx BOOTPROTO=static HWADDR=xx:xx:xx:xx ONBOOT=yes Root Cause What happens is: 1. initrd loads modules. Generally not network ones, unless you've specifically configured it to do so. 2. udev loads modules. It loads them in parallel. This means that if you have multiple network drivers in the machine, they will race against each other for device assignment. 3. when a network device is created, /lib/udev/rename_device is run to attempt to coerce the device name into whatever device name is mapped to that MAC address in the ifcfg files. Otherwise, you just get the order they happen to initialize in (which can change from boot to boot) 4. rest of boot runs (during which you can do other things) Due to the fact udev does not load modules sequentially (#2), you will get non-deterministic ethernet device ordering if you have multiple network drivers in the machine. It's inevitable. So, it is required to use HWADDR= in the ifcfg files to accomplish that mapping. You could also use udev rules directly (with NAME=).