#include <vlib/unix/unix.h>
#include <vlibmemory/api.h>
#include <vlibapi/api_helper_macros.h>
-#include <svm/queue.h>
+#include <vpp/stats/stat_segment.h>
typedef struct
{
}) ip4_route_t;
/* *INDENT-ON* */
-/* see interface.api */
-typedef struct
-{
- u32 sw_if_index;
- u64 drop;
- u64 punt;
- u64 rx_ip4;
- u64 rx_ip6;
- u64 rx_no_buffer;
- u64 rx_miss;
- u64 rx_error;
- u64 tx_error;
- u64 rx_mpls;
-} vnet_simple_counter_t;
-
-typedef struct
-{
- u32 sw_if_index;
- u64 rx_packets; /**< packet counter */
- u64 rx_bytes; /**< byte counter */
- u64 tx_packets; /**< packet counter */
- u64 tx_bytes; /**< byte counter */
-} vnet_combined_counter_t;
-
typedef struct
{
ip6_address_t address;
} vpe_client_stats_registration_t;
-
typedef struct
{
void *mheap;
vpe_client_stats_registration_t **regs_tmp;
vpe_client_registration_t **clients_tmp;
+ /* statistics segment */
+ uword *directory_vector_by_name;
+ stat_segment_directory_entry_t *directory_vector;
+ clib_spinlock_t *stat_segment_lockp;
+ clib_socket_t *socket;
+ u8 *socket_name;
+ ssize_t memory_size;
+ u8 node_counters_enabled;
+ void *heap;
+ stat_segment_shared_header_t *shared_header; /* pointer to shared memory segment */
+ int memfd;
+
+ u64 last_input_packets;
+
/* convenience */
vlib_main_t *vlib_main;
vnet_main_t *vnet_main;
extern stats_main_t stats_main;
+void do_stat_segment_updates (stats_main_t * sm);
+
#endif /* __included_stats_h__ */
/*