mbox series

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

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

Message

Qi Zhang Sept. 17, 2021, 2:43 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.

-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

Junfeng Guo Sept. 18, 2021, 1:59 a.m. UTC | #1
> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Friday, September 17, 2021 22:43
> 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 v2 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.
> 
> -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

Acked-by: Junfeng Guo <junfeng.guo@intel.com>

Regards,
Junfeng Guo