OVS plugin support for v2 Quantum API

Registered by dan wendlandt

We will need to update the OVS plugin to work with the new v2 plugin API. This will likely be done by subclasses the database Plugin base class, which does almost all of the non-agent work. We will likely only need to update the vlan_bindings table (and rename it to context?)

Blueprint information

Status:
Complete
Approver:
dan wendlandt
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Aaron Rosen
Definition:
New
Series goal:
Accepted for folsom
Implementation:
Implemented
Milestone target:
milestone icon 2012.2
Started by
dan wendlandt
Completed by
dan wendlandt

Related branches

Sprints

Whiteboard

Basic outline of work required.

OVS v2 plugin should leverage quantum/db/db_base_plugin.py , which will handle storing routes and all IPAM logic. this will let us make the v2 plugin code that runs in the quantum service significantly simpler than the v1 quantum ovs plugin found at quantum/plugins/openvswitch/ovs_quantum_plugin.py, since a lot of the code in that file will now be handled by the code in the db_base_plugin.py

Since the db base plugin only stored logical data, the OVS plugin will still need to worry about generating and storing a "context_id" for each network. When running in vlan mode, this context ID corresponds to a VLAN-ID, and when running in tunnel mode, it corresponds to a tunnel-id. This network->context_id mapping needs to be added when a network is created and removed when a network is deleted.

Note: rkukura from redhat is working on a related path that may partially change some of the vlan code in the v1 plugin. We'll want to incorporate that code into our change, so we should coordinate with him on this. Note: one goal is to avoid storing the context-id in memory, as that prevents us from running multiple instances of quantum at once.

The OVS quantum agent (quantum/plugins/openvswitch/agent/ovs_quantum_agent.py) will need to be updated as well. When it phones home, it should grab ports, as well as the context-id for each port (current, it looks for a table named vlan_bindings). One other change in the agent is that the iface-id from OVS will now correspond to the port-uuid itself, rather than being an attachment-id that is linked to a port-uuid in the central quantum DB (v2 of the quantum api gets rid of the notion of an attachment).

we'll also need to update the tests in quantum/plugin/openvswitch/tests

Gerrit topic: https://review.openstack.org/#q,topic:bp/ovs-api-v2-support,n,z

Addressed by: https://review.openstack.org/9159
    OVS plugin support for v2 Quantum API

Addressed by: https://review.openstack.org/9160
    OVS plugin support for v2 Quantum API

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

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.