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

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


On 10/02/2015 11:32 AM, Russell Bryant wrote:
> 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:
> 
> https://github.com/russellb/ovs/blob/localnet-vlan/tutorial/OVN-Tutorial.md
> 
> I plan to extend it for exploring new features as they get merged.
> 

except that was supposed to be the link to the file in the actual ovs
git repo, oops.

https://github.com/openvswitch/ovs/blob/master/tutorial/OVN-Tutorial.md

-- 
Russell Bryant



More information about the OpenStack-dev mailing list