Bug 224669 - Does not write HWADDR to ifcfg file
Summary: Does not write HWADDR to ifcfg file
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Brian Brock
URL:
Whiteboard:
: 224662 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-26 22:31 UTC by Bill Nottingham
Modified: 2014-03-17 03:05 UTC (History)
4 users (show)

Fixed In Version: kernel-2.6.19-1.2914.fc7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-01-27 02:20:44 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

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=).


Note You need to log in before you can comment on or make changes to this bug.