Intel Ethernet and Configuring SR-IOV on Windows Server* 2012

6 Intel
®
Ethernet and Configuring SR-IOV on Windows* Server 2012
1.1.2 Virtual Function Overview
A VF is not a full-fledged PCIe device. However, it provides a basic mechanism for directly transferring
data between a Hyper-V child partition and the underlying SR-IOV network adapter. Software resources
associated for data transfer are directly available to the VF and are isolated from use by the other VFs or
the PF. However, the configuration of most of these resources is performed by the PF miniport driver that
runs in the management operating system of the Hyper-V parent partition.
A VF is exposed as a virtual network adapter (VF network adapter) in the guest operating system that
runs in a Hyper-V child partition. After the VF is associated with a virtual port (VPort) on the NIC switch
of the SR-IOV network adapter, the virtual PCI (VPCI) driver that runs in the VM exposes the VF network
adapter. Once exposed, the PnP manager in the guest operating system loads the VF miniport driver.
Each PF and VF is assigned a unique PCI Express Requester ID (RID) that allows an I/O memory
management unit (IOMMU) to differentiate between different traffic streams and apply memory and
interrupt translations between the PF and VFs. This allows traffic streams to be delivered directly to the
appropriate Hyper-V parent or child partition. As a result, non-privileged data traffic flows from the PF to
VF without affecting other VFs.
SR-IOV enables network traffic to bypass the software switch layer of the Hyper-V virtualization stack.
Because the VF is assigned to a child partition, the network traffic flows directly between the VF and child
partition. As a result, the I/O overhead in the software emulation layer is diminished and achieves
network performance that is nearly the same performance as in non-virtualized environments.
1.1.3 Live Migration & SR-IOV
In Windows Server 2012, Live Migration can be performed with SR-IOV being used by a VM. If the source
and target systems support SR-IOV and the target has an available VF, the VM will use the virtual
function. If not, the VM will revert to the traditional path (VM-Bus).
Each SR-IOV capable network adapter exposes a fixed number of Virtual Functions, which can be
obtained by running the PowerShell command “Get-NetAdapterSriov”.
Each PF and VF is assigned a unique PCI Express Requester ID (RID) that allows an I/O
memory management unit (IOMMU) to differentiate between different traffic streams and
apply memory and interrupt translations between the PF and VFs. This allows traffic streams
to be delivered directly to the appropriate Hyper-V parent or child partition. As a result,
non-privileged data traffic flows from the PF to VF without affecting other VFs.
SR-IOV enables network traffic to bypass the software switch layer of the Hyper-V
virtualization stack. Because the VF is assigned to a child partition, the network traffic flows
directly between the VF and child partition. As a result, the I/O overhead in the software
emulation layer is diminished and achieves network performance that is nearly the same
performance as in non-virtualized environments.