Jump to: navigation, search

Difference between revisions of "Libvirt-direct-network"

m (Adding Virtual Network Interface supprot for Libvirt VIF Driver)
m (Adding Virtual Network Interface supprot for Libvirt VIF Driver)
Line 1: Line 1:
=== Adding Virtual Network Interface supprot for Libvirt VIF Driver ===
+
= Virtual Network Interface supprot for Libvirt VIF Driver =
  
In order to provide Hardware Based Virtual NICs (SR-IOV) there are two options:  
+
Hardware Based Virtual NICs (SR-IOV) can be acheived in via the following ways:
 
* Direct Interface (Paravirtualized)  
 
* Direct Interface (Paravirtualized)  
 
* PCI Device (hostdev).<br />
 
* PCI Device (hostdev).<br />
  
It's possible to assign the interfaces specifically by using the Interface name or the PCI device address.<br />
+
The interface can be assigned by using the interface name or PCI device address.
  
This approach has several limitations well documented [http://wiki.libvirt.org/page/Networking#Assignment_from_a_pool_of_SRIOV_VFs_in_a_libvirt_.3Cnetwork.3E_definition here]<br />
+
This approach has several limitations well documented in libvirt site[http://wiki.libvirt.org/page/Networking#Assignment_from_a_pool_of_SRIOV_VFs_in_a_libvirt_.3Cnetwork.3E_definition here]
  
 +
It is possible to avoid  these limitations 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 VM.
  
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. <br />
+
This support is available using:
A network device is chosen from the interface pool and directly assigned to the guest.<br />
+
* libvirt 0.9.4 release - for direct assignment
 +
* libvirt 0.10.0 for PCI device assignment.
  
Support is available starting with libvirt 0.9.4 - for direct assignment and 0.10.0 for PCI Device assignment.<br />
+
= Configuring the vNIC =
 
+
For the vNIC configuration - The network pool name and the vnic_type should be provided to the VIF Driver
==== Configuring the vNIC ====
 
For Configuration - The Network pool name and the vnic_type should be provided to the VIF Driver '<br />
 
 
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'.<br />
 
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'.<br />
  

Revision as of 07:12, 20 May 2013

Virtual Network Interface supprot for Libvirt VIF Driver

Hardware Based Virtual NICs (SR-IOV) can be acheived in via the following ways:

  • Direct Interface (Paravirtualized)
  • PCI Device (hostdev).

The interface can be assigned by using the interface name or PCI device address.

This approach has several limitations well documented in libvirt sitehere

It is possible to avoid these limitations 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 VM.

This support is available using:

  • libvirt 0.9.4 release - for direct assignment
  • libvirt 0.10.0 for PCI device assignment.

Configuring the vNIC

For the vNIC 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/