Simplify the libvirt VIF drivers

Registered by Daniel Berrange on 2013-01-04

Currently a great burden is placed on the nova sysadmin to correctly configure libvirt VIF driver choices. All of this can & should be done automatically based on information about the type of network Nova is connecting to. The Nova Network driver can trivially provide sufficient data already. The Quantum server can now provide the 'vif_type' data, and the Nova Quantum plugin can fill out most of the rest of the data, until the Quantum server is able to directly return it.

The end result will be a single GenericVifDriver impl for libvirt which will work out of the box for all in-tree Quantum / Nova Network drivers. The vif_driver config param will remain to cope with the (hopefully unlikely) case where an out of tree Quantum plugin doesn't work with this generic driver.

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Medium
Drafter:
Daniel Berrange
Direction:
Approved
Assignee:
Daniel Berrange
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Vish Ishaya on 2013-01-09
Completed by
Russell Bryant on 2013-02-11

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/libvirt-vif-driver,n,z

Addressed by: https://review.openstack.org/18869
    Merge LibvirtOpenVswitchVirtualPortDriver into LibvirtOpenVswitchDriver

Addressed by: https://review.openstack.org/19115
    Remove bogus 'unplug' calls from libvirt VIF test

Addressed by: https://review.openstack.org/19116
    Move libvirt VIF XML config into designer.py

Addressed by: https://review.openstack.org/19117
    Add some constants to the network model for drivers to use

Addressed by: https://review.openstack.org/19118
    Make nova network manager fill in vif_type

Addressed by: https://review.openstack.org/19119
    Make Quantum plugin fill in the 'bridge' name

Addressed by: https://review.openstack.org/19120
    Add 'devname' to nova.network.model.VIF class

Addressed by: https://review.openstack.org/19121
    Add 'ovs_instanceid' to nova network VIF model

Addressed by: https://review.openstack.org/19122
    Move helper APIs for OVS ports into linux_net

Addressed by: https://review.openstack.org/19123
    Remove duplicated tapdev creation code from libvirt VIF

Addressed by: https://review.openstack.org/19124
    Merge QuantumLinuxBridgeVIFDriver into LibvirtBridgeDriver

Addressed by: https://review.openstack.org/19125
    Merge LibvirtOpenVswitchVirtualPortDriver into LibvirtOpenVswitchDriver

Addressed by: https://review.openstack.org/19126
    Merge LibvirtHybridOVSBridgeDriver into LibvirtOpenVswitchDriver

Addressed by: https://review.openstack.org/19127
    Merge all VIF classes into one LibvirtGenericVIFDriver

Addressed by: https://review.openstack.org/19128
    Introduce support for 802.1qbg and 802.1qbh to Nova VIF model

Addressed by: https://review.openstack.org/20243
    Merge LibvirtOpenVswitchDriver class into LibvirtGenericVIFDriver

Addressed by: https://review.openstack.org/20244
    Merge LibvirtBridgeDriver class into LibvirtGenericVIFDriver

Addressed by: https://review.openstack.org/20727
    Remove deprecation notice in LibvirtBridgeDriver

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.