|
1 | 1 | #include "saiserialize.h"
|
2 | 2 |
|
| 3 | +#include <vector> |
| 4 | + |
3 | 5 | sai_serialization_map_t g_serialization_map = sai_get_serialization_map();
|
4 | 6 | sai_object_type_to_string_map_t g_object_type_map = sai_get_object_type_map();
|
5 | 7 |
|
@@ -128,6 +130,123 @@ sai_status_t sai_get_object_type_string(sai_object_type_t object_type, std::stri
|
128 | 130 | return SAI_STATUS_SUCCESS;
|
129 | 131 | }
|
130 | 132 |
|
| 133 | +static std::vector<std::string> sai_get_port_stat_counter_names() |
| 134 | +{ |
| 135 | + SWSS_LOG_ENTER(); |
| 136 | + |
| 137 | + std::vector<std::string> v; |
| 138 | + |
| 139 | + v.resize(SAI_PORT_STAT_ETHER_OUT_PKTS_9217_TO_16383_OCTETS + 1); |
| 140 | + |
| 141 | + #define ENTRY(x) v[x] = std::string( #x ) |
| 142 | + |
| 143 | + ENTRY(SAI_PORT_STAT_IF_IN_OCTETS); |
| 144 | + ENTRY(SAI_PORT_STAT_IF_IN_UCAST_PKTS); |
| 145 | + ENTRY(SAI_PORT_STAT_IF_IN_NON_UCAST_PKTS); |
| 146 | + ENTRY(SAI_PORT_STAT_IF_IN_DISCARDS); |
| 147 | + ENTRY(SAI_PORT_STAT_IF_IN_ERRORS); |
| 148 | + ENTRY(SAI_PORT_STAT_IF_IN_UNKNOWN_PROTOS); |
| 149 | + ENTRY(SAI_PORT_STAT_IF_IN_BROADCAST_PKTS); |
| 150 | + ENTRY(SAI_PORT_STAT_IF_IN_MULTICAST_PKTS); |
| 151 | + ENTRY(SAI_PORT_STAT_IF_IN_VLAN_DISCARDS); |
| 152 | + ENTRY(SAI_PORT_STAT_IF_OUT_OCTETS); |
| 153 | + ENTRY(SAI_PORT_STAT_IF_OUT_UCAST_PKTS); |
| 154 | + ENTRY(SAI_PORT_STAT_IF_OUT_NON_UCAST_PKTS); |
| 155 | + ENTRY(SAI_PORT_STAT_IF_OUT_DISCARDS); |
| 156 | + ENTRY(SAI_PORT_STAT_IF_OUT_ERRORS); |
| 157 | + ENTRY(SAI_PORT_STAT_IF_OUT_QLEN); |
| 158 | + ENTRY(SAI_PORT_STAT_IF_OUT_BROADCAST_PKTS); |
| 159 | + ENTRY(SAI_PORT_STAT_IF_OUT_MULTICAST_PKTS); |
| 160 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_DROP_EVENTS); |
| 161 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_MULTICAST_PKTS); |
| 162 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_BROADCAST_PKTS); |
| 163 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_UNDERSIZE_PKTS); |
| 164 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_FRAGMENTS); |
| 165 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_64_OCTETS); |
| 166 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_65_TO_127_OCTETS); |
| 167 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_128_TO_255_OCTETS); |
| 168 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_256_TO_511_OCTETS); |
| 169 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_512_TO_1023_OCTETS); |
| 170 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_1024_TO_1518_OCTETS); |
| 171 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_1519_TO_2047_OCTETS); |
| 172 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_2048_TO_4095_OCTETS); |
| 173 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_4096_TO_9216_OCTETS); |
| 174 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS_9217_TO_16383_OCTETS); |
| 175 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_OVERSIZE_PKTS); |
| 176 | + ENTRY(SAI_PORT_STAT_ETHER_RX_OVERSIZE_PKTS); |
| 177 | + ENTRY(SAI_PORT_STAT_ETHER_TX_OVERSIZE_PKTS); |
| 178 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_JABBERS); |
| 179 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_OCTETS); |
| 180 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_PKTS); |
| 181 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_COLLISIONS); |
| 182 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_CRC_ALIGN_ERRORS); |
| 183 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_TX_NO_ERRORS); |
| 184 | + ENTRY(SAI_PORT_STAT_ETHER_STATS_RX_NO_ERRORS); |
| 185 | + ENTRY(SAI_PORT_STAT_IP_IN_RECEIVES); |
| 186 | + ENTRY(SAI_PORT_STAT_IP_IN_OCTETS); |
| 187 | + ENTRY(SAI_PORT_STAT_IP_IN_UCAST_PKTS); |
| 188 | + ENTRY(SAI_PORT_STAT_IP_IN_NON_UCAST_PKTS); |
| 189 | + ENTRY(SAI_PORT_STAT_IP_IN_DISCARDS); |
| 190 | + ENTRY(SAI_PORT_STAT_IP_OUT_OCTETS); |
| 191 | + ENTRY(SAI_PORT_STAT_IP_OUT_UCAST_PKTS); |
| 192 | + ENTRY(SAI_PORT_STAT_IP_OUT_NON_UCAST_PKTS); |
| 193 | + ENTRY(SAI_PORT_STAT_IP_OUT_DISCARDS); |
| 194 | + ENTRY(SAI_PORT_STAT_IPV6_IN_RECEIVES); |
| 195 | + ENTRY(SAI_PORT_STAT_IPV6_IN_OCTETS); |
| 196 | + ENTRY(SAI_PORT_STAT_IPV6_IN_UCAST_PKTS); |
| 197 | + ENTRY(SAI_PORT_STAT_IPV6_IN_NON_UCAST_PKTS); |
| 198 | + ENTRY(SAI_PORT_STAT_IPV6_IN_MCAST_PKTS); |
| 199 | + ENTRY(SAI_PORT_STAT_IPV6_IN_DISCARDS); |
| 200 | + ENTRY(SAI_PORT_STAT_IPV6_OUT_OCTETS); |
| 201 | + ENTRY(SAI_PORT_STAT_IPV6_OUT_UCAST_PKTS); |
| 202 | + ENTRY(SAI_PORT_STAT_IPV6_OUT_NON_UCAST_PKTS); |
| 203 | + ENTRY(SAI_PORT_STAT_IPV6_OUT_MCAST_PKTS); |
| 204 | + ENTRY(SAI_PORT_STAT_IPV6_OUT_DISCARDS); |
| 205 | + ENTRY(SAI_PORT_STAT_GREEN_DISCARD_DROPPED_PACKETS); |
| 206 | + ENTRY(SAI_PORT_STAT_GREEN_DISCARD_DROPPED_BYTES); |
| 207 | + ENTRY(SAI_PORT_STAT_YELLOW_DISCARD_DROPPED_PACKETS); |
| 208 | + ENTRY(SAI_PORT_STAT_YELLOW_DISCARD_DROPPED_BYTES); |
| 209 | + ENTRY(SAI_PORT_STAT_RED_DISCARD_DROPPED_PACKETS); |
| 210 | + ENTRY(SAI_PORT_STAT_RED_DISCARD_DROPPED_BYTES); |
| 211 | + ENTRY(SAI_PORT_STAT_DISCARD_DROPPED_PACKETS); |
| 212 | + ENTRY(SAI_PORT_STAT_DISCARD_DROPPED_BYTES); |
| 213 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_64_OCTETS); |
| 214 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_65_TO_127_OCTETS); |
| 215 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_128_TO_255_OCTETS); |
| 216 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_256_TO_511_OCTETS); |
| 217 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_512_TO_1023_OCTETS); |
| 218 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_1024_TO_1518_OCTETS); |
| 219 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_1519_TO_2047_OCTETS); |
| 220 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_2048_TO_4095_OCTETS); |
| 221 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_4096_TO_9216_OCTETS); |
| 222 | + ENTRY(SAI_PORT_STAT_ETHER_IN_PKTS_9217_TO_16383_OCTETS); |
| 223 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_64_OCTETS); |
| 224 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_65_TO_127_OCTETS); |
| 225 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_128_TO_255_OCTETS); |
| 226 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_256_TO_511_OCTETS); |
| 227 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_512_TO_1023_OCTETS); |
| 228 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_1024_TO_1518_OCTETS); |
| 229 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_1519_TO_2047_OCTETS); |
| 230 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_2048_TO_4095_OCTETS); |
| 231 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_4096_TO_9216_OCTETS); |
| 232 | + ENTRY(SAI_PORT_STAT_ETHER_OUT_PKTS_9217_TO_16383_OCTETS); |
| 233 | + |
| 234 | + return std::move(v); |
| 235 | +} |
| 236 | + |
| 237 | +static std::vector<std::string> g_port_stat_counter_names = sai_get_port_stat_counter_names(); |
| 238 | + |
| 239 | +std::string sai_get_port_stat_counter_name(sai_port_stat_counter_t counter) |
| 240 | +{ |
| 241 | + if (counter < g_port_stat_counter_names.size()) |
| 242 | + return g_port_stat_counter_names[counter]; |
| 243 | + |
| 244 | + SWSS_LOG_WARN("unable to find counter name: %d", counter); |
| 245 | + |
| 246 | + // TODO exit here ? |
| 247 | + return std::to_string(counter); |
| 248 | +} |
| 249 | + |
131 | 250 | sai_status_t sai_get_serialization_type(
|
132 | 251 | _In_ const sai_object_type_t object_type,
|
133 | 252 | _In_ const sai_attr_id_t attr_id,
|
|
0 commit comments