On 9/28/21 6:58 PM, Stephen Hemminger wrote: > On Tue, 28 Sep 2021 18:23:00 +0300 > Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> wrote: > >> @@ -2498,24 +2498,11 @@ struct rte_flow_query_age { >> * Counters can be retrieved and reset through ``rte_flow_query()``, see >> * ``struct rte_flow_query_count``. >> * >> - * @deprecated Shared attribute is deprecated, use generic >> - * RTE_FLOW_ACTION_TYPE_INDIRECT action. >> - * >> - * The shared flag indicates whether the counter is unique to the flow rule >> the >> - * action is specified with, or whether it is a shared counter. >> - * >> - * For a count action with the shared flag set, then then a global device >> - * namespace is assumed for the counter id, so that any matched flow rules >> using >> - * a count action with the same counter id on the same port will contribute >> to >> - * that counter. >> - * >> * For ports within the same switch domain then the counter id namespace >> extends >> * to all ports within that switch domain. >> */ >> struct rte_flow_action_count { >> - /** @deprecated Share counter ID with other flow rules. */ >> - uint32_t shared:1; >> - uint32_t reserved:31; /**< Reserved, must be zero. */ >> + uint32_t reserved; /**< Reserved, must be zero. */ >> uint32_t id; /**< Counter ID. */ > > Reserved fields are often source of future problems. > You should change each driver to check that reserved field > return -ENOTSUP if non-zero. That way if reserved field is ever > used in future it won't break API/ABI. > > The other option is to just remove the reserved field and take the API/ABI > hit now. >
I agree. If there is no objections, I'll remove it in v2.