Sorry for late response... comment inline

> -----Original Message-----
> From: Thomas Monjalon <tho...@monjalon.net>
> Sent: Friday, October 13, 2023 9:17 PM
> To: Zhang, Qi Z <qi.z.zh...@intel.com>
> Cc: Yang, Qiming <qiming.y...@intel.com>; Zeng, ZhichaoX
> <zhichaox.z...@intel.com>; dev@dpdk.org; or...@nvidia.com;
> david.march...@redhat.com; Mcnamara, John
> <john.mcnam...@intel.com>
> Subject: Re: [PATCH v5 5/5] doc: add generic flow doc for ice PMD
> 
> 26/09/2023 13:29, Qi Zhang:
> > +Generic Flow Support
> > +~~~~~~~~~~~~~~~~~~~~
> > +
> > +The ice PMD provides support for the Generic Flow API (RTE_FLOW),
> > +enabling users to offload various flow classification tasks to the E810 
> > NIC.
> > +The E810 NIC's  packet processing pipeline consists of the following 
> > stages:
> > +
> > +Switch: Supports exact match and limited wildcard matching with a
> > +large flow capacity.
> > +
> > +ACL: Supports wildcard matching with a smaller flow capacity (DCF mode
> only).
> > +
> > +FDIR: Supports exact match with a large flow capacity (PF mode only).
> > +
> > +Hash: Supports RSS (PF mode only)
> > +
> > +The ice PMD utilizes the ice_flow_engine structure to represent each
> > +of these stages and leverages the rte_flow rule's ``group`` attribute
> > +for selecting the appropriate engine for Switch, ACL, and FDIR operations:
> > +
> > +Group 0 maps to Switch
> > +Group 1 maps to ACL
> > +Group 2 maps to FDIR
> > +
> > +In the case of RSS, it will only be selected if a
> > +``RTE_FLOW_ACTION_RSS`` action is targeted to no queue group, and the
> group attribute is ignored.
> > +
> > +For each engine, a list of supported patterns is maintained in a
> > +global array named ``ice_<engine>_supported_pattern``. The Ice PMD
> > +will reject any rule with a pattern that is not included in the supported 
> > list.
> 
> Why not choosing the right engine automatically?
> 
> You are defining an API (group number specialization) which is specific to 
> this
> driver.

OK, let me know if my understanding is correct or not.

I think the implementation somehow broken below description in rte_flow 
document.

"Groups are not linked by default, so the logical hierarchy of groups must be 
explicitly defined by flow rules themselves in each group using the JUMP action 
to define the next group to redirect to. "

Could a fix like below works ? Or any better suggestion?

1. Initially, map the switch to group 0, as it represents the first stage in 
the hardware pipeline.
2. For ACL usage, users should create a rule in group 0 with a JUMP action that 
includes an arbitrarily group ID. then, the driver will associate this group 
with ACL engine.
3. For FDIR usage, users should create a rule within group <ACL> with a JUMP 
action, utilizing a distinct group ID. then, the driver will link this group 
with FDIR engine.

Thanks
Qi


> Don't you care about portability of DPDK applications?

> 



Reply via email to