On Fri, Nov 14, 2025 at 12:03 PM Mark Michelson <[email protected]> wrote: > > Thanks Han, > > Acked-by: Mark Michelson <[email protected]>
Thanks Ales and Mark. I have merged this patch to main. Best, Han > > On Wed, Nov 12, 2025 at 7:38 PM Han Zhou <[email protected]> wrote: > > > > Change enum chassis_tunnel_type from bit-field values to simple > > sequential indices to simplify array-based lookups in future > > optimizations. > > > > The preference order (GENEVE > VXLAN) is preserved through numeric > > comparison. > > > > Signed-off-by: Han Zhou <[email protected]> > > --- > > controller/encaps.c | 9 ++++++--- > > controller/ovn-controller.h | 2 +- > > lib/ovn-util.c | 4 ++-- > > lib/ovn-util.h | 9 +++++---- > > 4 files changed, 14 insertions(+), 10 deletions(-) > > > > diff --git a/controller/encaps.c b/controller/encaps.c > > index 8e2b8e6b82e6..3ed42534b36a 100644 > > --- a/controller/encaps.c > > +++ b/controller/encaps.c > > @@ -349,7 +349,9 @@ exit: > > } > > > > static bool > > -chassis_has_type(const struct sbrec_chassis *chassis, uint32_t tun_type) { > > +chassis_has_type(const struct sbrec_chassis *chassis, > > + enum chassis_tunnel_type tun_type) > > +{ > > for (size_t i = 0; i < chassis->n_encaps; i++) { > > if (get_tunnel_type(chassis->encaps[i]->type) == tun_type) { > > return true; > > @@ -363,10 +365,11 @@ preferred_encap(const struct sbrec_chassis *chassis_rec, > > const struct sbrec_chassis *this_chassis) > > { > > struct sbrec_encap *best_encap = NULL; > > - uint32_t best_type = 0; > > + enum chassis_tunnel_type best_type = TUNNEL_TYPE_INVALID; > > > > for (size_t i = 0; i < chassis_rec->n_encaps; i++) { > > - uint32_t tun_type = get_tunnel_type(chassis_rec->encaps[i]->type); > > + enum chassis_tunnel_type tun_type = > > + get_tunnel_type(chassis_rec->encaps[i]->type); > > if (tun_type > best_type && chassis_has_type(this_chassis, tun_type)) { > > best_type = tun_type; > > best_encap = chassis_rec->encaps[i]; > > diff --git a/controller/ovn-controller.h b/controller/ovn-controller.h > > index fafd704df7a5..57d5577bc8f3 100644 > > --- a/controller/ovn-controller.h > > +++ b/controller/ovn-controller.h > > @@ -24,6 +24,6 @@ struct ovsrec_bridge_table; > > const struct ovsrec_bridge *get_bridge(const struct ovsrec_bridge_table *, > > const char *br_name); > > > > -uint32_t get_tunnel_type(const char *name); > > +enum chassis_tunnel_type get_tunnel_type(const char *name); > > > > #endif /* controller/ovn-controller.h */ > > diff --git a/lib/ovn-util.c b/lib/ovn-util.c > > index 1b75579a8f7d..cec029e42d25 100644 > > --- a/lib/ovn-util.c > > +++ b/lib/ovn-util.c > > @@ -946,7 +946,7 @@ ovn_get_internal_version(void) > > N_OVNACTS, OVN_INTERNAL_MINOR_VER); > > } > > > > -uint32_t > > +enum chassis_tunnel_type > > get_tunnel_type(const char *name) > > { > > if (!strcmp(name, "geneve")) { > > @@ -955,7 +955,7 @@ get_tunnel_type(const char *name) > > return VXLAN; > > } > > > > - return 0; > > + return TUNNEL_TYPE_INVALID; > > } > > > > const struct ovsrec_bridge * > > diff --git a/lib/ovn-util.h b/lib/ovn-util.h > > index aa1a878bbd23..611f80f1e6f6 100644 > > --- a/lib/ovn-util.h > > +++ b/lib/ovn-util.h > > @@ -345,14 +345,15 @@ hash_add_in6_addr(uint32_t hash, const struct in6_addr *addr) > > return hash; > > } > > > > -/* Must be a bit-field ordered from most-preferred (higher number) to > > +/* Tunnel types ordered from most-preferred (higher number) to > > * least-preferred (lower number). */ > > enum chassis_tunnel_type { > > - GENEVE = 1 << 1, > > - VXLAN = 1 << 0 > > + TUNNEL_TYPE_INVALID = -1, > > + VXLAN = 0, > > + GENEVE = 1 > > }; > > > > -uint32_t get_tunnel_type(const char *name); > > +enum chassis_tunnel_type get_tunnel_type(const char *name); > > > > struct ovsrec_bridge_table; > > const struct ovsrec_bridge *get_bridge(const struct ovsrec_bridge_table *, > > -- > > 2.38.1 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
