X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession_cli.c;h=ea6e635715f685a8051b0d0a53957fbddb4f4da2;hb=844a36d1a69625f7a7781c9f82b276cbbc748033;hp=651abe175971f502a887beda1c4558a2a6fbebb6;hpb=0d883a4ac71c9253ea8885d241c8942ccf7129af;p=vpp.git diff --git a/src/vnet/session/session_cli.c b/src/vnet/session/session_cli.c index 651abe17597..ea6e635715f 100755 --- a/src/vnet/session/session_cli.c +++ b/src/vnet/session/session_cli.c @@ -204,11 +204,14 @@ static clib_error_t * show_session_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { + u8 *str = 0, one_session = 0, do_listeners = 0, sst, do_elog = 0; session_manager_main_t *smm = &session_manager_main; - u8 *str = 0, one_session = 0, do_listeners = 0, sst, *app_name; - int verbose = 0, i; + u32 transport_proto = ~0, track_index; stream_session_t *pool, *s; - u32 transport_proto = ~0; + transport_connection_t *tc; + app_worker_t *app_wrk; + int verbose = 0, i; + const u8 *app_name; if (!smm->is_enabled) { @@ -228,6 +231,8 @@ show_session_command_fn (vlib_main_t * vm, unformat_input_t * input, { one_session = 1; } + else if (unformat (input, "elog")) + do_elog = 1; else return clib_error_return (0, "unknown input `%U'", format_unformat_error, input); @@ -235,7 +240,21 @@ show_session_command_fn (vlib_main_t * vm, unformat_input_t * input, if (one_session) { - vlib_cli_output (vm, "%U", format_stream_session, s, 3); + str = format (0, "%U", format_stream_session, s, 3); + if (do_elog && s->session_state != SESSION_STATE_LISTENING) + { + elog_main_t *em = &vm->elog_main; + f64 dt; + + tc = session_get_transport (s); + track_index = transport_elog_track_index (tc); + dt = (em->init_time.cpu - vm->clib_time.init_cpu_time) + * vm->clib_time.seconds_per_clock; + if (track_index != ~0) + str = format (str, " session elog:\n%U", format_elog_track, em, + dt, track_index); + } + vlib_cli_output (vm, "%v", str); return 0; } @@ -248,10 +267,10 @@ show_session_command_fn (vlib_main_t * vm, unformat_input_t * input, if (s->session_state != SESSION_STATE_LISTENING || s->session_type != sst) continue; - app_name = application_name_from_index (s->app_wrk_index); + app_wrk = app_worker_get (s->app_wrk_index); + app_name = application_name_from_index (app_wrk->app_index); vlib_cli_output (vm, "%U%-25v%", format_stream_session, s, 1, app_name); - vec_free (app_name); })); /* *INDENT-ON* */ return 0;