[openstack-dev] [neutron] ML2 versus core plugin for OVN

Salvatore Orlando sorlando at nicira.com
Mon Feb 23 18:28:32 UTC 2015


I think there are a few factors which influence the ML2 driver vs
"monolithic" plugin debate, and they mostly depend on OVN rather than
Neutron.
>From a Neutron perspective both plugins and drivers (as long at they live
in their own tree) will be supported in the foreseeable future. If a ML2
mech driver is not the best option for OVN that would be ok - I don't think
the Neutron community advices development of a ML2 driver as the preferred
way for integrating with new backends.

The ML2 framework provides a long list of benefits that mechanism driver
developer can leverage.
Among those:
- The ability of leveraging Type drivers which relieves driver developers
from dealing with network segment allocation
- Post-commit and (for most operations) pre-commit hooks for performing
operation on the backend
- The ability to leverage some of the features offered by Neutron's
built-in control-plane such as L2-population
- A flexible mechanism for enabling driver-specific API extensions
- Promotes modular development and integration with higher-layer services,
such as L3. For instance OVN could provide the L2 support for Neutron's
built-in L3 control plane
- The (potential afaict) ability of interacting with other mechanism driver
such as those operating on physical appliances on the data center
- <add your benefit here>

In my opinion OVN developers should look at ML2 benefits, and check which
ones apply to this specific platform. I'd say that if there are 1 or 2
checks in the above list, maybe it would be the case to look at developing
a ML2 mechanism driver, and perhaps a L3 service plugin.
It is worth nothing that ML2, thanks to its type and mechanism driver
provides also some control plane capabilities. If those capabilities are
however on OVN's roadmap it might be instead worth looking at a
"monolithic" plugin, which can also be easily implemented by inheriting
from neutron.db.db_base_plugin_v2.NeutronDbPluginV2, and then adding all
the python mixins for the extensions the plugin needs to support.

Salvatore


On 23 February 2015 at 18:32, Ben Pfaff <blp at nicira.com> wrote:

> [branching off a discussion on ovs-dev at this point:
> http://openvswitch.org/pipermail/dev/2015-February/051609.html]
>
> On Fri, Feb 20, 2015 at 6:56 PM, Kyle Mestery <mestery at mestery.com> wrote:
> > One thing to keep in mind, this ties somewhat into my response to Russell
> > earlier on the decision around ML2 vs. core plugin. If we do ML2, there
> are
> > type drivers for VLAN, VXLAN, and GRE tunnels. There is no TypeDriver for
> > STT tunnels upstream now. It's just an item we need on the TODO list if
> we
> > go down the STT tunnel path.
>
> It was suggested to me off-list that this part of the discussion should be
> on
> openstack-dev, so here it is ;-)
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150223/d65ce54f/attachment.html>


More information about the OpenStack-dev mailing list