The SR-IOV Demonstration Technology is a hardware-based virtualization solution that improves both performance and scalability. The SR-IOV standard enables efficient sharing of PCIe (Peripheral Component Interconnect) Express devices among virtual machines and is implemented in the hardware to achieve I/O performance which is comparable to native performance
The SR-IOV standard allows efficient sharing of PCIe devices among IO Guest Domains. An SR-IOV device can have hundreds of Virtual Functions (VFs) associated with a Physical Function (PF).
Devices that have SR-IOV capability can take advantage of the following benefits:
Implemented PF and VF Drivers on HV (KVM and Xen) and Linux OS respectively
The Physical Function (PF) is a PCI Express (PCIe) function of a network adapter that supports the single root I/O virtualization (SR-IOV) interface. The PF includes the SR-IOV Extended Capability in the PCIe configuration space. The capability is used to configure and manage the SR-IOV functionality of the network adapter, such as enabling virtualization and exposing PCIe Virtual Functions (VFs).
The configuration and provisioning of the VFs, together with other hardware and software resources for the support of VFs, is performed through the PF driver. The PF driver provides the access to the networking I/O resources to the management operating system. The PF driver is also used as a way to manage the resources allocated on the adapter for the VFs.
A PCI Express (PCIe) Virtual Function (VF) is a lightweight PCIe function on a network adapter that supports single root I/O virtualization (SR-IOV). The VF is associated with the PCIe Physical Function (PF) on the network adapter and represents a virtualized instance of the network adapter. Each VF has its own PCI configuration space. Each VF also shares one or more physical resources on the network adapter, such as an external network port, with the PF and other VFs.
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 the 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.
# | Feature |
1 | All DMA channel allocation across PF and VF |
2 | Configuring Traffic class |
3 | VLAN stripping |
4 | VLAN filtering |
5 | Promiscuous mode(VF will be tested after ELI support) |
6 | Set VF MAC |
7 | Ethtool ops |
8 | Get PTP timestamp (PTP in VF needs multicast support in Module, VF will be tested after ELI support) |
9 | Checksum Offloading |
10 | Transmit Segmentation Offload (TSO) |
11 | multi-cast |
12 | Broadcast (FPFA support needed for VF Broadcast test,VF will be tested after ELI support) |
# | Feature |
1 | Invalid max_vfs value |
2 | Running VMs more than mx_vfs and loading VF drivers on them |
3 | Setup repeated VLANs on the interface |
4 | Assigning already existing PF interface VLAN ID to VF interface or VF interface VLAN ID to PF interface |
5 | Killing a non-existing VLAN ID |
6 | Assigning VLAN ID outside the maximum DMA channel present for each configuration |
7 | Setting of parameters outside the range. The maximum range supported for rx-usecs is 2611(for PF) and 522 (for VF) |
8 | Setting of channel number outside the range of 4(for 4×4 configuration), 3(for 5×3 configuration) and 2(for 8×2 configuration). |
9 | Setting ring parameters outside the range. The maximum range supported for rx and tx ring is 4096 |
# | Test |
1 | Continuous data transfers for duration of 10 hours |
2 | Data transfer test with the cable being removed and connected back. No drop in the throughput rate expected after the cable is reinserted |
3 | Interface up and down multiple times using ifconfig command and verify whether the setup is stable |
4 | Remove PF without removing VF |
5 | Overnight youtube test on PF and VFs |
6 | Overnight SCP test on PF and VFs |
7 | OVernight iPerf test on PF and VFs |
TCP/UDP | Command | Bandwidth | |
PF as Server and Laptop as Client | |||
PF | Laptop | ||
TCP | iperf3 -s | iperf3 -c 50.40.2.58 -t 20 -l64 | ~(X/5) Mbps |
UDP | iperf3 -s | iperf3 -c 50.40.2.58 -u -b1G -t 20 -l64 | ~(X/5) Mbps |
PF as Server and Laptop as Client | |||
TCP | iperf3 -s | iperf3 -c 50.40.2.20 -t 20 -l64 | ~(X/5) Mbps |
UDP | iperf3 -s | iperf3 -c 50.40.2.20 -u -b1G -t 20 -l64 | ~(X/5) Mbps |
TCP/UDP | Command | Bandwidth | |
PF as Server and Laptop as Client | |||
PF | Laptop | ||
TCP | iperf3 -s | iperf3 -c 50.40.2.58 -t 20 | ~X Mbps |
UDP | iperf3 -s | iperf3 -c 50.40.2.58 -u -b1G -t 20 | ~X Mbps |
PF as Server and Laptop as Client | |||
TCP | iperf3 -s | iperf3 -c 50.40.2.20 -t 20 | ~X Mbps |
UDP | iperf3 -s | iperf3 -c 50.40.2.20 -u -b1G -t 20 | ~X Mbps |
If you are interested in knowing more about our expertise in such areas of work or if you like to engage in a business discussion with us, please write to us at sales@vayavyalabs.com.SR-IOV Demonstration TechnologySR-IOV Demonstration Technology