[openstack-dev] [networking][ml2] Plugin mania: ML2, Big Switch, Arista, Tail-f

Endre Karlson endre.karlson at gmail.com
Mon Jun 10 21:49:24 UTC 2013


Why not use a thing like opendaylight for this?
Den 10. juni 2013 13:57 skrev "Luke Gorrie" <luke at tail-f.com> følgende:

> Hi Sumit,
>
> Thanks for the quick reply about the Big Switch plugin. I follow up here
> to openstack-dev because I learned on friday that there are at least a
> dozen people interested in structuring/restructuring of plugins for Havana.
>
> This is a huge brain dump trying to make sense of how OpenStack Networking
> provisions external hardware devices. Get a coffee first if you plan to
> read this mail :-).
>
> 7 jun 2013 kl. 19:48 skrev Sumit Naiksatam:
>
> > Thanks for reaching out. We have definitely discussed creating a
> > library so that the code can be more readily used. Just to make sure I
> > understand your use case correctly, could you please let me know what
> > exactly you are trying to achieve, what is the workflow, what is the
> > backend entity to which you want proxy calls over, and how does it
> > relate to the OVS/Linux-Bridge?
>
> My own use case is for people with multi-vendor networks to write their
> own rules for how to provision OpenStack Networking on their devices. They
> have devices from Cisco, Juniper, Arista, PICA8, and so on, and they will
> write custom provisioning logic that maps their high-level OpenStack
> Networking setup (Network, Port, Subnet, …) onto their physical devices
> using any vendor-specific configuration options that they want for VLANs,
> QinQ, MPLS, and so on.
>
> The implementation that I am working on is via a provisioning system
> called Tail-f NCS. NCS works by having a detailed YANG (RFC 6020) model
> containing the exact configuration of every physical network device
> (switch, router, etc). This global configuration is manipulated as one big
> tree data structure within NCS. The tree can be bi-directionally
> synchronized to/from hardware devices using diverse protocols like NETCONF,
> SSH/CLI, SNMP, OpenFlow, and so on.
>
> NCS's OpenStack integration will add a YANG model of the OpenStack
> Networking configuration. Users will write their own custom logic for
> mapping the high-level OpenStack Networking configuration onto the
> low-level vendor-specific configuration items in their devices. NCS will do
> the dirty work of transactionally pushing these global configuration
> updates onto the network.
>
> Specification here:
> https://docs.google.com/document/d/1bRHVTN60oY2y2NIZ0iT9CyLS0TWYTPA0MPhvmYJqQjU/edit
>
> .. end of high-level bit ..
>
> Technically speaking what I need is for OpenStack to be able to forward
> all interesting provisioning events - e.g. plug/unplug and
> create/delete/update of network/subnet/port - to an external system using
> any reasonable protocol e.g. HTTP/JSON based. This is how I will keep an
> up-to-date view of the current configuration and state of OpenStack
> Networking.
>
> How to write the code? That is the big question for me. Reading the code
> that exists today, here is what I see as closely related:
>
> Big Switch Plugin
> Pro: On-the-wire looks like what I need: pass-through plugin RPCs directly
> over HTTP/JSON.
> Con: Seems to be a _replacement_ for the LinuxBridge/OVS plugins rather
> than an addition.
>
> Arista Hardware Driver framework:
> Pro: Designed to run alongside standard OVS/Bridge functions and trigger
> extra provisioning.
> Con: Layer-2 only? does not look like it has the hooks I need to push out
> information about Subnets for example. (I want as much detail as possible.)
>
> ML2 Plugin:
> Pro: Looks like the way forward in terms of mix-and-matching plugin
> functions.
> Con: The specific functionality that I need is not implemented yet.
>
> So! I seem to have several possible integration routes that I need to
> choose between:
>
> 1. Big Switch Plugin adapted to ML2 so that it runs in parallel with
> OVS/LinuxBridge.
> 2. Arista hardware driver plugin extended with hooks for more parts of
> OpenStack networking.
> 3. New "Tailf NCS plugin" written from scratch as an ML2 mechanism driver.
>
> I would love to hear some input especially from you guys at Big Switch and
> Arista. I am flexible like young bamboo :-).
>
> P.S. I hope that it was relevant to say so much about a proprietary
> product (NCS) above. If not then please give me a hint offline, I am new
> around here!
>
> > On Fri, Jun 7, 2013 at 5:52 AM, Luke Gorrie <luke at tail-f.com> wrote:
> >> Hi Sumit,
> >>
> >> I see from Git history that you are the main author of the OpenStack
> >> BigSwitch plugin. I have a question that I hope you can help me with.
> >>
> >> I would like to make REST calls from OpenStack very much like the
> BigSwitch
> >> plugin, but I would like to do this in parallel with the base
> >> LinuxBridge/OVS functionality.
> >>
> >> I am new to the OpenStack code. My understanding from talking with Kyle
> >> Mestery and others is that the most straightforward way to do this in
> Havana
> >> is to make REST calls from a "MechanismDriver" within the new ML2
> plugin.
> >>
> >> Now I would like to do this in a good way that does not duplicate a lot
> of
> >> code from the BigSwitch plugin.
> >>
> >> So I am wondering: do you have any plans for BigSwitch plugin
> development
> >> during Havana? Do you think it would be a good idea to factor parts of
> the
> >> existing plugin into a common library, or even to port the BigSwitch
> plugin
> >> into a component of the ML2 plugin?
> >>
> >> Thanks in advance for your advice :)
> >> -Luke
> >>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> 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/20130610/c16d8d84/attachment.html>


More information about the OpenStack-dev mailing list