From patchwork Sun Jun 13 00:05:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 94095 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E4099A0C41; Sun, 13 Jun 2021 02:06:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 646A24003F; Sun, 13 Jun 2021 02:06:59 +0200 (CEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mails.dpdk.org (Postfix) with ESMTP id E528A4003E for ; Sun, 13 Jun 2021 02:06:57 +0200 (CEST) Received: by mail-pl1-f171.google.com with SMTP id e7so4685326plj.7 for ; Sat, 12 Jun 2021 17:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version; bh=dzCGbVq5m9QPgutURXhLl1xDVJGhqP7y3ziFkokWB8Q=; b=Xk1onefCRvjnmRxzp1DXMh+EiXeNr+y0/GnBzSlrFQMK+UQPFBrDci511/okvxNeL8 m47yXtUu5lon7uw8xM9iF/HZpssJHp+yf0wckcl44mdjHVIw/MqMY0IZz8I77BMmS7/m iKs+wNxdhTsvSzziUBrqFSqLhN2KW5YTVRG20= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version; bh=dzCGbVq5m9QPgutURXhLl1xDVJGhqP7y3ziFkokWB8Q=; b=rmXDkLbhcH+QnwQUyLNKxPZoHMtYcSaZY9fEYvllnuI3eSi3viRqGS1Q0dMWD9E5nI EtdKg9UclkqDdveumbhmVXhNvIWAdeVMi7w2x0Z2N1WLp/GLBKwpnACsaefaEDKpmcWY DocDL1NH0W3MrVC1JzML+8j3ZMRa7eQ1Qa9f3ABetFfyr9YK7QXcn1z9/vJzEMyx98HL laVuiSzNs0FpC5C25hCQpBcCjzS+QG7yy3mBkRC8U2beFJBZZ3vOIWFHgC7D66tEHKG1 /sYwXDQTt2rLlg4H6uIBp8oEusZ1UxwS+G2WUxhWgmdkISzaDmwErOajS0GejZz6mfQg LKew== X-Gm-Message-State: AOAM533vsEcxDy1rUMk+XC893yHMfXII934xObChFwO6N10FGKBLmDsi pKPuKmEO3OgKNmT7Qek/MNj2GUDj/yNZdFhW45UwZoQt49Yns83/s04gZyG3xlDWwCFq6Tv6PWF i9XmrkA3Dwwht5XNYe9M5aa7XSLNqJEIy4lpyW19JEvxi1P8T0pBz+YFsYwvTl9U= X-Google-Smtp-Source: ABdhPJwjGid02fv6xkCPNOO6lpmSeQ9MJNDN+jYp32Oi1sjIQefl4SY2klTC+J2bTaJDhGsE9jwBTQ== X-Received: by 2002:a17:903:2c2:b029:101:9c88:d928 with SMTP id s2-20020a17090302c2b02901019c88d928mr10422009plk.62.1623542816242; Sat, 12 Jun 2021 17:06:56 -0700 (PDT) Received: from localhost.localdomain ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id gg22sm12774609pjb.17.2021.06.12.17.06.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 12 Jun 2021 17:06:55 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Date: Sat, 12 Jun 2021 17:05:54 -0700 Message-Id: <20210613000652.28191-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) In-Reply-To: <20210530085929.29695-1-venkatkumar.duvvuru@broadcom.com> References: <20210530085929.29695-1-venkatkumar.duvvuru@broadcom.com> MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] [PATCH v2 00/58] enhancements to host based flow table management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patchset adds flow table management support for Thor network adapter and introduces enhancements to the existing flow table management functionality. v1->v2: - Rebased against latest dpdk-next-net-brcm for-next-net branch. - Fixed typo errors in some of the patches - Address some issues encountered while applying patches - Changed log levels for some log messages to debug - Cleaned up some unused code Farah Smith (11): net/bnxt: add base TRUFLOW support for Thor net/bnxt: update TRUFLOW resources net/bnxt: add action SRAM translation net/bnxt: add 64B SRAM record management with RM net/bnxt: modify TRUFLOW HWRM messages net/bnxt: shared TCAM region support net/bnxt: cleanup logs in session handling paths net/bnxt: add WC TCAM management support net/bnxt: add API to get shared table increments net/bnxt: cleanup WC TCAM shared pool net/bnxt: add API to clear TCAM regions Jay Ding (9): net/bnxt: check resource reservation in TRUFLOW net/bnxt: support L2 Context TCAM ops net/bnxt: add Thor WC TCAM support net/bnxt: change RM database type net/bnxt: add shared session support net/bnxt: update shared session functionality net/bnxt: modify resource reservation strategy net/bnxt: refactor host session failure cleanup net/bnxt: add support for WC TCAM shared session Jeffrey Huang (1): net/bnxt: add CFA folder to HCAPI directory Kishore Padmanabha (23): net/bnxt: add support for generic table processing net/bnxt: add support for mapper flow database opcodes net/bnxt: modify TCAM opcode processing net/bnxt: modify table processing net/bnxt: add ULP priority opcode processing net/bnxt: add support to identify duplicate flows net/bnxt: add conditional goto processing net/bnxt: set shared handle for generic table net/bnxt: modify ULP template net/bnxt: add conditional opcode and L4 port fields net/bnxt: refactor TRUFLOW processing net/bnxt: add partial header field processing net/bnxt: add support for wild card pattern match net/bnxt: enable extended exact match support net/bnxt: refactor ULP mapper net/bnxt: add support for generic hash table net/bnxt: add support for Thor platform net/bnxt: refactor flow parser in ULP net/bnxt: add field opcodes in ULP net/bnxt: add support for application ID in ULP matcher net/bnxt: add templates for shared sessions net/bnxt: add ICMPv6 parser to ULP net/bnxt: add context list for timers Mike Baucom (5): net/bnxt: add conditional processing of templates net/bnxt: add shared session support to ULP net/bnxt: process resource lists before session open net/bnxt: add HA support in ULP net/bnxt: add Thor template support Peter Spreadborough (4): net/bnxt: add mailbox selection via dev op net/bnxt: add support for EM with FKB net/bnxt: add hashing changes for Thor net/bnxt: add dpool allocator for EM allocation Shahaji Bhosle (1): net/bnxt: cleanup ULP parser and mapper Venkat Duvvuru (4): net/bnxt: check FW capability to support TRUFLOW net/bnxt: modify VXLAN decap for multichannel mode net/bnxt: add support for GRE flows net/bnxt: reorganize ULP template directory structure doc/guides/nics/bnxt.rst | 3 +- drivers/net/bnxt/bnxt.h | 19 +- drivers/net/bnxt/bnxt_ethdev.c | 162 +- drivers/net/bnxt/bnxt_hwrm.c | 7 +- drivers/net/bnxt/bnxt_util.h | 3 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa.h | 126 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_common.c | 83 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_defs.h | 381 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p4.c | 289 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p4.h | 185 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p58.c | 120 + drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p58.h | 142 + drivers/net/bnxt/hcapi/cfa/meson.build | 12 + drivers/net/bnxt/hcapi/cfa_p40_hw.h | 781 - drivers/net/bnxt/hcapi/cfa_p40_tbl.h | 303 - drivers/net/bnxt/hcapi/hcapi_cfa.h | 295 - drivers/net/bnxt/hcapi/hcapi_cfa_defs.h | 672 - drivers/net/bnxt/hcapi/hcapi_cfa_p4.c | 399 - drivers/net/bnxt/hcapi/hcapi_cfa_p4.h | 467 - drivers/net/bnxt/hsi_struct_def_dpdk.h | 250 +- drivers/net/bnxt/meson.build | 65 +- drivers/net/bnxt/tf_core/bitalloc.c | 10 +- drivers/net/bnxt/tf_core/bitalloc.h | 5 +- drivers/net/bnxt/tf_core/cfa_resource_types.h | 3 +- drivers/net/bnxt/tf_core/dpool.c | 374 + drivers/net/bnxt/tf_core/dpool.h | 309 + drivers/net/bnxt/tf_core/hwrm_tf.h | 195 - drivers/net/bnxt/tf_core/lookup3.h | 2 +- drivers/net/bnxt/tf_core/meson.build | 36 + drivers/net/bnxt/tf_core/tf_core.c | 326 +- drivers/net/bnxt/tf_core/tf_core.h | 563 +- drivers/net/bnxt/tf_core/tf_device.c | 530 +- drivers/net/bnxt/tf_core/tf_device.h | 276 +- drivers/net/bnxt/tf_core/tf_device_p4.c | 161 +- drivers/net/bnxt/tf_core/tf_device_p4.h | 203 +- drivers/net/bnxt/tf_core/tf_device_p45.h | 105 - drivers/net/bnxt/tf_core/tf_device_p58.c | 372 + drivers/net/bnxt/tf_core/tf_device_p58.h | 212 + drivers/net/bnxt/tf_core/tf_em.h | 99 +- drivers/net/bnxt/tf_core/tf_em_common.c | 332 +- drivers/net/bnxt/tf_core/tf_em_common.h | 68 +- .../net/bnxt/tf_core/tf_em_hash_internal.c | 215 + drivers/net/bnxt/tf_core/tf_em_host.c | 115 +- drivers/net/bnxt/tf_core/tf_em_internal.c | 376 +- drivers/net/bnxt/tf_core/tf_ext_flow_handle.h | 15 +- drivers/net/bnxt/tf_core/tf_identifier.c | 174 +- drivers/net/bnxt/tf_core/tf_identifier.h | 26 + drivers/net/bnxt/tf_core/tf_if_tbl.c | 20 +- drivers/net/bnxt/tf_core/tf_msg.c | 1219 +- drivers/net/bnxt/tf_core/tf_msg.h | 217 +- drivers/net/bnxt/tf_core/tf_msg_common.h | 3 - drivers/net/bnxt/tf_core/tf_rm.c | 834 +- drivers/net/bnxt/tf_core/tf_rm.h | 143 +- drivers/net/bnxt/tf_core/tf_session.c | 261 +- drivers/net/bnxt/tf_core/tf_session.h | 206 +- drivers/net/bnxt/tf_core/tf_shadow_tbl.c | 785 - drivers/net/bnxt/tf_core/tf_shadow_tbl.h | 256 - drivers/net/bnxt/tf_core/tf_shadow_tcam.c | 6 +- drivers/net/bnxt/tf_core/tf_tbl.c | 656 +- drivers/net/bnxt/tf_core/tf_tbl.h | 57 +- drivers/net/bnxt/tf_core/tf_tcam.c | 435 +- drivers/net/bnxt/tf_core/tf_tcam.h | 30 + drivers/net/bnxt/tf_core/tf_tcam_shared.c | 1283 + drivers/net/bnxt/tf_core/tf_tcam_shared.h | 183 + drivers/net/bnxt/tf_core/tf_util.c | 62 +- drivers/net/bnxt/tf_core/tf_util.h | 31 +- drivers/net/bnxt/tf_core/tfp.c | 44 +- drivers/net/bnxt/tf_core/tfp.h | 61 +- drivers/net/bnxt/tf_ulp/bnxt_tf_common.h | 2 - drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c | 378 + drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h | 29 + drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 943 +- drivers/net/bnxt/tf_ulp/bnxt_ulp.h | 85 +- drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c | 74 +- .../bnxt/tf_ulp/generic_templates/meson.build | 13 + .../generic_templates/ulp_template_db_act.c | 1017 + .../generic_templates/ulp_template_db_class.c | 13188 ++++++++++ .../generic_templates/ulp_template_db_enum.h | 1883 ++ .../generic_templates/ulp_template_db_field.h | 686 + .../generic_templates/ulp_template_db_tbl.c | 3335 +++ .../generic_templates/ulp_template_db_tbl.h | 112 + .../ulp_template_db_thor_act.c | 225 + .../ulp_template_db_thor_class.c | 6107 +++++ .../ulp_template_db_wh_plus_act.c | 4974 ++++ .../ulp_template_db_wh_plus_class.c | 14270 +++++++++++ drivers/net/bnxt/tf_ulp/meson.build | 28 + drivers/net/bnxt/tf_ulp/ulp_def_rules.c | 91 +- drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c | 171 +- drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h | 1 + drivers/net/bnxt/tf_ulp/ulp_flow_db.c | 129 +- drivers/net/bnxt/tf_ulp/ulp_flow_db.h | 20 +- drivers/net/bnxt/tf_ulp/ulp_gen_hash.c | 369 + drivers/net/bnxt/tf_ulp/ulp_gen_hash.h | 166 + drivers/net/bnxt/tf_ulp/ulp_gen_tbl.c | 417 + drivers/net/bnxt/tf_ulp/ulp_gen_tbl.h | 171 + drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c | 637 + drivers/net/bnxt/tf_ulp/ulp_ha_mgr.h | 67 + drivers/net/bnxt/tf_ulp/ulp_mapper.c | 3572 ++- drivers/net/bnxt/tf_ulp/ulp_mapper.h | 59 +- drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c | 10 +- drivers/net/bnxt/tf_ulp/ulp_matcher.c | 36 +- drivers/net/bnxt/tf_ulp/ulp_port_db.c | 140 +- drivers/net/bnxt/tf_ulp/ulp_port_db.h | 42 + ...emplate_db_tbl.c => ulp_rte_handler_tbl.c} | 269 +- drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 1207 +- drivers/net/bnxt/tf_ulp/ulp_rte_parser.h | 36 +- drivers/net/bnxt/tf_ulp/ulp_template_db.c | 4622 ---- drivers/net/bnxt/tf_ulp/ulp_template_db.h | 614 - drivers/net/bnxt/tf_ulp/ulp_template_db_act.c | 815 - .../net/bnxt/tf_ulp/ulp_template_db_class.c | 3985 --- .../net/bnxt/tf_ulp/ulp_template_db_enum.h | 973 - .../net/bnxt/tf_ulp/ulp_template_db_field.h | 1191 - .../tf_ulp/ulp_template_db_stingray_act.c | 3305 --- .../tf_ulp/ulp_template_db_stingray_class.c | 20566 ---------------- drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h | 48 - .../bnxt/tf_ulp/ulp_template_db_wh_plus_act.c | 3304 --- .../tf_ulp/ulp_template_db_wh_plus_class.c | 20566 ---------------- .../net/bnxt/tf_ulp/ulp_template_field_db.h | 224 - drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 192 +- drivers/net/bnxt/tf_ulp/ulp_tun.c | 192 +- drivers/net/bnxt/tf_ulp/ulp_tun.h | 33 +- drivers/net/bnxt/tf_ulp/ulp_utils.c | 339 +- drivers/net/bnxt/tf_ulp/ulp_utils.h | 153 +- 123 files changed, 63931 insertions(+), 68808 deletions(-) create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa.h create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_common.c create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_defs.h create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p4.c create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p4.h create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p58.c create mode 100644 drivers/net/bnxt/hcapi/cfa/hcapi_cfa_p58.h create mode 100644 drivers/net/bnxt/hcapi/cfa/meson.build delete mode 100644 drivers/net/bnxt/hcapi/cfa_p40_hw.h delete mode 100644 drivers/net/bnxt/hcapi/cfa_p40_tbl.h delete mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa.h delete mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_defs.h delete mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_p4.c delete mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_p4.h create mode 100644 drivers/net/bnxt/tf_core/dpool.c create mode 100644 drivers/net/bnxt/tf_core/dpool.h delete mode 100644 drivers/net/bnxt/tf_core/hwrm_tf.h create mode 100644 drivers/net/bnxt/tf_core/meson.build delete mode 100644 drivers/net/bnxt/tf_core/tf_device_p45.h create mode 100644 drivers/net/bnxt/tf_core/tf_device_p58.c create mode 100644 drivers/net/bnxt/tf_core/tf_device_p58.h create mode 100644 drivers/net/bnxt/tf_core/tf_em_hash_internal.c delete mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tbl.c delete mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tbl.h create mode 100644 drivers/net/bnxt/tf_core/tf_tcam_shared.c create mode 100644 drivers/net/bnxt/tf_core/tf_tcam_shared.h create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c create mode 100644 drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.h create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/meson.build create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_act.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_class.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_enum.h create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_field.h create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_tbl.h create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_act.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_thor_class.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_act.c create mode 100644 drivers/net/bnxt/tf_ulp/generic_templates/ulp_template_db_wh_plus_class.c create mode 100644 drivers/net/bnxt/tf_ulp/meson.build create mode 100644 drivers/net/bnxt/tf_ulp/ulp_gen_hash.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_gen_hash.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_gen_tbl.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_gen_tbl.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_ha_mgr.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_ha_mgr.h rename drivers/net/bnxt/tf_ulp/{ulp_template_db_tbl.c => ulp_rte_handler_tbl.c} (60%) delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db.h delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_act.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_class.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_field.h delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_act.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_stingray_class.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.h delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_act.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_db_wh_plus_class.c delete mode 100644 drivers/net/bnxt/tf_ulp/ulp_template_field_db.h