[dpdk-dev] [PATCH 1/2] ethdev: introduce transfer attribute to shared action conf

Ori Kam orika at nvidia.com
Sun Nov 1 09:11:34 CET 2020


Hi Ivan,

> -----Original Message-----
> From: Ivan Malov <Ivan.Malov at oktetlabs.ru>
> Sent: Friday, October 30, 2020 10:35 PM
> Subject: Re: [dpdk-dev] [PATCH 1/2] ethdev: introduce transfer attribute to
> shared action conf
> 
> Hi,
> 
> On 30/10/2020 18:49, Xueming(Steven) Li wrote:
> > Hi Ivan,
> >
> >> -----Original Message-----
> >> From: dev <dev-bounces at dpdk.org> On Behalf Of Ivan Malov
> >> Sent: Thursday, October 29, 2020 7:47 PM
> >> To: dev at dpdk.org
> >> Cc: Ori Kam <orika at nvidia.com>; NBU-Contact-Thomas Monjalon
> >> <thomas at monjalon.net>; Ferruh Yigit <ferruh.yigit at intel.com>; Andrew
> >> Rybchenko <andrew.rybchenko at oktetlabs.ru>
> >> Subject: [dpdk-dev] [PATCH 1/2] ethdev: introduce transfer attribute to
> >> shared action conf
> >>
> >> In a flow rule, attribute "transfer" means operation level at which both
> traffic
> >> is matched and actions are conducted.
> >>
> >> Add the very same attribute to shared action configuration.
> >> If a driver needs to prepare HW resources in two different ways, depending
> >> on the operation level, in order to set up an action, then this new attribute
> >> will indicate the level.
> >> Also, when handling a flow rule insertion, the driver will be able to turn
> >> down a shared action if its level is unfit.
> > Most actions apply to both level, rss and queue action applies on non-transfer
> level,
> > Port action applies to transfer level. Is there a particular scenario for this new
> attribute?
> 
> Most doesn't mean all, and you've already described some of the
> exceptions. And that's exactly the deal. Particular scenarios are don't
> cares given the fact that such an attribute is meant to be a generic
> solution. If an action happens to be supported on both levels, this
> doesn't necessarily mean that HW resources/objects that need to be
> prepared in the two cases are of the same type (or programmed to the NIC
> the same way). This is exactly what applies to flow rules (which do have
> attribute transfer) and what should be done to shared action conf, too.
> 
> If this still seems vague, please let me know.
> 

The only question is can we see a reason to share action between transfer and 
non transfer?

I don't see such a reason and I think it can improve the code. So I vote to add it.


In any case, you are missing the rte_flow rst update.
I can see that the rst also misses the ingress bits, can you please also 
create a fix for those?

Thanks,
Ori


> >
> >>
> >> Signed-off-by: Ivan Malov <ivan.malov at oktetlabs.ru>
> >> ---
> >>   lib/librte_ethdev/rte_flow.h | 7 +++++++
> >>   1 file changed, 7 insertions(+)
> >>
> >> diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h index
> >> a8eac4deb..0b993d8eb 100644
> >> --- a/lib/librte_ethdev/rte_flow.h
> >> +++ b/lib/librte_ethdev/rte_flow.h
> >> @@ -3487,6 +3487,13 @@ struct rte_flow_shared_action_conf {
> >>   	/**< Action valid for rules applied to ingress traffic. */
> >>   	uint32_t egress:1;
> >>   	/**< Action valid for rules applied to egress traffic. */
> >> +
> >> +	/**
> >> +	 * This attribute matches that of the flow rules which
> >> +	 * are supposed to comprise the given shared action.
> >> +	 * See struct rte_flow_attr.
> >> +	 */
> >> +	uint32_t transfer:1;
> >>   };
> >>
> >>   /**
> >> --
> >> 2.20.1
> 
> --
> Ivan M


More information about the dev mailing list