mbox series

[0/8] add flow action map

Message ID 1591194009-4086-1-git-send-email-bernard.iremonger@intel.com (mailing list archive)
Headers show
Series add flow action map | expand

Message

Bernard Iremonger June 3, 2020, 2:20 p.m. UTC
Add map action to rte_flow API to map a Packet Classification type (pctype)
to a flowtype for the i40e PMD.

This feature requires changes to be made to the rte_flow code in librte_ethdev,
testpmd and the i40e PMD.


Bernard Iremonger (8):
  librte_ethdev: add new flow types and action
  librte_ethdev: add map filter type
  librte_ethdev: add map action
  app/testpmd: parse map actions
  net/i40e: add map filter
  net/i40e: add map functions
  net/i40e: parse map pattern and action
  doc: release note

 app/test-pmd/cmdline_flow.c                 |  85 ++++++++++++
 doc/guides/prog_guide/rte_flow.rst          |  55 ++++++++
 doc/guides/rel_notes/release_20_08.rst      |  18 +++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  27 ++++
 drivers/net/i40e/i40e_ethdev.c              |  56 ++++++++
 drivers/net/i40e/i40e_ethdev.h              |  24 ++++
 drivers/net/i40e/i40e_flow.c                | 196 ++++++++++++++++++++++++++++
 lib/librte_ethdev/rte_eth_ctrl.h            |   1 +
 lib/librte_ethdev/rte_flow.c                |  14 ++
 lib/librte_ethdev/rte_flow.h                |  78 +++++++++++
 10 files changed, 554 insertions(+)

Comments

Ori Kam June 4, 2020, 6:05 a.m. UTC | #1
Hi Bernard,

Can you please explain more what is the pctype, the flow type,
What is the general idea beyond this patch set?
How will the application uses it? 
is it only for i40?

Thanks,
Ori

> -----Original Message-----
> From: Bernard Iremonger <bernard.iremonger@intel.com>
> Sent: Wednesday, June 3, 2020 5:20 PM
> To: dev@dpdk.org; beilei.xing@intel.com; qi.z.zhang@intel.com;
> declan.doherty@intel.com; Ori Kam <orika@mellanox.com>
> Cc: Bernard Iremonger <bernard.iremonger@intel.com>
> Subject: [PATCH 0/8] add flow action map
> 
> Add map action to rte_flow API to map a Packet Classification type (pctype)
> to a flowtype for the i40e PMD.
> 
> This feature requires changes to be made to the rte_flow code in librte_ethdev,
> testpmd and the i40e PMD.
> 
> 
> Bernard Iremonger (8):
>   librte_ethdev: add new flow types and action
>   librte_ethdev: add map filter type
>   librte_ethdev: add map action
>   app/testpmd: parse map actions
>   net/i40e: add map filter
>   net/i40e: add map functions
>   net/i40e: parse map pattern and action
>   doc: release note
> 
>  app/test-pmd/cmdline_flow.c                 |  85 ++++++++++++
>  doc/guides/prog_guide/rte_flow.rst          |  55 ++++++++
>  doc/guides/rel_notes/release_20_08.rst      |  18 +++
>  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  27 ++++
>  drivers/net/i40e/i40e_ethdev.c              |  56 ++++++++
>  drivers/net/i40e/i40e_ethdev.h              |  24 ++++
>  drivers/net/i40e/i40e_flow.c                | 196 ++++++++++++++++++++++++++++
>  lib/librte_ethdev/rte_eth_ctrl.h            |   1 +
>  lib/librte_ethdev/rte_flow.c                |  14 ++
>  lib/librte_ethdev/rte_flow.h                |  78 +++++++++++
>  10 files changed, 554 insertions(+)
> 
> --
> 2.7.4
Bernard Iremonger June 4, 2020, 11:21 a.m. UTC | #2
Hi Ori,

This patchset is intended to add support in the rte_flow API for the Dynamic Device Personalization (DDP) feature on the Intel i40e PMD by adding a map action.

https://software.intel.com/content/www/us/en/develop/articles/dynamic-device-personalization-for-intel-ethernet-700-series.html

pctype means Packet Classification type.
flowtype is the index into the pctype table on the i40e.

The map action is intended to insert the specified pctype into the pctype table at index specified by the flowtype. 
 
At present the DDP feature uses the following commands in testpmd:
/* map pctype 15 to flowtype 27 */
# testpmd> port config 0 pctype mapping update 15 27
# testpmd> show  port 0 pctype mapping
pctype: 15  ->  flowtype: 27 


In future the application will create the following rule:
# testpmd> flow create 0 ingress pattern end actions map pctype 15 flowtype 27 / end
# testpmd> show port 0 pctype mapping
 pctype: 15  ->  flowtype: 27

Regards,

Bernard.

> -----Original Message-----
> From: Ori Kam <orika@mellanox.com>
> Sent: Thursday, June 4, 2020 7:06 AM
> To: Iremonger, Bernard <bernard.iremonger@intel.com>; dev@dpdk.org;
> Xing, Beilei <beilei.xing@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> Doherty, Declan <declan.doherty@intel.com>
> Subject: RE: [PATCH 0/8] add flow action map
> 
> Hi Bernard,
> 
> Can you please explain more what is the pctype, the flow type, What is the
> general idea beyond this patch set?
> How will the application uses it?
> is it only for i40?
> 
> Thanks,
> Ori
> 
> > -----Original Message-----
> > From: Bernard Iremonger <bernard.iremonger@intel.com>
> > Sent: Wednesday, June 3, 2020 5:20 PM
> > To: dev@dpdk.org; beilei.xing@intel.com; qi.z.zhang@intel.com;
> > declan.doherty@intel.com; Ori Kam <orika@mellanox.com>
> > Cc: Bernard Iremonger <bernard.iremonger@intel.com>
> > Subject: [PATCH 0/8] add flow action map
> >
> > Add map action to rte_flow API to map a Packet Classification type
> > (pctype) to a flowtype for the i40e PMD.
> >
> > This feature requires changes to be made to the rte_flow code in
> > librte_ethdev, testpmd and the i40e PMD.
> >
> >
> > Bernard Iremonger (8):
> >   librte_ethdev: add new flow types and action
> >   librte_ethdev: add map filter type
> >   librte_ethdev: add map action
> >   app/testpmd: parse map actions
> >   net/i40e: add map filter
> >   net/i40e: add map functions
> >   net/i40e: parse map pattern and action
> >   doc: release note
> >
> >  app/test-pmd/cmdline_flow.c                 |  85 ++++++++++++
> >  doc/guides/prog_guide/rte_flow.rst          |  55 ++++++++
> >  doc/guides/rel_notes/release_20_08.rst      |  18 +++
> >  doc/guides/testpmd_app_ug/testpmd_funcs.rst |  27 ++++
> >  drivers/net/i40e/i40e_ethdev.c              |  56 ++++++++
> >  drivers/net/i40e/i40e_ethdev.h              |  24 ++++
> >  drivers/net/i40e/i40e_flow.c                | 196
> ++++++++++++++++++++++++++++
> >  lib/librte_ethdev/rte_eth_ctrl.h            |   1 +
> >  lib/librte_ethdev/rte_flow.c                |  14 ++
> >  lib/librte_ethdev/rte_flow.h                |  78 +++++++++++
> >  10 files changed, 554 insertions(+)
> >
> > --
> > 2.7.4
Thomas Monjalon June 4, 2020, 1:12 p.m. UTC | #3
(reordered replies to avoid top-post)

04/06/2020 13:21, Iremonger, Bernard:
> From: Ori Kam <orika@mellanox.com>
> > From: Bernard Iremonger <bernard.iremonger@intel.com>
> > >
> > > Add map action to rte_flow API to map a Packet Classification type
> > > (pctype) to a flowtype for the i40e PMD.
> > >
> > > This feature requires changes to be made to the rte_flow code in
> > > librte_ethdev, testpmd and the i40e PMD.
> > >
> > > Bernard Iremonger (8):
> > >   librte_ethdev: add new flow types and action
> > >   librte_ethdev: add map filter type
> > >   librte_ethdev: add map action
> > >   app/testpmd: parse map actions
> > >   net/i40e: add map filter
> > >   net/i40e: add map functions
> > >   net/i40e: parse map pattern and action
> > >   doc: release note
> > 
> > Can you please explain more what is the pctype, the flow type, What is the
> > general idea beyond this patch set?
> > How will the application uses it?
> > is it only for i40?
> 
> This patchset is intended to add support in the rte_flow API for the Dynamic Device Personalization (DDP) feature on the Intel i40e PMD by adding a map action.
> 
> https://software.intel.com/content/www/us/en/develop/articles/dynamic-device-personalization-for-intel-ethernet-700-series.html
> 
> pctype means Packet Classification type.
> flowtype is the index into the pctype table on the i40e.
> 
> The map action is intended to insert the specified pctype into the pctype table at index specified by the flowtype. 
>  
> At present the DDP feature uses the following commands in testpmd:
> /* map pctype 15 to flowtype 27 */
> # testpmd> port config 0 pctype mapping update 15 27
> # testpmd> show  port 0 pctype mapping
> pctype: 15  ->  flowtype: 27 
> 
> 
> In future the application will create the following rule:
> # testpmd> flow create 0 ingress pattern end actions map pctype 15 flowtype 27 / end
> # testpmd> show port 0 pctype mapping
>  pctype: 15  ->  flowtype: 27

This usage looks really Intel-specific.
If the application has to consider the Intel-specific ids,
then it is not generic.
Having some HW specific API makes no sense in the generic ethdev API.
Sorry I must say NACK.

Could this code be in drivers/net/i40e/rte_pmd_i40e.h ?