vlib: calculate per-worker loops/second metric
[vpp.git] / src / vlib / main.h
index e230ddf..0e65c81 100644 (file)
@@ -73,6 +73,13 @@ typedef struct
   u32 filter_classify_table_index;
 } vnet_pcap_t;
 
+typedef struct
+{
+  u8 trace_filter_enable;
+  u32 trace_classify_table_index;
+  u32 trace_filter_set_index;
+} vlib_trace_filter_t;
+
 typedef struct vlib_main_t
 {
   CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
@@ -165,6 +172,9 @@ typedef struct vlib_main_t
   /* pcap rx / tx tracing */
   vnet_pcap_t pcap;
 
+  /* Packet trace capture filter */
+  vlib_trace_filter_t trace_filter;
+
   /* Error handling. */
   vlib_error_main_t error_main;
 
@@ -241,6 +251,14 @@ typedef struct vlib_main_t
    */
   int need_vlib_worker_thread_node_runtime_update;
 
+  /* Dispatch loop time accounting */
+  u64 loops_this_reporting_interval;
+  f64 loop_interval_end;
+  f64 loop_interval_start;
+  f64 loops_per_second;
+  f64 seconds_per_loop;
+  f64 damping_constant;
+
   /*
    * Barrier epoch - Set to current time, each time barrier_sync or
    * barrier_release is called with zero recursion.