From patchwork Fri Jun 12 13:28:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Somnath Kotur X-Patchwork-Id: 71392 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id EFFD7A00BE; Fri, 12 Jun 2020 15:34:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 186111BE9D; Fri, 12 Jun 2020 15:34:05 +0200 (CEST) Received: from relay.smtp.broadcom.com (unknown [192.19.232.149]) by dpdk.org (Postfix) with ESMTP id D04B41BE88 for ; Fri, 12 Jun 2020 15:34:03 +0200 (CEST) Received: from dhcp-10-123-153-55.dhcp.broadcom.net (dhcp-10-123-153-55.dhcp.broadcom.net [10.123.153.55]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 46C271BD7BF; Fri, 12 Jun 2020 06:34:02 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 46C271BD7BF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1591968843; bh=hH+me7xu4wf+xnmxhPg3vaSPEtMCTEjPwJvM4LpdKFI=; h=From:To:Cc:Subject:Date:From; b=NVi6GinlOSNvFOnQN+621KCmp7ELjoU6GDZkgQgfwiMl9ZFDrNPUxE0ruHW0DFT7Y TUC3M5MWJ03UPcYaL2uzhCWKNbZzKFDqhf0puYsj8NHREtbCkOtJN7RnYYqv8CKLVX fa2hY9zTJEvq3hn/5UvFov/JpeJsoRie6ZxgUqhI= From: Somnath Kotur To: dev@dpdk.org Cc: ferruh.yigit@intel.com Date: Fri, 12 Jun 2020 18:58:44 +0530 Message-Id: <20200612132934.16488-1-somnath.kotur@broadcom.com> X-Mailer: git-send-email 2.10.1.613.g2cc2e70 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 00/50] add features for host-based flow management X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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 introduces support for VF representors, flow counters and on-chip exact match flows. Also implements the driver hook for the rte_flow_query API. Jay Ding (5): net/bnxt: implement support for TCAM access net/bnxt: support two level priority for TCAMs net/bnxt: add external action alloc and free net/bnxt: implement IF tables set and get net/bnxt: add global config set and get APIs Kishore Padmanabha (8): net/bnxt: integrate with the latest tf_core library net/bnxt: add support for if table processing net/bnxt: disable vector mode in tx direction when truflow is enabled net/bnxt: add index opcode and index operand mapper table net/bnxt: add support for global resource templates net/bnxt: add support for internal exact match entries net/bnxt: add support for conditional execution of mapper tables net/bnxt: add support for vf rep and stat templates Lance Richardson (1): net/bnxt: initialize parent PF information Michael Wildt (7): net/bnxt: add multi device support net/bnxt: update multi device design support net/bnxt: multiple device implementation net/bnxt: update identifier with remap support net/bnxt: update RM with residual checker net/bnxt: update table get to use new design net/bnxt: add TF register and unregister Mike Baucom (1): net/bnxt: add support for internal encap records Pete Spreadborough (6): net/bnxt: add support for Exact Match net/bnxt: modify EM insert and delete to use HWRM direct net/bnxt: add HCAPI interface support net/bnxt: support EM and TCAM lookup with table scope net/bnxt: update RM to support HCAPI only net/bnxt: remove table scope from session Peter Spreadborough (1): net/bnxt: add support for EEM System memory Randy Schacher (2): net/bnxt: add core changes for EM and EEM lookups net/bnxt: align CFA resources with RM Shahaji Bhosle (2): net/bnxt: support bulk table get and mirror net/bnxt: support two-level priority for TCAMs Somnath Kotur (7): net/bnxt: Basic infrastructure support for VF representors net/bnxt: Infrastructure support for VF-reps data path net/bnxt: add support to get FID,default vnic ID and svif of VF-Rep Endpoint net/bnxt: fix to parse representor along with other dev-args net/bnxt: create default flow rules for the VF-rep conduit net/bnxt: support for ULP Flow counter Manager net/bnxt: Add support for flow query with action_type COUNT Venkat Duvvuru (10): net/bnxt: modify ulp_port_db_dev_port_intf_update prototype net/bnxt: get port & function related information net/bnxt: add support for bnxt_hwrm_port_phy_qcaps net/bnxt: modify port_db to store & retrieve more info net/bnxt: enable HWRM_PORT_MAC_QCFG for trusted vf net/bnxt: fixes for port db net/bnxt: fix for VF to VFR conduit net/bnxt: fill mapper parameters with default rules info net/bnxt: add ingress & egress port default rules net/bnxt: fill cfa_action in the tx buffer descriptor properly config/common_base | 5 +- drivers/net/bnxt/Makefile | 8 +- drivers/net/bnxt/bnxt.h | 121 +- drivers/net/bnxt/bnxt_ethdev.c | 519 ++- drivers/net/bnxt/bnxt_hwrm.c | 122 +- drivers/net/bnxt/bnxt_hwrm.h | 7 + drivers/net/bnxt/bnxt_reps.c | 773 ++++ drivers/net/bnxt/bnxt_reps.h | 45 + drivers/net/bnxt/bnxt_rxr.c | 38 +- drivers/net/bnxt/bnxt_rxr.h | 1 + drivers/net/bnxt/bnxt_txq.h | 2 + drivers/net/bnxt/bnxt_txr.c | 18 +- drivers/net/bnxt/hcapi/Makefile | 10 + 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 | 273 ++ drivers/net/bnxt/hcapi/hcapi_cfa_defs.h | 669 +++ drivers/net/bnxt/hcapi/hcapi_cfa_p4.c | 411 ++ drivers/net/bnxt/hcapi/hcapi_cfa_p4.h | 467 ++ drivers/net/bnxt/hsi_struct_def_dpdk.h | 3095 ++++++++++++-- drivers/net/bnxt/meson.build | 21 +- drivers/net/bnxt/tf_core/Makefile | 29 +- drivers/net/bnxt/tf_core/bitalloc.c | 107 + drivers/net/bnxt/tf_core/bitalloc.h | 5 + drivers/net/bnxt/tf_core/cfa_resource_types.h | 293 ++ drivers/net/bnxt/tf_core/hwrm_tf.h | 995 +---- drivers/net/bnxt/tf_core/ll.c | 52 + drivers/net/bnxt/tf_core/ll.h | 46 + drivers/net/bnxt/tf_core/lookup3.h | 1 - drivers/net/bnxt/tf_core/stack.c | 10 +- drivers/net/bnxt/tf_core/stack.h | 10 + drivers/net/bnxt/tf_core/tf_common.h | 43 + drivers/net/bnxt/tf_core/tf_core.c | 1495 +++++-- drivers/net/bnxt/tf_core/tf_core.h | 874 +++- drivers/net/bnxt/tf_core/tf_device.c | 271 ++ drivers/net/bnxt/tf_core/tf_device.h | 650 +++ drivers/net/bnxt/tf_core/tf_device_p4.c | 147 + drivers/net/bnxt/tf_core/tf_device_p4.h | 104 + drivers/net/bnxt/tf_core/tf_em.c | 515 --- drivers/net/bnxt/tf_core/tf_em.h | 492 ++- drivers/net/bnxt/tf_core/tf_em_common.c | 1050 +++++ drivers/net/bnxt/tf_core/tf_em_common.h | 134 + drivers/net/bnxt/tf_core/tf_em_host.c | 532 +++ drivers/net/bnxt/tf_core/tf_em_internal.c | 352 ++ drivers/net/bnxt/tf_core/tf_em_system.c | 538 +++ drivers/net/bnxt/tf_core/tf_ext_flow_handle.h | 16 + drivers/net/bnxt/tf_core/tf_global_cfg.c | 199 + drivers/net/bnxt/tf_core/tf_global_cfg.h | 170 + drivers/net/bnxt/tf_core/tf_identifier.c | 186 + drivers/net/bnxt/tf_core/tf_identifier.h | 147 + drivers/net/bnxt/tf_core/tf_if_tbl.c | 178 + drivers/net/bnxt/tf_core/tf_if_tbl.h | 236 + drivers/net/bnxt/tf_core/tf_msg.c | 1681 ++++---- drivers/net/bnxt/tf_core/tf_msg.h | 409 +- drivers/net/bnxt/tf_core/tf_resources.h | 531 --- drivers/net/bnxt/tf_core/tf_rm.c | 3840 ++++------------- drivers/net/bnxt/tf_core/tf_rm.h | 554 ++- drivers/net/bnxt/tf_core/tf_session.c | 776 ++++ drivers/net/bnxt/tf_core/tf_session.h | 565 ++- drivers/net/bnxt/tf_core/tf_shadow_tbl.c | 63 + drivers/net/bnxt/tf_core/tf_shadow_tbl.h | 240 ++ drivers/net/bnxt/tf_core/tf_shadow_tcam.c | 63 + drivers/net/bnxt/tf_core/tf_shadow_tcam.h | 239 ++ drivers/net/bnxt/tf_core/tf_tbl.c | 1935 ++------- drivers/net/bnxt/tf_core/tf_tbl.h | 469 +- drivers/net/bnxt/tf_core/tf_tcam.c | 430 ++ drivers/net/bnxt/tf_core/tf_tcam.h | 360 ++ drivers/net/bnxt/tf_core/tf_util.c | 176 + drivers/net/bnxt/tf_core/tf_util.h | 98 + drivers/net/bnxt/tf_core/tfp.c | 33 +- drivers/net/bnxt/tf_core/tfp.h | 153 +- drivers/net/bnxt/tf_ulp/Makefile | 2 + drivers/net/bnxt/tf_ulp/bnxt_tf_common.h | 16 + drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 129 +- drivers/net/bnxt/tf_ulp/bnxt_ulp.h | 35 + drivers/net/bnxt/tf_ulp/bnxt_ulp_flow.c | 85 +- drivers/net/bnxt/tf_ulp/ulp_def_rules.c | 385 ++ drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c | 596 +++ drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h | 163 + drivers/net/bnxt/tf_ulp/ulp_flow_db.c | 42 +- drivers/net/bnxt/tf_ulp/ulp_mapper.c | 482 ++- drivers/net/bnxt/tf_ulp/ulp_mapper.h | 6 +- drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c | 10 + drivers/net/bnxt/tf_ulp/ulp_port_db.c | 234 +- drivers/net/bnxt/tf_ulp/ulp_port_db.h | 122 +- drivers/net/bnxt/tf_ulp/ulp_rte_parser.c | 30 +- drivers/net/bnxt/tf_ulp/ulp_template_db_act.c | 433 +- drivers/net/bnxt/tf_ulp/ulp_template_db_class.c | 5217 +++++++++++++++++------ drivers/net/bnxt/tf_ulp/ulp_template_db_enum.h | 537 +-- drivers/net/bnxt/tf_ulp/ulp_template_db_field.h | 463 +- drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c | 84 +- drivers/net/bnxt/tf_ulp/ulp_template_struct.h | 23 +- drivers/net/bnxt/tf_ulp/ulp_utils.c | 2 +- 93 files changed, 28024 insertions(+), 11253 deletions(-) create mode 100644 drivers/net/bnxt/bnxt_reps.c create mode 100644 drivers/net/bnxt/bnxt_reps.h create mode 100644 drivers/net/bnxt/hcapi/Makefile create mode 100644 drivers/net/bnxt/hcapi/cfa_p40_hw.h create mode 100644 drivers/net/bnxt/hcapi/cfa_p40_tbl.h create mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa.h create mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_defs.h create mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_p4.c create mode 100644 drivers/net/bnxt/hcapi/hcapi_cfa_p4.h create mode 100644 drivers/net/bnxt/tf_core/cfa_resource_types.h create mode 100644 drivers/net/bnxt/tf_core/ll.c create mode 100644 drivers/net/bnxt/tf_core/ll.h create mode 100644 drivers/net/bnxt/tf_core/tf_common.h create mode 100644 drivers/net/bnxt/tf_core/tf_device.c create mode 100644 drivers/net/bnxt/tf_core/tf_device.h create mode 100644 drivers/net/bnxt/tf_core/tf_device_p4.c create mode 100644 drivers/net/bnxt/tf_core/tf_device_p4.h delete mode 100644 drivers/net/bnxt/tf_core/tf_em.c create mode 100644 drivers/net/bnxt/tf_core/tf_em_common.c create mode 100644 drivers/net/bnxt/tf_core/tf_em_common.h create mode 100644 drivers/net/bnxt/tf_core/tf_em_host.c create mode 100644 drivers/net/bnxt/tf_core/tf_em_internal.c create mode 100644 drivers/net/bnxt/tf_core/tf_em_system.c create mode 100644 drivers/net/bnxt/tf_core/tf_global_cfg.c create mode 100644 drivers/net/bnxt/tf_core/tf_global_cfg.h create mode 100644 drivers/net/bnxt/tf_core/tf_identifier.c create mode 100644 drivers/net/bnxt/tf_core/tf_identifier.h create mode 100644 drivers/net/bnxt/tf_core/tf_if_tbl.c create mode 100644 drivers/net/bnxt/tf_core/tf_if_tbl.h create mode 100644 drivers/net/bnxt/tf_core/tf_session.c create mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tbl.c create mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tbl.h create mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tcam.c create mode 100644 drivers/net/bnxt/tf_core/tf_shadow_tcam.h create mode 100644 drivers/net/bnxt/tf_core/tf_tcam.c create mode 100644 drivers/net/bnxt/tf_core/tf_tcam.h create mode 100644 drivers/net/bnxt/tf_core/tf_util.c create mode 100644 drivers/net/bnxt/tf_core/tf_util.h create mode 100644 drivers/net/bnxt/tf_ulp/ulp_def_rules.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.c create mode 100644 drivers/net/bnxt/tf_ulp/ulp_fc_mgr.h