On 3/29/25 1:25 AM, Qin, Qiaofeng via discuss wrote:
> Hi,
> 

Hi Qiaofeng,

> I am thinking about a scenario where NB has multiple clients. For
> example, there are two users each managing a datapath, and they do not
> care about each other. They might accidentally install the same ACL

Do you mean you'd have multiple CMS (cloud management systems)
configuring the NB database contents?  Don't they need a sort of broker
anyway (e.g., to ensure they don't remove each other's datapaths?).
Couldn't that broker layer ensure that ACLs are consolidated?

> which is then combined by ovn-northd. In this case, one of them can
> easily find the logical flow in SB by checking the stage-hint, but it is
> more difficult for the other user to find the logical flow.
> 

We could maybe change the semantics of SB.Logical_Flow.external_ids
'stage-hint' and instead of storing a single hint store a list.
However, that seems tricky, might require extensive changes in the code
base and might induce performance issues.

Is this a limitation we can live with?  In theory the stage-hint added
by ovn-northd is just an internal OVN implementation detail and there's
no guarantee its semantics are persisted across OVN upgrades.

I know in practice ovn-detrace relies on it to try to map back to
various NB records but ovn-detrace anyway has some limitations because
there's no explicit typing of stage-hints.  ovn-detrace tries to guess
what those hints mean and can potentially already report slightly
incorrect results (e.g., if a load balancer and an ACL generate the same
stage-hint value).  That is, in my opinion, fine because ovn-detrace is
a debugging tool.

Regards,
Dumitru

> Best,
> Qiaofeng
> 
> ------------------------------------------------------------------------
> *From:* Ilya Maximets <i.maxim...@ovn.org>
> *Sent:* Friday, March 28, 2025 4:59 AM
> *To:* Qin, Qiaofeng <qiaofeng....@intel.com>; ovs-
> disc...@openvswitch.org <ovs-discuss@openvswitch.org>
> *Cc:* i.maxim...@ovn.org <i.maxim...@ovn.org>
> *Subject:* Re: [ovs-discuss] [OVN] Logical flows combined in
> logical_dp_groups lose "stage-hint" information
>  
> On 3/28/25 10:08, Qin, Qiaofeng via discuss wrote:
>> Hi all,
>> 
>> I created some ACLs in OVN, and want to trace each OVN-SB logical flow
>> to the corresponding OVN-NB ACL table row. To achieve it, I refer to the
>> "stage-hint" value of Logical_Flow.External_Ids and compare the UUID.
>> 
>> However, when multiple datapaths have the same ACL rule, these rules will
>> be combined into a single logical flow with a logical_dp_group. The merged
>> logical flow has only one "stage-hint" UUID value. Therefore, some OVN-NB
>> ACL table rows can no longer be tracked in OVN-SB.
> 
> Hi.  What is your use case for tracking NB ACLs in SB?  If those ACLs are
> actually the same, you may reference the same ACL row from all switches and
> port groups.  That will solve the mapping problem, as there will be just one
> ACL row in both NB and SB.
> 
> Best regards, Ilya Maximets.
> 
>> 
>> Would it be possible to keep all stage-hint UUIDs when ovn-northd performs
>> the flow combination? Or are there any workarounds to prevent an ACL from
>> being merged? Currently, I am setting different names to each ACL to make
>> them distinct. However, that also forces ACL logging that creates extra
>> traffic overheads.
>> 
>> 
>> Best,
>> Qiaofeng
> 
> 
> _______________________________________________
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to