Bug 607924

Summary: Onboard NIC ordering issues on RHEL 5.4 (Intel S5500HV)
Product: Red Hat Enterprise Linux 5 Reporter: Lei <leiai>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED NOTABUG QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: low    
Version: 5.4CC: mbozzore, syeghiay
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-27 14:43:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lei 2010-06-25 08:19:12 UTC
Description of problem:
-----------------------
device names of onboard NICs are not ordered by PCI bus number.

How reproducible:
-----------------------
There are 2 on-board NICs on Intel S5500HV:

#lspci
...
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
...

We hope the device placed at 02:00.0 could be detected and named as "eth0" while the other one can be named as "eth1".
However, in fact the info are:

# ethtool -i eth0
driver: e1000e
version: 1.0.2-k2
firmware-version: 1.8-0
bus-info: 0000:03:00.0

# ethtool -i eth1
driver: e1000e
version: 1.0.2-k2
firmware-version: 1.8-0
bus-info: 0000:02:00.0

# biosdecode
...
        Slot Entry 25: ID 03:00, on-board
        Slot Entry 26: ID 02:00, on-board
...

# dmesg
...
e1000e: Intel(R) PRO/1000 Network Driver - 1.0.2-k2
e1000e: Copyright (c) 1999-2008 Intel Corporation.
ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 16 (level, low) -> IRQ 177
PCI: Setting latency timer of device 0000:03:00.0 to 64
sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 6:0:0:0: Attached scsi CD-ROM sr0
eth0: (PCI Express:2.5GB/s:Width x1) e0:cb:4e:5d:a2:13
eth0: Intel(R) PRO/1000 Network Connection
eth0: MAC: 3, PHY: 8, PBA No: ffffff-0ff
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:02:00.0 to 64
eth1: (PCI Express:2.5GB/s:Width x1) e0:cb:4e:5d:a2:12
eth1: Intel(R) PRO/1000 Network Connection
eth1: MAC: 3, PHY: 8, PBA No: ffffff-0ff
...

# ifconfig
eth0      Link encap:Ethernet  HWaddr E0:CB:4E:5D:A2:13
          inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::e2cb:4eff:fe5d:a213/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:9360 (9.1 KiB)
          Memory:fbee0000-fbf00000

eth1      Link encap:Ethernet  HWaddr E0:CB:4E:5D:A2:12
          inet addr:172.25.234.75  Bcast:172.25.234.255  Mask:255.255.255.0
          inet6 addr: fe80::e2cb:4eff:fe5d:a212/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1304 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:260565 (254.4 KiB)  TX bytes:177673 (173.5 KiB)
          Memory:fbde0000-fbe00000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2623 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2623 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3553976 (3.3 MiB)  TX bytes:3553976 (3.3 MiB)



Steps to Reproduce:
1. Install RHEL 5.4 x64 on Intel S5500HV
2. NIC on bus "0000:02:00.0" named as "eth1", while NIC on bus "0000:03:00.0" named as "eth0".
3. run biosdecode, dmesg...  to check.
  
Actual results:
NIC on bus "0000:02:00.0" named as "eth1", while NIC on bus "0000:03:00.0" named as "eth0".

Expected results:
I don't know the rule for naming the on-board NICs, why is such a order?
We expect NIC on bus "0000:02:00.0" named can be named as "eth0", while NIC on bus "0000:03:00.0" named as "eth1". 

Additional info:

Comment 1 Jes Sorensen 2013-02-27 14:43:49 UTC
There is no guarantee for the ordering, it is set as the devices are
discovered.