[vbox-dev] FW: Re: [VBox-users] Predictable PCI bus addresses for network interfaces?

Klaus Espenlaub klaus.espenlaub at oracle.com
Thu Aug 1 03:25:59 PDT 2013

Hi Kent,

On 31.07.2013 22:15, Kent R. Spillner wrote:
> Bump.

Sorry, I thought you'd reread my previous reply if I ignore you. All the 
information you need is in there :)

>>> Yes, the bus address is in hex, and with some digging I actually found
>>> what's going on - you've configured the Intel 82545EM network adapter
>>> (official Intel product name PRO/1000 MT Server), and the manual gives
>>> the following hint in section 6.1: "The MT Server variant facilitates
>>> OVF imports from other platforms." - i.e. this one implicitly enables
>>> VMware compatibility hack (swapping slots 0x03 and 0x11). If you switch
>>> to any other model the first device will move to 00:03:0 as expected.
>> Ok, thanks for digging!  I'm interested in this in order to predict the
>> default systemd v197+ interface names when using Vagrant to dynamically
>> configure multiple networks per guest.
>> Is there a way to query individual guests for VMWare compatibility via
>> the API or using VBoxManage at the command line?  It doesn't appear any
>> guest properties are set (I checked with VBoxManage guestproperty
>> enumerate <guest>).  VBoxManage showvminfo <guest> displays a lot of
>> detail, but I don't see anything specifically indicating VMWare
>> compatibility.

As already described, this "VMware compatibility" mode applies if the 
first NIC configured for a VM is the 82545EM variant - it swaps the use 
of slots 0x03 and 0x11, so in this case they will go to 0x11, 0x08, 
0x09, 0x0a, 0x10, 0x03, 0x12, 0x13.

The normal NIC sequence is 0x03, 0x08, 0x09, 0x0a, 0x10, 0x11, 0x12, 0x13.

Again, the condition which determines the "VMware compatible" behavior 
is "is NIC0 of variant 82545EM", and this condition can be of couse 
checked via the API or using VBoxManage.

>> Alternatively, is there a subcommand of VBoxManage I can use to list the
>> PCI address of each active nic for a guest?  I could parse the output of
>> VBoxManage showvminfo <guest> and derive the address from the combination
>> of chipset and NIC type since I now have a better understanding of the
>> mapping, but if that information is already available with a different
>> command that would be great.

No, the PCI assignment is not available from VBoxManage. The allocation 
is done inside the VM process, the API has no knowledge what goes where.


More information about the vbox-dev mailing list