Generic Hardware Driver interface for Quantum Plugins

Registered by Satish Mohan

This blueprint describes a generic hardware driver interface within the Quantum plugins which will enable support for different hardware backends for L2 network segregation (VLANs, tunneling, etc.). This API is available as a common driver library under quantum/common/hardware_driver and may be used by any Quantum plugin. Currently we have modified only the popular OVSPlugin to use this driver API.

This may be useful for existing data centers with hardware switches which needs to be used along with Openstack infrastructure. In this case a hardware vendor may introduce a hardware driver which confirms to this driver API, which will allow using vendor's hardware within Openstack along with Open vSwitch virtual switches to provide L2 network segregation.

This will allow automatic L2 network provisioning on the hardware devices alongside with the open vswitch provisioning in the compute node hypervisors.

We have implemented the driver API proposed in this blueprint and are providing the source code for an Arista Driver which supports provisioning of Arista TOR (top-of-the-rack) switches alongside with open vswitches.

Blueprint information

Status:
Complete
Approver:
dan wendlandt
Priority:
Medium
Drafter:
Sukhdev Kapur
Direction:
Needs approval
Assignee:
Sukhdev Kapur
Definition:
Superseded
Series goal:
None
Implementation:
Needs Code Review
Milestone target:
None
Started by
Satish Mohan
Completed by
Mark McClain

Related branches

Sprints

Whiteboard

This has been superseded by ML2 work.

28-May Deferring to H2 because the ML2 work is likely to supplant.

Awesome idea ... there is a simple API that was used in the Cisco plugin that might be relevant. https://github.com/openstack/quantum/tree/master/quantum/plugins/cisco/nexus

Thanks for the pointer Debo. Will take a look. Our motivation was to add a generic API into the OVSPlugin which is vendor neutral. This way we aren't creating another plugin in Quantum, but enhancing the popular openvswitch plugin. Vendor plugins from different vendors can co-exist at the same time, and the OVSPlugin will invoke each vendor's driver in turn.

This allows Quantum to configure open vswitch alongside with a physical hardware TOR switch using a single plugin.

Gerrit topic: https://review.openstack.org/#q,topic:bp/describes,n,z

Addressed by: https://review.openstack.org/20745
    Adds support to the OVSPlugin to interface with multi-vendor hardware devices/management stations.

Gerrit topic: https://review.openstack.org/#q,topic:bp/ovsplugin-hardware-devices,n,z

Addressed by: https://review.openstack.org/20754
    Adds support to the OVSPlugin to interface with multi-vendor hardware devices/management stations.

(?)

Work Items