From Fedora Project Wiki
(initial text, incomplete)
 
 
(33 intermediate revisions by 6 users not shown)
Line 2: Line 2:


== Summary ==
== Summary ==
On systems with multiple network ports, allow use of BIOS-provided port names instead of ethX.
Change the network device naming scheme from ethX to a physical location-based name for easy identification and use.


== Owner ==
== Owner ==
New Owner:
* Name: [[User:jhargrave| Jordan Hargrave]]
* Email: Jordan_Hargrave@dell.com
Previous Owner:
* Name: [[User:mdomsch| Matt Domsch]]
* Name: [[User:mdomsch| Matt Domsch]]
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
* Email: Matt_Domsch@dell.com
* Email: Matt_Domsch@dell.com


== Current status ==
== Current status ==
* Targeted release: [[Releases/15 | Fedora 15 ]]  
* Targeted release: [[Releases/15 | Fedora 15 ]]  
* Last updated: 2010-10-26
* Last updated: 2010-12-03
* Percentage of completion: 00%
* Percentage of completion: 90%
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->


== Detailed Description ==
== Detailed Description ==
Line 21: Line 22:


The proposal is as follows:
The proposal is as follows:
* revive biosdevname from a dead.package
* update biosdevname to upstream release 0.3.1 (complete 27-Nov-2010)
* provide a kickstart option to use biosdevname in udev rules
* ensure postinstall udev uses biosdevname in udev rules to name LAN-on-Motherboard network ports from ethX to em[1234] and PCI cards to p<slot>p<port>_<vf> (complete 27-Nov-2010)
* have kickstart / anaconda use the biosdevname-provided names
* have kickstart / anaconda use the biosdevname-provided name em[1234] (complete 28-Nov-2010)
* ensure postinstall udev uses biosdevname in udev rules
* add biosdevname to @base (complete 28-Nov-2010)
 
* add biosdevname to dracut-network (https://bugzilla.redhat.com/show_bug.cgi?id=659915 complete 2011-02-01)
* have NetworkManager display the label somehow (TBD, not critical for feature)
* initscripts needs to accept names with # in them (https://bugzilla.redhat.com/show_bug.cgi?id=663904 complete 2010-12-17)
* udev renaming 2-step overflows IFNAMSIZ (https://bugzilla.redhat.com/show_bug.cgi?id=673675 complete 2011-02-02)
* Don't suggest names when running in a VM (use bits from virt-what) (https://bugzilla.redhat.com/show_bug.cgi?id=673268 complete 2011-02-17)
* Handle SR-IOV and NPAR better (get actual mapping of PFs and VFs to ports if we can)
* fix initscripts VLAN code that assumes devices named eth*|bond*|hsi* (https://bugzilla.redhat.com/show_bug.cgi?id=462095)
* Tracker for applications that hard-code eth* assumptions (https://bugzilla.redhat.com/showdependencytree.cgi?id=682334&hide_resolved=1)


== Benefit to Fedora ==
== Benefit to Fedora ==
System Administrators can then use BIOS-provided names, which are consistent and not arbitrarily named, for their network ports.  This eliminates the confusion that non-deterministic naming brings, and eliminates the use of hard-coded MAC address based port renaming which a) is racy and error-prone, and b) introduces state into an otherwise stateless system.
System Administrators can then use BIOS-provided names, which are consistent and not arbitrarily named, for their network ports.  This eliminates the confusion that non-deterministic naming brings, and eliminates the use of hard-coded MAC address based port renaming which a) is racy and error-prone, and b) introduces state into an otherwise stateless system.
This change affects most desktop, notebook, and server-class systems.
== Limitations ==
Not all add-in cards have a method to expose their Linux interface name(s) to external port mapping.  biosdevname may provide incorrect names for such.  Discussions are ongoing on the netdev mailing list to standardize a method of exposing such mapping.


== Scope ==
== Scope ==
see above
* See above


== How To Test ==
== How To Test ==
TBD
* System-Under-Test can be just about any systemSystems that expose SMBIOS 2.6 Type 9 and Type 41 fields are preferred, but the code will work on systems that expose the legacy PCI IRQ Routing Table as well.
<!-- This does not need to be a full-fledged documentDescribe the dimensions of tests that this feature is expected to pass when it is done. If it needs to be tested with different hardware or software configurations, indicate themThe more specific you can be, the better the community testing can be.  
* biosdevname must be installed on the target system.
* erase /etc/udev/rules.d/70-persistent-net.rules file.  This is where naming is persisted across reboots.
* reboot the system
* Following reboot:
** /sbin/ifconfig -a must show LAN-on-Motherboard ports named em[1234]
** em[1234] must correspond to the chassis labelsVerify using ethtool -p em[1234] and watch the lights blink.
* Installing using Anaconda:
** anaconda should present network devices to use, having the new naming convention.


Remember that you are writing this how to for interested testers to use to check out your feature - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your feature.
== User Experience ==
 
Ethernet NICs embedded on the motherboard will be named em[1234] rather than ethX.
A good "how to test" should answer these four questions:
PCI add-in card NICs will be named p<slot>p<port>_<vf>.


0. What special hardware / data / etc. is needed (if any)?
Linux guests running under virtualization platforms such as KVM, Xen, VMware Workstation or ESX, or Microsoft Hyper-V will not have their devices renamed.
1. How do I prepare my system to test this feature? What packages
need to be installed, config files edited, etc.?
2. What specific actions do I perform to check that the feature is
working like it's supposed to?
3. What are the expected results of those actions?
-->


== User Experience ==
System Administrators may disable this feature by passing "biosdevname=0" on the kernel command line.
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->


== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
None


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
None necessary, revert to previous release behaviour.


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved. -->
* http://marc.info/?l=linux-hotplug&m=128892593821639&w=2
*


== Release Notes ==
== Release Notes ==
<!-- The Fedora Release Notes inform end-users about what is new in the releaseExamples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
* Servers often have multiple Ethernet ports, either embedded on the motherboard, or on add-in PCI cardsLinux has traditionally named these ports ethX, but there has been no correlation of the ethX names to the chassis labels - the ethX names are non-deterministic. Starting in Fedora 15, Ethernet ports will have a new naming scheme corresponding to physical locations, rather than ethX. Ethernet ports embedded on server motherboards will be named em<port_number>, while ports on PCI cards will be named p<slot_number>p<port_number>, corresponding to the chassis labels.  Additionally, if the network device is an SR-IOV Virtual Function or has Network Partitioning (NPAR) capability, the name will have a suffix of _<virtual_function> or _<partition>.
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns. If there are any such changes involved in this feature, indicate them hereYou can also link to upstream documentation if it satisfies this needThis information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
*
By changing the naming convention, system administrators will no longer have to guess at the ethX to physical port mapping, or invoke workarounds on each system to rename them into some "sane" order.
 
This feature affects all physical systems that expose network port naming information in SMBIOS 2.6 or later (specifically field types 9 and 41)Dell PowerEdge 10G and newer servers (PowerEdge 1950 III family, PowerEdge R710 family, and newer), and HP ProLiant G6 servers and newer are known to expose this information, as do some newer desktop modelsFurthermore, most older systems expose some information in the PCI IRQ Routing Table, which will be consulted if information is not provided by SMBIOS.
 
Fedora running as a guest virtual machine will continue to use the ethX names.
 
Existing installations upgraded to Fedora 15 will not see a change in names unless /etc/udev/rules.d/70-persistent-net.rules is deleted and the HWADDR lines are removed from all /etc/sysconfig/network-scripts/ifcfg-* files, and those files are renamed to use the new device names.
 
You may continue to write rules in /etc/udev/rules.d/70-persistent-net.rules to change the device names to anything you wish.  Such will take precedence over this physical location naming scheme.  Such rules may look like:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", KERNEL=="eth*", NAME="public"
 
This feature may be disabled by passing "biosdevname=0" on the kernel command line, in which case, behavior will revert to using ethX names.
 
Upgrading from an earlier version of Fedora (including  15-Alpha or -Beta) to Fedora 15 may result in a change of network device names from an earlier biosdevname naming scheme to the final naming scheme described here.  Configuration files must be manually adjusted accordingly.


== Comments and Discussion ==
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]] <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
* See [[Talk:Features/ConsistentNetworkDeviceNaming]]
 


[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF15]]
<!-- When your feature page is completed and ready for review -->
<!-- When your feature page is completed and ready for review -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 03:57, 30 April 2011

Consistent Network Device Naming

Summary

Change the network device naming scheme from ethX to a physical location-based name for easy identification and use.

Owner

New Owner:

Previous Owner:

Current status

  • Targeted release: Fedora 15
  • Last updated: 2010-12-03
  • Percentage of completion: 90%

Detailed Description

Systems, particularly servers, with multiple network ports, name the ports ethX in a non-deterministic order, and are therefore not useful for system administrators.

The proposal is as follows:

Benefit to Fedora

System Administrators can then use BIOS-provided names, which are consistent and not arbitrarily named, for their network ports. This eliminates the confusion that non-deterministic naming brings, and eliminates the use of hard-coded MAC address based port renaming which a) is racy and error-prone, and b) introduces state into an otherwise stateless system.

This change affects most desktop, notebook, and server-class systems.

Limitations

Not all add-in cards have a method to expose their Linux interface name(s) to external port mapping. biosdevname may provide incorrect names for such. Discussions are ongoing on the netdev mailing list to standardize a method of exposing such mapping.

Scope

  • See above

How To Test

  • System-Under-Test can be just about any system. Systems that expose SMBIOS 2.6 Type 9 and Type 41 fields are preferred, but the code will work on systems that expose the legacy PCI IRQ Routing Table as well.
  • biosdevname must be installed on the target system.
  • erase /etc/udev/rules.d/70-persistent-net.rules file. This is where naming is persisted across reboots.
  • reboot the system
  • Following reboot:
    • /sbin/ifconfig -a must show LAN-on-Motherboard ports named em[1234]
    • em[1234] must correspond to the chassis labels. Verify using ethtool -p em[1234] and watch the lights blink.
  • Installing using Anaconda:
    • anaconda should present network devices to use, having the new naming convention.

User Experience

Ethernet NICs embedded on the motherboard will be named em[1234] rather than ethX. PCI add-in card NICs will be named p<slot>p<port>_<vf>.

Linux guests running under virtualization platforms such as KVM, Xen, VMware Workstation or ESX, or Microsoft Hyper-V will not have their devices renamed.

System Administrators may disable this feature by passing "biosdevname=0" on the kernel command line.

Dependencies

None

Contingency Plan

None necessary, revert to previous release behaviour.

Documentation

Release Notes

  • Servers often have multiple Ethernet ports, either embedded on the motherboard, or on add-in PCI cards. Linux has traditionally named these ports ethX, but there has been no correlation of the ethX names to the chassis labels - the ethX names are non-deterministic. Starting in Fedora 15, Ethernet ports will have a new naming scheme corresponding to physical locations, rather than ethX. Ethernet ports embedded on server motherboards will be named em<port_number>, while ports on PCI cards will be named p<slot_number>p<port_number>, corresponding to the chassis labels. Additionally, if the network device is an SR-IOV Virtual Function or has Network Partitioning (NPAR) capability, the name will have a suffix of _<virtual_function> or _<partition>.

By changing the naming convention, system administrators will no longer have to guess at the ethX to physical port mapping, or invoke workarounds on each system to rename them into some "sane" order.

This feature affects all physical systems that expose network port naming information in SMBIOS 2.6 or later (specifically field types 9 and 41). Dell PowerEdge 10G and newer servers (PowerEdge 1950 III family, PowerEdge R710 family, and newer), and HP ProLiant G6 servers and newer are known to expose this information, as do some newer desktop models. Furthermore, most older systems expose some information in the PCI IRQ Routing Table, which will be consulted if information is not provided by SMBIOS.

Fedora running as a guest virtual machine will continue to use the ethX names.

Existing installations upgraded to Fedora 15 will not see a change in names unless /etc/udev/rules.d/70-persistent-net.rules is deleted and the HWADDR lines are removed from all /etc/sysconfig/network-scripts/ifcfg-* files, and those files are renamed to use the new device names.

You may continue to write rules in /etc/udev/rules.d/70-persistent-net.rules to change the device names to anything you wish. Such will take precedence over this physical location naming scheme. Such rules may look like:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", KERNEL=="eth*", NAME="public"

This feature may be disabled by passing "biosdevname=0" on the kernel command line, in which case, behavior will revert to using ethX names.

Upgrading from an earlier version of Fedora (including 15-Alpha or -Beta) to Fedora 15 may result in a change of network device names from an earlier biosdevname naming scheme to the final naming scheme described here. Configuration files must be manually adjusted accordingly.

Comments and Discussion