nic enumeration

Michael Di Domenico
2010-07-07T22:25:55Z

I have an issue where I have an onboard NIC with effectively three
ports, no other NIC ports/chips are in the system

Nic0: xx:xx:xx:00:00:02
Nic1: xx:xx:xx:00:00:01
IPMI: xx:xx:xx:00:00:03

When I boot RedHat Linux, Nic1 becomes Eth0 and Nic0 becomes Eth1.

I understand there is a disconnect between BIOS and linux on which
device should get which Eth, as well as, what ensues when you have PCI
cards along side onboard ports.

What I'm curious about is how/why Linux actually decides Nic1 should be Eth0?

My theory is it starts on the lowest MAC address and works up,
depending partly on driver load order.

Given the above scenario, swapping the MAC addresses between Nic1 and
Nic0 would clear this issue.

Can anyone confirm or deny this? Or explain/point me to, how it actually works.