Mellanox-vif-driver

Introduction
Hardware Based Virtual NICs (SR-IOV) can be achieved in the following ways
 * Direct Interface (Para-virtualized)
 * PCI Device (hostdev).

Direct Interface
Assigning vNIC via Direct Interface is achieved by using libvirt direct interface.

The direct interface device name assigned a logical name that is derived from the VIF UUID (neutron port ID).

This allows support for VM live migration.

The VIF Driver is using vnic_type = 'direct' and using the Eswitch control utility to plug/unplug the VIF

Physical network
In order to support number of physical connections of the compute node to different physical networks, physical network identification should be propagated to the VIF Driver together with vnic_type and virtual network attributes.

Physical_network is propagated to the VIF driver from Neutron v2 API response on port creation/update.

PCI Device(hostdev)
See Roadmap

Roadmap
First phase is to support Ethernet Direct Interface.

Next phases will include hostdev support and Infiniband support.