Virtual functions (VFs) are lightweight PCIe functions that contain all the resources necessary for data exchange but have a minimized set of configuration resources. Interaction between vSphere and VFs is limited.
VFs do not implement rate control in vSphere. Every VF can potentially use the entire bandwidth of 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
Xis the number of Intel VFs, and
Yis 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.
vSphere 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 physical NIC stop communication completely, including that between VFs.
If a supported Emulex NIC loses connection, all VFs stop communication with the external environment, but communication between VFs still works
VF drivers offer many different features, such as IPv6 support, TSO, and LRO checksum. See the technical documentation of the NIC vendor for more details.