diff options
Diffstat (limited to 'src/vnet/interface.c')
-rw-r--r-- | src/vnet/interface.c | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/src/vnet/interface.c b/src/vnet/interface.c index 7a2c3abd2d4..34ad292a728 100644 --- a/src/vnet/interface.c +++ b/src/vnet/interface.c @@ -1297,38 +1297,20 @@ vnet_interface_init (vlib_main_t * vm) CLIB_CACHE_LINE_BYTES); im->sw_if_counter_lock[0] = 1; /* should be no need */ - /* - * $$$$ add stat segment name(s) if desired - * set xxx.stat_segment_name = "whatever"... - */ vec_validate (im->sw_if_counters, VNET_N_SIMPLE_INTERFACE_COUNTER - 1); - im->sw_if_counters[VNET_INTERFACE_COUNTER_DROP].name = "drops"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_PUNT].name = "punts"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_IP4].name = "ip4"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_IP6].name = "ip6"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_RX_NO_BUF].name = "rx-no-buf"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_RX_MISS].name = "rx-miss"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_RX_ERROR].name = "rx-error"; - im->sw_if_counters[VNET_INTERFACE_COUNTER_TX_ERROR].name = "tx-error"; - - vec_validate (im->combined_sw_if_counters, - VNET_N_COMBINED_INTERFACE_COUNTER - 1); - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_RX].name = "rx"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_RX_UNICAST].name = - "rx-unicast"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_RX_MULTICAST].name = - "rx-multicast"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_RX_BROADCAST].name = - "rx-broadcast"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_TX].name = "tx"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_TX_UNICAST].name = - "tx-unicast"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_TX_MULTICAST].name = - "tx-multicast"; - im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_TX_BROADCAST].name = - "tx-broadcast"; - - im->sw_if_counter_lock[0] = 0; +#define _(E,n,p) \ + im->sw_if_counters[VNET_INTERFACE_COUNTER_##E].name = #n; \ + im->sw_if_counters[VNET_INTERFACE_COUNTER_##E].stat_segment_name = "/" #p "/" #n; + foreach_simple_interface_counter_name +#undef _ + vec_validate (im->combined_sw_if_counters, + VNET_N_COMBINED_INTERFACE_COUNTER - 1); +#define _(E,n,p) \ + im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_##E].name = #n; \ + im->combined_sw_if_counters[VNET_INTERFACE_COUNTER_##E].stat_segment_name = "/" #p "/" #n; + foreach_combined_interface_counter_name +#undef _ + im->sw_if_counter_lock[0] = 0; im->device_class_by_name = hash_create_string ( /* size */ 0, sizeof (uword)); |