aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/stats/stats.h
diff options
context:
space:
mode:
authorKeith Burns (alagalah) <alagalah@gmail.com>2017-08-06 08:26:29 -0700
committerDave Wallace <dwallacelf@gmail.com>2017-09-07 22:12:31 +0000
commit8a19f12a0cfe6d611f6e266931af691fb69a74ad (patch)
treebc47ff7146c235c1df17594f4529929cf25ab8b8 /src/vpp/stats/stats.h
parent49d66f1f42cbc310e4fa0dc526b9fdb91d0ca220 (diff)
Allow individual stats API and introduce stats.api
- want_interface_simple_stats - want_interface_combined_stats - want_ip4|6_fib|nbr_stats Change-Id: I4e97461def508958b3e429c3fe8859b36fef2d18 Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
Diffstat (limited to 'src/vpp/stats/stats.h')
-rw-r--r--src/vpp/stats/stats.h45
1 files changed, 44 insertions, 1 deletions
diff --git a/src/vpp/stats/stats.h b/src/vpp/stats/stats.h
index 024dc78e..167b09bd 100644
--- a/src/vpp/stats/stats.h
+++ b/src/vpp/stats/stats.h
@@ -21,6 +21,7 @@
#include <vnet/interface.h>
#include <pthread.h>
#include <vlib/threads.h>
+#include <vnet/fib/fib_table.h>
#include <vlib/unix/unix.h>
#include <vlibmemory/api.h>
#include <vlibmemory/unix_shared_memory_queue.h>
@@ -37,6 +38,44 @@ typedef struct
typedef struct
{
+ vpe_client_registration_t client;
+ u8 stats_registrations;
+#define INTERFACE_SIMPLE_COUNTERS (1 << 0)
+#define INTERFACE_COMBINED_COUNTERS (1 << 1)
+#define IP4_FIB_COUNTERS (1 << 2)
+#define IP4_NBR_COUNTERS (1 << 3)
+#define IP6_FIB_COUNTERS (1 << 4)
+#define IP6_NBR_COUNTERS (1 << 5)
+
+} vpe_client_stats_registration_t;
+
+/* from .../vnet/vnet/ip/lookup.c. Yuck */
+typedef CLIB_PACKED (struct
+ {
+ ip4_address_t address;
+u32 address_length: 6;
+u32 index: 26;
+ }) ip4_route_t;
+
+typedef struct
+{
+ ip6_address_t address;
+ u32 address_length;
+ u32 index;
+} ip6_route_t;
+
+
+typedef struct
+{
+ ip4_route_t *ip4routes;
+ ip6_route_t *ip6routes;
+ fib_table_t **fibs;
+ hash_pair_t **pvec;
+ uword *results;
+} do_ip46_fibs_t;
+
+typedef struct
+{
void *mheap;
pthread_t thread_self;
pthread_t thread_handle;
@@ -45,7 +84,8 @@ typedef struct
u32 enable_poller;
uword *stats_registration_hash;
- vpe_client_registration_t *stats_registrations;
+ vpe_client_stats_registration_t *stats_registrations;
+ vpe_client_stats_registration_t **regs;
/* control-plane data structure lock */
data_structure_lock_t *data_structure_lock;
@@ -53,6 +93,9 @@ typedef struct
/* bail out of FIB walk if set */
clib_longjmp_t jmp_buf;
+ /* Vectors for Distribution funcs: do_ip4_fibs and do_ip6_fibs. */
+ do_ip46_fibs_t do_ip46_fibs;
+
/* convenience */
vlib_main_t *vlib_main;
vnet_main_t *vnet_main;