On Fri, Aug 29, 2025 at 11:21 AM Rukomoinikova Aleksandra
<ARukomoinikova@k2.cloud> wrote:
>
> Hi again! I sent an RFC with the ideas I outlined in the message above.
> Since these are all my suggestions, I marked them as RFC. I fully
> understand that this has nothing to do with 25.09, so I am sending them
> now for further discussion.

Hi Aleksandra,

Just one question - In your deployments, what is the normal upgrade
procedure ?  Do you upgrade ovn-controllers first and then the central
components ?
or is it the other way around?

Thanks
Numan

>
> Thanks!
>
> On 27.08.2025 12:56, Dumitru Ceara wrote:
> > On 6/18/25 1:43 PM, Dumitru Ceara wrote:
> >> On 6/9/25 7:09 PM, Rukomoinikova Aleksandra wrote:
> >>> Hi Dumitru, sorry for the long wait =)
> >> Hi Alexandra,
> >>
> >> No worries, I'm also slow in responding, I apologize.
> >>
> > Hi Alexandra,
> >
> > This patch needs a rebase and it won't make it into 25.09.0 as it missed
> > the branch date.  But more importantly, it would be nice to understand
> > better the use case below.
> >
> >>> On 02.06.2025 18:27, Dumitru Ceara wrote:
> >>>> Hi Alexandra,
> >>>>
> >>>> On 6/2/25 4:31 PM, Rukomoinikova Aleksandra wrote:
> >>>>> Hi Dumitru! Thanks for your time.  I understand your questions, they are
> >>>>> reasonable, but I cannot assess the criticality of adding new actions
> >>>>> without stupidly reading the code and verifying the supported actions, I
> >>>>> wanted to do this in an automated process. it seems to me that my
> >>>>> approach makes updating the controller more transparent to the user in
> >>>>> terms of understanding the changes that have occurred in the code. I
> >>>>> understand that storing actions in the sb global database does not look
> >>>>> like the cleanest way, but I have not found another one. If you have any
> >>>>> suggestions on how to improve my approach, then I will be glad to hear
> >>>>> it and send a new version.
> >>>>>
> >>> Currently, the version verification is tied to the |northd| version,
> >>> which isn’t always relevant. The northd version is linked to the
> >>> database and minor version, and checksums are calculated for stages in
> >>> both |northd| and actions. However, version changes don’t always
> >>> correlate with changes in actions. I believe my approach provides
> >>> greater flexibility for updates, without being dependent on versioning.
> >>>
> >>> The only changes that could critically break compatibility during an
> >>> update (whether in |northd| or the controller itself) are modifications
> >>> to actions or shifts in the ingress/egress pipeline’s OpenFlow table
> >>> starting points—please correct me if I’m wrong. It might also make sense
> >>> to add the ability to compare these values, making updates more 
> >>> transparent.
> >>>
> >> I'm afraid that if we do something like that and relax the condition to
> >> match on northd-version (which includes the SB schema version too) we
> >> might make it easier to miss cases that cause incompatibility between
> >> ovn-controllers and ovn-northd.  I might be wrong though.
> >>
> >>
> >>>> I think I'm failing to understand the use case, so please bear with me.
> >>>>
> >>>> As far as I can tell your patch does the following:
> >>>> 1. ovn-northd stores the action names it's aware of as a string set in
> >>>> the SB
> >>>> 2. ovn-controller compares that with the action names it knows of
> >>>> 3. if the sets of actions are equal it's all fine
> >>>> 4. else, if there's a difference:
> >>>> 4a. if validate-actions-fail-mode is not set then ovn-controller just
> >>>> logs the mismatch, tries to process all logical flows, potentially fails
> >>>> to parse some
> >>>> 4b. if validate-actions-fail-mode=fail then ovn-controller logs the
> >>>> mismatch and triggers a full incremental processing recompute (this
> >>>> continues until the mismatch goes away)
> >>>>
> >>>> How will the configuration of ovn-controllers look like in your
> >>>> deployment?  Is it:
> >>>> - ovn-match-northd-version=false (or not set)
> >>>> - validate-actions-fail-mode not set (i.e., log and continue)
> >>> in this case the controller will continue to work, it will not be able
> >>> to parse some actions, this gives reverse compatibility with the current
> >>> version of work in this case (when
> >>>
> >>> ovn-match-northd-version is set to false)
> >>>
> >> Right, so, that was my question too, maybe I didn't express it properly.
> >>   Let me try again:
> >>
> >> Even without your patch, if we don't set ovn-match-northd-version=true,
> >> the behavior of ovn-controller will be to try to process the contents of
> >> the Southbound database.
> >>
> >> In case the Southbound (and northd) have already been upgraded to a
> >> version that includes logical actions that ovn-controller cannot
> >> process, ovn-controller will just fail parsing those logical actions
> >> (and flow) but will process the rest of the Southbound and reconcile
> >> what OpenFlows it can.
> >>
> >> How is that different from the case with your patch applied and
> >> "validate-actions-fail-mode=continue"?
> >>
> > I'm still not sure about the use case you're trying to address, it would
> > be nice to get some clarification on my queries above.
> >
> > In any case, I'm marking the patch as "changes requested" for now in
> > patchwork as it needs at least a rebase.
> >
> >>>> Because, unless I'm missing something, the generated OpenFlow rules and
> >>>> configuration is exactly the same as when you use the current OVN code
> >>>> with ovn-match-northd-version=false.
> >>>>
> >>>> ovn-controllers will still fail to parse logical flows that use
> >>>> unsupported actions and will log that failure.
> >>>>
> >>>> Or is the goal of your patch just to get the exact diff between the sets
> >>>> of actions (supported by ovn-northd vs supported by ovn-controller)?  In
> >>>> this latter case, wouldn't it make sense to just add an appctl command
> >>>> that dumps the sets of actions for both ovn-northd and ovn-controller
> >>>> and do the diff offline?
> >>> I think it's not very convenient to make 2 handles, dump the output and
> >>> get a diff
> >>>
> >> Why not?  With your approach you'd still have to iterate through all
> >> chassis and check all ovn-controller logs on each chassis to see if
> >> there's a mismatch in supported actions.
> >>
> >> An ovn-appctl command to list supported actions for norhtd and
> >> ovn-controller actually is a bit cleaner in my opinion because it
> >> doesn't force the CMS to rely on log scraping.
> >>
> >> Regards,
> >> Dumitru
> >>
> > Thanks,
> > Dumitru
> >
>
> --
> regards,
> Alexandra.
>
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to