aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/stats
diff options
context:
space:
mode:
authorOle Troan <ot@cisco.com>2019-06-14 10:26:14 +0200
committerDamjan Marion <dmarion@me.com>2019-06-14 11:52:50 +0000
commitb63dbc537c02b1978345744ab34765b2d75011a6 (patch)
treef091896b18f53b2eb3b2af6ca44bd323567c03de /src/vpp/stats
parenta6bee0a11a07e4e1e4ac67e5041e9ad197766ba2 (diff)
stats: add version field to stat segment base header
Add a version in the base header of the stat segment To make support for multiple reader implementations safer. Change-Id: I6816e2a51a98c2df1e621e80d4ef0b4ba4e9f47b Type: feature Signed-off-by: Ole Troan <ot@cisco.com>
Diffstat (limited to 'src/vpp/stats')
-rw-r--r--src/vpp/stats/stat_segment.c3
-rw-r--r--src/vpp/stats/stat_segment.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/vpp/stats/stat_segment.c b/src/vpp/stats/stat_segment.c
index 61b21babbe3..cef792fc622 100644
--- a/src/vpp/stats/stat_segment.c
+++ b/src/vpp/stats/stat_segment.c
@@ -272,6 +272,9 @@ vlib_map_stat_segment_init (void)
sm->directory_vector_by_name = hash_create_string (0, sizeof (uword));
sm->shared_header = shared_header = memaddr;
+
+ shared_header->version = STAT_SEGMENT_VERSION;
+
sm->stat_segment_lockp = clib_mem_alloc (sizeof (clib_spinlock_t));
clib_spinlock_init (sm->stat_segment_lockp);
diff --git a/src/vpp/stats/stat_segment.h b/src/vpp/stats/stat_segment.h
index b9ffedf2169..113eb9a25ad 100644
--- a/src/vpp/stats/stat_segment.h
+++ b/src/vpp/stats/stat_segment.h
@@ -70,11 +70,15 @@ typedef struct
/* Default stat segment 32m */
#define STAT_SEGMENT_DEFAULT_SIZE (32<<20)
+/* Shared segment memory layout version */
+#define STAT_SEGMENT_VERSION 1
+
/*
* Shared header first in the shared memory segment.
*/
typedef struct
{
+ u64 version;
atomic_int_fast64_t epoch;
atomic_int_fast64_t in_progress;
atomic_int_fast64_t directory_offset;