From: Peter Spreadborough Date: Fri, 17 Jul 2020 14:14:38 +0000 (+0530) Subject: net/bnxt: modify resource management scheme X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8cc50a63800278ba53c67437c9d19649e17e8c6c;p=dpdk.git net/bnxt: modify resource management scheme 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 --- diff --git a/drivers/net/bnxt/tf_core/cfa_resource_types.h b/drivers/net/bnxt/tf_core/cfa_resource_types.h index 6d6651fdeb..45b26b2369 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 758685e469..8fa734acea 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 7fabb4ba8d..06c3ecf75a 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 aeee3b3068..bf6a6a3631 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 6b0a403c97..c4ce003296 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 feac30af27..1fd5ab4f47 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 9a27cbf041..24bde57a6d 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 },