Qemu scrambles order of eth devices in vm
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| QEMU |
Expired
|
Undecided
|
Unassigned | ||
Bug Description
HV = 12.04 LTS plus libvirt 1.0x
VM = 12.04 LTS
On the HV there are 12 eth interfaces which we make available to the VM. We have 4 10G virtual function interfaces, and 8 1G conventionally bridged interfaces. No matter what order we present the interfaces in the xml file, they come up in eth0-eth11 order on the VM as follows: ( the interfcaes do work, once you figure out which is which)
eth0-eth7 not in order as compoared to the bridges on the HV (interfaces file) or compared to the xml file for the VM, or compared to the bus numbers. MAC addresses are random.
eth8-eth11 show up in the VM in order of PCU bus numbers just as you'd expect, always after the bridged interfaces.
Consulting the libvirt mailing list, the developer says they present the list in bus order to qemu, but qemu scrambles that order. That appears to me too, to be the case.

There is really no such concept as "NIC order" at the hardware level in QEMU. NIC naming order is something that operating systems invent according to some policy they have. As far as libvirt & QEMU are concerned, you only have control over the PCI device slot numbering. The operating system may choose to number NICs based on their PCI device slot number, or something else entirely. Further after an OS has been booted once, they often record the original mapping of MAC <-> NIC names, so even if you change the PCI slot ordering on later boots, the naming won't change.