session: make session code compile with SESSION_DEBUG enable

Session debug code does not compile anymore due to vlib_mains global
variable disappearing over time. Replace it with vlib_get_main_by_index
call.

Add a cmake variable and pass it from make command line to enable
session debug. Notice transport debug is required for session debug.

make rebuild VPP_EXTRA_CMAKE_ARGS=-DVPP_TCP_DEBUG_ALWAYS=ON VPP_EXTRA_CMAKE_ARGS+=-DVPP_SESSION_DEBUG=ON

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Ic2e887c6b10b77cbabd56934f4931fcfa04a6751
This commit is contained in:
Steven Luong
2022-10-10 11:37:57 -07:00
committed by Florin Coras
parent af36e96d07
commit 10e5b4a016
3 changed files with 16 additions and 2 deletions

View 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

View File

@ -17,6 +17,7 @@
#include <vnet/session/transport.h>
#include <vlib/vlib.h>
#include <vpp/vnet/config.h>
#define foreach_session_dbg_evt \
_(ENQ, "enqueue") \
@ -94,7 +95,12 @@ typedef struct session_dbg_main_
extern session_dbg_main_t session_dbg_main;
#ifdef VPP_SESSION_DEBUG
#define SESSION_DEBUG 1 * (TRANSPORT_DEBUG > 0)
#else
#define SESSION_DEBUG 0 * (TRANSPORT_DEBUG > 0)
#endif
#define SESSION_DEQ_EVTS (0)
#define SESSION_DISPATCH_DBG (0)
#define SESSION_EVT_POLL_DBG (0)

View File

@ -19,5 +19,6 @@
#define VPP_SANITIZE_ADDR_OPTIONS "@VPP_SANITIZE_ADDR_OPTIONS@"
#cmakedefine VPP_IP_FIB_MTRIE_16
#cmakedefine VPP_TCP_DEBUG_ALWAYS
#cmakedefine VPP_SESSION_DEBUG
#endif