Jump to: navigation, search

Libvirt-direct-network

Revision as of 06:51, 20 May 2013 by Itzikb (talk | contribs) (Adding libvirt network interface to VIF Driver)

Adding Virtual Network Interface supprot for Libvirt VIF Driver

In order to provide Hardware Based Virtual NICs (SR-IOV) there are two options: Direct Interface (Paravirtualized) or as PCI Device (hostdev).

It's possible to assign the interfaces specifically by using the Interface name or the PCI device address.

This approach has several limitations well documented here


It is possible to avoid these problems by creating a libvirt network with a device pool containing all the VFs of an SR-IOV device.
A network device is chosen from the interface pool and directly assigned to the guest.

Support is available starting with libvirt 0.9.4 - for direct assignment and 0.10.0 for PCI Device assignment.

Configuring the vNIC

For Configuration - The Network pool name and the vnic_type should be provided to the VIF Driver '
On the first phase - The network pool name It will be provided by adding a configuration variable to the nova.conf named 'physical_network' and the vnic_type is 'direct'.

Next Phase should extend the data that is provided to the VIF Driver once the quantum port is created to provide the physical network name.

Creation of the Network Pool

The creation of the Network Pool will be done according to Physical Network mapping to physical interface(s) either Manually (First phase) or by the Quantum Plugin Agent. An example for Network definition can be found here

Implementation

  • Additional vnic_type - 'direct' is defined.
  • The Implementation extends LibvirtGenericVIFDriver.
  • Initial support is for direct interface assignment.
  • Next phase will add support for PCI device assignment.

Related Nova blueprint - Adding libvirt network interface to VIF Driver blueprint
Mellanox Quantum Plugin requires this functionality
You can watch the review process here:
https://review.openstack.org/#/c/29048/