session: make session code compile with SESSION_DEBUG enable
[vpp.git] / src / vnet / session / session_debug.c
index c042e9e..e4efe1b 100644 (file)
@@ -61,6 +61,13 @@ VLIB_CLI_COMMAND (show_session_dbg_clock_cycles_command, static) =
 };
 /* *INDENT-ON* */
 
+static_always_inline f64
+session_dbg_time_now (u32 thread)
+{
+  vlib_main_t *vm = vlib_get_main_by_index (thread);
+
+  return clib_time_now (&vm->clib_time) + vm->time_offset;
+}
 
 static clib_error_t *
 clear_session_dbg_clock_cycles_fn (vlib_main_t * vm, unformat_input_t * input,
@@ -77,7 +84,7 @@ clear_session_dbg_clock_cycles_fn (vlib_main_t * vm, unformat_input_t * input,
     {
       sde = &session_dbg_main.wrk[thread];
       clib_memset (sde, 0, sizeof (session_dbg_evts_t));
-      sde->last_time = vlib_time_now (vlib_mains[thread]);
+      sde->last_time = session_dbg_time_now (thread);
       sde->start_time = sde->last_time;
     }
 
@@ -107,7 +114,7 @@ session_debug_init (void)
   for (thread = 0; thread < num_threads; thread++)
     {
       clib_memset (&sdm->wrk[thread], 0, sizeof (session_dbg_evts_t));
-      sdm->wrk[thread].start_time = vlib_time_now (vlib_mains[thread]);
+      sdm->wrk[thread].start_time = session_dbg_time_now (thread);
     }
 }
 #else
@@ -120,7 +127,7 @@ session_debug_init (void)
 void
 dump_thread_0_event_queue (void)
 {
-  vlib_main_t *vm = &vlib_global_main;
+  vlib_main_t *vm = vlib_get_first_main ();
   u32 my_thread_index = vm->thread_index;
   session_event_t _e, *e = &_e;
   svm_msg_q_shared_queue_t *sq;
@@ -144,6 +151,8 @@ dump_thread_0_event_queue (void)
        {
        case SESSION_IO_EVT_TX:
          s0 = session_get_if_valid (e->session_index, my_thread_index);
+         if (!s0)
+           break;
          fformat (stdout, "[%04d] TX session %d\n", i, s0->session_index);
          break;
 
@@ -155,6 +164,8 @@ dump_thread_0_event_queue (void)
 
        case SESSION_IO_EVT_BUILTIN_RX:
          s0 = session_get_if_valid (e->session_index, my_thread_index);
+         if (!s0)
+           break;
          fformat (stdout, "[%04d] builtin_rx %d\n", i, s0->session_index);
          break;
 
@@ -180,7 +191,6 @@ dump_thread_0_event_queue (void)
 static u8
 session_node_cmp_event (session_event_t * e, svm_fifo_t * f)
 {
-  session_t *s;
   switch (e->event_type)
     {
     case SESSION_IO_EVT_RX:
@@ -192,16 +202,7 @@ session_node_cmp_event (session_event_t * e, svm_fifo_t * f)
        return 1;
       break;
     case SESSION_CTRL_EVT_CLOSE:
-      break;
     case SESSION_CTRL_EVT_RPC:
-      s = session_get_from_handle (e->session_handle);
-      if (!s)
-       {
-         clib_warning ("session has event but doesn't exist!");
-         break;
-       }
-      if (s->rx_fifo == f || s->tx_fifo == f)
-       return 1;
       break;
     default:
       break;