PCI SR-IOV Ethernet Interface DevicesΒΆ

A SR-IOV ethernet interface is a physical PCI ethernet NIC that implements hardware-based virtualization mechanisms to expose multiple virtual network interfaces that can be used by one or more virtual machines simultaneously.

The PCI-SIG Single Root I/O Virtualization and Sharing (SR-IOV) specification defines a standardized mechanism to create individual virtual ethernet devices from a single physical ethernet interface. For each exposed virtual ethernet device, formally referred to as a Virtual Function (VF), the SR-IOV interface provides separate management memory space, work queues, interrupts resources, and DMA streams, while utilizing common resources behind the host interface. Each VF therefore has direct access to the hardware and can be considered to be an independent ethernet interface.

When compared with a PCI Passthrough ethernet interface, a SR-IOV ethernet interface:

  • Provides benefits similar to those of a PCI Passthrough ethernet interface, including lower latency packet processing.

  • Scales up more easily in a virtualized environment by providing multiple VFs that can be attached to multiple virtual machine interfaces.

  • Shares the same limitations, including the lack of support for LAG, QoS, ACL, and live migration.

  • Has the same requirements regarding the VLAN configuration of the access switches.

  • Provides a similar configuration workflow when used on StarlingX OpenStack.

The configuration of a PCI SR-IOV ethernet interface is identical to Configure PCI Passthrough ethernet Interfaces except that

  • you use pci-sriov instead of pci-passthrough when defining the network type of an interface

  • the segmentation ID of the project network(s) used is more significant here since this identifies the particular VF of the SR-IOV interface

  • when creating the neutron port, you must use --vnic-typedirect

  • when creating a neutron port backed by an SR-IOV VF, you must use --vnic-type direct