buffers: keep buffer_main in vlib_main_t
[vpp.git] / src / vlib / main.h
index 64f2859..91661fd 100644 (file)
@@ -47,6 +47,7 @@
 #include <vppinfra/random_buffer.h>
 #include <vppinfra/time.h>
 #include <vppinfra/pmc.h>
+#include <vppinfra/pcap.h>
 
 #include <pthread.h>
 
@@ -118,6 +119,9 @@ typedef struct vlib_main_t
   /* Pool of buffer free lists. */
   vlib_buffer_free_list_t *buffer_free_list_pool;
 
+  /* buffer main structure. */
+  vlib_buffer_main_t *buffer_main;
+
   /* physical memory main structure. */
   vlib_physmem_main_t physmem_main;
 
@@ -130,6 +134,11 @@ typedef struct vlib_main_t
   /* Packet trace buffer. */
   vlib_trace_main_t trace_main;
 
+  /* Pcap dispatch trace main */
+  pcap_main_t dispatch_pcap_main;
+  uword dispatch_pcap_enable;
+  u8 *pcap_buffer;
+
   /* Error handling. */
   vlib_error_main_t error_main;
 
@@ -166,8 +175,10 @@ typedef struct vlib_main_t
   /* Hash table to record which init functions have been called. */
   uword *init_functions_called;
 
-  /* to compare with node runtime */
+  /* thread, cpu and numa_node indices */
   u32 thread_index;
+  u32 cpu_index;
+  u32 numa_node;
 
   /* List of init functions to call, setup by constructors */
   _vlib_init_function_list_elt_t *init_function_registrations;
@@ -207,8 +218,9 @@ typedef struct vlib_main_t
   /* Earliest barrier can be closed again */
   f64 barrier_no_close_before;
 
-  /* Vector of pending RPC requests */
+  /* RPC requests, main thread only */
   uword *pending_rpc_requests;
+  uword *processing_rpc_requests;
   clib_spinlock_t pending_rpc_lock;
 
 } vlib_main_t;
@@ -365,6 +377,9 @@ u32 vlib_app_num_thread_stacks_needed (void) __attribute__ ((weak));
 
 extern void vlib_node_sync_stats (vlib_main_t * vm, vlib_node_t * n);
 
+#define VLIB_PCAP_MAJOR_VERSION 1
+#define VLIB_PCAP_MINOR_VERSION 0
+
 #endif /* included_vlib_main_h */
 
 /*