Nuage Networks’ ML2 Mechanism Driver

https://blueprints.launchpad.net/neutron/+spec/ml2-mech-driver-nuage

Adding mechanism driver in ML2 plugin for Nuage Networks

Problem description

Nuage’s VSP fits well via its northbound API exposure to both ML2 based mechanism driver as well as via monolithic plugin. As nuage strive to add more features and functionality to its monolithic plugin, it is important from other integration point of view to also support ml2 mechanism driver framework. This is the effort to start achieving that goal.

Proposed change

In Juno release, mechanism driver will support basic L2 functionality as a stepping stone to enhance it in later release. It will implement CRUD APIs for network, subnets and ports. Idea is to reuse as much of the code base from the current monolithic plugin itself and for that reason driver class will inherit nuage plugin class as one of the parent.

Alternatives

Monolithic Nuage Plugin

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

None

Developer impact

None

Implementation

In order for mechanism driver to talk to Nuage’s VSD, it will require certain configuration to be read from the file. This is similar approach to nuage’s monolithic plugin. Along with parameters mentioned at etc/neutron/plugins/nuage/nuage_plugin.ini, user will have to pass reference to precreated net-partition as well. Once https://blueprints.launchpad.net/neutron/+spec/neutron-ml2-mechanismdriver-extensions is implemented (if at all), will add support for it in next release.

Assignee(s)

Ronak Shah

Primary assignee:

ronak-malav-shah

Other contributors:

Work Items

ML2 mechanism driver code Unit tests Nuage CI infrastructure with ML2 driver (similar to the one with monolithic plugin)

Dependencies

None

Testing

Unit Test coverage Support for this driver in Nuage CI

Documentation Impact

None

References

None