From Fedora Project Wiki

Consistent Network Device Naming feature
Network Device Naming With Biosdevname

Date ongoing


Can't make the date?
If you come to this page before or after the test day is completed, your testing is still valuable, and you can use the information on this page to test, file any bugs you find at Bugzilla, and add your results to the results section. If this page is more than a month old when you arrive here, please check the current schedule and see if a similar but more recent Test Day is planned or has already happened.

What to test?[edit]

Today's installment of Fedora Test Day will focus on Network Interface Naming.

Traditionally network interfaces in Linux are named ethN. With multiple network adapters, both onboard and add-in, single and multiport, in modern server platforms, the naming of these interfaces is non-deterministic. Specifically, eth0 does not always map to Gb1 or Embedded NIC 1 as named on the server chassis. This makes the existing naming not very user friendly for administration.

This issue is addressed by assigning names to network interfaces based on their physical location on the system board. Biosdevname, which is a Dell developed utility, can suggest names to network interfaces, which are physical location based.

The naming convention followed is:

  • Embedded devices: em<port> Image
  • Add-in PCI cards: pci<slot>#<port>_<virtual-function-instance> Image

Please find an example ifconfig output from this naming convention here

Please refer to the following link for more details on the issue itself and various solutions we proposed upstream to address this issue which were unsuccessful.

Prerequisite for Test Day[edit]

Hardware Requirements[edit]

A script is available to determine whether your system will be impacted by the biosdevname change. The following example shows how to run the script to determine whether your hardware can be used during the Test Day.(Ensure that you have dmidecode package installed before running the script)

$ su -c 'curl -s https://fedoraproject.org/w/uploads/3/38/Biosdevname-support-check.sh | bash' 
Password: 
Checking hardware requirements                             [  OK  ]
Checking for SMBIOS type 41 support                        [  OK  ]
Checking for SMBIOS type 9 support                         [  OK  ]
Checking for PCI Interrupt Routing support                 [  OK  ]

If the output of the script is [ OK ] and any of the following checks is [ OK ], your hardware is supported by biosdevname and you can take part in the Test Day.

For reference, the hardware requirements are:

  1. A system (servers, laptop, or desktop) with one or more onboard network adapter(s) and/or one or more add-in network adapter(s)
  2. System firmware/BIOS should implement an SMBIOS type 41 or type 9 record, or PCI Interrupt Routing
  3. Requirements for Testing a SR-IOV capable network adapter
    1. SR-IOV support (enabled in BIOS if BIOS provides the option)
    2. Single and multiport add-in network adapters with SRIOV capability

For more information on SR-IOV Please see here

It is strongly advised that you upload your hardware profile uploaded to Smolt according to these instructions

Smolt not working?
Is smolt crashing or otherwise not working in Rawhide? A temporary fix is available to address bug#673015. Packages are available in the koji build system. To upgrade the smolt package(s), with root permissions, type:
yum update "http://koji.fedoraproject.org/koji/getfile?taskID=2745512&name=smolt-1.4.3-2.jlaska.fc15.noarch.rpm" \
  "http://koji.fedoraproject.org/koji/getfile?taskID=2745512&name=smolt-firstboot-1.4.3-2.jlaska.fc15.noarch.rpm" \
  "http://koji.fedoraproject.org/koji/getfile?taskID=2745512&name=smolt-gui-1.4.3-2.jlaska.fc15.noarch.rpm"

Software Requirements[edit]

  1. Fedora Rawhide
  2. Optional - the SMBIOS type 41 device type instance and string should be available in sysfs. This will be available in sysfs only when BIOS implements type 41. If type 41 is not implemented, then $PIRQ will be the fallback and this attribute will not be available in sysfs. This attribute is available on kernels with version >= 2.6.36 (includes Rawhide)

How to test?[edit]

At a high level, the testing will focus on

  1. Network interface names during install time
  2. Network interface names after installation is completed (after you login for first time)
  3. Required changes available in ifcfg-ethN config files
  4. Upgrading from a previous release (Fedora 14) to Fedora Rawhide does not affect the naming scheme that existed in the previous release

Install or upgrade to Rawhide[edit]

There are several ways to set up your test system.

Upgrading From Fedora 14 to Rawhide[edit]

Install Rawhide[edit]

Boot into a Rawhide live image[edit]

Complete the Test Cases[edit]

Updates required
Due to bug#672603, an updates.img is required to complete a Rawhide installation. The updates.img is available at http://jlaska.fedorapeople.org/updates/672603.img. Instructions for using an updates.img are available at Anaconda/Updates.

Upgrade Testing - These test cases should be executed when upgrading a Fedora 14 system to Rawhide. Please refer to the section Upgrading From Fedora 14 to Rawhide above.

  1. QA:Testcase biosdevname NIC rules persist after upgrade - Verify upgrade from Fedora 14 to Rawhide
  2. To have your system make use of the "new" names after upgrade, you need to change the device name rules in /etc/udev/rules.d/70-persistent-net.rules and any references to the old devices in /etc/sysconfig/network-scripts/ifcfg-eth*. A script is available to convert device names.
    $ su -c 'curl -s https://fedoraproject.org/w/uploads/d/da/Biosdevname-upgrade-iface-names.sh | bash'

    The script renames the existing ifcfg-ethN files to match the new names, i.e ifcfg-emN and ifcfg-pciM#N names and changes the relevant fields in the ifcfg-emN file such as DEVICE to match the new name. The Script also makes changes to the matching rules in /etc/udev/rules.d/70-persistent-net.rules so that devices for which biosdevname cannot suggest a name are retained as they are. After reboot, your system should now be using the new names.

Install Time Testing - The test cases in this category should be executed when performing a new Rawhide installation. Please refer to the section Install Rawhide above.

  1. QA:Testcase biosdevname NIC naming after install - Verify that onboard and add-in interfaces are named as expected during install time
  2. QA:Testcase biosdevname Automated Kickstart Installation - Unattended/automated kickstart installation using ksdevice=emN option

Run Time Testing - The test cases in this category should be executed when running a fresh Rawhide - either from the live image, or after performing a new Rawhide installation.

  1. QA:Testcase biosdevname on-board network interface names - Verify that onboard interfaces are named as emN
  2. QA:Testcase biosdevname add-in network interface names - Verify that PCI add-in interfaces are named as pci<slot>#<port>
  3. QA:Testcase biosdevname SRIOV virtual function interface names - Verify that Virtual Function interfaces are named as pci<slot>#<port>_<virtual-function-instance>
  4. QA:Testcase biosdevname interface configuration - Verify that onboard, add-in, and add-in Virtual Function interfaces can be configured

Report your results[edit]

If you have problems with any of the tests, report a bug to Bugzilla usually for the component biosdevname. If you are unsure about exactly how to file the report or what other information to include, just ask on IRC and we will help you. Once you have completed the tests, add your results to the Results table below, following the example results from the first line as a template. The first column should be your name with a link to your User page in the Wiki if you have one, and the second should be a link to the Smolt profile of the system you tested. For each test case, use the result template to enter your result, as shown in the example result line.

Useful information to include in your bugzilla report include output from:

sudo /sbin/biosdevname -d
sudo /usr/sbin/dmidecode
sudo /usr/sbin/biosdecode
lspci -tv
User Smolt Profile install upgrade kickstart on-board add-in SRIOV iface configuration References
Sample User HW
Pass pass
Unknown unknown
Inprogress inprogress
none
Pass pass
Warning warn
[1]
Fail fail
[2]
  1. Test pass, but also encountered RHBZ #54321
  2. RHBZ #12345
shyam_iyer HW [1] [2]
Warning warn
[3] [4]
Pass pass
Unknown unknown
Pass pass
Unknown unknown
Unknown unknown
Pass pass
[5]
  1. This is a Dell PER 710 with 4 onboard Nics
  2. Encountered issue in uploading the smolt profile RHBZ #673015
  3. Encountered issue in rawhide installs RHBZ #671981
  4. Applied workaround in RH BZ 673192
  5. For upgrades to rawhide refer to script for changing to emN naming
shyam_iyer [HW] [1] [2]
Warning warn
[3] [4]
Pass pass
Unknown unknown
Pass pass
Unknown unknown
Unknown unknown
Pass pass
[5]
  1. This is a Dell SC 1435 with 2 onboard Nics
  2. Encountered issue in uploading the smolt profile RHBZ #673015
  3. Encountered issue in rawhide installs RHBZ #671981
  4. Applied workaround in RH BZ 673192
  5. For upgrades to rawhide refer to script for changing to emN naming
Paniraja KM Tested on Dell PowerEdge R510, R610 and R415
Fail fail
Pass pass
Fail fail
Pass pass
Pass pass
Unknown unknown
Pass pass
David Ramsey Add 32-bit Smolt Profile HW URL [1]
Pass pass
Pass pass
Unknown unknown
Pass pass
Unknown unknown
Unknown unknown
Pass pass
  1. Dell Precision eight core with i686 support
David Ramsey Add 64-bit Smolt Profile HW URL [1]
Pass pass
Pass pass
Unknown unknown
Pass pass
Unknown unknown
Unknown unknown
Pass pass
  1. Dell Precision eight core with x86_64 support
Yulia Kopkova HW [1]
Pass pass
[2]
Pass pass
Unknown unknown
Pass pass
Unknown unknown
Unknown unknown
Pass pass
  1. Dell OptiPlex GX620
  2. RHBZ #672603
Srinivas Gowda Add Smolt Profile HW URL
Pass pass
Pass pass
Inprogress inprogress
Pass pass
Pass pass
Unknown unknown
Pass pass
Taousif Ansari HW [1]
Pass pass
Pass pass
Unknown unknown
Pass pass
Pass pass
Unknown unknown
Pass pass
Cite error: Invalid <ref> tag; refs with no name must have content
  1. Dell PER900 with QP LOM BCM5708, Intel 82598EB 10-Gigabit, SP Broadcom BCM5709 10Gig, DP Broadcom BCM57710 1Gig
James Laska HW [1]
Fail fail
[2] [3]
Pass pass
[4]
Fail fail
[5]
Unknown unknown
Warning warn
[6]
Unknown unknown
Unknown unknown
  1. KVM guest on F14 host
  2. RHBZ #673192 - initramfs.img not created after install ... attempting to work around ...
  3. RHBZ #673238 - anaconda creates incorrect udev 70-persistent-net.rules entry for network device
  4. Updates.img required to work around RHBZ #673158
  5. RHBZ #673160 - Anaconda fails to activate the device when ksdevice=pciM#N is passed
  6. RHBZ #673268 - Rawhide installer sees pci2#1 and eth1
Ashish Bunkar HW [1]
Pass pass
Pass pass
Unknown unknown
Pass pass
Pass pass
Unknown unknown
Pass pass
Cite error: Invalid <ref> tag; refs with no name must have content
  1. Dell PER905 with QP LOM,Intel Sp-10-Gigabit, DP Qlogic 10Gig
Alexei Panov HW[1]
Pass pass
Unknown unknown
Unknown unknown
Pass pass
Pass pass
Unknown unknown
Pass pass
  1. Core i5 760 on MB Intel DH55HC
Narendra K HW
Pass pass
none
Fail fail
[1]
Pass pass
Pass pass
Pass pass
Pass pass
  1. RHBZ #673160 - Anaconda fails to activate the device when ksdevice=pciM#N is passed
Jon Masters Add 64-bit Smolt Profile HW URL
none
Warning warn
[long 1]
none
Pass pass
[1]
none
none
Pass pass
[2]
  1. Using Dell PER610, em1-em4 were created successfully.
  2. Once I removed the old config files/cleaned up files not handled by the "Biosdevname-upgrade-iface-names" script, it all worked.

Long comments[edit]

  1. works as expected, however "Biosdevname-support-check" doesn't catch dmidecode not installed, and "Biosdevname-upgrade-iface-names" did not work - had to manually edit config files and remove udev persistent net configs, let them regenerate.