Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 121860

Summary: configure ethernet interfaces in PCI device order
Product: [Fedora] Fedora Reporter: John Reiser <jreiser>
Component: kudzuAssignee: Bill Nottingham <notting>
Status: CLOSED WONTFIX QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: matt_domsch, rvokal
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: i386   
OS: Linux   
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-30 20:10:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 150221    

Description John Reiser 2004-04-28 18:22:30 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040312

Description of problem:
Please configure ethernet interfaces in PCI device order.  In
particular, if the mainboard bridge chipset has an internal ethernet
interface (so that the traffic goes directly to the memory controller
without having to contend for the PCI bus) then that interface should
be eth0.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. Install Fedora Core 2 Test 3 on a x86 system having a mainboard
bridge ethernet interface (SiS900 inside SiS730) and a PCI-card
ethernet interface (Intel InBusiness 10/100 [82559 eepro100]).

Actual Results:  eth0 is the add-on card.  eth1 is the builtin interface.

Expected Results:  eth0 is the builtin interface.  eth1 is the add-on

Additional info:

The builtin interface will have a lower PCI device number than any
add-on card.  In this example, the builtin interface is 00:01.1, and
the add-on interface is 00:09.0 .

# /sbin/lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
00:00.1 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]
(rev d0)
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] SiS85C503/5513
(LPC Bridge)
00:01.1 Ethernet controller: Silicon Integrated Systems [SiS] SiS900
PCI Fast Ethernet (rev 82)
00:01.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0
Controller (rev 07)
00:01.3 USB Controller: Silicon Integrated Systems [SiS] USB 1.0
Controller (rev 07)
00:01.4 Multimedia audio controller: Silicon Integrated Systems [SiS]
SiS PCI Audio Accelerator (rev 02)
00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual
PCI-to-PCI bridge (AGP)
00:09.0 Ethernet controller: Intel Corp. 82559 InBusiness 10/100 (rev 08)

Comment 1 Matt Domsch 2006-01-09 03:58:17 UTC
I'm not at all certain this can be done generically for all platform types.  The
PCI bus order isn't guaranteed to yield the best possible configuration. 
However, there are ways to get closer to what you want.

This thread came up on linux-poweredge a month ago.  Here was my
response then:

There you'll also find a script I wrote, name_eths, which does its
best to assign ethX names in ascending order, first choosing the LAN
ports on the motherboard, then ascending by slot number, and if you've
got a multiport card in a slot, then by ascending MAC addresses on
that card.  It rewrites the HWADDR lines in the
/etc/sysconfig/network-scripts/ifcfg-ethX files to then match this

As always, this isn't Dell-supported, or by anyone else for that matter.
It appears to do what you're looking for.


Comment 2 Bill Nottingham 2006-08-30 20:10:21 UTC
What kudzu does is merely do it by kernel order, determined by udev's module
loading order, any delays in network driver initialization, and the kernel's PCI
probe order - I don't think this will be significantly changed in kudzu.