net/bnxt: support WC TCAM management
[dpdk.git] / drivers / net / bnxt / tf_core / tf_util.c
index a901054..e712816 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2019 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
  * All rights reserved.
  */
 
@@ -7,8 +7,8 @@
 
 #include "tf_util.h"
 
-const char
-*tf_dir_2_str(enum tf_dir dir)
+const char *
+tf_dir_2_str(enum tf_dir dir)
 {
        switch (dir) {
        case TF_DIR_RX:
@@ -20,12 +20,14 @@ const char
        }
 }
 
-const char
-*tf_ident_2_str(enum tf_identifier_type id_type)
+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:
@@ -39,12 +41,14 @@ const char
        }
 }
 
-const char
-*tf_tcam_tbl_2_str(enum tf_tcam_tbl_type tcam_type)
+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:
@@ -55,13 +59,19 @@ const char
                return "sp_tcam";
        case TF_TCAM_TBL_TYPE_CT_RULE_TCAM:
                return "ct_rule_tcam";
+#ifdef TF_TCAM_SHARED
+       case TF_TCAM_TBL_TYPE_WC_TCAM_HIGH:
+               return "wc_tcam_hi";
+       case TF_TCAM_TBL_TYPE_WC_TCAM_LOW:
+               return "wc_tcam_lo";
+#endif
        default:
                return "Invalid tcam table type";
        }
 }
 
-const char
-*tf_tbl_type_2_str(enum tf_tbl_type tbl_type)
+const char *
+tf_tbl_type_2_str(enum tf_tbl_type tbl_type)
 {
        switch (tbl_type) {
        case TF_TBL_TYPE_FULL_ACT_RECORD:
@@ -84,18 +94,8 @@ const char
                return "Source Properties SMAC IPv6";
        case TF_TBL_TYPE_ACT_STATS_64:
                return "Stats 64B";
-       case TF_TBL_TYPE_ACT_MODIFY_SPORT:
-               return "NAT Source Port";
-       case TF_TBL_TYPE_ACT_MODIFY_DPORT:
-               return "NAT Destination Port";
-       case TF_TBL_TYPE_ACT_MODIFY_IPV4_SRC:
-               return "NAT IPv4 Source";
-       case TF_TBL_TYPE_ACT_MODIFY_IPV4_DEST:
-               return "NAT IPv4 Destination";
-       case TF_TBL_TYPE_ACT_MODIFY_IPV6_SRC:
-               return "NAT IPv6 Source";
-       case TF_TBL_TYPE_ACT_MODIFY_IPV6_DEST:
-               return "NAT IPv6 Destination";
+       case TF_TBL_TYPE_ACT_MODIFY_IPV4:
+               return "Modify IPv4";
        case TF_TBL_TYPE_METER_PROF:
                return "Meter Profile";
        case TF_TBL_TYPE_METER_INST:
@@ -104,22 +104,8 @@ const char
                return "Mirror";
        case TF_TBL_TYPE_UPAR:
                return "UPAR";
-       case TF_TBL_TYPE_EPOCH0:
-               return "EPOCH0";
-       case TF_TBL_TYPE_EPOCH1:
-               return "EPOCH1";
        case TF_TBL_TYPE_METADATA:
                return "Metadata";
-       case TF_TBL_TYPE_CT_STATE:
-               return "Connection State";
-       case TF_TBL_TYPE_RANGE_PROF:
-               return "Range Profile";
-       case TF_TBL_TYPE_RANGE_ENTRY:
-               return "Range";
-       case TF_TBL_TYPE_LAG:
-               return "Link Aggregation";
-       case TF_TBL_TYPE_VNIC_SVIF:
-               return "VNIC SVIF";
        case TF_TBL_TYPE_EM_FKB:
                return "EM Flexible Key Builder";
        case TF_TBL_TYPE_WC_FKB:
@@ -131,8 +117,8 @@ const char
        }
 }
 
-const char
-*tf_em_tbl_type_2_str(enum tf_em_tbl_type em_type)
+const char *
+tf_em_tbl_type_2_str(enum tf_em_tbl_type em_type)
 {
        switch (em_type) {
        case TF_EM_TBL_TYPE_EM_RECORD:
@@ -143,3 +129,38 @@ const char
                return "Invalid EM type";
        }
 }
+
+const char *
+tf_module_subtype_2_str(enum tf_module_type module,
+                       uint16_t subtype)
+{
+       switch (module) {
+       case TF_MODULE_TYPE_IDENTIFIER:
+               return tf_ident_2_str(subtype);
+       case TF_MODULE_TYPE_TABLE:
+               return tf_tbl_type_2_str(subtype);
+       case TF_MODULE_TYPE_TCAM:
+               return tf_tcam_tbl_2_str(subtype);
+       case TF_MODULE_TYPE_EM:
+               return tf_em_tbl_type_2_str(subtype);
+       default:
+               return "Invalid Module type";
+       }
+}
+
+const char *
+tf_module_2_str(enum tf_module_type module)
+{
+       switch (module) {
+       case TF_MODULE_TYPE_IDENTIFIER:
+               return "Identifier";
+       case TF_MODULE_TYPE_TABLE:
+               return "Table";
+       case TF_MODULE_TYPE_TCAM:
+               return "TCAM";
+       case TF_MODULE_TYPE_EM:
+               return "EM";
+       default:
+               return "Invalid Device Module type";
+       }
+}