Home_greyopenFATE - openSUSE feature tracking > #311365
Dashboard | Search | Sign up | Login

Please login or register to be able to edit or vote this feature.

Include 71-biosdevname.rules to rename network interfaces based on chassis labels

Feature state

openSUSE Distribution
Rejected Information


On a Dell PowerEdge server with multiple add-in cards, the naming of the network interfaces is non-deterministic. This results in 'eth0' not mapping to "Embedded NIC 1" as labeled on the server chassis. This issue is seen on Dell PowerEdge 10G above. This feature addresses this issue by renaming network interfaces based on their location on the system motherboard.

The naming policy it suggests are as follows -

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

Please refer to "Consistent Network device naming-Name network interfaces to match chassis labels" (https://features.opensuse.org/310896 ).

User benefit:

This allows system administrators to refer to the network interfaces by names based on their location on the motherboard. The naming becomes deterministic and there is no state such as HWADDR embedded into the configuration files.


icons/user_comment.png N. K. wrote: (7 years ago)

This request is for the inclusion of 71-biosdevname.rules which define how the rename happens.
71-biosdevname.rules looks like this -

SUBSYSTEM!="net", GOTO="netdevicename_end"
KERNEL!="eth*", GOTO="netdevicename_end"
ACTION!="add", GOTO="netdevicename_end"
NAME=="?*", GOTO="netdevicename_end"

# kernel command line "biosdevname={0|1}" can turn off/on biosdevname
ENV{biosdevname}=="?*", ENV{UDEV_BIOSDEVNAME}="$env{biosdevname}"
# ENV{UDEV_BIOSDEVNAME} can be used for blacklist/whitelist
# but will be overwritten by the kernel command line argument
ENV{UDEV_BIOSDEVNAME}=="0", GOTO="netdevicename_end"
ENV{UDEV_BIOSDEVNAME}=="1", GOTO="netdevicename_start"

# uncomment the next line for biosdevname to be off by default
# GOTO="netdevicename_end"


# using NAME= instead of setting INTERFACE_NAME, so that persistent
# names aren't generated for these devices, they are "named" on each boot.
PROGRAM="/sbin/biosdevname --policy physical -i %k", NAME="%c", OPTIONS+="string_escape=replace"


icons/user_comment.png M. C. wrote: (7 years ago)

Yikes, that is pretty jumbled together and hard to read. Could you please resubmit it formatted? HTML tags can be used, and consider just using "pre" for your already formatted text. Or if that doesn't work, you can email a formatted document to me and I will copy it over here.

icons/user_comment.png N. K. wrote: (7 years ago)

I got biosdevname working on openSUSE 11.4 RC2 installed on PowerEdge R710. These are the observations -

  1. Remove 70-persistent-net.rules in /etc/udev/rules.d/
  2. make sure that the ifcfg-ethN file in /etc/sysconfig/network is renamed to ifcfg-emN. Also, i observed that the ifcfg-ethN file did not have any state such as MAC address embedded.
  3. Install latest version of biosdevname utility biosdevname-0.3.7
  4. reboot the system and observe that the biosdevname suggested names are in place and the configured ifcfg-emN is up.

Here is how the naming looks with the above changes -

linux-bt6c:/etc/sysconfig/network # cat /etc/issue

Welcome to openSUSE 11.4 "Celadon" - Kernel \r (\l).
linux-bt6c:/etc/sysconfig/network # ifconfig

em1 Link encap:Ethernet HWaddr 00:24:E8:2E:DE:FF
inet addr: Bcast: Mask:
inet6 addr: fe80::224:e8ff:fe2e:deff/64 Scope:Link
inet6 addr: fc07:1::1:bb/64 Scope:Global
RX packets:207460 errors:0 dropped:0 overruns:0 frame:0
TX packets:2417 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14024994 (13.3 Mb) TX bytes:253854 (247.9 Kb)
Interrupt:36 Memory:d6000000-d6012800

lo Link encap:Local Loopback
inet addr: Mask:
inet6 addr: ::1/128 Scope:Host
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9602 (9.3 Kb) TX bytes:9602 (9.3 Kb)

The system has 4 BCM5709 Lan-On-Motherboard ports, 1 single port 82572EI adapter on PCI slot 4, 1 dual port Intel 82576 adapter on PCI slot 3. The naming looks like this -

linux-bt6c:/etc/sysconfig/network # ls /sys/class/net/

em1 em2 em3 em4 lo pci3p1 pci3p2 pci4p1

icons/user_comment.png N. K. wrote: (7 years ago)

Onboard device names -

em1 - ethernet-on-motherboard 1

em2 - ethernet-on-motherboard 2

PCI Add-in interface names -

pci3p1 - pci<slot 3>p<port 1>

pci3p2 - pci<slot 3>p<port 2>

pci4p1 - pci<slot 4>p<port 1>

Last change: 11 months ago
Score: 1
  • Negative: 1
  • Neutral: 1
  • Positive: 2
Feature Export
Application-xmlXML   Text-x-logPlaintext   PrinterPrint