e712816209903a0fcce0a6badcabbcd05402d068
[dpdk.git] / drivers / net / bnxt / tf_core / tf_util.c
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 }