stats: remove offsets on vpp side

Represent pointers directly in shared memory and require clients to adjust for
shared memory segment being mapped at different base address.
Deprecated: stat_segment_pointer() / stat_segment_offset()
Added: stat_segment_adjust()

Bumped the stat segment version to 2.

Type: refactor
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I33e756187b8903b45dcd353e6c1a101b7a4acb79
diff --git a/src/vpp-api/python/vpp_papi/vpp_stats.py b/src/vpp-api/python/vpp_papi/vpp_stats.py
index aa34095..1a65c8e 100644
--- a/src/vpp-api/python/vpp_papi/vpp_stats.py
+++ b/src/vpp-api/python/vpp_papi/vpp_stats.py
@@ -25,11 +25,10 @@
 {
   stat_directory_type_t type;
   union {
-    uint64_t offset;
     uint64_t index;
     uint64_t value;
+    uint64_t *data;
   };
-  uint64_t offset_vector;
   char name[128]; // TODO change this to pointer to "somewhere"
 } stat_segment_directory_entry_t;
 
@@ -50,11 +49,11 @@
 typedef struct
 {
   uint64_t version;
+  void *base;
   uint64_t epoch;
   uint64_t in_progress;
-  uint64_t directory_offset;
-  uint64_t error_offset;
-  uint64_t stats_offset;
+  stat_segment_directory_entry_t *directory_vector;
+  uint64_t **error_vector;
 } stat_segment_shared_header_t;
 
 typedef struct