xref: /dpdk/drivers/net/bnxt/tf_core/tf_util.c (revision 8f393c4ffdc1ff9b46702708781723ca0f17f5ac)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5 
6 #include <string.h>
7 
8 #include "tf_util.h"
9 
10 const char *
11 tf_dir_2_str(enum tf_dir dir)
12 {
13 	switch (dir) {
14 	case TF_DIR_RX:
15 		return "RX";
16 	case TF_DIR_TX:
17 		return "TX";
18 	default:
19 		return "Invalid direction";
20 	}
21 }
22 
23 const char *
24 tf_ident_2_str(enum tf_identifier_type id_type)
25 {
26 	switch (id_type) {
27 	case TF_IDENT_TYPE_L2_CTXT_HIGH:
28 		return "l2_ctxt_remap_high";
29 	case TF_IDENT_TYPE_L2_CTXT_LOW:
30 		return "l2_ctxt_remap_low";
31 	case TF_IDENT_TYPE_PROF_FUNC:
32 		return "prof_func";
33 	case TF_IDENT_TYPE_WC_PROF:
34 		return "wc_prof";
35 	case TF_IDENT_TYPE_EM_PROF:
36 		return "em_prof";
37 	case TF_IDENT_TYPE_L2_FUNC:
38 		return "l2_func";
39 	default:
40 		return "Invalid identifier";
41 	}
42 }
43 
44 const char *
45 tf_tcam_tbl_2_str(enum tf_tcam_tbl_type tcam_type)
46 {
47 	switch (tcam_type) {
48 	case TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_HIGH:
49 		return "l2_ctxt_tcam_high";
50 	case TF_TCAM_TBL_TYPE_L2_CTXT_TCAM_LOW:
51 		return "l2_ctxt_tcam_low";
52 	case TF_TCAM_TBL_TYPE_PROF_TCAM:
53 		return "prof_tcam";
54 	case TF_TCAM_TBL_TYPE_WC_TCAM:
55 		return "wc_tcam";
56 	case TF_TCAM_TBL_TYPE_VEB_TCAM:
57 		return "veb_tcam";
58 	case TF_TCAM_TBL_TYPE_SP_TCAM:
59 		return "sp_tcam";
60 	case TF_TCAM_TBL_TYPE_CT_RULE_TCAM:
61 		return "ct_rule_tcam";
62 #ifdef TF_TCAM_SHARED
63 	case TF_TCAM_TBL_TYPE_WC_TCAM_HIGH:
64 		return "wc_tcam_hi";
65 	case TF_TCAM_TBL_TYPE_WC_TCAM_LOW:
66 		return "wc_tcam_lo";
67 #endif
68 	default:
69 		return "Invalid tcam table type";
70 	}
71 }
72 
73 const char *
74 tf_tbl_type_2_str(enum tf_tbl_type tbl_type)
75 {
76 	switch (tbl_type) {
77 	case TF_TBL_TYPE_FULL_ACT_RECORD:
78 		return "Full Action record";
79 	case TF_TBL_TYPE_MCAST_GROUPS:
80 		return "Multicast Groups";
81 	case TF_TBL_TYPE_ACT_ENCAP_8B:
82 		return "Encap 8B";
83 	case TF_TBL_TYPE_ACT_ENCAP_16B:
84 		return "Encap 16B";
85 	case TF_TBL_TYPE_ACT_ENCAP_32B:
86 		return "Encap 32B";
87 	case TF_TBL_TYPE_ACT_ENCAP_64B:
88 		return "Encap 64B";
89 	case TF_TBL_TYPE_ACT_SP_SMAC:
90 		return "Source Properties SMAC";
91 	case TF_TBL_TYPE_ACT_SP_SMAC_IPV4:
92 		return "Source Properties SMAC IPv4";
93 	case TF_TBL_TYPE_ACT_SP_SMAC_IPV6:
94 		return "Source Properties SMAC IPv6";
95 	case TF_TBL_TYPE_ACT_STATS_64:
96 		return "Stats 64B";
97 	case TF_TBL_TYPE_ACT_MODIFY_IPV4:
98 		return "Modify IPv4";
99 	case TF_TBL_TYPE_METER_PROF:
100 		return "Meter Profile";
101 	case TF_TBL_TYPE_METER_INST:
102 		return "Meter";
103 	case TF_TBL_TYPE_MIRROR_CONFIG:
104 		return "Mirror";
105 	case TF_TBL_TYPE_UPAR:
106 		return "UPAR";
107 	case TF_TBL_TYPE_METADATA:
108 		return "Metadata";
109 	case TF_TBL_TYPE_EM_FKB:
110 		return "EM Flexible Key Builder";
111 	case TF_TBL_TYPE_WC_FKB:
112 		return "WC Flexible Key Builder";
113 	case TF_TBL_TYPE_EXT:
114 		return "External";
115 	default:
116 		return "Invalid tbl type";
117 	}
118 }
119 
120 const char *
121 tf_em_tbl_type_2_str(enum tf_em_tbl_type em_type)
122 {
123 	switch (em_type) {
124 	case TF_EM_TBL_TYPE_EM_RECORD:
125 		return "EM Record";
126 	case TF_EM_TBL_TYPE_TBL_SCOPE:
127 		return "Table Scope";
128 	default:
129 		return "Invalid EM type";
130 	}
131 }
132 
133 const char *
134 tf_module_subtype_2_str(enum tf_module_type module,
135 			uint16_t subtype)
136 {
137 	switch (module) {
138 	case TF_MODULE_TYPE_IDENTIFIER:
139 		return tf_ident_2_str(subtype);
140 	case TF_MODULE_TYPE_TABLE:
141 		return tf_tbl_type_2_str(subtype);
142 	case TF_MODULE_TYPE_TCAM:
143 		return tf_tcam_tbl_2_str(subtype);
144 	case TF_MODULE_TYPE_EM:
145 		return tf_em_tbl_type_2_str(subtype);
146 	default:
147 		return "Invalid Module type";
148 	}
149 }
150 
151 const char *
152 tf_module_2_str(enum tf_module_type module)
153 {
154 	switch (module) {
155 	case TF_MODULE_TYPE_IDENTIFIER:
156 		return "Identifier";
157 	case TF_MODULE_TYPE_TABLE:
158 		return "Table";
159 	case TF_MODULE_TYPE_TCAM:
160 		return "TCAM";
161 	case TF_MODULE_TYPE_EM:
162 		return "EM";
163 	default:
164 		return "Invalid Device Module type";
165 	}
166 }
167