Looking further, it seems that the BIOS is providing broken information, see this snippet from dmidecode output:
Handle 0x007E, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard Intel Ethernet 1
Type: Ethernet
Status: Enabled
Type Instance: 1
Bus Address: 0000:07:00.0
Handle 0x007F, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard Intel Ethernet 2
Type: Ethernet
Status: Enabled
Type Instance: 1
Bus Address: 0000:07:00.1
and as a result we get ID_NET_NAME_ONBOARD=eno1 for both devices. So udev tries to rename both interfaces to eno1, only one succeeds, the other one fails due to a name collision. Would be nice to implement a workaround for these broken BIOS data.
Looking further, it seems that the BIOS is providing broken information, see this snippet from dmidecode output:
Handle 0x007E, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard Intel Ethernet 1
Type: Ethernet
Status: Enabled
Type Instance: 1
Bus Address: 0000:07:00.0
Handle 0x007F, DMI type 41, 11 bytes
Onboard Device
Reference Designation: Onboard Intel Ethernet 2
Type: Ethernet
Status: Enabled
Type Instance: 1
Bus Address: 0000:07:00.1
and as a result we get ID_NET_ NAME_ONBOARD= eno1 for both devices. So udev tries to rename both interfaces to eno1, only one succeeds, the other one fails due to a name collision. Would be nice to implement a workaround for these broken BIOS data.