> -----Original Message----- > From: Andrew Rybchenko <[email protected]> > Sent: Monday, November 2, 2020 18:40 > To: Slava Ovsiienko <[email protected]>; Ferruh Yigit > <[email protected]>; Xueming(Steven) Li <[email protected]>; > Andrew Rybchenko <[email protected]>; [email protected]; > [email protected] > Cc: Andrey Vesnovaty <[email protected]>; NBU-Contact-Thomas Monjalon > <[email protected]>; Ray Kinsella <[email protected]>; Neil Horman > <[email protected]>; Ori Kam <[email protected]>; Wei Hu (Xavier) > <[email protected]>; Min Hu (Connor) <[email protected]>; > Yisen Zhuang <[email protected]>; Lijun Ou <[email protected]>; > Matan Azrad <[email protected]>; Shahaf Shuler <[email protected]>; > Jasvinder Singh <[email protected]>; Cristian Dumitrescu > <[email protected]>; Ajit Khaparde > <[email protected]>; Somnath Kotur > <[email protected]>; Qiming Yang <[email protected]>; Qi > Zhang <[email protected]> > Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters using > action attribute > > On 11/2/20 7:12 PM, Slava Ovsiienko wrote: > >> -----Original Message----- > >> From: Ferruh Yigit <[email protected]> > >> Sent: Monday, November 2, 2020 18:01 > >> To: Andrew Rybchenko <[email protected]>; > Xueming(Steven) > >> Li <[email protected]>; Andrew Rybchenko > >> <[email protected]>; [email protected]; [email protected] > >> Cc: Andrey Vesnovaty <[email protected]>; NBU-Contact-Thomas > >> Monjalon <[email protected]>; Ray Kinsella <[email protected]>; Neil > >> Horman <[email protected]>; Ori Kam <[email protected]>; Wei Hu > >> (Xavier) <[email protected]>; Min Hu (Connor) > >> <[email protected]>; Yisen Zhuang <[email protected]>; > Lijun > >> Ou <[email protected]>; Matan Azrad <[email protected]>; Shahaf > >> Shuler <[email protected]>; Slava Ovsiienko > >> <[email protected]>; Jasvinder Singh > >> <[email protected]>; Cristian Dumitrescu > >> <[email protected]>; Ajit Khaparde > >> <[email protected]>; Somnath Kotur > >> <[email protected]>; Qiming Yang <[email protected]>; > Qi > >> Zhang <[email protected]> > >> Subject: Re: [dpdk-dev] [PATCH] ethdev: deprecate shared counters > >> using action attribute > >> > >> On 11/1/2020 10:45 AM, Andrew Rybchenko wrote: > >>> On 10/30/20 7:12 PM, Xueming(Steven) Li wrote: > >>>> Hi Andrew, > >>>> > >>>>> -----Original Message----- > >>>>> From: dev <[email protected]> On Behalf Of Andrew Rybchenko > >>>>> Sent: Thursday, October 29, 2020 4:53 PM > >>>>> To: [email protected] > >>>>> Cc: Andrey Vesnovaty <[email protected]>; NBU-Contact-Thomas > >>>>> Monjalon <[email protected]>; Ferruh Yigit > >>>>> <[email protected]>; Ray Kinsella <[email protected]>; Neil > >>>>> Horman <[email protected]>; Ori Kam <[email protected]>; > Andrew > >>>>> Rybchenko <[email protected]> > >>>>> Subject: [dpdk-dev] [PATCH] ethdev: deprecate shared counters > >>>>> using action attribute > >>>>> > >>>>> A new generic shared actions API may be used to create shared counter. > >>>>> There is no point to keep duplicate COUNT action specific > >>>>> capability to create shared counters. > >>>>> > >>>>> Signed-off-by: Andrew Rybchenko <[email protected]> > >>>>> --- > >>>>> In fact, it looks like the next logical step is to remove struct > >>>>> rte_flow_action_count completely since counter ID makes sense for > >>>>> shared counters only. I think it will just make it easiser to use > >>>>> COUNT > >> action. > >>>>> Comments are welcome. > >>>>> > >>>>> doc/guides/rel_notes/deprecation.rst | 4 ++++ > >>>>> lib/librte_ethdev/rte_flow.h | 6 +++++- > >>>>> 2 files changed, 9 insertions(+), 1 deletion(-) > >>>>> > >>>>> diff --git a/doc/guides/rel_notes/deprecation.rst > >>>>> b/doc/guides/rel_notes/deprecation.rst > >>>>> index 2e082499b8..4f3bac1a6d 100644 > >>>>> --- a/doc/guides/rel_notes/deprecation.rst > >>>>> +++ b/doc/guides/rel_notes/deprecation.rst > >>>>> @@ -138,6 +138,10 @@ Deprecation Notices > >>>>> will be limited to maximum 256 queues. > >>>>> Also compile time flag ``RTE_ETHDEV_QUEUE_STAT_CNTRS`` will > >>>>> be removed. > >>>>> > >>>>> +* ethdev: Attribute ``shared`` of the ``struct > >>>>> +rte_flow_action_count`` > >>>>> + is deprecated and will be removed in DPDK 21.11. Shared > >>>>> +counters should > >>>>> + be managed using shared actions API > >>>>> +(``rte_flow_shared_action_create`` > >>>>> etc). > >>>>> + > >>>>> * cryptodev: support for using IV with all sizes is added, J0 > >>>>> still can > >>>>> be used but only when IV length in following structs > >>>>> ``rte_crypto_auth_xform``, > >>>>> ``rte_crypto_aead_xform`` is set to zero. When IV length is > >>>>> greater or equal diff --git a/lib/librte_ethdev/rte_flow.h > >>>>> b/lib/librte_ethdev/rte_flow.h index a8eac4deb8..2bb93d237a 100644 > >>>>> --- a/lib/librte_ethdev/rte_flow.h > >>>>> +++ b/lib/librte_ethdev/rte_flow.h > >>>>> @@ -2287,6 +2287,9 @@ 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_SHARED 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. > >>>>> * > >>>>> @@ -2299,7 +2302,8 @@ struct rte_flow_query_age { > >>>>> * to all ports within that switch domain. > >>>>> */ > >>>>> struct rte_flow_action_count { > >>>>> - uint32_t shared:1; /**< Share counter ID with other flow rules. > >>>>> */ > >>>>> + /** @deprecated Share counter ID with other flow rules. */ > >>>>> + uint32_t shared:1; > >>>>> uint32_t reserved:31; /**< Reserved, must be zero. */ > >>>>> uint32_t id; /**< Counter ID. */ > >>>> Do you think id could be removed as well? neither non-shared flow > >>>> counter query, nor shared action query. > >>> > >>> I'm not 100% sure, but yes, as I write above just after my Signed-off-by. > >>> > >> > >> cc'ed Declan + maintainers of PMDs for the 'id' field, but as far as > >> I can see it is used out of the 'shared' context, so I am for going > >> on with existing patch for now. > >> > >> Reviewed-by: Ferruh Yigit <[email protected]> > > > > It depends whether we are going to support multiple counters for the same > flow. > > Why? Query refers to a counter using action pointer. There is always one > counter in one action. If you need more counters, just use more actions. > Honestly, I wonder if someone wants to use multiple counters in the same flow. That might happen if we add some unique attributes to the counter action (say, count some complex events/traffic params).
Action pointer in the rte_flow_query() is just a pointer to some counter action describing the counter. If we drop id field (and only action type COUNTER remains in action description) - there would be no way to distinguish two (regular, not shared) counters in the flow. Which one should be returned on query? > > If there is the only counter per flow we could get rid of the "id" > > field either. If it is still needed, PMDs should generate counter id > > internally > and id should not be exposed outside. > > > > With best regards, Slava > > > > PS. What about meters? The next good candidate to shared actions. > > > >

