[01/14] net/bnxt: changes to support new RM and multi-region

Message ID 20200717141451.11705-2-somnath.kotur@broadcom.com (mailing list archive)
State Superseded, archived
Delegated to: Ajit Khaparde
Headers
Series bnxt patches |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Somnath Kotur July 17, 2020, 2:14 p.m. UTC
  From: Peter Spreadborough <peter.spreadborough@broadcom.com>

- Updated CFA resource types
- Updated references
- Add High/low

Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Reviewed-by: Farah Smith <farah.smith@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 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 +-
 drivers/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(-)
  

Comments

Thomas Monjalon July 17, 2020, 2:34 p.m. UTC | #1
17/07/2020 16:14, Somnath Kotur:
> From: Peter Spreadborough <peter.spreadborough@broadcom.com>
> 
> - Updated CFA resource types
> - Updated references
> - Add High/low
> 
> Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
> Reviewed-by: Farah Smith <farah.smith@broadcom.com>
> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>

Regarding the title, what RM means? Resource Manager?
It is not explained in the commit log.
By the way, the commit log is very cryptic.

The first word of the title is "changes",
which is useful because some patches may have no change at all :)
Seriously, the first word must be an infinitive (and meaningful) verb.
In general, please read the contribution guide.
  

Patch

diff --git a/drivers/net/bnxt/tf_core/cfa_resource_types.h b/drivers/net/bnxt/tf_core/cfa_resource_types.h
index 6d6651f..45b26b2 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 758685e..8fa734a 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 7fabb4b..06c3ecf 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 aeee3b3..bf6a6a3 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 6b0a403..c4ce003 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 = &params.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 feac30a..1fd5ab4 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 9a27cbf..24bde57 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
 	},