On Tue, Dec 16, 2025 at 7:44 PM Mark Michelson via dev < [email protected]> wrote:
> This function already existed as a private function in > en-datapath-sync.c. This commit makes it callable from outside the > function, as a counterpart to the existing ovn_datapath_from_sbrec() > function. > > Signed-off-by: Mark Michelson <[email protected]> > --- > northd/datapath-sync.c | 27 +++++++++++++++++++++++++++ > northd/datapath-sync.h | 4 ++++ > northd/en-datapath-sync.c | 29 +---------------------------- > 3 files changed, 32 insertions(+), 28 deletions(-) > > diff --git a/northd/datapath-sync.c b/northd/datapath-sync.c > index 459d304e6..b4296c4dc 100644 > --- a/northd/datapath-sync.c > +++ b/northd/datapath-sync.c > @@ -17,6 +17,7 @@ > > #include "datapath-sync.h" > #include "ovsdb-idl-provider.h" > +#include "ovn-sb-idl.h" > #include "uuid.h" > > static const char *ovn_datapath_strings[] = { > @@ -141,3 +142,29 @@ ovn_unsynced_datapath_map_clear_tracked_data( > hmapx_delete(&map->deleted, node); > } > } > + > +struct ovn_synced_datapath * > +ovn_synced_datapath_from_sb(const struct ovn_synced_datapaths *datapaths, > + const struct sbrec_datapath_binding *sb_dp) > +{ > + struct ovn_synced_datapath *sdp; > + struct uuid nb_uuid; > + > + /* Don't reference sb_dp->nb_uuid directly here. The nb_uuid column > was > + * a later addition to the Datapath_Binding table. We might be > + * referencing a record that does not have this column set, so use > + * the helper function instead. > + */ > + if (!datapath_get_nb_uuid(sb_dp, &nb_uuid)) { > + return NULL; > + } > + > + uint32_t hash = uuid_hash(&nb_uuid); > + HMAP_FOR_EACH_WITH_HASH (sdp, hmap_node, hash, > &datapaths->synced_dps) { > + if (uuid_equals(&sdp->nb_row->uuid, &nb_uuid)) { > + return sdp; > + } > + } > + > + return NULL; > +} > diff --git a/northd/datapath-sync.h b/northd/datapath-sync.h > index 49eb008ed..73c874b37 100644 > --- a/northd/datapath-sync.h > +++ b/northd/datapath-sync.h > @@ -120,4 +120,8 @@ ovn_unsynced_datapath_find(const struct > ovn_unsynced_datapath_map *, > void ovn_unsynced_datapath_map_clear_tracked_data( > struct ovn_unsynced_datapath_map *); > > +struct ovn_synced_datapath * > +ovn_synced_datapath_from_sb(const struct ovn_synced_datapaths *datapaths, > + const struct sbrec_datapath_binding *sb_dp); > + > #endif /* DATAPATH_SYNC_H */ > diff --git a/northd/en-datapath-sync.c b/northd/en-datapath-sync.c > index 227021e63..7c5c6830c 100644 > --- a/northd/en-datapath-sync.c > +++ b/northd/en-datapath-sync.c > @@ -97,32 +97,6 @@ find_synced_datapath_from_udp( > return NULL; > } > > -static struct ovn_synced_datapath * > -find_synced_datapath_from_sb(const struct hmap *datapaths, > - const struct sbrec_datapath_binding *sb_dp) > -{ > - struct ovn_synced_datapath *sdp; > - struct uuid nb_uuid; > - > - /* Don't reference sb_dp->nb_uuid directly here. The nb_uuid column > was > - * a later addition to the Datapath_Binding table. We might be > - * referencing a record that does not have this column set, so use > - * the helper function instead. > - */ > - if (!datapath_get_nb_uuid(sb_dp, &nb_uuid)) { > - return NULL; > - } > - > - uint32_t hash = uuid_hash(&nb_uuid); > - HMAP_FOR_EACH_WITH_HASH (sdp, hmap_node, hash, datapaths) { > - if (uuid_equals(&sdp->nb_row->uuid, &nb_uuid)) { > - return sdp; > - } > - } > - > - return NULL; > -} > - > struct candidate_sdp { > struct ovn_synced_datapath *sdp; > uint32_t requested_tunnel_key; > @@ -524,8 +498,7 @@ datapath_sync_sb_datapath_binding(struct engine_node > *node, void *data) > return EN_UNHANDLED; > } > struct ovn_synced_datapath *sdp = > - find_synced_datapath_from_sb( > - &all_dps->synced_dps[dp_type].synced_dps, sb_dp); > + ovn_synced_datapath_from_sb(&all_dps->synced_dps[dp_type], > sb_dp); > if (sbrec_datapath_binding_is_deleted(sb_dp)) { > if (sdp) { > /* The SB datapath binding was deleted, but we still have > a > -- > 2.51.1 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > With the potential sparse_array changes accounted for: Acked-by: Ales Musil <[email protected]> Thanks, Ales _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
