* [dpdk-dev] [PATCH 01/14] net/bnxt: changes to support new RM and multi-region
2020-07-17 14:10 [dpdk-dev] [PATCH 00/14] bnxt patches Somnath Kotur
@ 2020-07-17 14:11 ` Somnath Kotur
2020-07-17 14:11 ` [dpdk-dev] [PATCH 02/14] net/bnxt: initialize table scope rm parameters Somnath Kotur
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Somnath Kotur @ 2020-07-17 14:11 UTC (permalink / raw)
To: dev; +Cc: ferruh.yigit
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(-)
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 = ¶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 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
},
--
2.7.4
^ permalink raw reply [flat|nested] 8+ messages in thread