mbox series

[v3,00/20] ice/base: add parser module

Message ID 20210921132009.3461020-1-qi.z.zhang@intel.com (mailing list archive)
Headers show
Series ice/base: add parser module | expand

Message

Qi Zhang Sept. 21, 2021, 1:19 p.m. UTC
Add the parser module that can parse on a raw packet then figure
out the low-level metadata to program the hardware packet process
pipeline for flow offloading(Switch/FDIR/RSS). This is the pre-step
to enable a protocol-agnostic flow offloading solution for ice devices
that leverage Intel DDP technology.

-v3:
1. fix 32 bit compile issue in patch 2/20

-v2:
1. use inclusive word in patch 2/20
2. replace magic number with macro in patch 17/20
3. fix couple typos

Qi Zhang (20):
  net/ice/base: add parser create and destroy skeleton
  net/ice/base: init imem table for parser
  net/ice/base: init metainit table for parser
  net/ice/base: init parse graph cam table for parser
  net/ice/base: init boost TCAM table for parser
  net/ice/base: init ptype marker TCAM table for parser
  net/ice/base: init marker group table for parser
  net/ice/base: init protocol group table for parser
  net/ice/base: init flag redirect table for parser
  net/ice/base: init XLT key builder for parser
  net/ice/base: add parser runtime skeleton
  net/ice/base: add helper function for boost TCAM match
  net/ice/base: add helper functions for parse graph key matching
  net/ice/base: add helper function for ptype markers match
  net/ice/base: add helper function to redirect flags
  net/ice/base: add helper function to aggregate flags
  net/ice/base: add parser execution main loop
  net/ice/base: support double VLAN mode configure for parser
  net/ice/base: add tunnel port support for parser
  net/ice/base: add API for parser profile initialization

 drivers/net/ice/base/ice_bst_tcam.c    | 291 +++++++++
 drivers/net/ice/base/ice_bst_tcam.h    |  35 +
 drivers/net/ice/base/ice_common.h      |   1 +
 drivers/net/ice/base/ice_flex_pipe.c   |   4 +-
 drivers/net/ice/base/ice_flex_pipe.h   |   8 +
 drivers/net/ice/base/ice_flex_type.h   |   2 +
 drivers/net/ice/base/ice_flg_rd.c      |  76 +++
 drivers/net/ice/base/ice_flg_rd.h      |  17 +
 drivers/net/ice/base/ice_imem.c        | 244 +++++++
 drivers/net/ice/base/ice_imem.h        | 109 ++++
 drivers/net/ice/base/ice_metainit.c    | 143 ++++
 drivers/net/ice/base/ice_metainit.h    |  46 ++
 drivers/net/ice/base/ice_mk_grp.c      |  55 ++
 drivers/net/ice/base/ice_mk_grp.h      |  15 +
 drivers/net/ice/base/ice_parser.c      | 556 ++++++++++++++++
 drivers/net/ice/base/ice_parser.h      | 113 ++++
 drivers/net/ice/base/ice_parser_rt.c   | 870 +++++++++++++++++++++++++
 drivers/net/ice/base/ice_parser_rt.h   |  53 ++
 drivers/net/ice/base/ice_parser_util.h |  36 +
 drivers/net/ice/base/ice_pg_cam.c      | 374 +++++++++++
 drivers/net/ice/base/ice_pg_cam.h      |  74 +++
 drivers/net/ice/base/ice_proto_grp.c   | 108 +++
 drivers/net/ice/base/ice_proto_grp.h   |  23 +
 drivers/net/ice/base/ice_ptype_mk.c    |  76 +++
 drivers/net/ice/base/ice_ptype_mk.h    |  21 +
 drivers/net/ice/base/ice_tmatch.h      |  44 ++
 drivers/net/ice/base/ice_type.h        |   1 +
 drivers/net/ice/base/ice_xlt_kb.c      | 216 ++++++
 drivers/net/ice/base/ice_xlt_kb.h      |  34 +
 drivers/net/ice/base/meson.build       |  11 +
 30 files changed, 3654 insertions(+), 2 deletions(-)
 create mode 100644 drivers/net/ice/base/ice_bst_tcam.c
 create mode 100644 drivers/net/ice/base/ice_bst_tcam.h
 create mode 100644 drivers/net/ice/base/ice_flg_rd.c
 create mode 100644 drivers/net/ice/base/ice_flg_rd.h
 create mode 100644 drivers/net/ice/base/ice_imem.c
 create mode 100644 drivers/net/ice/base/ice_imem.h
 create mode 100644 drivers/net/ice/base/ice_metainit.c
 create mode 100644 drivers/net/ice/base/ice_metainit.h
 create mode 100644 drivers/net/ice/base/ice_mk_grp.c
 create mode 100644 drivers/net/ice/base/ice_mk_grp.h
 create mode 100644 drivers/net/ice/base/ice_parser.c
 create mode 100644 drivers/net/ice/base/ice_parser.h
 create mode 100644 drivers/net/ice/base/ice_parser_rt.c
 create mode 100644 drivers/net/ice/base/ice_parser_rt.h
 create mode 100644 drivers/net/ice/base/ice_parser_util.h
 create mode 100644 drivers/net/ice/base/ice_pg_cam.c
 create mode 100644 drivers/net/ice/base/ice_pg_cam.h
 create mode 100644 drivers/net/ice/base/ice_proto_grp.c
 create mode 100644 drivers/net/ice/base/ice_proto_grp.h
 create mode 100644 drivers/net/ice/base/ice_ptype_mk.c
 create mode 100644 drivers/net/ice/base/ice_ptype_mk.h
 create mode 100644 drivers/net/ice/base/ice_tmatch.h
 create mode 100644 drivers/net/ice/base/ice_xlt_kb.c
 create mode 100644 drivers/net/ice/base/ice_xlt_kb.h

Comments

Qi Zhang Sept. 21, 2021, 1:32 p.m. UTC | #1
> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Tuesday, September 21, 2021 9:20 PM
> To: Yang, Qiming <qiming.yang@intel.com>
> Cc: Guo, Junfeng <junfeng.guo@intel.com>; dev@dpdk.org; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Subject: [PATCH v3 00/20] ice/base: add parser module
> 
> Add the parser module that can parse on a raw packet then figure out the
> low-level metadata to program the hardware packet process pipeline for flow
> offloading(Switch/FDIR/RSS). This is the pre-step to enable a protocol-agnostic
> flow offloading solution for ice devices that leverage Intel DDP technology.
> 
> -v3:
> 1. fix 32 bit compile issue in patch 2/20
> 
> -v2:
> 1. use inclusive word in patch 2/20
> 2. replace magic number with macro in patch 17/20 3. fix couple typos
> 
> Qi Zhang (20):
>   net/ice/base: add parser create and destroy skeleton
>   net/ice/base: init imem table for parser
>   net/ice/base: init metainit table for parser
>   net/ice/base: init parse graph cam table for parser
>   net/ice/base: init boost TCAM table for parser
>   net/ice/base: init ptype marker TCAM table for parser
>   net/ice/base: init marker group table for parser
>   net/ice/base: init protocol group table for parser
>   net/ice/base: init flag redirect table for parser
>   net/ice/base: init XLT key builder for parser
>   net/ice/base: add parser runtime skeleton
>   net/ice/base: add helper function for boost TCAM match
>   net/ice/base: add helper functions for parse graph key matching
>   net/ice/base: add helper function for ptype markers match
>   net/ice/base: add helper function to redirect flags
>   net/ice/base: add helper function to aggregate flags
>   net/ice/base: add parser execution main loop
>   net/ice/base: support double VLAN mode configure for parser
>   net/ice/base: add tunnel port support for parser
>   net/ice/base: add API for parser profile initialization
> 
>  drivers/net/ice/base/ice_bst_tcam.c    | 291 +++++++++
>  drivers/net/ice/base/ice_bst_tcam.h    |  35 +
>  drivers/net/ice/base/ice_common.h      |   1 +
>  drivers/net/ice/base/ice_flex_pipe.c   |   4 +-
>  drivers/net/ice/base/ice_flex_pipe.h   |   8 +
>  drivers/net/ice/base/ice_flex_type.h   |   2 +
>  drivers/net/ice/base/ice_flg_rd.c      |  76 +++
>  drivers/net/ice/base/ice_flg_rd.h      |  17 +
>  drivers/net/ice/base/ice_imem.c        | 244 +++++++
>  drivers/net/ice/base/ice_imem.h        | 109 ++++
>  drivers/net/ice/base/ice_metainit.c    | 143 ++++
>  drivers/net/ice/base/ice_metainit.h    |  46 ++
>  drivers/net/ice/base/ice_mk_grp.c      |  55 ++
>  drivers/net/ice/base/ice_mk_grp.h      |  15 +
>  drivers/net/ice/base/ice_parser.c      | 556 ++++++++++++++++
>  drivers/net/ice/base/ice_parser.h      | 113 ++++
>  drivers/net/ice/base/ice_parser_rt.c   | 870 +++++++++++++++++++++++++
>  drivers/net/ice/base/ice_parser_rt.h   |  53 ++
>  drivers/net/ice/base/ice_parser_util.h |  36 +
>  drivers/net/ice/base/ice_pg_cam.c      | 374 +++++++++++
>  drivers/net/ice/base/ice_pg_cam.h      |  74 +++
>  drivers/net/ice/base/ice_proto_grp.c   | 108 +++
>  drivers/net/ice/base/ice_proto_grp.h   |  23 +
>  drivers/net/ice/base/ice_ptype_mk.c    |  76 +++
>  drivers/net/ice/base/ice_ptype_mk.h    |  21 +
>  drivers/net/ice/base/ice_tmatch.h      |  44 ++
>  drivers/net/ice/base/ice_type.h        |   1 +
>  drivers/net/ice/base/ice_xlt_kb.c      | 216 ++++++
>  drivers/net/ice/base/ice_xlt_kb.h      |  34 +
>  drivers/net/ice/base/meson.build       |  11 +
>  30 files changed, 3654 insertions(+), 2 deletions(-)  create mode 100644
> drivers/net/ice/base/ice_bst_tcam.c
>  create mode 100644 drivers/net/ice/base/ice_bst_tcam.h
>  create mode 100644 drivers/net/ice/base/ice_flg_rd.c  create mode 100644
> drivers/net/ice/base/ice_flg_rd.h  create mode 100644
> drivers/net/ice/base/ice_imem.c  create mode 100644
> drivers/net/ice/base/ice_imem.h  create mode 100644
> drivers/net/ice/base/ice_metainit.c
>  create mode 100644 drivers/net/ice/base/ice_metainit.h
>  create mode 100644 drivers/net/ice/base/ice_mk_grp.c  create mode
> 100644 drivers/net/ice/base/ice_mk_grp.h  create mode 100644
> drivers/net/ice/base/ice_parser.c  create mode 100644
> drivers/net/ice/base/ice_parser.h  create mode 100644
> drivers/net/ice/base/ice_parser_rt.c
>  create mode 100644 drivers/net/ice/base/ice_parser_rt.h
>  create mode 100644 drivers/net/ice/base/ice_parser_util.h
>  create mode 100644 drivers/net/ice/base/ice_pg_cam.c  create mode
> 100644 drivers/net/ice/base/ice_pg_cam.h  create mode 100644
> drivers/net/ice/base/ice_proto_grp.c
>  create mode 100644 drivers/net/ice/base/ice_proto_grp.h
>  create mode 100644 drivers/net/ice/base/ice_ptype_mk.c
>  create mode 100644 drivers/net/ice/base/ice_ptype_mk.h
>  create mode 100644 drivers/net/ice/base/ice_tmatch.h  create mode
> 100644 drivers/net/ice/base/ice_xlt_kb.c  create mode 100644
> drivers/net/ice/base/ice_xlt_kb.h
> 
> --
> 2.26.2

Applied to dpdk-next-net-intel.

Thanks
Qi
Ferruh Yigit Sept. 28, 2021, 12:23 p.m. UTC | #2
On 9/21/2021 2:32 PM, Zhang, Qi Z wrote:
> 
> 
>> -----Original Message-----
>> From: Zhang, Qi Z <qi.z.zhang@intel.com>
>> Sent: Tuesday, September 21, 2021 9:20 PM
>> To: Yang, Qiming <qiming.yang@intel.com>
>> Cc: Guo, Junfeng <junfeng.guo@intel.com>; dev@dpdk.org; Zhang, Qi Z
>> <qi.z.zhang@intel.com>
>> Subject: [PATCH v3 00/20] ice/base: add parser module
>>
>> Add the parser module that can parse on a raw packet then figure out the
>> low-level metadata to program the hardware packet process pipeline for flow
>> offloading(Switch/FDIR/RSS). This is the pre-step to enable a protocol-agnostic
>> flow offloading solution for ice devices that leverage Intel DDP technology.
>>
>> -v3:
>> 1. fix 32 bit compile issue in patch 2/20
>>
>> -v2:
>> 1. use inclusive word in patch 2/20
>> 2. replace magic number with macro in patch 17/20 3. fix couple typos
>>
>> Qi Zhang (20):
>>   net/ice/base: add parser create and destroy skeleton
>>   net/ice/base: init imem table for parser
>>   net/ice/base: init metainit table for parser
>>   net/ice/base: init parse graph cam table for parser
>>   net/ice/base: init boost TCAM table for parser
>>   net/ice/base: init ptype marker TCAM table for parser
>>   net/ice/base: init marker group table for parser
>>   net/ice/base: init protocol group table for parser
>>   net/ice/base: init flag redirect table for parser
>>   net/ice/base: init XLT key builder for parser
>>   net/ice/base: add parser runtime skeleton
>>   net/ice/base: add helper function for boost TCAM match
>>   net/ice/base: add helper functions for parse graph key matching
>>   net/ice/base: add helper function for ptype markers match
>>   net/ice/base: add helper function to redirect flags
>>   net/ice/base: add helper function to aggregate flags
>>   net/ice/base: add parser execution main loop
>>   net/ice/base: support double VLAN mode configure for parser
>>   net/ice/base: add tunnel port support for parser
>>   net/ice/base: add API for parser profile initialization
>>
>>  drivers/net/ice/base/ice_bst_tcam.c    | 291 +++++++++
>>  drivers/net/ice/base/ice_bst_tcam.h    |  35 +
>>  drivers/net/ice/base/ice_common.h      |   1 +
>>  drivers/net/ice/base/ice_flex_pipe.c   |   4 +-
>>  drivers/net/ice/base/ice_flex_pipe.h   |   8 +
>>  drivers/net/ice/base/ice_flex_type.h   |   2 +
>>  drivers/net/ice/base/ice_flg_rd.c      |  76 +++
>>  drivers/net/ice/base/ice_flg_rd.h      |  17 +
>>  drivers/net/ice/base/ice_imem.c        | 244 +++++++
>>  drivers/net/ice/base/ice_imem.h        | 109 ++++
>>  drivers/net/ice/base/ice_metainit.c    | 143 ++++
>>  drivers/net/ice/base/ice_metainit.h    |  46 ++
>>  drivers/net/ice/base/ice_mk_grp.c      |  55 ++
>>  drivers/net/ice/base/ice_mk_grp.h      |  15 +
>>  drivers/net/ice/base/ice_parser.c      | 556 ++++++++++++++++
>>  drivers/net/ice/base/ice_parser.h      | 113 ++++
>>  drivers/net/ice/base/ice_parser_rt.c   | 870 +++++++++++++++++++++++++
>>  drivers/net/ice/base/ice_parser_rt.h   |  53 ++
>>  drivers/net/ice/base/ice_parser_util.h |  36 +
>>  drivers/net/ice/base/ice_pg_cam.c      | 374 +++++++++++
>>  drivers/net/ice/base/ice_pg_cam.h      |  74 +++
>>  drivers/net/ice/base/ice_proto_grp.c   | 108 +++
>>  drivers/net/ice/base/ice_proto_grp.h   |  23 +
>>  drivers/net/ice/base/ice_ptype_mk.c    |  76 +++
>>  drivers/net/ice/base/ice_ptype_mk.h    |  21 +
>>  drivers/net/ice/base/ice_tmatch.h      |  44 ++
>>  drivers/net/ice/base/ice_type.h        |   1 +
>>  drivers/net/ice/base/ice_xlt_kb.c      | 216 ++++++
>>  drivers/net/ice/base/ice_xlt_kb.h      |  34 +
>>  drivers/net/ice/base/meson.build       |  11 +
>>  30 files changed, 3654 insertions(+), 2 deletions(-)  create mode 100644
>> drivers/net/ice/base/ice_bst_tcam.c
>>  create mode 100644 drivers/net/ice/base/ice_bst_tcam.h
>>  create mode 100644 drivers/net/ice/base/ice_flg_rd.c  create mode 100644
>> drivers/net/ice/base/ice_flg_rd.h  create mode 100644
>> drivers/net/ice/base/ice_imem.c  create mode 100644
>> drivers/net/ice/base/ice_imem.h  create mode 100644
>> drivers/net/ice/base/ice_metainit.c
>>  create mode 100644 drivers/net/ice/base/ice_metainit.h
>>  create mode 100644 drivers/net/ice/base/ice_mk_grp.c  create mode
>> 100644 drivers/net/ice/base/ice_mk_grp.h  create mode 100644
>> drivers/net/ice/base/ice_parser.c  create mode 100644
>> drivers/net/ice/base/ice_parser.h  create mode 100644
>> drivers/net/ice/base/ice_parser_rt.c
>>  create mode 100644 drivers/net/ice/base/ice_parser_rt.h
>>  create mode 100644 drivers/net/ice/base/ice_parser_util.h
>>  create mode 100644 drivers/net/ice/base/ice_pg_cam.c  create mode
>> 100644 drivers/net/ice/base/ice_pg_cam.h  create mode 100644
>> drivers/net/ice/base/ice_proto_grp.c
>>  create mode 100644 drivers/net/ice/base/ice_proto_grp.h
>>  create mode 100644 drivers/net/ice/base/ice_ptype_mk.c
>>  create mode 100644 drivers/net/ice/base/ice_ptype_mk.h
>>  create mode 100644 drivers/net/ice/base/ice_tmatch.h  create mode
>> 100644 drivers/net/ice/base/ice_xlt_kb.c  create mode 100644
>> drivers/net/ice/base/ice_xlt_kb.h
>>
>> --
>> 2.26.2
> 
> Applied to dpdk-next-net-intel.
> 

Following warnings reported by Jerin & Thomas and fixed in next-net, fyi.

$ ./devtools/check-meson.py
Error: Incorrect indent at drivers/net/ice/base/meson.build:18
Error: Incorrect indent at drivers/net/ice/base/meson.build:19
Error: Incorrect indent at drivers/net/ice/base/meson.build:20
Error: Incorrect indent at drivers/net/ice/base/meson.build:21
Error: Incorrect indent at drivers/net/ice/base/meson.build:22
Error: Incorrect indent at drivers/net/ice/base/meson.build:23
Error: Incorrect indent at drivers/net/ice/base/meson.build:24
Error: Incorrect indent at drivers/net/ice/base/meson.build:25
Error: Incorrect indent at drivers/net/ice/base/meson.build:26
Error: Incorrect indent at drivers/net/ice/base/meson.build:27
Error: Incorrect indent at drivers/net/ice/base/meson.build:28