de | English
Datacenter Feb 5, 2020

VMware ESXi - VMKernel packet loss with Intel network cards.

VMware environments with Intel X710, XL710 and X722 network cards can experience package loss on the VMKernel port vmk0 (mostly management) due to an LLDP agent on the network cards.

Share article

The Intel X710, XL710 and X722 network cards have an LLDP feature with the i40en driver. This feature is activated as standard and ensures that an LLDP agent runs on every port, which sends packets with the port's MAC address and processes incoming LLDP packets.

 

Together with the initial installation of ESXi, which does not generate any MAC addresses for the VMKernel port and which uses the MAC address from a physical NIC, this can lead  to sporadic connection interruptions in the following scenario.

 

As soon as the vmk0's port group is configured in an active-active failover policy, it can arise that the vmk0 is not operated on the interface whose MAC address was taken over. This leads to the ToR switches detecting the same MAC address on several ports, firstly, by the LLDP packages of the original interface and secondly by the VMKernel traffic. As a result, the switch learns the MAC address on an incorrect port and packages for vmk0 are misrouted.

 

Since the i40en driver version 1.5.6 and firmware 6.0.x for X710 and XL710 adapter (X722: version 1.7.16, firmware 3.10), the behaviour of the LLDP agent can be controlled with help of driver parameters. For ESXi, LLDP can be disabled with the esxcli. In order to apply the changes, the server needs to be restarted.

 

esxcli system module parameters set -m i40en -p LLDP=0,0,0,0

 

Take care to ensure that the parameter expects an array as a value where each entry stands for a port of the network card(s).

 

Changing the MAC address from vmk0 can also solve the problem. However, the LLDP agent can also impair the functionality of the distributed virtual switch’s LLDP as incoming LLDP packages are processed directly on the network card and the ESXi does not receive this information.

Niklas Illtz
System Engineer