#include <vpp-api/client/stat_client.h>
#include <vlib/vlib.h>
+#include <vpp/vnet/config.h>
static int
stat_poll_loop (u8 ** patterns)
res[i].name);
break;
- case STAT_DIR_TYPE_ERROR_INDEX:
- fformat (stdout, "%llu %s\n", res[i].error_value, res[i].name);
- break;
-
case STAT_DIR_TYPE_SCALAR_INDEX:
fformat (stdout, "%.2f %s\n", res[i].scalar_value, res[i].name);
break;
+ case STAT_DIR_TYPE_EMPTY:
+ break;
+
default:
printf ("Unknown value\n");
;
STAT_CLIENT_CMD_TIGHTPOLL,
};
+#ifdef CLIB_SANITIZE_ADDR
+/* default options for Address Sanitizer */
+const char *
+__asan_default_options (void)
+{
+ return VPP_SANITIZE_ADDR_OPTIONS;
+}
+#endif /* CLIB_SANITIZE_ADDR */
+
int
main (int argc, char **argv)
{
for (i = 0; i < vec_len (dir); i++)
{
char *n = stat_segment_index_to_name (dir[i]);
+ if (!n)
+ continue;
printf ("%s\n", n);
free (n);
}
case STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE:
if (res[i].simple_counter_vec == 0)
continue;
- for (k = 0; k < vec_len (res[i].simple_counter_vec) - 1; k++)
+ for (k = 0; k < vec_len (res[i].simple_counter_vec); k++)
for (j = 0; j < vec_len (res[i].simple_counter_vec[k]); j++)
fformat (stdout, "[%d @ %d]: %llu packets %s\n",
j, k, res[i].simple_counter_vec[k][j],
break;
case STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED:
- if (res[i].simple_counter_vec == 0)
+ if (res[i].combined_counter_vec == 0)
continue;
for (k = 0; k < vec_len (res[i].combined_counter_vec); k++)
for (j = 0; j < vec_len (res[i].combined_counter_vec[k]); j++)
res[i].name);
break;
- case STAT_DIR_TYPE_ERROR_INDEX:
- fformat (stdout, "%llu %s\n", res[i].error_value, res[i].name);
- break;
-
case STAT_DIR_TYPE_SCALAR_INDEX:
fformat (stdout, "%.2f %s\n", res[i].scalar_value, res[i].name);
break;
+ case STAT_DIR_TYPE_NAME_VECTOR:
+ if (res[i].name_vector == 0)
+ continue;
+ for (k = 0; k < vec_len (res[i].name_vector); k++)
+ if (res[i].name_vector[k])
+ fformat (stdout, "[%d]: %s %s\n", k, res[i].name_vector[k],
+ res[i].name);
+ break;
+
+ case STAT_DIR_TYPE_EMPTY:
+ break;
+
default:
;
}