On Fri, Dec 19, 2025 at 4:35 PM Mark Michelson via dev <
[email protected]> wrote:

> When the search mode is LFLOW_TABLE_SEARCH_SBUUID, we start the syncing
> process by iterating over all in-memory logical flows and syncing those
> with the southbound database. We then iterate over the southbound
> database entries. If the southbound entry does not match one of the
> in-memory logical flows we just synced, then we delete the southbound
> Logical flow. If the southbound entry matches on one of the
> in-memory logical flows that we just synced, then we perform a check to
> ensure that the southbound logical flow refers to valid datapaths. If
> the datapath is invalid, then we delete the southbound logical flow.
>
> This datapath check is not necessary. We started the process by syncing
> using the in-memory logical flows. By definition, these logical flows can
> only be created for synced datapaths, which are valid. Since the in-memory
> logical flow has already been synced with the southbound logical flow,
> it means that the southbound logical flow has valid datapaths.
>
> This patch implements this change by only performing datapath validity
> checks when the search mode is LFLOW_TABLE_SEARCH_FIELDS. The datapath
> validity check is still necessary in this case, since we need the
> datapath in order build an enum ovn_stage to help search for the
> matching in-memory logical flow.
>
> Fixes: 674738fc9806 ("northd: Refactor lflow table sync to sb.")
> Signed-off-by: Mark Michelson <[email protected]>
> ---
>  northd/lflow-mgr.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/northd/lflow-mgr.c b/northd/lflow-mgr.c
> index 43dd1d947..06df978cd 100644
> --- a/northd/lflow-mgr.c
> +++ b/northd/lflow-mgr.c
> @@ -304,6 +304,7 @@ lflow_table_sync_to_sb(struct lflow_table *lflow_table,
>                  continue;
>              }
>              uuidset_delete(&sb_uuid_set, node);
> +            continue;
>          }
>          struct sbrec_logical_dp_group *dp_group =
> sbflow->logical_dp_group;
>          struct ovn_datapath *logical_datapath_od = NULL;
> @@ -336,10 +337,6 @@ lflow_table_sync_to_sb(struct lflow_table
> *lflow_table,
>              continue;
>          }
>
> -        if (search_mode != LFLOW_TABLE_SEARCH_FIELDS) {
> -            continue;
> -        }
> -
>          enum ovn_pipeline pipeline
>              = !strcmp(sbflow->pipeline, "ingress") ? P_IN : P_OUT;
>
> --
> 2.51.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
Thank you Mark,

I went ahead and merged this into main.

Regards,
Ales
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to