1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2014-2019 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 default: 63 return "Invalid tcam table type"; 64 } 65 } 66 67 const char * 68 tf_tbl_type_2_str(enum tf_tbl_type tbl_type) 69 { 70 switch (tbl_type) { 71 case TF_TBL_TYPE_FULL_ACT_RECORD: 72 return "Full Action record"; 73 case TF_TBL_TYPE_MCAST_GROUPS: 74 return "Multicast Groups"; 75 case TF_TBL_TYPE_ACT_ENCAP_8B: 76 return "Encap 8B"; 77 case TF_TBL_TYPE_ACT_ENCAP_16B: 78 return "Encap 16B"; 79 case TF_TBL_TYPE_ACT_ENCAP_32B: 80 return "Encap 32B"; 81 case TF_TBL_TYPE_ACT_ENCAP_64B: 82 return "Encap 64B"; 83 case TF_TBL_TYPE_ACT_SP_SMAC: 84 return "Source Properties SMAC"; 85 case TF_TBL_TYPE_ACT_SP_SMAC_IPV4: 86 return "Source Properties SMAC IPv4"; 87 case TF_TBL_TYPE_ACT_SP_SMAC_IPV6: 88 return "Source Properties SMAC IPv6"; 89 case TF_TBL_TYPE_ACT_STATS_64: 90 return "Stats 64B"; 91 case TF_TBL_TYPE_ACT_MODIFY_SPORT: 92 return "NAT Source Port"; 93 case TF_TBL_TYPE_ACT_MODIFY_DPORT: 94 return "NAT Destination Port"; 95 case TF_TBL_TYPE_ACT_MODIFY_IPV4: 96 return "NAT IPv4"; 97 case TF_TBL_TYPE_METER_PROF: 98 return "Meter Profile"; 99 case TF_TBL_TYPE_METER_INST: 100 return "Meter"; 101 case TF_TBL_TYPE_MIRROR_CONFIG: 102 return "Mirror"; 103 case TF_TBL_TYPE_UPAR: 104 return "UPAR"; 105 case TF_TBL_TYPE_EPOCH0: 106 return "EPOCH0"; 107 case TF_TBL_TYPE_EPOCH1: 108 return "EPOCH1"; 109 case TF_TBL_TYPE_METADATA: 110 return "Metadata"; 111 case TF_TBL_TYPE_CT_STATE: 112 return "Connection State"; 113 case TF_TBL_TYPE_RANGE_PROF: 114 return "Range Profile"; 115 case TF_TBL_TYPE_RANGE_ENTRY: 116 return "Range"; 117 case TF_TBL_TYPE_LAG: 118 return "Link Aggregation"; 119 case TF_TBL_TYPE_VNIC_SVIF: 120 return "VNIC SVIF"; 121 case TF_TBL_TYPE_EM_FKB: 122 return "EM Flexible Key Builder"; 123 case TF_TBL_TYPE_WC_FKB: 124 return "WC Flexible Key Builder"; 125 case TF_TBL_TYPE_EXT: 126 return "External"; 127 default: 128 return "Invalid tbl type"; 129 } 130 } 131 132 const char * 133 tf_em_tbl_type_2_str(enum tf_em_tbl_type em_type) 134 { 135 switch (em_type) { 136 case TF_EM_TBL_TYPE_EM_RECORD: 137 return "EM Record"; 138 case TF_EM_TBL_TYPE_TBL_SCOPE: 139 return "Table Scope"; 140 default: 141 return "Invalid EM type"; 142 } 143 } 144 145 const char * 146 tf_device_module_type_subtype_2_str(enum tf_device_module_type dm_type, 147 uint16_t mod_type) 148 { 149 switch (dm_type) { 150 case TF_DEVICE_MODULE_TYPE_IDENTIFIER: 151 return tf_ident_2_str(mod_type); 152 case TF_DEVICE_MODULE_TYPE_TABLE: 153 return tf_tbl_type_2_str(mod_type); 154 case TF_DEVICE_MODULE_TYPE_TCAM: 155 return tf_tcam_tbl_2_str(mod_type); 156 case TF_DEVICE_MODULE_TYPE_EM: 157 return tf_em_tbl_type_2_str(mod_type); 158 default: 159 return "Invalid Device Module type"; 160 } 161 } 162 163 const char * 164 tf_device_module_type_2_str(enum tf_device_module_type dm_type) 165 { 166 switch (dm_type) { 167 case TF_DEVICE_MODULE_TYPE_IDENTIFIER: 168 return "Identifier"; 169 case TF_DEVICE_MODULE_TYPE_TABLE: 170 return "Table"; 171 case TF_DEVICE_MODULE_TYPE_TCAM: 172 return "TCAM"; 173 case TF_DEVICE_MODULE_TYPE_EM: 174 return "EM"; 175 default: 176 return "Invalid Device Module type"; 177 } 178 } 179