mbox series

[v8,00/47] TruFlow update for Thor2

Message ID 20241107135254.1611676-1-sriharsha.basavapatna@broadcom.com (mailing list archive)
Headers
Series TruFlow update for Thor2 |

Message

Sriharsha Basavapatna Nov. 7, 2024, 1:52 p.m. UTC
This patch series introduces TruFlow functionality for Broadcom Thor2 NIC.

TruFlow(TF) is the software library that exposes CFA HW resources to
upper layer protocols or applications. This patch series implements the
tfc (tf_core) and the tf_ulp libraries as a part of the bnxt PMD,
so that upper layer APIs such as rte_flow can access the hardware.

******
v7->v8:
Changed logging macros CFA_TCAM_MGR_TRACE()->PMD_DRV_LOG_LINE()
Fixed the following checkpatch warnings:
  Writing to stdout or stderr
  Using __atomic_xxx/__ATOMIC_XXX built-ins,
	prefer rte_atomic_xxx/rte_memory_order_xxx
Added Fixes: tag and Cc: stable@dpdk.org for some patches

v6->v7:
Updated below patches to fix some checkpatch issues.
[PATCH 01/47] net/bnxt: tf_core: fix wc tcam multi slice delete
[PATCH 06/47] net/bnxt: tf_core: TF support flow scale query
[PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
[PATCH 12/47] net/bnxt: tf_ulp: add vxlan-gpe base support
[PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
[PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
[PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
[PATCH 32/47] net/bnxt: tf_ulp: add support for flow priority
[PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
[PATCH 35/47] net/bnxt: tf_ulp: TF support flow scale query
[PATCH 37/47] net/bnxt: tf_ulp: add track type feature to tables
[PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
[PATCH 44/47] net/bnxt: tf_ulp: enable support for truflow feature
[PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2

v5->v6:
Updated the below patch to fix a build error reported in rte_free().
    [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2

v4->v5:
Updated below patches to use the new logging macro PMD_DRV_LOG_LINE():
[PATCH 05/47] net/bnxt: tf_core: flow scale improvement
[PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
[PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
[PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
[PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
[PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
[PATCH 36/47] net/bnxt: tf_ulp: add support for rss flow query to ULP
[PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
[PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2

v3->v4:
Updated patch 0011 to fix a build error with clang in tfc_em.c.

v2->v3:
Updated the below patch to fix errors reported by DPDK CICD tests.
    0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch

v1->v2:
Updated the below two patches to fix errors reported by DPDK CICD tests.
    0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch
    0047-net-bnxt-tf_ulp-add-stats-cache-for-thor2.patch
******

Farah Smith (2):
  net/bnxt: tf_core: Thor TF EM key size check
  net/bnxt: tfc: support tf-core for Thor2

Jay Ding (2):
  net/bnxt: tf_ulp: add action read and clear support
  net/bnxt: tf_ulp: add rte_mtr support for Thor2

Kishore Padmanabha (21):
  net/bnxt: tf_core: flow scale improvement
  net/bnxt: tf_ulp: add support for vf to vf flow offload
  net/bnxt: tf_ulp: add support for overlapping flows
  net/bnxt: tf_ulp: convert recipe table to dynamic memory
  net/bnxt: tf_ulp: add feature bit support
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: add support for tunnel flow stats
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: enable recipe id generation
  net/bnxt: tf_ulp: fixed parent child db counters
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: add mask defaults when mask is not specified
  net/bnxt: tf_ulp: add jump action support
  net/bnxt: tf_ulp: add support for flow priority
  net/bnxt: tf_ulp: support for dynamic tunnel ports
  net/bnxt: tf_ulp: add track type feature to tables
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: support a few generic template items
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: enable support for truflow feature configuration
  net/bnxt: tf_ulp: support a few feature extensions

Manish Kurup (1):
  net/bnxt: tf_ulp: Wh+ mirroring support

Mike Baucom (2):
  net/bnxt: tf_ulp: miscellaneous fixes
  net/bnxt: tf_ulp: VFR updates for Thor 2

Peter Spreadborough (4):
  net/bnxt: tf_ulp: inline utility functions and use likely/unlikely
  net/bnxt: tf_ulp: switch ulp to use rte crc32 hash
  net/bnxt: tf_ulp: update template files
  net/bnxt: tf_ulp: add stats cache for thor2

Randy Schacher (5):
  net/bnxt: tf_core: convert priority based TCAM manager to dynamic
    allocation
  net/bnxt: tf_core: remove dead AFM code from session-based priority
    TCAM mgr
  net/bnxt: tf_core: remove dead code from session-based priority TCAM
    mgr
  net/bnxt: tf_ulp: add vxlan-gpe base support
  net/bnxt: tf_ulp: add support for rss flow query to ULP

Sangtani Parag Satishbhai (1):
  net/bnxt: tf_core: fix slice count in case of HA entry move

Shahaji Bhosle (3):
  net/bnxt: tf_core: fix wc tcam multi slice delete issue
  net/bnxt: tf_core: tcam manager data corruption
  net/bnxt: tf_ulp: add custom l2 etype tunnel support

Shuanglin Wang (6):
  net/bnxt: tf_core: External EM support cleanup
  net/bnxt: tf_core: TF support flow scale query
  net/bnxt: tf_ulp: support for Thor2 ulp layer
  net/bnxt: tf_ulp: modify return values to adhere to C coding standard
  net/bnxt: tf_ulp: TF support flow scale query
  net/bnxt: tf_ulp: TFC support flow scale query for Thor2

 .mailmap                                      |     1 +
 drivers/net/bnxt/bnxt.h                       |    41 +-
 drivers/net/bnxt/bnxt_cpr.c                   |    62 +-
 drivers/net/bnxt/bnxt_cpr.h                   |    22 +-
 drivers/net/bnxt/bnxt_ethdev.c                |   110 +-
 drivers/net/bnxt/bnxt_flow.c                  |     5 +-
 drivers/net/bnxt/bnxt_hwrm.c                  |   328 +-
 drivers/net/bnxt/bnxt_hwrm.h                  |    20 +
 drivers/net/bnxt/bnxt_mpc.c                   |   772 +
 drivers/net/bnxt/bnxt_mpc.h                   |   117 +
 drivers/net/bnxt/bnxt_reps.c                  |   115 +-
 drivers/net/bnxt/bnxt_ring.c                  |    19 +-
 drivers/net/bnxt/bnxt_ring.h                  |    49 +-
 drivers/net/bnxt/bnxt_rxr.c                   |     5 +-
 drivers/net/bnxt/bnxt_txr.c                   |    30 +-
 drivers/net/bnxt/bnxt_vnic.c                  |    39 +-
 drivers/net/bnxt/bnxt_vnic.h                  |     8 +
 drivers/net/bnxt/hcapi/cfa/hcapi_cfa.h        |    15 +-
 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_defs.h   |   576 +-
 drivers/net/bnxt/hcapi/cfa_v3/CMakeLists.txt  |    92 +
 .../bnxt/hcapi/cfa_v3/bld/host/cfa_bld_mpc.c  |    42 +
 .../hcapi/cfa_v3/bld/include/cfa_bld_defs.h   |   578 +
 .../hcapi/cfa_v3/bld/include/host/cfa_bld.h   |   524 +
 .../cfa_v3/bld/include/host/cfa_bld_devops.h  |   297 +
 .../bld/include/host/cfa_bld_field_ids.h      |  1542 +
 .../bld/include/host/cfa_bld_mpc_field_ids.h  |  1286 +
 .../cfa_v3/bld/include/host/cfa_bld_mpcops.h  |   598 +
 .../cfa_v3/bld/include/p70/cfa_bld_p70_defs.h |   543 +
 .../bld/include/p70/cfa_bld_p70_field_ids.h   |  1542 +
 .../cfa_v3/bld/include/p70/cfa_bld_p70_mpc.h  |   548 +
 .../hcapi/cfa_v3/bld/include/p70/cfa_p70.h    |   164 +
 .../hcapi/cfa_v3/bld/include/p70/cfa_p70_hw.h |  4286 +
 .../bld/include/p70/cfa_p70_mpc_structs.h     |  1496 +
 .../hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc.c    |   927 +
 .../cfa_v3/bld/p70/cfa_bld_p70_mpc_defs.h     |    51 +
 .../p70/host/cfa_bld_p70_host_mpc_wrapper.c   |  1127 +
 .../p70/host/cfa_bld_p70_host_mpc_wrapper.h   |    83 +
 .../cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.c  |    56 +
 .../cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.h  |    22 +
 .../bld/p70/host/cfa_p70_mpc_field_ids.h      |  1177 +
 .../bld/p70/host/cfa_p70_mpc_field_mapping.h  |   775 +
 .../bnxt/hcapi/cfa_v3/include/cfa_resources.h |   185 +
 .../net/bnxt/hcapi/cfa_v3/include/cfa_trace.h |   273 +
 .../net/bnxt/hcapi/cfa_v3/include/cfa_types.h |   122 +
 .../net/bnxt/hcapi/cfa_v3/include/cfa_util.h  |    44 +
 .../include/platform/dpdk/cfa_debug_defs.h    |    52 +
 .../net/bnxt/hcapi/cfa_v3/include/sys_util.h  |   101 +
 drivers/net/bnxt/hcapi/cfa_v3/meson.build     |    36 +
 .../net/bnxt/hcapi/cfa_v3/mm/CMakeLists.txt   |    42 +
 drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm.c     |   624 +
 .../net/bnxt/hcapi/cfa_v3/mm/cfa_mm_priv.h    |    92 +
 .../net/bnxt/hcapi/cfa_v3/mm/include/cfa_mm.h |   173 +
 .../net/bnxt/hcapi/cfa_v3/tim/CMakeLists.txt  |    43 +
 drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim.c   |   124 +
 .../net/bnxt/hcapi/cfa_v3/tim/cfa_tim_priv.h  |    85 +
 .../bnxt/hcapi/cfa_v3/tim/include/cfa_tim.h   |   133 +
 .../net/bnxt/hcapi/cfa_v3/tpm/CMakeLists.txt  |    44 +
 drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm.c   |   273 +
 .../net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm_priv.h  |    47 +
 .../bnxt/hcapi/cfa_v3/tpm/include/cfa_tpm.h   |   215 +
 drivers/net/bnxt/hsi_struct_def_dpdk.h        | 25701 +++--
 drivers/net/bnxt/meson.build                  |     5 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr.c       |  1562 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr.h       |    97 +-
 .../net/bnxt/tf_core/cfa_tcam_mgr_device.h    |    91 +-
 .../net/bnxt/tf_core/cfa_tcam_mgr_hwop_msg.c  |   135 +-
 .../net/bnxt/tf_core/cfa_tcam_mgr_hwop_msg.h  |    18 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr_p4.c    |   858 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr_p4.h    |     9 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr_p58.c   |   848 +-
 drivers/net/bnxt/tf_core/cfa_tcam_mgr_p58.h   |    10 +-
 .../net/bnxt/tf_core/cfa_tcam_mgr_session.c   |    13 +
 .../net/bnxt/tf_core/cfa_tcam_mgr_session.h   |    54 -
 drivers/net/bnxt/tf_core/meson.build          |     6 +-
 drivers/net/bnxt/tf_core/tf_core.c            |   152 +-
 drivers/net/bnxt/tf_core/tf_core.h            |    86 +-
 drivers/net/bnxt/tf_core/tf_device.c          |    30 -
 drivers/net/bnxt/tf_core/tf_device.h          |    67 +-
 drivers/net/bnxt/tf_core/tf_device_p4.c       |    27 +-
 drivers/net/bnxt/tf_core/tf_device_p4.h       |     1 +
 drivers/net/bnxt/tf_core/tf_device_p58.c      |   113 +-
 drivers/net/bnxt/tf_core/tf_em.h              |   361 +-
 drivers/net/bnxt/tf_core/tf_em_common.c       |  1191 -
 drivers/net/bnxt/tf_core/tf_em_common.h       |     1 +
 .../net/bnxt/tf_core/tf_em_hash_internal.c    |    34 +-
 drivers/net/bnxt/tf_core/tf_em_host.c         |   574 -
 drivers/net/bnxt/tf_core/tf_em_internal.c     |     9 +-
 drivers/net/bnxt/tf_core/tf_msg.c             |   672 +-
 drivers/net/bnxt/tf_core/tf_msg.h             |    57 +
 drivers/net/bnxt/tf_core/tf_resources.c       |   561 +
 drivers/net/bnxt/tf_core/tf_resources.h       |   131 +-
 drivers/net/bnxt/tf_core/tf_rm.c              |    41 +-
 drivers/net/bnxt/tf_core/tf_session.c         |    12 +-
 drivers/net/bnxt/tf_core/tf_session.h         |     7 +-
 drivers/net/bnxt/tf_core/tf_tcam.c            |   299 +-
 drivers/net/bnxt/tf_core/tf_tcam_mgr_msg.c    |    99 +-
 drivers/net/bnxt/tf_core/tf_tcam_mgr_msg.h    |     6 -
 drivers/net/bnxt/tf_core/v3/meson.build       |    34 +
 drivers/net/bnxt/tf_core/v3/tfc.h             |  1527 +
 drivers/net/bnxt/tf_core/v3/tfc_act.c         |   807 +
 .../net/bnxt/tf_core/v3/tfc_action_handle.h   |    68 +
 drivers/net/bnxt/tf_core/v3/tfc_cpm.c         |   419 +
 drivers/net/bnxt/tf_core/v3/tfc_cpm.h         |   214 +
 drivers/net/bnxt/tf_core/v3/tfc_debug.h       |    28 +
 drivers/net/bnxt/tf_core/v3/tfc_em.c          |  1011 +
 drivers/net/bnxt/tf_core/v3/tfc_em.h          |   179 +
 drivers/net/bnxt/tf_core/v3/tfc_flow_handle.h |    81 +
 drivers/net/bnxt/tf_core/v3/tfc_global_id.c   |    58 +
 drivers/net/bnxt/tf_core/v3/tfc_ident.c       |    83 +
 drivers/net/bnxt/tf_core/v3/tfc_idx_tbl.c     |   327 +
 drivers/net/bnxt/tf_core/v3/tfc_if_tbl.c      |   133 +
 drivers/net/bnxt/tf_core/v3/tfc_init.c        |    69 +
 drivers/net/bnxt/tf_core/v3/tfc_mpc_table.c   |   565 +
 drivers/net/bnxt/tf_core/v3/tfc_msg.c         |  1197 +
 drivers/net/bnxt/tf_core/v3/tfc_msg.h         |   164 +
 drivers/net/bnxt/tf_core/v3/tfc_priv.c        |   124 +
 drivers/net/bnxt/tf_core/v3/tfc_priv.h        |    78 +
 drivers/net/bnxt/tf_core/v3/tfc_resources.c   |    98 +
 drivers/net/bnxt/tf_core/v3/tfc_resources.h   |    15 +
 drivers/net/bnxt/tf_core/v3/tfc_session.c     |   151 +
 drivers/net/bnxt/tf_core/v3/tfc_tbl_scope.c   |  2077 +
 drivers/net/bnxt/tf_core/v3/tfc_tcam.c        |   300 +
 drivers/net/bnxt/tf_core/v3/tfc_util.c        |   229 +
 drivers/net/bnxt/tf_core/v3/tfc_util.h        |   123 +
 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.c   |   358 +
 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.h   |   220 +
 drivers/net/bnxt/tf_core/v3/tfo.c             |   574 +
 drivers/net/bnxt/tf_core/v3/tfo.h             |   429 +
 drivers/net/bnxt/tf_ulp/bnxt_tf_common.h      |    14 +-
 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c    |   303 +-
 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h    |    24 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  2607 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   329 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   610 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c      |   326 +-
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c         |  1645 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.h         |    24 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c        |  1120 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.h        |    74 +
 drivers/net/bnxt/tf_ulp/bnxt_ulp_utils.h      |  1096 +
 .../bnxt/tf_ulp/generic_templates/meson.build |    16 +-
 .../generic_templates/ulp_template_db_act.c   |  7250 +-
 .../generic_templates/ulp_template_db_class.c | 48727 ++-------
 .../generic_templates/ulp_template_db_enum.h  |  3771 +-
 .../generic_templates/ulp_template_db_field.h |  1189 +-
 .../generic_templates/ulp_template_db_tbl.c   | 19669 +---
 .../generic_templates/ulp_template_db_tbl.h   |    72 +
 .../ulp_template_db_thor2_act.c               | 10098 ++
 .../ulp_template_db_thor2_class.c             | 60934 +++++++++++
 .../ulp_template_db_thor_act.c                |  9046 +-
 .../ulp_template_db_thor_class.c              | 88530 ++++++++++------
 .../ulp_template_db_wh_plus_act.c             | 11153 +-
 .../ulp_template_db_wh_plus_class.c           | 11925 ++-
 drivers/net/bnxt/tf_ulp/meson.build           |    10 +-
 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.c       |   228 +
 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.h       |    71 +
 drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |   456 +-
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c          |   373 +-
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h          |    30 +-
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tf.c       |   259 +
 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tfc.c      |   130 +
 drivers/net/bnxt/tf_ulp/ulp_flow_db.c         |   362 +-
 drivers/net/bnxt/tf_ulp/ulp_flow_db.h         |    34 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c        |    67 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_tbl.c         |   326 +-
 drivers/net/bnxt/tf_ulp/ulp_gen_tbl.h         |    62 +-
 drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c          |   186 +-
 drivers/net/bnxt/tf_ulp/ulp_mapper.c          |  5047 +-
 drivers/net/bnxt/tf_ulp/ulp_mapper.h          |   289 +-
 drivers/net/bnxt/tf_ulp/ulp_mapper_tf.c       |  1389 +
 drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c      |  1783 +
 drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c        |    41 +-
 drivers/net/bnxt/tf_ulp/ulp_matcher.c         |   470 +-
 drivers/net/bnxt/tf_ulp/ulp_matcher.h         |    42 +-
 drivers/net/bnxt/tf_ulp/ulp_port_db.c         |   189 +-
 drivers/net/bnxt/tf_ulp/ulp_port_db.h         |    53 +
 drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c |    22 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |   928 +-
 drivers/net/bnxt/tf_ulp/ulp_rte_parser.h      |    26 +-
 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.c          |   526 +
 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.h          |   142 +
 drivers/net/bnxt/tf_ulp/ulp_sc_mgr_tfc.c      |    60 +
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    76 +-
 drivers/net/bnxt/tf_ulp/ulp_tun.c             |    14 +-
 drivers/net/bnxt/tf_ulp/ulp_utils.c           |   140 +-
 drivers/net/bnxt/tf_ulp/ulp_utils.h           |   936 +-
 186 files changed, 227282 insertions(+), 136513 deletions(-)
 create mode 100644 drivers/net/bnxt/bnxt_mpc.c
 create mode 100644 drivers/net/bnxt/bnxt_mpc.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/CMakeLists.txt
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/host/cfa_bld_mpc.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/cfa_bld_defs.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_devops.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_field_ids.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_mpc_field_ids.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_mpcops.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_defs.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_field_ids.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_mpc.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70_hw.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70_mpc_structs.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc_defs.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_host_mpc_wrapper.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_host_mpc_wrapper.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_p70_mpc_field_ids.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_p70_mpc_field_mapping.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_resources.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_trace.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_types.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_util.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/platform/dpdk/cfa_debug_defs.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/sys_util.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/meson.build
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/CMakeLists.txt
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm_priv.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/include/cfa_mm.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/CMakeLists.txt
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim_priv.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/include/cfa_tim.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/CMakeLists.txt
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm.c
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm_priv.h
 create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/include/cfa_tpm.h
 delete mode 100644 drivers/net/bnxt/tf_core/cfa_tcam_mgr_session.h
 create mode 100644 drivers/net/bnxt/tf_core/tf_resources.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/meson.build
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_act.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_action_handle.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_cpm.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_cpm.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_debug.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_em.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_em.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_flow_handle.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_global_id.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_ident.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_idx_tbl.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_if_tbl.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_init.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_mpc_table.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_msg.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_msg.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_priv.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_priv.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_resources.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_resources.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_session.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_tbl_scope.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_tcam.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_util.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_util.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.h
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfo.c
 create mode 100644 drivers/net/bnxt/tf_core/v3/tfo.h
 create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
 create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.h
 create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
 create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.h
 create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_utils.h
 create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c
 create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.h
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tf.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tfc.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper_tf.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.c
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.h
 create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr_tfc.c
  

Comments

Sriharsha Basavapatna Nov. 8, 2024, 2:05 a.m. UTC | #1
On Thu, Nov 7, 2024 at 7:12 PM Sriharsha Basavapatna
<sriharsha.basavapatna@broadcom.com> wrote:
>
> This patch series introduces TruFlow functionality for Broadcom Thor2 NIC.
>
> TruFlow(TF) is the software library that exposes CFA HW resources to
> upper layer protocols or applications. This patch series implements the
> tfc (tf_core) and the tf_ulp libraries as a part of the bnxt PMD,
> so that upper layer APIs such as rte_flow can access the hardware.
>
> ******
> v7->v8:
> Changed logging macros CFA_TCAM_MGR_TRACE()->PMD_DRV_LOG_LINE()
> Fixed the following checkpatch warnings:
>   Writing to stdout or stderr
>   Using __atomic_xxx/__ATOMIC_XXX built-ins,
>         prefer rte_atomic_xxx/rte_memory_order_xxx
> Added Fixes: tag and Cc: stable@dpdk.org for some patches
>
> v6->v7:
> Updated below patches to fix some checkpatch issues.
> [PATCH 01/47] net/bnxt: tf_core: fix wc tcam multi slice delete
> [PATCH 06/47] net/bnxt: tf_core: TF support flow scale query
> [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
> [PATCH 12/47] net/bnxt: tf_ulp: add vxlan-gpe base support
> [PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
> [PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
> [PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
> [PATCH 32/47] net/bnxt: tf_ulp: add support for flow priority
> [PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
> [PATCH 35/47] net/bnxt: tf_ulp: TF support flow scale query
> [PATCH 37/47] net/bnxt: tf_ulp: add track type feature to tables
> [PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
> [PATCH 44/47] net/bnxt: tf_ulp: enable support for truflow feature
> [PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2
>
> v5->v6:
> Updated the below patch to fix a build error reported in rte_free().
>     [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
>
> v4->v5:
> Updated below patches to use the new logging macro PMD_DRV_LOG_LINE():
> [PATCH 05/47] net/bnxt: tf_core: flow scale improvement
> [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
> [PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
> [PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
> [PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
> [PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
> [PATCH 36/47] net/bnxt: tf_ulp: add support for rss flow query to ULP
> [PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
> [PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2
>
> v3->v4:
> Updated patch 0011 to fix a build error with clang in tfc_em.c.
>
> v2->v3:
> Updated the below patch to fix errors reported by DPDK CICD tests.
>     0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch
>
> v1->v2:
> Updated the below two patches to fix errors reported by DPDK CICD tests.
>     0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch
>     0047-net-bnxt-tf_ulp-add-stats-cache-for-thor2.patch
> ******
>
> Farah Smith (2):
>   net/bnxt: tf_core: Thor TF EM key size check
>   net/bnxt: tfc: support tf-core for Thor2
>
> Jay Ding (2):
>   net/bnxt: tf_ulp: add action read and clear support
>   net/bnxt: tf_ulp: add rte_mtr support for Thor2
>
> Kishore Padmanabha (21):
>   net/bnxt: tf_core: flow scale improvement
>   net/bnxt: tf_ulp: add support for vf to vf flow offload
>   net/bnxt: tf_ulp: add support for overlapping flows
>   net/bnxt: tf_ulp: convert recipe table to dynamic memory
>   net/bnxt: tf_ulp: add feature bit support
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: add support for tunnel flow stats
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: enable recipe id generation
>   net/bnxt: tf_ulp: fixed parent child db counters
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: add mask defaults when mask is not specified
>   net/bnxt: tf_ulp: add jump action support
>   net/bnxt: tf_ulp: add support for flow priority
>   net/bnxt: tf_ulp: support for dynamic tunnel ports
>   net/bnxt: tf_ulp: add track type feature to tables
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: support a few generic template items
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: enable support for truflow feature configuration
>   net/bnxt: tf_ulp: support a few feature extensions
>
> Manish Kurup (1):
>   net/bnxt: tf_ulp: Wh+ mirroring support
>
> Mike Baucom (2):
>   net/bnxt: tf_ulp: miscellaneous fixes
>   net/bnxt: tf_ulp: VFR updates for Thor 2
>
> Peter Spreadborough (4):
>   net/bnxt: tf_ulp: inline utility functions and use likely/unlikely
>   net/bnxt: tf_ulp: switch ulp to use rte crc32 hash
>   net/bnxt: tf_ulp: update template files
>   net/bnxt: tf_ulp: add stats cache for thor2
>
> Randy Schacher (5):
>   net/bnxt: tf_core: convert priority based TCAM manager to dynamic
>     allocation
>   net/bnxt: tf_core: remove dead AFM code from session-based priority
>     TCAM mgr
>   net/bnxt: tf_core: remove dead code from session-based priority TCAM
>     mgr
>   net/bnxt: tf_ulp: add vxlan-gpe base support
>   net/bnxt: tf_ulp: add support for rss flow query to ULP
>
> Sangtani Parag Satishbhai (1):
>   net/bnxt: tf_core: fix slice count in case of HA entry move
>
> Shahaji Bhosle (3):
>   net/bnxt: tf_core: fix wc tcam multi slice delete issue
>   net/bnxt: tf_core: tcam manager data corruption
>   net/bnxt: tf_ulp: add custom l2 etype tunnel support
>
> Shuanglin Wang (6):
>   net/bnxt: tf_core: External EM support cleanup
>   net/bnxt: tf_core: TF support flow scale query
>   net/bnxt: tf_ulp: support for Thor2 ulp layer
>   net/bnxt: tf_ulp: modify return values to adhere to C coding standard
>   net/bnxt: tf_ulp: TF support flow scale query
>   net/bnxt: tf_ulp: TFC support flow scale query for Thor2
>
>  .mailmap                                      |     1 +
>  drivers/net/bnxt/bnxt.h                       |    41 +-
>  drivers/net/bnxt/bnxt_cpr.c                   |    62 +-
>  drivers/net/bnxt/bnxt_cpr.h                   |    22 +-
>  drivers/net/bnxt/bnxt_ethdev.c                |   110 +-
>  drivers/net/bnxt/bnxt_flow.c                  |     5 +-
>  drivers/net/bnxt/bnxt_hwrm.c                  |   328 +-
>  drivers/net/bnxt/bnxt_hwrm.h                  |    20 +
>  drivers/net/bnxt/bnxt_mpc.c                   |   772 +
>  drivers/net/bnxt/bnxt_mpc.h                   |   117 +
>  drivers/net/bnxt/bnxt_reps.c                  |   115 +-
>  drivers/net/bnxt/bnxt_ring.c                  |    19 +-
>  drivers/net/bnxt/bnxt_ring.h                  |    49 +-
>  drivers/net/bnxt/bnxt_rxr.c                   |     5 +-
>  drivers/net/bnxt/bnxt_txr.c                   |    30 +-
>  drivers/net/bnxt/bnxt_vnic.c                  |    39 +-
>  drivers/net/bnxt/bnxt_vnic.h                  |     8 +
>  drivers/net/bnxt/hcapi/cfa/hcapi_cfa.h        |    15 +-
>  drivers/net/bnxt/hcapi/cfa/hcapi_cfa_defs.h   |   576 +-
>  drivers/net/bnxt/hcapi/cfa_v3/CMakeLists.txt  |    92 +
>  .../bnxt/hcapi/cfa_v3/bld/host/cfa_bld_mpc.c  |    42 +
>  .../hcapi/cfa_v3/bld/include/cfa_bld_defs.h   |   578 +
>  .../hcapi/cfa_v3/bld/include/host/cfa_bld.h   |   524 +
>  .../cfa_v3/bld/include/host/cfa_bld_devops.h  |   297 +
>  .../bld/include/host/cfa_bld_field_ids.h      |  1542 +
>  .../bld/include/host/cfa_bld_mpc_field_ids.h  |  1286 +
>  .../cfa_v3/bld/include/host/cfa_bld_mpcops.h  |   598 +
>  .../cfa_v3/bld/include/p70/cfa_bld_p70_defs.h |   543 +
>  .../bld/include/p70/cfa_bld_p70_field_ids.h   |  1542 +
>  .../cfa_v3/bld/include/p70/cfa_bld_p70_mpc.h  |   548 +
>  .../hcapi/cfa_v3/bld/include/p70/cfa_p70.h    |   164 +
>  .../hcapi/cfa_v3/bld/include/p70/cfa_p70_hw.h |  4286 +
>  .../bld/include/p70/cfa_p70_mpc_structs.h     |  1496 +
>  .../hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc.c    |   927 +
>  .../cfa_v3/bld/p70/cfa_bld_p70_mpc_defs.h     |    51 +
>  .../p70/host/cfa_bld_p70_host_mpc_wrapper.c   |  1127 +
>  .../p70/host/cfa_bld_p70_host_mpc_wrapper.h   |    83 +
>  .../cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.c  |    56 +
>  .../cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.h  |    22 +
>  .../bld/p70/host/cfa_p70_mpc_field_ids.h      |  1177 +
>  .../bld/p70/host/cfa_p70_mpc_field_mapping.h  |   775 +
>  .../bnxt/hcapi/cfa_v3/include/cfa_resources.h |   185 +
>  .../net/bnxt/hcapi/cfa_v3/include/cfa_trace.h |   273 +
>  .../net/bnxt/hcapi/cfa_v3/include/cfa_types.h |   122 +
>  .../net/bnxt/hcapi/cfa_v3/include/cfa_util.h  |    44 +
>  .../include/platform/dpdk/cfa_debug_defs.h    |    52 +
>  .../net/bnxt/hcapi/cfa_v3/include/sys_util.h  |   101 +
>  drivers/net/bnxt/hcapi/cfa_v3/meson.build     |    36 +
>  .../net/bnxt/hcapi/cfa_v3/mm/CMakeLists.txt   |    42 +
>  drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm.c     |   624 +
>  .../net/bnxt/hcapi/cfa_v3/mm/cfa_mm_priv.h    |    92 +
>  .../net/bnxt/hcapi/cfa_v3/mm/include/cfa_mm.h |   173 +
>  .../net/bnxt/hcapi/cfa_v3/tim/CMakeLists.txt  |    43 +
>  drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim.c   |   124 +
>  .../net/bnxt/hcapi/cfa_v3/tim/cfa_tim_priv.h  |    85 +
>  .../bnxt/hcapi/cfa_v3/tim/include/cfa_tim.h   |   133 +
>  .../net/bnxt/hcapi/cfa_v3/tpm/CMakeLists.txt  |    44 +
>  drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm.c   |   273 +
>  .../net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm_priv.h  |    47 +
>  .../bnxt/hcapi/cfa_v3/tpm/include/cfa_tpm.h   |   215 +
>  drivers/net/bnxt/hsi_struct_def_dpdk.h        | 25701 +++--
>  drivers/net/bnxt/meson.build                  |     5 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr.c       |  1562 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr.h       |    97 +-
>  .../net/bnxt/tf_core/cfa_tcam_mgr_device.h    |    91 +-
>  .../net/bnxt/tf_core/cfa_tcam_mgr_hwop_msg.c  |   135 +-
>  .../net/bnxt/tf_core/cfa_tcam_mgr_hwop_msg.h  |    18 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr_p4.c    |   858 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr_p4.h    |     9 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr_p58.c   |   848 +-
>  drivers/net/bnxt/tf_core/cfa_tcam_mgr_p58.h   |    10 +-
>  .../net/bnxt/tf_core/cfa_tcam_mgr_session.c   |    13 +
>  .../net/bnxt/tf_core/cfa_tcam_mgr_session.h   |    54 -
>  drivers/net/bnxt/tf_core/meson.build          |     6 +-
>  drivers/net/bnxt/tf_core/tf_core.c            |   152 +-
>  drivers/net/bnxt/tf_core/tf_core.h            |    86 +-
>  drivers/net/bnxt/tf_core/tf_device.c          |    30 -
>  drivers/net/bnxt/tf_core/tf_device.h          |    67 +-
>  drivers/net/bnxt/tf_core/tf_device_p4.c       |    27 +-
>  drivers/net/bnxt/tf_core/tf_device_p4.h       |     1 +
>  drivers/net/bnxt/tf_core/tf_device_p58.c      |   113 +-
>  drivers/net/bnxt/tf_core/tf_em.h              |   361 +-
>  drivers/net/bnxt/tf_core/tf_em_common.c       |  1191 -
>  drivers/net/bnxt/tf_core/tf_em_common.h       |     1 +
>  .../net/bnxt/tf_core/tf_em_hash_internal.c    |    34 +-
>  drivers/net/bnxt/tf_core/tf_em_host.c         |   574 -
>  drivers/net/bnxt/tf_core/tf_em_internal.c     |     9 +-
>  drivers/net/bnxt/tf_core/tf_msg.c             |   672 +-
>  drivers/net/bnxt/tf_core/tf_msg.h             |    57 +
>  drivers/net/bnxt/tf_core/tf_resources.c       |   561 +
>  drivers/net/bnxt/tf_core/tf_resources.h       |   131 +-
>  drivers/net/bnxt/tf_core/tf_rm.c              |    41 +-
>  drivers/net/bnxt/tf_core/tf_session.c         |    12 +-
>  drivers/net/bnxt/tf_core/tf_session.h         |     7 +-
>  drivers/net/bnxt/tf_core/tf_tcam.c            |   299 +-
>  drivers/net/bnxt/tf_core/tf_tcam_mgr_msg.c    |    99 +-
>  drivers/net/bnxt/tf_core/tf_tcam_mgr_msg.h    |     6 -
>  drivers/net/bnxt/tf_core/v3/meson.build       |    34 +
>  drivers/net/bnxt/tf_core/v3/tfc.h             |  1527 +
>  drivers/net/bnxt/tf_core/v3/tfc_act.c         |   807 +
>  .../net/bnxt/tf_core/v3/tfc_action_handle.h   |    68 +
>  drivers/net/bnxt/tf_core/v3/tfc_cpm.c         |   419 +
>  drivers/net/bnxt/tf_core/v3/tfc_cpm.h         |   214 +
>  drivers/net/bnxt/tf_core/v3/tfc_debug.h       |    28 +
>  drivers/net/bnxt/tf_core/v3/tfc_em.c          |  1011 +
>  drivers/net/bnxt/tf_core/v3/tfc_em.h          |   179 +
>  drivers/net/bnxt/tf_core/v3/tfc_flow_handle.h |    81 +
>  drivers/net/bnxt/tf_core/v3/tfc_global_id.c   |    58 +
>  drivers/net/bnxt/tf_core/v3/tfc_ident.c       |    83 +
>  drivers/net/bnxt/tf_core/v3/tfc_idx_tbl.c     |   327 +
>  drivers/net/bnxt/tf_core/v3/tfc_if_tbl.c      |   133 +
>  drivers/net/bnxt/tf_core/v3/tfc_init.c        |    69 +
>  drivers/net/bnxt/tf_core/v3/tfc_mpc_table.c   |   565 +
>  drivers/net/bnxt/tf_core/v3/tfc_msg.c         |  1197 +
>  drivers/net/bnxt/tf_core/v3/tfc_msg.h         |   164 +
>  drivers/net/bnxt/tf_core/v3/tfc_priv.c        |   124 +
>  drivers/net/bnxt/tf_core/v3/tfc_priv.h        |    78 +
>  drivers/net/bnxt/tf_core/v3/tfc_resources.c   |    98 +
>  drivers/net/bnxt/tf_core/v3/tfc_resources.h   |    15 +
>  drivers/net/bnxt/tf_core/v3/tfc_session.c     |   151 +
>  drivers/net/bnxt/tf_core/v3/tfc_tbl_scope.c   |  2077 +
>  drivers/net/bnxt/tf_core/v3/tfc_tcam.c        |   300 +
>  drivers/net/bnxt/tf_core/v3/tfc_util.c        |   229 +
>  drivers/net/bnxt/tf_core/v3/tfc_util.h        |   123 +
>  drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.c   |   358 +
>  drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.h   |   220 +
>  drivers/net/bnxt/tf_core/v3/tfo.c             |   574 +
>  drivers/net/bnxt/tf_core/v3/tfo.h             |   429 +
>  drivers/net/bnxt/tf_ulp/bnxt_tf_common.h      |    14 +-
>  drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c    |   303 +-
>  drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h    |    24 +-
>  drivers/net/bnxt/tf_ulp/bnxt_ulp.c            |  2607 +-
>  drivers/net/bnxt/tf_ulp/bnxt_ulp.h            |   329 +-
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c       |   610 +-
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_meter.c      |   326 +-
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c         |  1645 +
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.h         |    24 +
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c        |  1120 +
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.h        |    74 +
>  drivers/net/bnxt/tf_ulp/bnxt_ulp_utils.h      |  1096 +
>  .../bnxt/tf_ulp/generic_templates/meson.build |    16 +-
>  .../generic_templates/ulp_template_db_act.c   |  7250 +-
>  .../generic_templates/ulp_template_db_class.c | 48727 ++-------
>  .../generic_templates/ulp_template_db_enum.h  |  3771 +-
>  .../generic_templates/ulp_template_db_field.h |  1189 +-
>  .../generic_templates/ulp_template_db_tbl.c   | 19669 +---
>  .../generic_templates/ulp_template_db_tbl.h   |    72 +
>  .../ulp_template_db_thor2_act.c               | 10098 ++
>  .../ulp_template_db_thor2_class.c             | 60934 +++++++++++
>  .../ulp_template_db_thor_act.c                |  9046 +-
>  .../ulp_template_db_thor_class.c              | 88530 ++++++++++------
>  .../ulp_template_db_wh_plus_act.c             | 11153 +-
>  .../ulp_template_db_wh_plus_class.c           | 11925 ++-
>  drivers/net/bnxt/tf_ulp/meson.build           |    10 +-
>  drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.c       |   228 +
>  drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.h       |    71 +
>  drivers/net/bnxt/tf_ulp/ulp_def_rules.c       |   456 +-
>  drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c          |   373 +-
>  drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h          |    30 +-
>  drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tf.c       |   259 +
>  drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tfc.c      |   130 +
>  drivers/net/bnxt/tf_ulp/ulp_flow_db.c         |   362 +-
>  drivers/net/bnxt/tf_ulp/ulp_flow_db.h         |    34 +-
>  drivers/net/bnxt/tf_ulp/ulp_gen_hash.c        |    67 +-
>  drivers/net/bnxt/tf_ulp/ulp_gen_tbl.c         |   326 +-
>  drivers/net/bnxt/tf_ulp/ulp_gen_tbl.h         |    62 +-
>  drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c          |   186 +-
>  drivers/net/bnxt/tf_ulp/ulp_mapper.c          |  5047 +-
>  drivers/net/bnxt/tf_ulp/ulp_mapper.h          |   289 +-
>  drivers/net/bnxt/tf_ulp/ulp_mapper_tf.c       |  1389 +
>  drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c      |  1783 +
>  drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c        |    41 +-
>  drivers/net/bnxt/tf_ulp/ulp_matcher.c         |   470 +-
>  drivers/net/bnxt/tf_ulp/ulp_matcher.h         |    42 +-
>  drivers/net/bnxt/tf_ulp/ulp_port_db.c         |   189 +-
>  drivers/net/bnxt/tf_ulp/ulp_port_db.h         |    53 +
>  drivers/net/bnxt/tf_ulp/ulp_rte_handler_tbl.c |    22 +-
>  drivers/net/bnxt/tf_ulp/ulp_rte_parser.c      |   928 +-
>  drivers/net/bnxt/tf_ulp/ulp_rte_parser.h      |    26 +-
>  drivers/net/bnxt/tf_ulp/ulp_sc_mgr.c          |   526 +
>  drivers/net/bnxt/tf_ulp/ulp_sc_mgr.h          |   142 +
>  drivers/net/bnxt/tf_ulp/ulp_sc_mgr_tfc.c      |    60 +
>  drivers/net/bnxt/tf_ulp/ulp_template_struct.h |    76 +-
>  drivers/net/bnxt/tf_ulp/ulp_tun.c             |    14 +-
>  drivers/net/bnxt/tf_ulp/ulp_utils.c           |   140 +-
>  drivers/net/bnxt/tf_ulp/ulp_utils.h           |   936 +-
>  186 files changed, 227282 insertions(+), 136513 deletions(-)
>  create mode 100644 drivers/net/bnxt/bnxt_mpc.c
>  create mode 100644 drivers/net/bnxt/bnxt_mpc.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/CMakeLists.txt
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/host/cfa_bld_mpc.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/cfa_bld_defs.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_devops.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_field_ids.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_mpc_field_ids.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/host/cfa_bld_mpcops.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_defs.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_field_ids.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_bld_p70_mpc.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70_hw.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/include/p70/cfa_p70_mpc_structs.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/cfa_bld_p70_mpc_defs.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_host_mpc_wrapper.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_host_mpc_wrapper.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_bld_p70_mpcops.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_p70_mpc_field_ids.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/bld/p70/host/cfa_p70_mpc_field_mapping.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_resources.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_trace.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_types.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/cfa_util.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/platform/dpdk/cfa_debug_defs.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/include/sys_util.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/meson.build
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/CMakeLists.txt
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/cfa_mm_priv.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/mm/include/cfa_mm.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/CMakeLists.txt
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/cfa_tim_priv.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tim/include/cfa_tim.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/CMakeLists.txt
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm.c
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/cfa_tpm_priv.h
>  create mode 100644 drivers/net/bnxt/hcapi/cfa_v3/tpm/include/cfa_tpm.h
>  delete mode 100644 drivers/net/bnxt/tf_core/cfa_tcam_mgr_session.h
>  create mode 100644 drivers/net/bnxt/tf_core/tf_resources.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/meson.build
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_act.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_action_handle.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_cpm.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_cpm.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_debug.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_em.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_em.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_flow_handle.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_global_id.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_ident.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_idx_tbl.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_if_tbl.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_init.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_mpc_table.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_msg.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_msg.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_priv.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_priv.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_resources.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_resources.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_session.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_tbl_scope.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_tcam.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_util.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_util.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfc_vf2pf_msg.h
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfo.c
>  create mode 100644 drivers/net/bnxt/tf_core/v3/tfo.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tf.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_tfc.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_ulp_utils.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_act.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor2_class.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_alloc_tbl.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tf.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr_tfc.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper_tf.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_mapper_tfc.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.c
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr.h
>  create mode 100644 drivers/net/bnxt/tf_ulp/ulp_sc_mgr_tfc.c
>
> --
> 2.39.3
>

There are a couple of patches with warnings about "Prefer
RTE_LOG_LINE" and "Do not use variadic argument pack in macros".
We haven't fixed these, since it involves a lot of changes. We will
fix them in a separate clean-up patch after this patchset is merged.

Thanks,
-Harsha
  
Ajit Khaparde Nov. 8, 2024, 2:14 a.m. UTC | #2
On Thu, Nov 7, 2024 at 6:05 PM Sriharsha Basavapatna
<sriharsha.basavapatna@broadcom.com> wrote:
>
> On Thu, Nov 7, 2024 at 7:12 PM Sriharsha Basavapatna
> <sriharsha.basavapatna@broadcom.com> wrote:
> >
> > This patch series introduces TruFlow functionality for Broadcom Thor2 NIC.
> >
> > TruFlow(TF) is the software library that exposes CFA HW resources to
> > upper layer protocols or applications. This patch series implements the
> > tfc (tf_core) and the tf_ulp libraries as a part of the bnxt PMD,
> > so that upper layer APIs such as rte_flow can access the hardware.
> >
> > ******
> > v7->v8:
> > Changed logging macros CFA_TCAM_MGR_TRACE()->PMD_DRV_LOG_LINE()
> > Fixed the following checkpatch warnings:
> >   Writing to stdout or stderr
> >   Using __atomic_xxx/__ATOMIC_XXX built-ins,
> >         prefer rte_atomic_xxx/rte_memory_order_xxx
> > Added Fixes: tag and Cc: stable@dpdk.org for some patches
> >
>
> There are a couple of patches with warnings about "Prefer
> RTE_LOG_LINE" and "Do not use variadic argument pack in macros".
> We haven't fixed these, since it involves a lot of changes. We will
> fix them in a separate clean-up patch after this patchset is merged.
>
Apart from this, I have addressed the spelling errors,
errors in meson, updates to the rte_flow items and actions list
while merging.

Patchset rebased on dpdk main tree and applied to
dpdk-next-net-brcm main and for-next-net branch.
Please apply.

> > v6->v7:
> > Updated below patches to fix some checkpatch issues.
> > [PATCH 01/47] net/bnxt: tf_core: fix wc tcam multi slice delete
> > [PATCH 06/47] net/bnxt: tf_core: TF support flow scale query
> > [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
> > [PATCH 12/47] net/bnxt: tf_ulp: add vxlan-gpe base support
> > [PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
> > [PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
> > [PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
> > [PATCH 32/47] net/bnxt: tf_ulp: add support for flow priority
> > [PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
> > [PATCH 35/47] net/bnxt: tf_ulp: TF support flow scale query
> > [PATCH 37/47] net/bnxt: tf_ulp: add track type feature to tables
> > [PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
> > [PATCH 44/47] net/bnxt: tf_ulp: enable support for truflow feature
> > [PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2
> >
> > v5->v6:
> > Updated the below patch to fix a build error reported in rte_free().
> >     [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
> >
> > v4->v5:
> > Updated below patches to use the new logging macro PMD_DRV_LOG_LINE():
> > [PATCH 05/47] net/bnxt: tf_core: flow scale improvement
> > [PATCH 11/47] net/bnxt: tfc: support tf-core for Thor2
> > [PATCH 16/47] net/bnxt: tf_ulp: miscellaneous fixes
> > [PATCH 17/47] net/bnxt: tf_ulp: support for Thor2 ulp layer
> > [PATCH 23/47] net/bnxt: tf_ulp: VFR updates for Thor 2
> > [PATCH 33/47] net/bnxt: tf_ulp: support for dynamic tunnel ports
> > [PATCH 36/47] net/bnxt: tf_ulp: add support for rss flow query to ULP
> > [PATCH 38/47] net/bnxt: tf_ulp: inline utility functions and use
> > [PATCH 47/47] net/bnxt: tf_ulp: add stats cache for thor2
> >
> > v3->v4:
> > Updated patch 0011 to fix a build error with clang in tfc_em.c.
> >
> > v2->v3:
> > Updated the below patch to fix errors reported by DPDK CICD tests.
> >     0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch
> >
> > v1->v2:
> > Updated the below two patches to fix errors reported by DPDK CICD tests.
> >     0011-net-bnxt-tfc-support-tf-core-for-Thor2.patch
> >     0047-net-bnxt-tf_ulp-add-stats-cache-for-thor2.patch
> > ******
  
Thomas Monjalon Nov. 12, 2024, 11 a.m. UTC | #3
08/11/2024 03:14, Ajit Khaparde:
> On Thu, Nov 7, 2024 at 6:05 PM Sriharsha Basavapatna
> <sriharsha.basavapatna@broadcom.com> wrote:
> > > v7->v8:
> > > Changed logging macros CFA_TCAM_MGR_TRACE()->PMD_DRV_LOG_LINE()
> > > Fixed the following checkpatch warnings:
> > >   Writing to stdout or stderr
> > >   Using __atomic_xxx/__ATOMIC_XXX built-ins,
> > >         prefer rte_atomic_xxx/rte_memory_order_xxx
> > > Added Fixes: tag and Cc: stable@dpdk.org for some patches
> > >
> >
> > There are a couple of patches with warnings about "Prefer
> > RTE_LOG_LINE" and "Do not use variadic argument pack in macros".
> > We haven't fixed these, since it involves a lot of changes. We will
> > fix them in a separate clean-up patch after this patchset is merged.

log and variadic are OK to be cleaned later.
But I cannot merge with SPDX issues, rte_flow doc not updated, __builtin functions.

> Apart from this, I have addressed the spelling errors,
> errors in meson, updates to the rte_flow items and actions list
> while merging.
> 
> Patchset rebased on dpdk main tree and applied to
> dpdk-next-net-brcm main and for-next-net branch.
> Please apply.

I still see these errors from next-net-brcm/for-next-net:

SPDX tag missing in 38 files

rte_flow doc out of sync for bnxt
        item geneve
        item vxlan_gpe
        action set_ipv6_dst
        action set_ipv6_src
        action set_ttl

Prefer RTE_LOG_LINE/RTE_LOG_DP_LINE

Using __builtin helpers, prefer EAL macros

Do not use variadic argument pack in macros

Error: Incorrect indent at drivers/net/bnxt/tf_core/v3/meson.build
Error: Missing trailing "," in list at drivers/net/bnxt/tf_core/v3/meson.build:33
Error parsing drivers/net/bnxt/hcapi/cfa_v3/meson.build, got some tabulation
Error: Incorrect indent at drivers/net/bnxt/hcapi/cfa_v3/meson.build
Error parsing drivers/net/bnxt/tf_ulp/meson.build, got some tabulation
Error parsing drivers/net/bnxt/tf_ulp/generic_templates/meson.build, got some tabulation

+drivers/net/bnxt/tf_core/v3/tfc_global_id.c: duplicated include: tfc.h
+drivers/net/bnxt/tf_core/v3/tfc_tbl_scope.c: duplicated include: bnxt.h
+drivers/net/bnxt/tf_core/v3/tfc_tcam.c: duplicated include: tfc.h

Is it candidate for Cc: stable@dpdk.org backport?
        net/bnxt: fix issue reading sff8436 sfp eeproms
        net/bnxt: tf_ulp: fixed parent child db counters

Contributor name/email mismatch with .mailmap: 
        Peter Morrow <peter@graphiant.com> is unknown in .mailmap
        Vasuthevan Maheswaran <vasuthevan.maheswaran@broadcom.com> is unknown in .mailmap

'resoure' may be misspelled - perhaps 'resource'?
'Recrod' may be misspelled - perhaps 'Record'?
'adn' may be misspelled - perhaps 'and'?
'decorder' may be misspelled - perhaps 'decoder'?
'retreved' may be misspelled - perhaps 'retrieved'?
'Foward' may be misspelled - perhaps 'Forward'?
'modfication' may be misspelled - perhaps 'modification'?
'pupose' may be misspelled - perhaps 'purpose'?
'inluding' may be misspelled - perhaps 'including'?
'explicity' may be misspelled - perhaps 'explicitly'?
'Conifiguration' may be misspelled - perhaps 'Configuration'?
'wit' may be misspelled - perhaps 'with'?
'spefific' may be misspelled - perhaps 'specific'?
'thorugh' may be misspelled - perhaps 'through'?
'hve' may be misspelled - perhaps 'have'?
'localy' may be misspelled - perhaps 'locally'?
'singe' may be misspelled - perhaps 'single'?
'faeture' may be misspelled - perhaps 'feature'?
'paranthesis' may be misspelled - perhaps 'parenthesis'?
'firmwware' may be misspelled - perhaps 'firmware'?