Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
The problem is that the bios for this machine is sending the same info for EVERY embedded device, see below for the output of udev to see the value of eno1 is being seen on each device. Unfortunately, there is no way to tell udev to use option 2 naming by default, so this makes the 1st embedded device to be named eno1, but every other interface will fail option 1-3 and end up being named the old standard eth0, eth1...
I've made a bit of a hack to my udev rules in order to ensure that the 2nd rule is used to name our interfaces, although this should not be necessary. I would like to see the bios remove it's interface naming so that udev uses rule 2 by default, much like many of our other SM hardware works.
output: Showing the BIOS sending name of eno1 to the kernel for each interface
[root@fdi ~]# udevadm info /sys/class/net/enp132s0f0 |grep ONBOARD
E: ID_NET_NAME_ONBOARD=eno1
[root@fdi ~]# udevadm info /sys/class/net/enp132s0f1 |grep ONBOARD
E: ID_NET_NAME_ONBOARD=eno1
[root@fdi ~]# udevadm info /sys/class/net/enp5s0f0 |grep ONBOARD
E: ID_NET_NAME_ONBOARD=eno1
[root@fdi ~]# udevadm info /sys/class/net/enp5s0f1 |grep ONBOARD
E: ID_NET_NAME_ONBOARD=eno1
output: current udev rules showing it using the ONBOARD name if it exists
[root@fdi ~]# cat /usr/lib/udev/rules.d/80-net-name-slot.rules
# do not edit this file, it will be overwritten on update
ACTION!="add", GOTO="net_name_slot_end"
SUBSYSTEM!="net", GOTO="net_name_slot_end"
NAME!="", GOTO="net_name_slot_end"
IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="net_name_slot_end"
NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
LABEL="net_name_slot_end"
output: my hack to the ruleset to ensure that ONBOARD is skipped (I copied the rule into the "user" ruleset locale in etc, named it w/ a lower priority so that it is parsed before the built-in ruleset, and commented out the 1st rule)
[root@fdi ~]# cat /etc/udev/rules.d/79-ctl-net-name-slot.rules
# do not edit this file, it will be overwritten on update
ACTION!="add", GOTO="net_name_slot_end"
SUBSYSTEM!="net", GOTO="net_name_slot_end"
NAME!="", GOTO="net_name_slot_end"
IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="net_name_slot_end"
# jmdiel - disable due to SM hardware supplying eno1 for every embedded nic
#NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
LABEL="net_name_slot_end"
Version-Release number of selected component (if applicable):
How reproducible:
100%
Steps to Reproduce:
1.
2.
3.
Actual results:
Expected results:
Additional info:
Sorry, I've missed this bug because in RHEL7 udev is part of systemd package. Not sure if we can disable filling bugs against udev component for RHEL7.
To make 2nd naming scheme default, please copy rule file (80-net-name-slot.rules) to /etc/udev/rules.d/ and leave first option commented out. udev will see there are two files with same file name and it will use one from /etc because local admin configuration always wins over config provided by rpm package. IIRC, this is documented in RHEL 7 Network Administration Guide.
Due to the originating case being closed for an extended period of time, and no further reports of this behaviour, I am closing this bug at this time in order to focus our efforts on higher priority issues.
Please reopen if a further occurrence is encountered.
Description of problem: The problem is that the bios for this machine is sending the same info for EVERY embedded device, see below for the output of udev to see the value of eno1 is being seen on each device. Unfortunately, there is no way to tell udev to use option 2 naming by default, so this makes the 1st embedded device to be named eno1, but every other interface will fail option 1-3 and end up being named the old standard eth0, eth1... I've made a bit of a hack to my udev rules in order to ensure that the 2nd rule is used to name our interfaces, although this should not be necessary. I would like to see the bios remove it's interface naming so that udev uses rule 2 by default, much like many of our other SM hardware works. output: Showing the BIOS sending name of eno1 to the kernel for each interface [root@fdi ~]# udevadm info /sys/class/net/enp132s0f0 |grep ONBOARD E: ID_NET_NAME_ONBOARD=eno1 [root@fdi ~]# udevadm info /sys/class/net/enp132s0f1 |grep ONBOARD E: ID_NET_NAME_ONBOARD=eno1 [root@fdi ~]# udevadm info /sys/class/net/enp5s0f0 |grep ONBOARD E: ID_NET_NAME_ONBOARD=eno1 [root@fdi ~]# udevadm info /sys/class/net/enp5s0f1 |grep ONBOARD E: ID_NET_NAME_ONBOARD=eno1 output: current udev rules showing it using the ONBOARD name if it exists [root@fdi ~]# cat /usr/lib/udev/rules.d/80-net-name-slot.rules # do not edit this file, it will be overwritten on update ACTION!="add", GOTO="net_name_slot_end" SUBSYSTEM!="net", GOTO="net_name_slot_end" NAME!="", GOTO="net_name_slot_end" IMPORT{cmdline}="net.ifnames" ENV{net.ifnames}=="0", GOTO="net_name_slot_end" NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}" NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}" NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}" LABEL="net_name_slot_end" output: my hack to the ruleset to ensure that ONBOARD is skipped (I copied the rule into the "user" ruleset locale in etc, named it w/ a lower priority so that it is parsed before the built-in ruleset, and commented out the 1st rule) [root@fdi ~]# cat /etc/udev/rules.d/79-ctl-net-name-slot.rules # do not edit this file, it will be overwritten on update ACTION!="add", GOTO="net_name_slot_end" SUBSYSTEM!="net", GOTO="net_name_slot_end" NAME!="", GOTO="net_name_slot_end" IMPORT{cmdline}="net.ifnames" ENV{net.ifnames}=="0", GOTO="net_name_slot_end" # jmdiel - disable due to SM hardware supplying eno1 for every embedded nic #NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}" NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}" NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}" LABEL="net_name_slot_end" Version-Release number of selected component (if applicable): How reproducible: 100% Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: