Virtual functions (VFs) are lightweight PCIe functions that contain all the resources necessary for data movement but have a carefully minimized set of configuration resources. There are some restrictions in the interactions between vSphere 5.1 and VFs.

When a physical NIC creates VFs for SR-IOV to use, the physical NIC becomes a hidden uplink and cannot be used as a normal uplink. This means it cannot be added to a standard or distributed switch.

There is no rate control for VFs in vSphere 5.1. Every VF could potentially use the entire bandwidth for a physical link.

When a VF device is configured as a passthrough device on a virtual machine, the standby and hibernate functions for the virtual machine are not supported.

The maximum number of VFs that you can create and the maximum number of VFs that you can use for passthrough are different. The maximum number of VFs that you can instantiate depends on the NIC capability and on the hardware configuration of the host. However, due to the limited number of interrupt vectors available for passthrough devices, only a limited number of all instantiated VFs can be used on an ESXi host.

Each ESXi host has a total of 256 interrupt vectors. When the host boots, devices on the host such as storage controllers, physical network adapters, and USB controllers consume a subset of the 256 vectors. If these devices require more than 128 vectors, the maximum number of potentially supported VFs is reduced.

For example, out of 64 VFs that can be instantiated on an Intel NIC, the host can use up to 43 VFs for passthrough (128 / 3 = 42.6) if all 128 interrupt vectors are available.

If you have Intel and Emulex NICs present with SR-IOV enabled, the number of VFs available for the Intel NICs depends on how many VFs are configured for the Emulex NIC, and the reverse. You can use the following formula to estimate the maximum number of VFs for use if all 128 interrupt vectors are available for passthrough:

3X + 2Y < 128

where X is the number of Intel VFs, and Y is the number of Emulex VFs.

This number might be smaller if other types of devices on the host use more than 128 interrupt vectors from the total of 256 vectors on the host.

Due to the limited number of vectors available for passthrough devices, there is a limited number of VFs supported on an vSphere ESXi host . vSphere 5.1 SR-IOV supports up to 43 VFs on supported Intel NICs and up to 64 VFs on supported Emulex NICs.

If a supported Intel NIC loses connection, all VFs from the same physical NIC stop communication, including between VFs.

If a supported Emulex NIC loses connection, all VFs stop communication with the external environment, but VF communication still functions.

VF drivers offer many different features, such as IPv6 support, TSO, and LRO Checksum. See your vendor’s documentation for further details.