aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/stats/stats.h
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2018-09-26 15:26:42 +0200
committerDave Barach <openvpp@barachs.net>2018-09-28 12:05:25 +0000
commitf94c63ea392a79b509a7b8263f5a9372a58786f9 (patch)
tree7cd5d9e1a9d2ba72a5453cf9bda3a0b13552c778 /src/vpp/stats/stats.h
parent09cce66888f622af285e92ae05f76462a5a6d3b5 (diff)
stats: Split stat_segment and stats code in preparation for deprecation.
Split the stat_segment.c code from stats.c. Rename stats.[ch] to prepare for removing (19.01?) In addition stats.api can be removed. Since the stats aggregation for the stat segment does not use the API, that part is now done on the main thread. (Old stats aggregator is also left in place). Change-Id: I9867429f4fc547b1a7ab7f88bc4f3625428d681b Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vpp/stats/stats.h')
-rw-r--r--src/vpp/stats/stats.h192
1 files changed, 0 insertions, 192 deletions
diff --git a/src/vpp/stats/stats.h b/src/vpp/stats/stats.h
deleted file mode 100644
index f21451d352b..00000000000
--- a/src/vpp/stats/stats.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef __included_stats_h__
-#define __included_stats_h__
-
-#include <time.h>
-#include <vlib/vlib.h>
-#include <vnet/vnet.h>
-#include <vnet/interface.h>
-#include <pthread.h>
-#include <vlib/threads.h>
-#include <vnet/fib/fib_table.h>
-#include <vnet/mfib/mfib_table.h>
-#include <vlib/unix/unix.h>
-#include <vlibmemory/api.h>
-#include <vlibapi/api_helper_macros.h>
-#include <vpp/stats/stat_segment.h>
-
-typedef struct
-{
- volatile u32 lock;
- volatile u32 release_hint;
- u32 thread_index;
- u32 count;
- int tag;
-} data_structure_lock_t;
-
-/**
- * @brief stats request registration indexes
- *
- */
-/* from .../vnet/vnet/ip/lookup.c. Yuck */
-/* *INDENT-OFF* */
-typedef CLIB_PACKED (struct
-{
- ip4_address_t address;
- u32 address_length: 6;
- u32 index: 26;
-}) ip4_route_t;
-/* *INDENT-ON* */
-
-typedef struct
-{
- ip6_address_t address;
- u32 address_length;
- u32 index;
-} ip6_route_t;
-
-typedef struct
-{
- ip4_route_t *ip4routes;
- ip6_route_t *ip6routes;
- mfib_prefix_t *mroutes;
- fib_table_t **fibs;
- mfib_table_t **mfibs;
- hash_pair_t **pvec;
- uword *results;
-} do_ip46_fibs_t;
-
-typedef struct
-{
- u16 msg_id;
- u32 size;
- u32 client_index;
- u32 context;
- i32 retval;
-} client_registration_reply_t;
-
-typedef enum
-{
-#define stats_reg(n) IDX_##n,
-#include <vpp/stats/stats.reg>
-#undef stats_reg
- STATS_REG_N_IDX,
-} stats_reg_index_t;
-
-typedef struct
-{
- //Standard client information
- uword *client_hash;
- vpe_client_registration_t *clients;
- u32 item;
-
-} vpe_client_stats_registration_t;
-
-typedef struct
-{
- void *mheap;
- pthread_t thread_self;
- pthread_t thread_handle;
-
- u32 stats_poll_interval_in_seconds;
- u32 enable_poller;
-
- /*
- * stats_registrations is a vector, indexed by
- * IDX_xxxx_COUNTER generated for each streaming
- * stat a client can register for. (see stats.reg)
- *
- * The values in the vector refer to pools.
- *
- * The pool is of type vpe_client_stats_registration_t
- *
- * This typedef consists of:
- *
- * u32 item: This is the instance of the IDX_xxxx_COUNTER a
- * client is interested in.
- * vpe_client_registration_t *clients: The list of clients interested.
- *
- * e.g.
- * stats_registrations[IDX_INTERFACE_SIMPLE_COUNTERS] refers to a pool
- * containing elements:
- *
- * u32 item = sw_if_index1
- * clients = ["clienta","clientb"]
- *
- * When clients == NULL the pool element is freed. When the pool is empty
- *
- * ie
- * 0 == pool_elts(stats_registrations[IDX_INTERFACE_SIMPLE_COUNTERS]
- *
- * then there is no need to process INTERFACE_SIMPLE_COUNTERS
- *
- * Note that u32 item = ~0 is the simple case for ALL interfaces or fibs.
- *
- */
-
- uword **stats_registration_hash;
- vpe_client_stats_registration_t **stats_registrations;
-
- /* control-plane data structure lock */
- data_structure_lock_t *data_structure_lock;
-
- /* 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;
-
- /*
- Working vector vars so as to not thrash memory allocator.
- Has effect of making "static"
- */
- 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;
- vnet_interface_main_t *interface_main;
- api_main_t *api_main;
-} stats_main_t;
-
-extern stats_main_t stats_main;
-
-void do_stat_segment_updates (stats_main_t * sm);
-
-#endif /* __included_stats_h__ */
-
-/*
- * fd.io coding-style-patch-verification: ON
- *
- * Local Variables:
- * eval: (c-set-style "gnu")
- * End:
- */