On Mon, Jun 30, 2025 at 5:34 AM Dumitru Ceara <dce...@redhat.com> wrote:
>
> Hi Numan,
>
> On 6/26/25 4:26 PM, Numan Siddique wrote:
> > On Thu, Jun 26, 2025 at 8:27 AM Dumitru Ceara <dce...@redhat.com> wrote:
> >>
> >> Hi Frode,
> >>
> >> On 6/26/25 1:50 PM, Frode Nordahl wrote:
> >>> On 25.06.2025 14:58, Dumitru Ceara wrote:
> >>>> On 6/23/25 6:23 PM, Frode Nordahl wrote:
> >>>>> Hello, All,
> >>>>>
> >>>>
> >>>> Hi Frode,
> >>>>
> >>>>> Apologies for being late to the discussion, but just wanted to document
> >>>>> our interest in this as mentioned in the last IRC meeting and just now
> >>>>> in the A/V meeting.
> >>>>>
> >>>>>
> >>>>> On 19.06.2025 16:18, Dumitru Ceara via dev wrote:
> >>>>>> Hi Numan,
> >>>>>>
> >>>>>> On 6/18/25 11:38 PM, Numan Siddique wrote:
> >>>>>>> On Wed, Jun 18, 2025 at 5:00 PM Dumitru Ceara <dce...@redhat.com>
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>> Hi Han,
> >>>>>>>>
> >>>>>>>> On 6/18/25 7:40 PM, Han Zhou wrote:
> >>>>>>>>> Thanks Numan for the proposal.
> >>>>>>>>>
> >>>>>>>>> On Wed, Jun 18, 2025 at 4:27 AM Dumitru Ceara <dce...@redhat.com>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi Numan, Ales,
> >>>>>>>>>>
> >>>>>>>>>> On 6/10/25 4:24 PM, Numan Siddique wrote:
> >>>>>>>>>>> On Tue, Jun 10, 2025 at 2:04 AM Ales Musil <amu...@redhat.com>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> On Thu, Jun 5, 2025 at 9:44 PM Numan Siddique <num...@ovn.org>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> On Thu, Jun 5, 2025 at 11:33 AM Dumitru Ceara
> >>>>>>>>>>>>> <dce...@redhat.com>
> >>>>>>>>> wrote:
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> On 6/4/25 6:24 PM, Numan Siddique wrote:
> >>>>>>>>>>>>>>> Hello,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Hi Numan,
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Hi Dumitru and Numan,
> >>>>>>>>>>>>
> >>>>>>>>>>>> I think the project might be a good idea in general, just adding
> >>>>>>>>>>>> my opinion on some parts below.
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> There's a need to configure the provider bridge with specific
> >>>>>>>>> OpenFlow
> >>>>>>>>>>>>>>> rules after packets leave the OVN pipeline and enter via the
> >>>>>>>>>>>>>>> patch
> >>>>>>>>>>>>>>> port.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> To simplify this for CMS, I propose utilizing OVN logical
> >>>>>>>>>>>>>>> flows.
> >>>>>>>>> This
> >>>>>>>>>>>>>>> would eliminate the need for CMS to manage direct OpenFlow
> >>>>>>>>> connections
> >>>>>>>>>>>>>>> and programming.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> This seems very interesting!
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> To achieve this, I've developed a new service within OVN
> >>>>>>>>>>>>>>> called
> >>>>>>>>>>>>>>> `ovn-pr-controller` (pr = provider). Here's a high-level
> >>>>>>>>>>>>>>> overview:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> A new database, `OVN_Provider`, is created with two main
> >>>>>>>>>>>>>>> tables:
> >>>>>>>>>>>>>>> `PR_Bridge` and `Logical_Flow`.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-pr-controller` connects to this database, translates
> >>>>>>>>>>>>>>> logical
> >>>>>>>>>>>>>>> flows to OpenFlow rules, and programs the bridges.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> CMS adds logical flows for managed provider bridges by
> >>>>>>>>>>>>>>> connecting to
> >>>>>>>>>>>>>>> the `OVN_Provider` database.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> CMS can define the pipeline as needed.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> An `ovn-prctl` utility (similar to `ovn-nbctl`) is used to
> >>>>>>>>>>>>>>> program
> >>>>>>>>>>>>>>> logical flows.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Example Usage:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> # Add a provider bridge
> >>>>>>>>>>>>>>> `ovn-prctl add-br br-ext`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> # Add logical flows
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 0 100 "inport == \\"patch-port\\""
> >>>>>>>>>>>>>>> "ct_snat_zone = 1000; next;"`
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 0 0     "1”  "next;"`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 1 1000 "ip4" "ct_snat;"`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 2 1000 "ip4 && ct.new && ct.trk &&
> >>>>>>>>> ip4.src
> >>>>>>>>>>>>>>> == 10.0.0.11" "ct_snat(100.64.0.11); next;"`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 2 0 "ip4" "next;"`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 3 100  "ip4 && ip4.dst ==
> >>>>>>>>>>>>>>> 52.92.128.0/17"
> >>>>>>>>>>>>>>> "tun.id = 1000; tun_ip4.dst = 10.100.100.1; eth.dst =
> >>>>>>>>>>>>>>> 4c:96:14:14:01:b0; outport = \\"vxlan0\\"; output;"`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> `ovn-prctl add-flow br-ext 3 0 “1” “output;”`
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I'd like to get the community's feedback on whether this
> >>>>>>>>>>>>>>> service
> >>>>>>>>> would
> >>>>>>>>>>>>>>> be a valuable addition to OVN.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I wonder if we need these to be separate databases/processes.
> >>>>>>>>> Wouldn't
> >>>>>>>>>>>>>> it make sense to expose this in the NB database directly?
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> With your proposal, these new ovn-pr-controllers would have to
> >>>>>>>>> connect
> >>>>>>>>>>>>>> to the central OVN_Provider database from all chassis.  But we
> >>>>>>>>> already
> >>>>>>>>>>>>>> have the ovn-controller connection to the Southbound.  Could we
> >>>>>>>>> reuse that?
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> I forgot to mention that the OVN provider ovsdb-server and the
> >>>>>>>>>>>>> ovn-pr-controller needs
> >>>>>>>>>>>>> to be run on each chassis.
> >>>>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> I see.  However, I think it gives even more flexibility if the OVN
> >>>>>>>>>> provider database is centralized.  Then the CMS central component
> >>>>>>>>>> (e.g.,
> >>>>>>>>>> neutron for OpenStack) could just write "logical flows" there and
> >>>>>>>>>> rely
> >>>>>>>>>> on per-chassis ovn-pr-controllers to translate that to OpenFlow.
> >>>>>>>>>>
> >>>>>>>>> While it brings flexibility, we should also keep in mind that the
> >>>>>>>>> central
> >>>>>>>>> approach could introduce another choke point for scale. Even if we
> >>>>>>>>> reuse SB
> >>>>>>>>> DB as the central component, the new ovn-pr-controllers process
> >>>>>>>>> would
> >>>>>>>>> require new connections to the SB DB.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> True, but I was not really thinking of using the SB DB as the central
> >>>>>>>> component for ovn-pr-controllers but rather a new database
> >>>>>>>> server.  And
> >>>>>>>> I really hope it wouldn't require storing as many logical flows (and
> >>>>>>>> data in general) as we store in the SB today.
> >>>>>>>>
> >>>>>>>
> >>>>>>> Thanks for the comments and the discussion.
> >>>>>>>
> >>>>>>> Just FYI - I  thought we are in favour of having a separate project.
> >>>>>>> So I reworked a bit and renamed the project to - ovnbr controller (ovn
> >>>>>>> bridge controller)
> >>>>>>> -  https://github.com/numansiddique/ovnbr/tree/initial_commits
> >>>>>>>
> >>>>>>> But I can move back the code to ovn project. So not a problem.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>> Supporting both central and distributed may be an overkill at least
> >>>>>>>>> as a
> >>>>>>>>> start, if we could decide which one is more practical from a CMS
> >>>>>>>>> point of
> >>>>>>>>> view.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> Maybe, but the "distributed" case would probably mean more work
> >>>>>>>> for the
> >>>>>>>> CMS on the node side (a per chassis CMS component is definitely
> >>>>>>>> required
> >>>>>>>> then to provision the per chassis database).
> >>>>>>>>
> >>>>>>>> I do understand however that we'd need a way to abstract
> >>>>>>>> chassis-specific resources (e.g., OVS ports) in the other,
> >>>>>>>> "centralized", case.  And that might be a significant disadvantage.
> >>>>>>>>
> >>>>>>>>>> On second thought, if designed properly, there's probably no need
> >>>>>>>>>> to add
> >>>>>>>>>> a restriction to colocate the new database and ovn-pr-
> >>>>>>>>>> controller.  We
> >>>>>>>>>> could just support both types of deployments:
> >>>>>>>
> >>>>>>> @Dumitru Ceara   If I understand correctly,  what you're suggesting
> >>>>>>> is that
> >>>>>>> CMS can decide to run ovnbr database either central or locally - for
> >>>>>>> each chassis.
> >>>>>>>
> >>>>>>
> >>>>>> Yes, that's what I was thinking of.
> >>>>>
> >>>>> fwiw; We would be interested in the distributed database for the PR
> >>>>> controller.
> >>>>>
> >>>>> Our interest surfaced after a discussion with Jakub Libosvar on how to
> >>>>> approach downstream OpenStack Neutron consumption of OVN native BGP
> >>>>> support, where he raised the following use case:
> >>>>> * Single NIC chassis.
> >>>>> * Said NIC is operated by OVS, for simplicity and purpose of discussion,
> >>>>> let's say the user space data path.
> >>>>>
> >>>>>
> >>>>> Now let's mix this with OVN native BGP features such as:
> >>>>> * Learning the default gateway through route exchange.
> >>>>> * Routing IPv4 prefixes over IPv6 next hop (aka. BGP Unnumbered).
> >>>>> * BGP protocol redirect to ensure BGP next hop address is the link-local
> >>>>> address of a OVN LR on the integration bridge (which may be required for
> >>>>> this to work with older versions of FRR on some ToR equipment due to
> >>>>> lack of support for 3rd party link-local next hop).
> >>>>>
> >>>>>
> >>>>> With a centralized Southbound database, which a CMS such as OpenStack
> >>>>> deploys, we would have a chicken and egg problem, because flows are
> >>>>> needed in the integration bridge for the ovn-controller to connect to
> >>>>> the Southbound database, and ... you get the picture.
> >>>>>
> >>>>> I imagine we could make parts of this work better with a distributed
> >>>>> database for a OVN Provider Controller.
> >>>>>
> >>>>> I guess we could even task this distributed controller with "priming"
> >>>>> the integration bridge with a simple set of "static flows" enough to get
> >>>>> it bootstrapped in such topologies (or could this specific task even be
> >>>>> a feature of the regular controller?).
> >>>>>
> >>>>
> >>>> I'm just trying to make sure I understood this last part correctly.  By
> >>>> "regular controller" do you mean "ovn-controller" or some other (CMS)
> >>>> node-specific component?
> >>>
> >>> I was referring to the "ovn-controller".
> >>>
> >>
> >> Thanks for the clarification!
> >>
> >>> The need for a L3 interface on every chassis for BGP generates a lot of
> >>> per-chassis configuration, which "pollutes" the Northbound database for
> >>> CMSs that uses centralized OVN DBs for the entire deployment.
> >>>
> >>> The idea of a distributed database for the pr-controller made me think
> >>> this distributed database could potentially also be consumed by the ovn-
> >>> controller for per-chassis configuration in cases where more advanced
> >>> higher layer features are required, and the CMS does not want to re-
> >>> implement those in logical flows using the "pr-controller" themselves.
> >>>
> >>
> >> Wouldn't it then make sense to just use ovn-controller for managing all
> >> bridges (br-int and also all provider OVS bridges listed in the
> >> distributed "Provider Database") in all cases?
> >
> > I thought about that too.  I still feel it's better to have a separate 
> > service.
> > Any user can just use OVN bridge/provider controller without having to use 
> > OVN
> > to program OVS bridges.
> >
>
> That's fair.  It seems more flexible.  If ever needed we can also add
> support in the future for ovn-controller to take over the functionality
> of the bridge/provider controller.

Thanks.

Shall I start working on proposing the patches ? With
   - With a new service inside the ovn repo (like ovn-controller-vtep)
   -  Name of the service -  ovn-br-controller

Thanks
Numan


>
> Regards,
> Dumitru
>
> > Thanks
> > Numan
> >
> >>
> >> Thanks,
> >> Dumitru
> >>
> >>> --
> >>> Frode Nordahl
> >>>
> >>>>>>> I think that would work too.  Only disadvantage is that CMS has to
> >>>>>>> ensure that the bridge names and physical interface names
> >>>>>>> have to be the same.  Although we can definitely find a way to handle
> >>>>>>> this.
> >>>>>>>
> >>>>>>> The present proposal schema -
> >>>>>>> https://github.com/numansiddique/ovnbr/blob/initial_commits/ovn-
> >>>>>>> br.ovsschema#L66
> >>>>>>> has only a Bridge table and no ports defined.  In the present proposal
> >>>>>>> CMS can add
> >>>>>>> logical flows like - "inport == eth1 && ....."  and ovnbr-controller
> >>>>>>> expects an OVS interface - eth1 in the OVS bridge.
> >>>>>>>
> >>>>>>
> >>>>>> Right, we'd need a way to represent chassis specific information if we
> >>>>>> support a central ovnbr database.  Probably at least: OVS ports,
> >>>>>> conntrack zones, provider bridge names.
> >>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>>> - ovn-pr-controller & database on the same chassis
> >>>>>>>>>> - (multiple) ovn-pr-controller connecting to a database on a
> >>>>>>>>>> different
> >>>>>>>>>> node (e.g., colocated with the Southbound)
> >>>>>>>>>>
> >>>>>>>>>>>>> This is basically to allow a CMS agent running on each chassis
> >>>>>>>>>>>>> to use
> >>>>>>>>>>>>> logical flows
> >>>>>>>>>>>>> and program them in the OVN provider database, instead of
> >>>>>>>>>>>>> talking
> >>>>>>>>>>>>> OpenFlow directly.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> OVN has a very nice way of abstracting OpenFlows using logical
> >>>>>>>>>>>>> flows
> >>>>>>>>>>>>> and my idea is to leverage it.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> ovnkube-node, as you know,  programs the OpenFlow rules to the
> >>>>>>>>>>>>> provider bridge directly by execing
> >>>>>>>>>>>>> "ovs-ofctl".  The OVN kubernetes community could possibly use
> >>>>>>>>>>>>> OVN
> >>>>>>>>>>>>> provider controller.
> >>>>>>>>>>
> >>>>>>>>>> Another thing the CMS node component (ovnkube-node in the example
> >>>>>>>>>> above)
> >>>>>>>>>> needs to do is reconcile flows on the "provider" bridge on restart.
> >>>>>>>>>>
> >>>>>>>>>> This new OVN provider controller would also remove the need for
> >>>>>>>>>> the CMS
> >>>>>>>>>> to do that, which is an advantage.
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> It is definitely valuable, and no objection from me. But I think
> >>>>>>>>> it is
> >>>>>>>>> better to ask opinion from CMS component maintainers if the OVS
> >>>>>>>>> pipeline
> >>>>>>>>> for the provider bridge is complex enough to justify this. Also,
> >>>>>>>>> how much
> >>>>>>>>> would it help by managing logical flows through an OVSDB versus
> >>>>>>>>> managing
> >>>>>>>>> open-flow rules though ovs-ofctl. Keep in mind that the abstraction
> >>>>>>>>> here is
> >>>>>>>>> not at the level of the NB DB which focuses on logical topologies -
> >>>>>>>>> here
> >>>>>>>>> the abstraction is logical-flows (something at the SB level), so
> >>>>>>>>> the CMS
> >>>>>>>>> still needs to manage the pipeline rather than just logical
> >>>>>>>>> topology.
> >>>>>>>
> >>>>>>> That's correct.  Expectation is that CMS knows what it is doing,
> >>>>>>> And we have the requirement to add flows in the provider bridges and
> >>>>>>> hence thought
> >>>>>>> of this abstraction to
> >>>>>>>     - leverage the OVN logical flows
> >>>>>>>     - and to leverage the openflow handling of ovn-controller.
> >>>>>>>
> >>>>>>>
> >>>>>>> My personal preference is also to have it part of OVN so that it is
> >>>>>>> easier to manage.
> >>>>>>>
> >>>>>>> But as Ales mentioned,  we have many logical actions like -
> >>>>>>> put_dhcp_opts etc (which use controller action)
> >>>>>>> which will not work with the ovn-bridge-controller.  Probably
> >>>>>>> ovn-bridge-controller can maintain its own symbol table.
> >>>>>>>
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>> Numan
> >>>>>>>
> >>>>>>>
> >>>>>>>>>
> >>>>>>>>> Adding @Tim Rozet <tro...@redhat.com>  @Girish Moodalbail
> >>>>>>>>> <gmoodalb...@gmail.com> from ovn-k8s to comment.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> Adding Jakub Libosvar too, from the neutron side, as we briefly
> >>>>>>>> touched
> >>>>>>>> on the content of this proposal in a discussion while trying to
> >>>>>>>> onboard
> >>>>>>>> the OVN BGP support in neutron.  IMO a centralized "provider network
> >>>>>>>> database" might fit that specific use case quite well because the
> >>>>>>>> open
> >>>>>>>> flow rules that needed to be added to the provider bridge were quite
> >>>>>>>> generic.
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>>>>>> I'm not suggesting this, but just giving an example or a
> >>>>>>>>>>>>> potential
> >>>>>>>>> user.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I believe it could be useful, but I'm unsure if it should be
> >>>>>>>>>>>>>>> integrated into OVN directly or be a separate project within
> >>>>>>>>>>>>>>> `ovn-org`.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> In my opinion it would be better as a standalone project within
> >>>>>>>>>>>> ovn-org. There is couple of reasons why:
> >>>>>>>>>>>>
> >>>>>>>>>>>> 1) Separation between ovn actions and the new ones. I suppose the
> >>>>>>>>>>>> ovn-pr-controller won't support like put_arp etc. in other words
> >>>>>>>>>>>> actions that require userspace handling.
> >>>>>>>>>>>>
> >>>>>>>>>>>> 2) There are certain expectations about parameters, mostly ct
> >>>>>>>>>>>> actions
> >>>>>>>>>>>> and it feels a little strange to populate a specific register in
> >>>>>>>>>>>> order
> >>>>>>>>>>>> to get the action working.
> >>>>>>>>>>>>
> >>>>>>>>>>>> 3) Maintenance cost to some extent, standalone project might be
> >>>>>>>>>>>> easier to maintain, it can be written in different language if it
> >>>>>>>>>>>> would be better fit.
> >>>>>>>>>>>>
> >>>>>>>>>>>> 4) The abstraction can be generated automatically to some extent
> >>>>>>>>>>>> so most of the code might be actually a way to generate the
> >>>>>>>>>>>> parsing
> >>>>>>>>>>>> etc.
> >>>>>>>>>>>>
> >>>>>>>>>>>> I'm fully aware that this would require some duplication. With
> >>>>>>>>>>>> that
> >>>>>>>>>>>> said, this just my opinion and I won't block any other decision.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Hi Ales,
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks for the replies.  I agree with your points.  I think it
> >>>>>>>>>>> makes
> >>>>>>>>>>> sense to have
> >>>>>>>>>>> a separate project even if the code is duplicated.
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> I'm not sure I see anything blocking the ovn-pr-controller (or
> >>>>>>>>>> whatever
> >>>>>>>>>> we decide to call it) code from being part of the ovn-org/ovn
> >>>>>>>>>> project.
> >>>>>>>>>>
> >>>>>>>>>> It can be a standalone daemon (similar to controller/ovn-
> >>>>>>>>>> controller or
> >>>>>>>>>> controller-vtep/ovn-controller-vtep).
> >>>>>>>>>>
> >>>>>>>>>> It can even be written in a different language (e.g., rust) if we
> >>>>>>>>>> wish.
> >>>>>>>>>>
> >>>>>>>>>> Keeping it in the same project actually reduces maintenance cost
> >>>>>>>>>> because
> >>>>>>>>>> we can just reuse the expr parsing library from OVN directly.
> >>>>>>>>>> We can
> >>>>>>>>>> also reuse all the build/test infra (if we wish).
> >>>>>>>>>>
> >>>>>>>>>> It would also mean we wouldn't have to come up with different
> >>>>>>>>>> release
> >>>>>>>>>> strategies, contribution guidelines, etc.
> >>>>>>>>>>
> >>>>>>>>>> Also, with downstream in mind, it might be (slightly) easier for
> >>>>>>>>>> distros
> >>>>>>>>>> to package this new binary if its code lived in ovn-org/ovn.
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> In my option it is really not good to duplicate components in
> >>>>>>>>> different
> >>>>>>>>> repos. Unless we find ways to expose logical flow translation as a
> >>>>>>>>> library
> >>>>>>>>> and share between the projects, I am inclined to use OVN repo
> >>>>>>>>> directly.
> >>>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>> Han
> >>>>>>>>>
> >>>>>>>>>>> Implementing in a different language would be nice but I think it
> >>>>>>>>>>> will
> >>>>>>>>>>> take a lot
> >>>>>>>>>>> of effort to implement expr parsing and openflow encoding.
> >>>>>>>>>>>
> >>>>>>>>>>> Thanks
> >>>>>>>>>>> Numan
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>> Dumitru
> >>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> I guess it depends a bit on the approach chosen for
> >>>>>>>>>>>>>> implementation
> >>>>>>>>> but
> >>>>>>>>>>>>>> at a first glance this seems as a good candidate for ovn-org
> >>>>>>>>>>>>>> to me.
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Three possible options are:
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>    - Integrate the `OVN provider controller` into `ovn-org/
> >>>>>>>>>>>>>>> ovn`.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>    - Create a separate project within `ovn-org` (which would
> >>>>>>>>>>>>>>> require
> >>>>>>>>>>>>>>> duplicating some files like `lib/actions.c`).
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>    - Do not pursue this.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Listing it here because it's on the "con" side of things. :)  I
> >>>>>>>>> wonder
> >>>>>>>>>>>>>> if we'll end up duplicating all OVS actions into OVN logical
> >>>>>>>>>>>>>> flow
> >>>>>>>>> actions.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Actually that's my goal.  Instead of using OpenFlow rules
> >>>>>>>>>>>>> directly, a
> >>>>>>>>>>>>> user can express
> >>>>>>>>>>>>> their pipeline as logical flows and not worry about the
> >>>>>>>>>>>>> intricacies of
> >>>>>>>>>>>>> openflow syntax.
> >>>>>>>>>>>>> It does add another layer of abstraction for sure.
> >>>>>
> >>>>>
> >>>>> With maintenance cost in mind, we definitively prefer hosting this in
> >>>>> the main repository, and I think it fits nicely in there.
> >>>>>
> >>>>> --
> >>>>> Frode Nordahl
> >>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> Thanks
> >>>>>>>>>>>>> Numan
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> I welcome your thoughts and would like to know if other OVN
> >>>>>>>>>>>>>>> users
> >>>>>>>>> have
> >>>>>>>>>>>>>>> similar requirements.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> A proof-of-concept is available here:
> >>>>>>>>>>>>>>>
> >>>>>>>>> https://github.com/numansiddique/ovn/tree/
> >>>>>>>>> provider_controller_support.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> If there is a consensus in pursuing this further,  I'll
> >>>>>>>>>>>>>>> work on
> >>>>>>>>>>>>>>> refining the patches and submit them as RFC to start with.
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> In general I have no objections to an RFC. (CC the rest of the
> >>>>>>>>> maintainers).
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Thanks,
> >>>>>>>>>>>>>>> Numan
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Regards,
> >>>>>>>>>>>>>> Dumitru
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Thanks,
> >>>>>>>>>>>> Ales
> >>>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>
> >>>> Thanks,
> >>>> Dumitru
> >>>>
> >>>
> >>
> >
>
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to