Hi Stephen, If I understand correctly, do you mean that the internal value and rte_flow API value may have some conflict? All the MLX5 internal enum values start from INT_MIN. When treating it as a int value, it would not have the same value with rte_flow enums, unless all the 2^^32 are defined. But yes, this has some risk since there is no limitation of the values in the rte_flow API.
BR. Bing > -----Original Message----- > From: Stephen Hemminger <[email protected]> > Sent: Friday, June 30, 2023 2:09 PM > To: Bing Zhao <[email protected]> > Cc: Matan Azrad <[email protected]>; Slava Ovsiienko > <[email protected]>; Ori Kam <[email protected]>; Suanming Mou > <[email protected]>; Raslan Darawsheh <[email protected]>; > [email protected]; Michael Baum <[email protected]> > Subject: Re: [PATCH 1/7] net/mlx5: fix the modify field check of tag > > External email: Use caution opening links or attachments > > > On Fri, 30 Jun 2023 08:43:03 +0300 > Bing Zhao <[email protected]> wrote: > > > @@ -1117,9 +1117,10 @@ flow_dv_fetch_field(const uint8_t *data, > > uint32_t size) static inline bool > > flow_modify_field_support_tag_array(enum rte_flow_field_id field) { > > - switch (field) { > > + switch ((int)field) { > > case RTE_FLOW_FIELD_TAG: > > case RTE_FLOW_FIELD_MPLS: > > + case MLX5_RTE_FLOW_FIELD_META_REG: > > Mixing internal and API fields seems like something that could get easily > broken by changes to rte_flow.

