On Tue, Dec 16, 2025 at 7:44 PM Mark Michelson via dev <
[email protected]> wrote:

> This is a cosmetic change that establishes a clearer way to iterate over
> all known OVN datapath types. Some for loops started iterating with "0",
> and others started with "DP_SWITCH" since it was the first value in the
> enum. Neither of these is great. 0 is not an enum value in
> ovn_datpaath_type. DP_SWITCH is not a clear way of indicating the first
> value in the enum, and it's vulnerable to enum changes that might not
> keep DP_SWITCH as the first value.
>
> This change introduces "DP_MIN" as the first value in the enum, and
> aliases DP_SWITCH to be the same as DP_MIN. This way, for loops can
> start with DP_MIN instead of 0 or DP_SWITCH.
>
> Signed-off-by: Mark Michelson <[email protected]>
> ---
>  northd/datapath-sync.c    | 2 +-
>  northd/datapath-sync.h    | 3 ++-
>  northd/en-datapath-sync.c | 4 ++--
>  3 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/northd/datapath-sync.c b/northd/datapath-sync.c
> index 40f1761db..459d304e6 100644
> --- a/northd/datapath-sync.c
> +++ b/northd/datapath-sync.c
> @@ -28,7 +28,7 @@ static const char *ovn_datapath_strings[] = {
>  enum ovn_datapath_type
>  ovn_datapath_type_from_string(const char *type_str)
>  {
> -    for (enum ovn_datapath_type i = DP_SWITCH; i < DP_MAX; i++) {
> +    for (enum ovn_datapath_type i = DP_MIN; i < DP_MAX; i++) {
>          if (!strcmp(type_str, ovn_datapath_strings[i])) {
>              return i;
>          }
> diff --git a/northd/datapath-sync.h b/northd/datapath-sync.h
> index 9bd0b7e5a..f54b79fab 100644
> --- a/northd/datapath-sync.h
> +++ b/northd/datapath-sync.h
> @@ -39,7 +39,8 @@
>   */
>
>  enum ovn_datapath_type {
> -    DP_SWITCH,
> +    DP_MIN = 0,
> +    DP_SWITCH = DP_MIN,
>      DP_ROUTER,
>      DP_MAX,
>  };
> diff --git a/northd/en-datapath-sync.c b/northd/en-datapath-sync.c
> index 1c997d242..40ff6b027 100644
> --- a/northd/en-datapath-sync.c
> +++ b/northd/en-datapath-sync.c
> @@ -218,7 +218,7 @@ create_synced_datapath_candidates_from_nb(
>      struct uuidset *visited,
>      struct vector *candidate_sdps)
>  {
> -    for (size_t i = 0; i < DP_MAX; i++) {
> +    for (enum ovn_datapath_type i = DP_MIN; i < DP_MAX; i++) {
>          const struct ovn_unsynced_datapath_map *map = input_maps[i];
>          struct ovn_unsynced_datapath *udp;
>          HMAP_FOR_EACH (udp, hmap_node, &map->dps) {
> @@ -554,7 +554,7 @@ en_datapath_sync_run(struct engine_node *node , void
> *data)
>      input_maps[unsynced_lr_map->dp_type] = unsynced_lr_map;
>
>      size_t num_datapaths = 0;
> -    for (enum ovn_datapath_type i = 0; i < DP_MAX; i++) {
> +    for (enum ovn_datapath_type i = DP_MIN; i < DP_MAX; i++) {
>          ovs_assert(input_maps[i]);
>          num_datapaths += hmap_count(&input_maps[i]->dps);
>      }
> --
> 2.51.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>

Looks good to me, thanks.

Acked-by: Ales Musil <[email protected]>

It also seems like CI had some infra issues, let's try it again:
Recheck-request: github-robot-_Build_and_Test
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to