Posted on January 10, 2021 9:47 am
 |  Asked by Christian Svensson
 |  247 views
RESOLVED
0
0
Print Friendly, PDF & Email

Hi,

I am trying to wrap my head around what logic vEOS uses to map PCI network cards to EthernetX numbers.

I am running a lab in ESXi with 1x E1000 interface which always gets mapped to Ma1 – so far so good. However when I add 10x VMXNET 3 interfaces with ordered PCI IDs EOS seems to jumble the order. Ethernet1 ends up being the 4th VMXNET, Ethernet2 is the 8th. It is seemingly random to me.

It seems this would be a severe limitation if it is indeed random, so I must assume I am missing some crucial step.

Relevant parts of my .vmx:


ethernet0.virtualDev = "e1000"
ethernet0.shares = "normal"
ethernet0.addressType = "vpx"
ethernet0.generatedAddress = "00:50:56:97:77:02"
ethernet0.present = "TRUE"
ethernet0.pciSlotNumber = "33"
[..]
ethernet1.virtualDev = "vmxnet3"
ethernet1.shares = "normal"
ethernet1.addressType = "vpx"
ethernet1.generatedAddress = "00:50:56:97:2d:ce"
ethernet1.uptCompatibility = "TRUE"
ethernet1.present = "TRUE"
[..]
ethernet2.generatedAddress = "00:50:56:97:68:95"
ethernet3.generatedAddress = "00:50:56:97:50:f1"
ethernet4.generatedAddress = "00:50:56:97:ce:e3"
ethernet5.generatedAddress = "00:50:56:97:af:08"
ethernet6.generatedAddress = "00:50:56:97:51:bc"
ethernet7.generatedAddress = "00:50:56:97:40:0d"
ethernet8.generatedAddress = "00:50:56:97:98:b9"
ethernet9.generatedAddress = "00:50:56:97:f0:3c"
[..]
ethernet1.pciSlotNumber = "192"
ethernet2.pciSlotNumber = "224"
ethernet3.pciSlotNumber = "256"
ethernet4.pciSlotNumber = "1184"
ethernet5.pciSlotNumber = "1216"
ethernet6.pciSlotNumber = "1248"
ethernet7.pciSlotNumber = "1280"
ethernet8.pciSlotNumber = "2208"
ethernet9.pciSlotNumber = "2240"

lspci output from my vEOS instance:


02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)
04:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
05:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0c:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
0d:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
13:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
14:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
1b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
1c:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)

Inside vEOS this is what I observe:

Ethernet1 is down, line protocol is unknown (notconnect)
Hardware is Ethernet, address is 0050.5697.cee3 (bia 0050.5697.cee3)
Ethernet2 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.98b9 (bia 0050.5697.98b9)
Ethernet3 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.2dce (bia 0050.5697.2dce)
Ethernet4 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.af08 (bia 0050.5697.af08)
Ethernet5 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.f03c (bia 0050.5697.f03c)
Ethernet6 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.6895 (bia 0050.5697.6895)
Ethernet7 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.51bc (bia 0050.5697.51bc)
Ethernet8 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.50f1 (bia 0050.5697.50f1)
Ethernet9 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.400d (bia 0050.5697.400d)
Ethernet100 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.56a1.133d (bia 0050.56a1.133d)
Management1 is up, line protocol is up (connected)
Hardware is Ethernet, address is 0050.5697.7702 (bia 0050.5697.7702)

I also have no idea why Ethernet1 considers itself “down”, but that might be another issue. All the interfaces are connected to the same VLAN and configured identically.

In summary: I would appreciate any insights in how the EthernetX mapping is to PCI ID or MAC address for ESXi.

Thank you

0
Answered on February 8, 2021 2:05 pm

Hi Christian,

Each adapter you add to the VM is assigned a specific value for "pciPassthruX.pciSlotNumber". These values dictate the interface numbering on the vEOS.

Unfortunately, these decimal values are not in an order when we add a new adapter.We need to swap these values from one adapter to another to get the numbering right on vEOS. VMware cover this in more detail here.

Lowest value will be Ethernet1, and so on. Make sure not to alter the numbering in the list and rather just swap the value of one pciSlotNumber with another.

Post your Answer

You must be logged in to post an answer.