[openstack-dev] [neutron][ovn] New cycle started. What are you up to, folks?

Russell Bryant rbryant at redhat.com
Fri Oct 2 15:32:15 UTC 2015

On 10/01/2015 03:26 PM, Russell Bryant wrote:
> On 10/01/2015 09:45 AM, Ihar Hrachyshka wrote:
>> Hi all,
>> I talked recently with several contributors about what each of us 
>> plans for the next cycle, and found it’s quite useful to share 
>> thoughts with others, because you have immediate yay/nay feedback, 
>> and maybe find companions for next adventures, and what not. So
>> I’ve decided to ask everyone what you see the team and you
>> personally doing the next cycle, for fun or profit.
>> That’s like a PTL nomination letter, but open to everyone! :) No 
>> commitments, no deadlines, just list random ideas you have in mind
>> or in your todo lists, and we’ll all appreciate the huge pile of 
>> awesomeness no one will ever have time to implement even if
>> scheduled for Xixao release.
>> To start the fun, I will share my silly ideas in the next email.
> Nice thread!
> Here's a rough cut of what I have in mind.  My Neutron related
> development time covers a few areas: Neutron, OVN itself, and the
> networking-ovn plugin for Neutron.
> For Neutron:
>  - general code reviews.  I'm especially interested in reviewing the
>    design and implementation of any new APIs people are adding.  Feel
>    free to add me to reviews you think I could help with and I'll take
>    a look.
>  - plugin infrastructure.  Ihar mentioned in one of his items that
>    there are features implemented as ML2 specific.  That has started
>    to be a pain for networking-ovn.  For example, the provider networks
>    extension is only implemented for ML2, and the data is only stored
>    in an ML2 specific db table.  The db table and related code should
>    be reusable by other plugins.  I'd like to help start to clean that
>    up for the sake of other plugins.
> For OVN and networking-ovn:
> First, for anyone not already familiar with OVN, it is an effort
> within the Open vSwitch project to build a virtual networking control
> plane for OVS.  There are several projects that have implemented
> something in this space (including Neutron).  OVN is intended to be a
> new, common implementation of this functionality that can be reused in
> many contexts, including by Neutron.  It includes a focus on
> implementation of features taking advantage of the newest features of
> OVS, including some still being added as we go.  There was a
> presentation about this in Vancouver [1] and we'll be doing another
> one covering current status in Tokyo [2].
> This plugin is developed in parallel with OVN itself.  My time on each
> changes week to week, depending on what I'm working on.  The dev items
> I expect in the near future (this release cycle at least) include:
>  - security groups.  This is being implemented using conntrack suport
>    in OVS.  There's actually WIP code for this including kernel
>    changes, ovs userspace changes, OVN, and networking-ovn.  This is a
>    complex stack of dependencies, but it's starting to fall into place.
>    Most of the kernel changes have been accepted, thought there's
>    another change being reviewed now.  The OVS userspace changes have
>    been under review in the last few weeks and are close to being
>    merged.  Once that's done, we can finish up testing the OVN and
>    networking-ovn patches.  We expect this to be done by Tokyo.
>  - provider networks.  There's a lot of demand in OpenStack for
>    supporting direct connectivity to existing networks as a simpler
>    deployment model without any overlays.  I've done most of the work
>    for both OVN and networking-ovn for this now and expect to have it
>    wrapped up in the next week or so.
>  - L3.  So far we've been using Neutron's L3 agent with networking-ovn.
>    OVN will have native L3 support (will no longer use the L3 agent)
>    and development on that has now started.  We aim to at least have
>    initial distributed L3 support by Tokyo.  Some of it will certainly
>    extend past that, though.  For example, NAT will be implemented with
>    an OVS native solution, and that will likely not be ready by Tokyo.
>    We may be able to deliver an intermediary NAT solution quicker.
>  - SFC.  There's a ton of interest in SFC.  I've been casually following
>    the networking-sfc project and the Neutron API they are proposing.
>    I've also been thinking about how to implement it in OVN.  I think
>    OVN's logical flows abstraction is going to make it surprisingly easy
>    to implement.  I think I have a good idea of what needs to be done,
>    but I'm not sure of when it will bubble up on my todo list.  I hope
>    to work on it for this dev cycle though.  I'd first be implementing
>    it in OVN, and then later doing the support for the networking-sfc
>    API.
>  - l2gw.  OVN already includes support for VTEP gateways.  We also just
>    merged a patch to support them through the Neutron API using a
>    networking-ovn specific binding:profile.  This is just a first step,
>    though.  We'd like to support this with a proper Neutron abstraction.
>    The networking-l2gw project is working on that abstraction so I'd
>    like to help out there, expand it as necessary, and get an OVN
>    backend for that API.
>  - containers.  OVN has had a focus on supporting container networking
>    from the start.  One way is that OVN can be used directly to build
>    overlay networks independent of whatever infrastructure the container
>    app is running on.  This is conceptually similar to other things like
>    Flannel.  A major downside of overlay based container networking is
>    the performance hit you get when you end up with an "overlays on
>    overlays", where you can't take advantage of NIC offload support
>    for overlay encapsulation.
>    To address the performance issue, OVN includes abstractions to
>    provide networking for a hybrid environment of bare metal, VMs,
>    and containers.  In the OpenStack case, containers running on
>    bare metal or containers running inside of OpenStack VMs should
>    all be able to talk to the Neutron API of the underlying OpenStack
>    to provide the desired network topology.  networking-ovn supports
>    this already, but with a networking-ovn specific binding-profile:
>    http://docs.openstack.org/developer/networking-ovn/containers.html
>    I'd like to help ensure that the "VLAN aware VMs" spec gets reviewed
>    and merged this cycle, as that API provides the proper Neutron
>    abstraction for what's needed here.
>    Once *that* is done, I'd really like to see some native Kubernetes
>    integration to be able to talk to the Neutron API and set up the
>    networking needed for container apps running in OpenStack VMs, but
>    it seems unlikely that I'll get to that this cycle myself.
>  - testing.  We have a tempest job for networking-ovn that's passing.
>    It skips a few tests for things we haven't finished implementing [3].
>    I'd like to get down to where we're not skipping anything.  Since
>    it's passing, I'd like to get to where we can run the job against
>    Neutron patches, as well.  I'd propose it as a non-voting job, but
>    it would be running in OpenStack's infrastructure.  Running against
>    Neutron would get the job running much more frequently to help us
>    shake out bugs and would also help us catch issues between Neutron
>    and networking-ovn quicker.  Finally, I'd also like to build a
>    multi-node test job.
>  - native DHCP support.  Right now networking-ovn uses the existing
>    Neutron DHCP agent.  We plan to add native distributed DHCP support
>    to OVN.  Once someone gets around to it, the DHCP agent will no
>    longer be used.
> I'm sure I've forgotten something, but this seems like a pretty good
> overview of what I expect to see this cycle.  I'd love to hear any
> comments or questions you may have.
> We're also interested in any new contributors!  Feel free to reach out
> to me for help getting started.
> [1]
> https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/ovn-native-virtual-networking-for-open-vswitch
> [2]
> https://openstacksummitoctober2015tokyo.sched.org/event/89a27d6b5bab975a7a4f49ec57ee5210#.Vg2DmXUVhBc
> [3]
> http://git.openstack.org/cgit/openstack/networking-ovn/tree/devstack/devstackgaterc

One other reference ... if you're interested in looking more closely at
how OVN works outside of testing it with OpenStack, I wrote up a
tutorial for testing OVN in a simulated environment here:


I plan to extend it for exploring new features as they get merged.

Russell Bryant

More information about the OpenStack-dev mailing list