summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2021-03-10 12:52:53 +0100
committerDamjan Marion <dmarion@me.com>2021-05-06 11:10:55 +0000
commitf09d655101d2400df91d2a388168b925eea0dc01 (patch)
tree7a151ef2d7e723b72ed211955bab8940a5ee9fe8
parent36f7a6aeb021a549f2d684868303c9891bc0dd00 (diff)
memif: add severity to counters
Also rename counters in stat segment to make them more filesystem friendly. Type: improvement Signed-off-by: Ole Troan <ot@cisco.com> Change-Id: I8a3f3ec318931f5475fcb181f8b4a079a1fa4b9c Signed-off-by: Ole Troan <ot@cisco.com>
-rw-r--r--src/plugins/memif/device.c14
-rw-r--r--src/plugins/memif/node.c14
-rw-r--r--src/vlib/error.c2
-rw-r--r--src/vnet/interface.c7
-rw-r--r--src/vnet/interface.h1
5 files changed, 19 insertions, 19 deletions
diff --git a/src/plugins/memif/device.c b/src/plugins/memif/device.c
index 101c3f79426..872660396d0 100644
--- a/src/plugins/memif/device.c
+++ b/src/plugins/memif/device.c
@@ -28,20 +28,20 @@
#include <memif/memif.h>
#include <memif/private.h>
-#define foreach_memif_tx_func_error \
-_(NO_FREE_SLOTS, "no free tx slots") \
-_(ROLLBACK, "no enough space in tx buffers")
+#define foreach_memif_tx_func_error \
+ _ (NO_FREE_SLOTS, no_free_slots, ERROR, "no free tx slots") \
+ _ (ROLLBACK, rollback, ERROR, "no enough space in tx buffers")
typedef enum
{
-#define _(f,s) MEMIF_TX_ERROR_##f,
+#define _(f, n, s, d) MEMIF_TX_ERROR_##f,
foreach_memif_tx_func_error
#undef _
MEMIF_TX_N_ERROR,
} memif_tx_func_error_t;
-static char *memif_tx_func_error_strings[] = {
-#define _(n,s) s,
+static vl_counter_t memif_tx_func_error_counters[] = {
+#define _(f, n, s, d) { #n, d, VL_COUNTER_SEVERITY_##s },
foreach_memif_tx_func_error
#undef _
};
@@ -490,7 +490,7 @@ VNET_DEVICE_CLASS (memif_device_class) = {
.format_device = format_memif_device,
.format_tx_trace = format_memif_tx_trace,
.tx_function_n_errors = MEMIF_TX_N_ERROR,
- .tx_function_error_strings = memif_tx_func_error_strings,
+ .tx_function_error_counters = memif_tx_func_error_counters,
.rx_redirect_to_node = memif_set_interface_next_node,
.clear_counters = memif_clear_hw_interface_counters,
.admin_up_down_function = memif_interface_admin_up_down,
diff --git a/src/plugins/memif/node.c b/src/plugins/memif/node.c
index b2422f9e323..84bc63fc7c3 100644
--- a/src/plugins/memif/node.c
+++ b/src/plugins/memif/node.c
@@ -31,20 +31,20 @@
#include <memif/private.h>
#define foreach_memif_input_error \
- _ (BUFFER_ALLOC_FAIL, "buffer allocation failed") \
- _ (BAD_DESC, "bad descriptor") \
- _ (NOT_IP, "not ip packet")
+ _ (BUFFER_ALLOC_FAIL, buffer_alloc, ERROR, "buffer allocation failed") \
+ _ (BAD_DESC, bad_desc, ERROR, "bad descriptor") \
+ _ (NOT_IP, not_ip, INFO, "not ip packet")
typedef enum
{
-#define _(f,s) MEMIF_INPUT_ERROR_##f,
+#define _(f, n, s, d) MEMIF_INPUT_ERROR_##f,
foreach_memif_input_error
#undef _
MEMIF_INPUT_N_ERROR,
} memif_input_error_t;
-static __clib_unused char *memif_input_error_strings[] = {
-#define _(n,s) s,
+static vl_counter_t memif_input_error_counters[] = {
+#define _(f, n, s, d) { #n, d, VL_COUNTER_SEVERITY_##s },
foreach_memif_input_error
#undef _
};
@@ -937,7 +937,7 @@ VLIB_REGISTER_NODE (memif_input_node) = {
.type = VLIB_NODE_TYPE_INPUT,
.state = VLIB_NODE_STATE_INTERRUPT,
.n_errors = MEMIF_INPUT_N_ERROR,
- .error_strings = memif_input_error_strings,
+ .error_counters = memif_input_error_counters,
};
/* *INDENT-ON* */
diff --git a/src/vlib/error.c b/src/vlib/error.c
index 1a84e7e6801..f93b9a34d09 100644
--- a/src/vlib/error.c
+++ b/src/vlib/error.c
@@ -144,7 +144,7 @@ vlib_register_errors (vlib_main_t * vm,
int i;
for (i = 0; i < n_errors; i++)
{
- counters[i].name = error_strings[i]; // XXX Make name saner
+ counters[i].name = error_strings[i];
counters[i].desc = error_strings[i];
counters[i].severity = VL_COUNTER_SEVERITY_ERROR;
}
diff --git a/src/vnet/interface.c b/src/vnet/interface.c
index 32fb1f2e64a..1d59a96219f 100644
--- a/src/vnet/interface.c
+++ b/src/vnet/interface.c
@@ -792,10 +792,9 @@ setup_tx_node (vlib_main_t * vm,
n->format_trace = dev_class->format_tx_trace;
- /// XXX: Update this to use counter structure
- vlib_register_errors (vm, node_index,
- dev_class->tx_function_n_errors,
- dev_class->tx_function_error_strings, 0);
+ vlib_register_errors (vm, node_index, dev_class->tx_function_n_errors,
+ dev_class->tx_function_error_strings,
+ dev_class->tx_function_error_counters);
}
static void
diff --git a/src/vnet/interface.h b/src/vnet/interface.h
index 70f51cd5837..744496cdd5d 100644
--- a/src/vnet/interface.h
+++ b/src/vnet/interface.h
@@ -229,6 +229,7 @@ typedef struct _vnet_device_class
/* Error strings indexed by error code for this node. */
char **tx_function_error_strings;
+ vl_counter_t *tx_function_error_counters;
/* Number of error codes used by this node. */
u32 tx_function_n_errors;