From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3FEB1A0527; Sat, 18 Jul 2020 09:25:40 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 603661BFAD; Sat, 18 Jul 2020 09:25:32 +0200 (CEST) Received: from mail-wm1-f98.google.com (mail-wm1-f98.google.com [209.85.128.98]) by dpdk.org (Postfix) with ESMTP id 446261BFA6 for ; Sat, 18 Jul 2020 09:25:30 +0200 (CEST) Received: by mail-wm1-f98.google.com with SMTP id a6so8436759wmm.0 for ; Sat, 18 Jul 2020 00:25:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F/MXsjiLu/naNiVls/fG3wF7JPEIaHftmdoLN28ZDvE=; b=e7BQVW64b7qwmWfLWxYvMfxrkumy7hppESsEDnmfWeNUFPgaD10xz3Di4/qDzr21na X9mehP6/L+vvkYk5JcE9GMS7hVP+W1u6Wt0Dy3Mwn2zz7eKY08J6G0Z5NldJlwXRyTNE Y/zF9br5VQhXVO8RBjEESd7eE1NZAv/TTo/6U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=F/MXsjiLu/naNiVls/fG3wF7JPEIaHftmdoLN28ZDvE=; b=Rrgv2J12/XOf17VAFLoVESAw4gKIfAojlfdfPWSWHYi6LZ6+s23X3ovNZJ1ZWlBAFX 4vL5Uzbpytm3ZV+A//iyh6YRhfH9/MlKftIY7nqaXA7F2hBM5TG718hhAe9eYFMdHj92 ZSDsB7TNKw//qUJUC7na1kQKAkicY5yzUEPwPYxlXz9QqNPp758skcOaQZBWOiO5gpSt 0gIqw7gBPqXQU35rFe+XEfbAWwqzs+2RqNN67DV12qc9CD5MQj8fO9wPnkKfjhKngFZC uOhyHUc7U0716nFsA6wATnHM6aANzGNXY28glOBOQ7uZNrpwgrIwCYa981Cf4u1498xu U/eQ== X-Gm-Message-State: AOAM531ZasQB+vhToTvCyAvN6iDRKk60l32WNwLoVPgvXNiGq73Jxykp 0WBUoFRGECLl/o2uk90v3pp5vSWf4Px5Sb+KsZkn/iPHFELbByzskcY6SWYJGTM1J0yfOBg2e1t 2yDp73DDp611JFkGdrvr91fTR3x65XiW3KQqZN1UcWVe4eMjW7RYd+ojmqb1lCZIYRkC8ry38gu Nl7A== X-Google-Smtp-Source: ABdhPJwI2TsFWGXkV6luhNUTkyM2/KHJW4iWKjrhLpPIehb2b8wzA4ug8ctT88EI2mdRgWjZtdkOcyxLHdr3 X-Received: by 2002:a1c:408b:: with SMTP id n133mr12573368wma.88.1595057129558; Sat, 18 Jul 2020 00:25:29 -0700 (PDT) Received: from localhost.localdomain ([192.19.223.252]) by smtp-relay.gmail.com with ESMTPS id g14sm34554wrb.16.2020.07.18.00.25.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 18 Jul 2020 00:25:29 -0700 (PDT) X-Relaying-Domain: broadcom.com From: Ajit Khaparde To: dev@dpdk.org Cc: Peter Spreadborough , Somnath Kotur , Farah Smith Date: Sat, 18 Jul 2020 00:25:02 -0700 Message-Id: <20200718072515.62969-2-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) In-Reply-To: <20200718072515.62969-1-ajit.khaparde@broadcom.com> References: <20200717141451.11705-1-somnath.kotur@broadcom.com> <20200718072515.62969-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v3 01/14] net/bnxt: modify resource management scheme 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" From: Peter Spreadborough Add support for new resource manager to manage CFA resources. TCAM is split into high and low regions now and CFA resource types are being updated accordingly. Signed-off-by: Peter Spreadborough Signed-off-by: Somnath Kotur Reviewed-by: Farah Smith Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/tf_core/cfa_resource_types.h | 194 +++++++++--------- drivers/net/bnxt/tf_core/tf_core.h | 12 +- drivers/net/bnxt/tf_core/tf_device_p4.h | 14 +- drivers/net/bnxt/tf_core/tf_util.c | 12 +- drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 10 +- .../net/bnxt/tf_ulp/ulp_template_db_class.c | 38 ++-- drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c | 4 +- 7 files changed, 152 insertions(+), 132 deletions(-) diff --git a/drivers/net/bnxt/tf_core/cfa_resource_types.h b/drivers/net/bnxt/tf_core/cfa_resource_types.h index 6d6651fde..45b26b236 100644 --- a/drivers/net/bnxt/tf_core/cfa_resource_types.h +++ b/drivers/net/bnxt/tf_core/cfa_resource_types.h @@ -18,53 +18,57 @@ */ #define CFA_RESOURCE_TYPE_INVALID 65535 -/* L2 Context TCAM */ -#define CFA_RESOURCE_TYPE_P59_L2_CTXT_TCAM 0x0UL -/* L2 Context REMAP */ -#define CFA_RESOURCE_TYPE_P59_L2_CTXT_REMAP 0x1UL +/* L2 Context TCAM High priority entries */ +#define CFA_RESOURCE_TYPE_P59_L2_CTXT_TCAM_HIGH 0x0UL +/* L2 Context TCAM Low priority entries */ +#define CFA_RESOURCE_TYPE_P59_L2_CTXT_TCAM_LOW 0x1UL +/* L2 Context REMAP high priority entries */ +#define CFA_RESOURCE_TYPE_P59_L2_CTXT_REMAP_HIGH 0x2UL +/* L2 Context REMAP Low priority entries */ +#define CFA_RESOURCE_TYPE_P59_L2_CTXT_REMAP_LOW 0x3UL /* Profile Func */ -#define CFA_RESOURCE_TYPE_P59_PROF_FUNC 0x2UL +#define CFA_RESOURCE_TYPE_P59_PROF_FUNC 0x4UL /* Profile TCAM */ -#define CFA_RESOURCE_TYPE_P59_PROF_TCAM 0x3UL +#define CFA_RESOURCE_TYPE_P59_PROF_TCAM 0x5UL /* Exact Match Profile Id */ -#define CFA_RESOURCE_TYPE_P59_EM_PROF_ID 0x4UL +#define CFA_RESOURCE_TYPE_P59_EM_PROF_ID 0x6UL /* Wildcard TCAM Profile Id */ -#define CFA_RESOURCE_TYPE_P59_WC_TCAM_PROF_ID 0x5UL +#define CFA_RESOURCE_TYPE_P59_WC_TCAM_PROF_ID 0x7UL /* Wildcard TCAM */ -#define CFA_RESOURCE_TYPE_P59_WC_TCAM 0x6UL +#define CFA_RESOURCE_TYPE_P59_WC_TCAM 0x8UL /* Meter Profile */ -#define CFA_RESOURCE_TYPE_P59_METER_PROF 0x7UL +#define CFA_RESOURCE_TYPE_P59_METER_PROF 0x9UL /* Meter */ -#define CFA_RESOURCE_TYPE_P59_METER 0x8UL +#define CFA_RESOURCE_TYPE_P59_METER 0xaUL /* Meter */ -#define CFA_RESOURCE_TYPE_P59_MIRROR 0x9UL +#define CFA_RESOURCE_TYPE_P59_MIRROR 0xbUL /* Source Properties TCAM */ -#define CFA_RESOURCE_TYPE_P59_SP_TCAM 0xaUL +#define CFA_RESOURCE_TYPE_P59_SP_TCAM 0xcUL /* Exact Match Flexible Key Builder */ -#define CFA_RESOURCE_TYPE_P59_EM_FKB 0xbUL +#define CFA_RESOURCE_TYPE_P59_EM_FKB 0xdUL /* Wildcard Flexible Key Builder */ -#define CFA_RESOURCE_TYPE_P59_WC_FKB 0xcUL +#define CFA_RESOURCE_TYPE_P59_WC_FKB 0xeUL /* Table Scope */ -#define CFA_RESOURCE_TYPE_P59_TBL_SCOPE 0xdUL +#define CFA_RESOURCE_TYPE_P59_TBL_SCOPE 0xfUL /* L2 Func */ -#define CFA_RESOURCE_TYPE_P59_L2_FUNC 0xeUL +#define CFA_RESOURCE_TYPE_P59_L2_FUNC 0x10UL /* EPOCH 0 */ -#define CFA_RESOURCE_TYPE_P59_EPOCH0 0xfUL +#define CFA_RESOURCE_TYPE_P59_EPOCH0 0x11UL /* EPOCH 1 */ -#define CFA_RESOURCE_TYPE_P59_EPOCH1 0x10UL +#define CFA_RESOURCE_TYPE_P59_EPOCH1 0x12UL /* Metadata */ -#define CFA_RESOURCE_TYPE_P59_METADATA 0x11UL +#define CFA_RESOURCE_TYPE_P59_METADATA 0x13UL /* Connection Tracking Rule TCAM */ -#define CFA_RESOURCE_TYPE_P59_CT_RULE_TCAM 0x12UL +#define CFA_RESOURCE_TYPE_P59_CT_RULE_TCAM 0x14UL /* Range Profile */ -#define CFA_RESOURCE_TYPE_P59_RANGE_PROF 0x13UL +#define CFA_RESOURCE_TYPE_P59_RANGE_PROF 0x15UL /* Range */ -#define CFA_RESOURCE_TYPE_P59_RANGE 0x14UL +#define CFA_RESOURCE_TYPE_P59_RANGE 0x16UL /* Link Aggrigation */ -#define CFA_RESOURCE_TYPE_P59_LAG 0x15UL +#define CFA_RESOURCE_TYPE_P59_LAG 0x17UL /* VEB TCAM */ -#define CFA_RESOURCE_TYPE_P59_VEB_TCAM 0x16UL -#define CFA_RESOURCE_TYPE_P59_LAST CFA_RESOURCE_TYPE_P59_VEB_TCAM +#define CFA_RESOURCE_TYPE_P59_VEB_TCAM 0x18UL +#define CFA_RESOURCE_TYPE_P59_LAST CFA_RESOURCE_TYPE_P59_VEB_TCAM /* Multicast Group */ @@ -81,40 +85,40 @@ #define CFA_RESOURCE_TYPE_P58_SP_MAC_IPV4 0x5UL /* Source Property MAC and IPv6 */ #define CFA_RESOURCE_TYPE_P58_SP_MAC_IPV6 0x6UL -/* Network Address Translation Source Port */ -#define CFA_RESOURCE_TYPE_P58_NAT_SPORT 0x7UL -/* Network Address Translation Destination Port */ -#define CFA_RESOURCE_TYPE_P58_NAT_DPORT 0x8UL -/* Network Address Translation Source IPv4 address */ -#define CFA_RESOURCE_TYPE_P58_NAT_S_IPV4 0x9UL -/* Network Address Translation Destination IPv4 address */ -#define CFA_RESOURCE_TYPE_P58_NAT_D_IPV4 0xaUL +/* Network Address Translation Port */ +#define CFA_RESOURCE_TYPE_P58_NAT_PORT 0x7UL +/* Network Address Translation IPv4 address */ +#define CFA_RESOURCE_TYPE_P58_NAT_IPV4 0x8UL /* Meter */ -#define CFA_RESOURCE_TYPE_P58_METER 0xbUL +#define CFA_RESOURCE_TYPE_P58_METER 0x9UL /* Flow State */ -#define CFA_RESOURCE_TYPE_P58_FLOW_STATE 0xcUL +#define CFA_RESOURCE_TYPE_P58_FLOW_STATE 0xaUL /* Full Action Records */ -#define CFA_RESOURCE_TYPE_P58_FULL_ACTION 0xdUL +#define CFA_RESOURCE_TYPE_P58_FULL_ACTION 0xbUL /* Action Record Format 0 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_0_ACTION 0xeUL +#define CFA_RESOURCE_TYPE_P58_FORMAT_0_ACTION 0xcUL /* Action Record Ext Format 0 */ -#define CFA_RESOURCE_TYPE_P58_EXT_FORMAT_0_ACTION 0xfUL +#define CFA_RESOURCE_TYPE_P58_EXT_FORMAT_0_ACTION 0xdUL /* Action Record Format 1 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_1_ACTION 0x10UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_1_ACTION 0xeUL /* Action Record Format 2 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_2_ACTION 0x11UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_2_ACTION 0xfUL /* Action Record Format 3 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_3_ACTION 0x12UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_3_ACTION 0x10UL /* Action Record Format 4 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_4_ACTION 0x13UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_4_ACTION 0x11UL /* Action Record Format 5 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_5_ACTION 0x14UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_5_ACTION 0x12UL /* Action Record Format 6 */ -#define CFA_RESOURCE_TYPE_P58_FORMAT_6_ACTION 0x15UL -/* L2 Context TCAM */ -#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM 0x16UL -/* L2 Context REMAP */ -#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP 0x17UL +#define CFA_RESOURCE_TYPE_P58_FORMAT_6_ACTION 0x13UL +/* L2 Context TCAM High priority entries */ +#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_HIGH 0x14UL +/* L2 Context TCAM Low priority entries */ +#define CFA_RESOURCE_TYPE_P58_L2_CTXT_TCAM_LOW 0x15UL +/* L2 Context REMAP high priority entries */ +#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_HIGH 0x16UL +/* L2 Context REMAP Low priority entries */ +#define CFA_RESOURCE_TYPE_P58_L2_CTXT_REMAP_LOW 0x17UL /* Profile Func */ #define CFA_RESOURCE_TYPE_P58_PROF_FUNC 0x18UL /* Profile TCAM */ @@ -158,40 +162,40 @@ #define CFA_RESOURCE_TYPE_P45_SP_MAC_IPV6 0x6UL /* 64B Counters */ #define CFA_RESOURCE_TYPE_P45_COUNTER_64B 0x7UL -/* Network Address Translation Source Port */ -#define CFA_RESOURCE_TYPE_P45_NAT_SPORT 0x8UL -/* Network Address Translation Destination Port */ -#define CFA_RESOURCE_TYPE_P45_NAT_DPORT 0x9UL -/* Network Address Translation Source IPv4 address */ -#define CFA_RESOURCE_TYPE_P45_NAT_S_IPV4 0xaUL -/* Network Address Translation Destination IPv4 address */ -#define CFA_RESOURCE_TYPE_P45_NAT_D_IPV4 0xbUL +/* Network Address Translation Port */ +#define CFA_RESOURCE_TYPE_P45_NAT_PORT 0x8UL +/* Network Address Translation IPv4 address */ +#define CFA_RESOURCE_TYPE_P45_NAT_IPV4 0x9UL /* Meter */ -#define CFA_RESOURCE_TYPE_P45_METER 0xcUL +#define CFA_RESOURCE_TYPE_P45_METER 0xaUL /* Flow State */ -#define CFA_RESOURCE_TYPE_P45_FLOW_STATE 0xdUL +#define CFA_RESOURCE_TYPE_P45_FLOW_STATE 0xbUL /* Full Action Records */ -#define CFA_RESOURCE_TYPE_P45_FULL_ACTION 0xeUL +#define CFA_RESOURCE_TYPE_P45_FULL_ACTION 0xcUL /* Action Record Format 0 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_0_ACTION 0xfUL +#define CFA_RESOURCE_TYPE_P45_FORMAT_0_ACTION 0xdUL /* Action Record Ext Format 0 */ -#define CFA_RESOURCE_TYPE_P45_EXT_FORMAT_0_ACTION 0x10UL +#define CFA_RESOURCE_TYPE_P45_EXT_FORMAT_0_ACTION 0xeUL /* Action Record Format 1 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_1_ACTION 0x11UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_1_ACTION 0xfUL /* Action Record Format 2 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_2_ACTION 0x12UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_2_ACTION 0x10UL /* Action Record Format 3 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_3_ACTION 0x13UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_3_ACTION 0x11UL /* Action Record Format 4 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_4_ACTION 0x14UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_4_ACTION 0x12UL /* Action Record Format 5 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_5_ACTION 0x15UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_5_ACTION 0x13UL /* Action Record Format 6 */ -#define CFA_RESOURCE_TYPE_P45_FORMAT_6_ACTION 0x16UL -/* L2 Context TCAM */ -#define CFA_RESOURCE_TYPE_P45_L2_CTXT_TCAM 0x17UL -/* L2 Context REMAP */ -#define CFA_RESOURCE_TYPE_P45_L2_CTXT_REMAP 0x18UL +#define CFA_RESOURCE_TYPE_P45_FORMAT_6_ACTION 0x14UL +/* L2 Context TCAM High priority entries */ +#define CFA_RESOURCE_TYPE_P45_L2_CTXT_TCAM_HIGH 0x15UL +/* L2 Context TCAM Low priority entries */ +#define CFA_RESOURCE_TYPE_P45_L2_CTXT_TCAM_LOW 0x16UL +/* L2 Context REMAP high priority entries */ +#define CFA_RESOURCE_TYPE_P45_L2_CTXT_REMAP_HIGH 0x17UL +/* L2 Context REMAP Low priority entries */ +#define CFA_RESOURCE_TYPE_P45_L2_CTXT_REMAP_LOW 0x18UL /* Profile Func */ #define CFA_RESOURCE_TYPE_P45_PROF_FUNC 0x19UL /* Profile TCAM */ @@ -233,40 +237,40 @@ #define CFA_RESOURCE_TYPE_P4_SP_MAC_IPV6 0x6UL /* 64B Counters */ #define CFA_RESOURCE_TYPE_P4_COUNTER_64B 0x7UL -/* Network Address Translation Source Port */ -#define CFA_RESOURCE_TYPE_P4_NAT_SPORT 0x8UL -/* Network Address Translation Destination Port */ -#define CFA_RESOURCE_TYPE_P4_NAT_DPORT 0x9UL -/* Network Address Translation Source IPv4 address */ -#define CFA_RESOURCE_TYPE_P4_NAT_S_IPV4 0xaUL -/* Network Address Translation Destination IPv4 address */ -#define CFA_RESOURCE_TYPE_P4_NAT_D_IPV4 0xbUL +/* Network Address Translation Port */ +#define CFA_RESOURCE_TYPE_P4_NAT_PORT 0x8UL +/* Network Address Translation IPv4 address */ +#define CFA_RESOURCE_TYPE_P4_NAT_IPV4 0x9UL /* Meter */ -#define CFA_RESOURCE_TYPE_P4_METER 0xcUL +#define CFA_RESOURCE_TYPE_P4_METER 0xaUL /* Flow State */ -#define CFA_RESOURCE_TYPE_P4_FLOW_STATE 0xdUL +#define CFA_RESOURCE_TYPE_P4_FLOW_STATE 0xbUL /* Full Action Records */ -#define CFA_RESOURCE_TYPE_P4_FULL_ACTION 0xeUL +#define CFA_RESOURCE_TYPE_P4_FULL_ACTION 0xcUL /* Action Record Format 0 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_0_ACTION 0xfUL +#define CFA_RESOURCE_TYPE_P4_FORMAT_0_ACTION 0xdUL /* Action Record Ext Format 0 */ -#define CFA_RESOURCE_TYPE_P4_EXT_FORMAT_0_ACTION 0x10UL +#define CFA_RESOURCE_TYPE_P4_EXT_FORMAT_0_ACTION 0xeUL /* Action Record Format 1 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_1_ACTION 0x11UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_1_ACTION 0xfUL /* Action Record Format 2 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_2_ACTION 0x12UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_2_ACTION 0x10UL /* Action Record Format 3 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_3_ACTION 0x13UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_3_ACTION 0x11UL /* Action Record Format 4 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_4_ACTION 0x14UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_4_ACTION 0x12UL /* Action Record Format 5 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_5_ACTION 0x15UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_5_ACTION 0x13UL /* Action Record Format 6 */ -#define CFA_RESOURCE_TYPE_P4_FORMAT_6_ACTION 0x16UL -/* L2 Context TCAM */ -#define CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM 0x17UL -/* L2 Context REMAP */ -#define CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP 0x18UL +#define CFA_RESOURCE_TYPE_P4_FORMAT_6_ACTION 0x14UL +/* L2 Context TCAM High priority entries */ +#define CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM_HIGH 0x15UL +/* L2 Context TCAM Low priority entries */ +#define CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM_LOW 0x16UL +/* L2 Context REMAP high priority entries */ +#define CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP_HIGH 0x17UL +/* L2 Context REMAP Low priority entries */ +#define CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP_LOW 0x18UL /* Profile Func */ #define CFA_RESOURCE_TYPE_P4_PROF_FUNC 0x19UL /* Profile TCAM */ diff --git a/drivers/net/bnxt/tf_core/tf_core.h b/drivers/net/bnxt/tf_core/tf_core.h index 758685e46..8fa734ace 100644 --- a/drivers/net/bnxt/tf_core/tf_core.h +++ b/drivers/net/bnxt/tf_core/tf_core.h @@ -162,7 +162,13 @@ enum tf_identifier_type { * and can be used in WC TCAM or EM keys to virtualize further * lookups. */ - TF_IDENT_TYPE_L2_CTXT, + TF_IDENT_TYPE_L2_CTXT_HIGH, + /** + * The L2 Context is returned from the L2 Ctxt TCAM lookup + * and can be used in WC TCAM or EM keys to virtualize further + * lookups. + */ + TF_IDENT_TYPE_L2_CTXT_LOW, /** * The WC profile func is returned from the L2 Ctxt TCAM lookup * to enable virtualization of the profile TCAM. @@ -270,7 +276,9 @@ enum tf_tbl_type { */ enum tf_tcam_tbl_type { /** L2 Context TCAM */ - TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, + /** L2 Context TCAM */ + TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW, /** Profile TCAM */ TF_TCAM_TBL_TYPE_PROF_TCAM, /** Wildcard TCAM */ diff --git a/drivers/net/bnxt/tf_core/tf_device_p4.h b/drivers/net/bnxt/tf_core/tf_device_p4.h index 7fabb4ba8..06c3ecf75 100644 --- a/drivers/net/bnxt/tf_core/tf_device_p4.h +++ b/drivers/net/bnxt/tf_core/tf_device_p4.h @@ -14,7 +14,8 @@ #include "tf_global_cfg.h" struct tf_rm_element_cfg tf_ident_p4[TF_IDENT_TYPE_MAX] = { - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP_HIGH }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_REMAP_LOW }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_PROF_FUNC }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_WC_TCAM_PROF_ID }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_EM_PROF_ID }, @@ -23,7 +24,8 @@ struct tf_rm_element_cfg tf_ident_p4[TF_IDENT_TYPE_MAX] = { }; struct tf_rm_element_cfg tf_tcam_p4[TF_TCAM_TBL_TYPE_MAX] = { - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM_HIGH }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_L2_CTXT_TCAM_LOW }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_PROF_TCAM }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_WC_TCAM }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_SP_TCAM }, @@ -45,10 +47,10 @@ struct tf_rm_element_cfg tf_tbl_p4[TF_TBL_TYPE_MAX] = { { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_SP_MAC_IPV4 }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_SP_MAC_IPV6 }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_COUNTER_64B }, - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_SPORT }, - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_DPORT }, - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_S_IPV4 }, - { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_D_IPV4 }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_PORT }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_PORT }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_IPV4 }, + { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_NAT_IPV4 }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_METER_PROF }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_METER }, { TF_RM_ELEM_CFG_HCAPI_BA, CFA_RESOURCE_TYPE_P4_MIRROR }, diff --git a/drivers/net/bnxt/tf_core/tf_util.c b/drivers/net/bnxt/tf_core/tf_util.c index aeee3b306..bf6a6a363 100644 --- a/drivers/net/bnxt/tf_core/tf_util.c +++ b/drivers/net/bnxt/tf_core/tf_util.c @@ -24,8 +24,10 @@ const char * tf_ident_2_str(enum tf_identifier_type id_type) { switch (id_type) { - case TF_IDENT_TYPE_L2_CTXT: - return "l2_ctxt_remap"; + case TF_IDENT_TYPE_L2_CTXT_HIGH: + return "l2_ctxt_remap_high"; + case TF_IDENT_TYPE_L2_CTXT_LOW: + return "l2_ctxt_remap_low"; case TF_IDENT_TYPE_PROF_FUNC: return "prof_func"; case TF_IDENT_TYPE_WC_PROF: @@ -43,8 +45,10 @@ const char * tf_tcam_tbl_2_str(enum tf_tcam_tbl_type tcam_type) { switch (tcam_type) { - case TF_TCAM_TBL_TYPE_L2_CTXT_TCAM: - return "l2_ctxt_tcam"; + case TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH: + return "l2_ctxt_tcam_high"; + case TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW: + return "l2_ctxt_tcam_low"; case TF_TCAM_TBL_TYPE_PROF_TCAM: return "prof_tcam"; case TF_TCAM_TBL_TYPE_WC_TCAM: diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c index 6b0a403c9..c4ce00329 100644 --- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c +++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c @@ -86,7 +86,7 @@ ulp_ctx_session_open(struct bnxt *bp, resources = ¶ms.resources; /** RX **/ /* Identifiers */ - resources->ident_cnt[TF_DIR_RX].cnt[TF_IDENT_TYPE_L2_CTXT] = 16; + resources->ident_cnt[TF_DIR_RX].cnt[TF_IDENT_TYPE_L2_CTXT_HIGH] = 16; resources->ident_cnt[TF_DIR_RX].cnt[TF_IDENT_TYPE_WC_PROF] = 8; resources->ident_cnt[TF_DIR_RX].cnt[TF_IDENT_TYPE_PROF_FUNC] = 8; resources->ident_cnt[TF_DIR_RX].cnt[TF_IDENT_TYPE_EM_PROF] = 8; @@ -96,7 +96,8 @@ ulp_ctx_session_open(struct bnxt *bp, resources->tbl_cnt[TF_DIR_RX].cnt[TF_TBL_TYPE_ACT_STATS_64] = 720; /* TCAMs */ - resources->tcam_cnt[TF_DIR_RX].cnt[TF_TCAM_TBL_TYPE_L2_CTXT_TCAM] = 16; + resources->tcam_cnt[TF_DIR_RX].cnt[TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH] = + 16; resources->tcam_cnt[TF_DIR_RX].cnt[TF_TCAM_TBL_TYPE_PROF_TCAM] = 8; resources->tcam_cnt[TF_DIR_RX].cnt[TF_TCAM_TBL_TYPE_WC_TCAM] = 416; @@ -108,7 +109,7 @@ ulp_ctx_session_open(struct bnxt *bp, /** TX **/ /* Identifiers */ - resources->ident_cnt[TF_DIR_TX].cnt[TF_IDENT_TYPE_L2_CTXT] = 8; + resources->ident_cnt[TF_DIR_TX].cnt[TF_IDENT_TYPE_L2_CTXT_HIGH] = 8; resources->ident_cnt[TF_DIR_TX].cnt[TF_IDENT_TYPE_WC_PROF] = 8; resources->ident_cnt[TF_DIR_TX].cnt[TF_IDENT_TYPE_PROF_FUNC] = 8; resources->ident_cnt[TF_DIR_TX].cnt[TF_IDENT_TYPE_EM_PROF] = 8; @@ -122,7 +123,8 @@ ulp_ctx_session_open(struct bnxt *bp, resources->tbl_cnt[TF_DIR_TX].cnt[TF_TBL_TYPE_ACT_ENCAP_16B] = 16; /* TCAMs */ - resources->tcam_cnt[TF_DIR_TX].cnt[TF_TCAM_TBL_TYPE_L2_CTXT_TCAM] = 8; + resources->tcam_cnt[TF_DIR_TX].cnt[TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH] = + 8; resources->tcam_cnt[TF_DIR_TX].cnt[TF_TCAM_TBL_TYPE_PROF_TCAM] = 8; resources->tcam_cnt[TF_DIR_TX].cnt[TF_TCAM_TBL_TYPE_WC_TCAM] = 8; diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_class.c b/drivers/net/bnxt/tf_ulp/ulp_template_db_class.c index feac30af2..1fd5ab4f4 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_template_db_class.c +++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_class.c @@ -162,7 +162,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -217,7 +217,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_TX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -264,7 +264,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_TX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -297,7 +297,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -316,7 +316,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -335,7 +335,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_TX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -390,7 +390,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -437,7 +437,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_TX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -470,7 +470,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -489,7 +489,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -522,7 +522,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .resource_sub_type = BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM, .direction = TF_DIR_RX, @@ -539,7 +539,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -611,7 +611,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .resource_sub_type = BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM, .direction = TF_DIR_RX, @@ -628,7 +628,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_RX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -700,7 +700,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .resource_sub_type = BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM, .direction = TF_DIR_TX, @@ -717,7 +717,7 @@ struct bnxt_ulp_mapper_tbl_info ulp_class_tbl_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE, - .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM, + .resource_type = TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH, .direction = TF_DIR_TX, .priority = BNXT_ULP_PRIORITY_LEVEL_0, .srch_b4_alloc = BNXT_ULP_SEARCH_BEFORE_ALLOC_NO, @@ -5295,7 +5295,7 @@ struct bnxt_ulp_mapper_result_field_info ulp_class_result_field_list[] = { struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = { { .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER, - .ident_type = TF_IDENT_TYPE_L2_CTXT, + .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH, .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0, .ident_bit_size = 10, .ident_bit_pos = 0 @@ -5309,7 +5309,7 @@ struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER, - .ident_type = TF_IDENT_TYPE_L2_CTXT, + .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH, .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0, .ident_bit_size = 10, .ident_bit_pos = 0 @@ -5323,7 +5323,7 @@ struct bnxt_ulp_mapper_ident_info ulp_ident_list[] = { }, { .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER, - .ident_type = TF_IDENT_TYPE_L2_CTXT, + .ident_type = TF_IDENT_TYPE_L2_CTXT_HIGH, .regfile_idx = BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0, .ident_bit_size = 10, .ident_bit_pos = 0 diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c index 9a27cbf04..24bde57a6 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c +++ b/drivers/net/bnxt/tf_ulp/ulp_template_db_tbl.c @@ -345,13 +345,13 @@ struct bnxt_ulp_glb_resource_info ulp_glb_resource_tbl[] = { }, [2] = { .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER, - .resource_type = TF_IDENT_TYPE_L2_CTXT, + .resource_type = TF_IDENT_TYPE_L2_CTXT_HIGH, .glb_regfile_index = BNXT_ULP_GLB_REGFILE_INDEX_GLB_L2_CNTXT_ID, .direction = TF_DIR_RX }, [3] = { .resource_func = BNXT_ULP_RESOURCE_FUNC_IDENTIFIER, - .resource_type = TF_IDENT_TYPE_L2_CTXT, + .resource_type = TF_IDENT_TYPE_L2_CTXT_HIGH, .glb_regfile_index = BNXT_ULP_GLB_REGFILE_INDEX_GLB_L2_CNTXT_ID, .direction = TF_DIR_TX }, -- 2.21.1 (Apple Git-122.3)