Quantum VIF Plugging Improvements

Registered by Gary Kotton

High level description:
Impove the VIF plugins. The following link describes the problem:- https://docs.google.com/presentation/d/1vD2bc2WyqQzOLODjFrfLgg661WU0nteY7NEaVS4pv5g/edit
The solution will enable Nova to retrive the underlying network implementations from the Quantum plugin.
Below are the required Quantum and Nova changes.
Quantum changes:-
 - provide a API whereby Nova can retrive the underlying network implementation
 - each plugin will need to provide this
Nova:-
 - In the long run http://wiki.openstack.org/VifPlugging
 - for the first phase a generic Quantum VIF plugin will be created.
 - Nova will learn the networking implementation and build the networking configuration accordingly. This save the configuration of drivers and management on the nova side.
 - Old configuration variables will be kept for backward compatibility (still need to understand how these can be deprecated)

API's:
GET /network-implementation-details/<net-id>
Each plugin will be responsible for filling the relevant details

We may need to add in a port-implementation. This is pending input from the lists

Configuration variables:
None

Algorithm:
Quantum - return the specific networking implementation
Nova - Ensure that the networking implementation is supported :)

Data Model Changes:
None

Plugin Interface:
No changes

Required Plugin support:
Yes, each plugin will need to inherit the extended API and ensure that correct networking implementation is returned.

Blueprint information

Status:
Complete
Approver:
dan wendlandt
Priority:
High
Drafter:
None
Direction:
Needs approval
Assignee:
Gary Kotton
Definition:
Review
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Gary Kotton
Completed by
dan wendlandt

Related branches

Sprints

Whiteboard

I'm marking this as implemented. Any additional changes we can track under a more specific bp/bug.

Several commits for this have merged already, so we may decide to close this. However, there are some open questions with respect to the existing changes, which we are hashing out on the ML.

Given the short week, the fact that we are still in design discussions, and that it requires Nova reviews, I'm moving this to G-3. We should keep working on it now, but ttx wants milestones to indicate expected delivery, and I don't expect this to be done in one week.

renamed to make it clear that this is related to "vif-plugging", not any quantum plugin.

Gerrit topic: https://review.openstack.org/#q,topic:bug/1046766,n,z

Addressed by: https://review.openstack.org/14961
    Part of the patch set that enables VM's to use libvirts bridge type.

A proposal for how we can tidy up the hypervisor interface and make the world a better place: http://wiki.openstack.org/VifPlugging . Heckling welcome.

(And bear in mind a good half of the work for this is in Nova.)

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

Addressed by: https://review.openstack.org/16439
    Add VIF binding extensions

Nova patches to support the BP:
https://review.openstack.org/#/c/17734/
https://review.openstack.org/#/c/17747/
https://review.openstack.org/#/c/17755/

Devstack:
https://review.openstack.org/#/c/17748/

Nova libvirt VIF driver improvements are being done in https://blueprints.launchpad.net/nova/+spec/libvirt-vif-driver

Addressed by: https://review.openstack.org/19542
    Inform a client if Quantum provides port filtering feature

Gerrit topic: https://review.openstack.org/#q,topic:bug/1099894,n,z

Addressed by: https://review.openstack.org/19777
    Add a common test case for Port Binding Extension

Addressed by: https://review.openstack.org/19779
    Support Port Binding Extension in NEC plugin

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.