diff options
author | Florin Coras <fcoras@cisco.com> | 2019-08-31 09:45:13 -0700 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2019-09-30 00:08:22 +0000 |
commit | 2ff21af396b3f22147f439c62a80a5eaeda6cdf1 (patch) | |
tree | 78fe2a97b6ceccea5e59fa3be9cae484444073dc /src/vnet/session/session.h | |
parent | 6702641f536ba1a14075b2b24ffd2fb9c6167791 (diff) |
session: improve cli
Type: feature
Allow session cli filtering based on thread index, transport protocol,
session state and range of session pool indices. For instance
show session thread 1 proto tcp state ready range 0 20 verbose
Shows the session ids for the first 20 tcp sessions in thread 1 that are
in ready state.
To avoid excessive output that could reasult in the worker barrier being
held by the main thread for long periods of time, the session cli will
only output:
- session ids (verbose == 1) for a maximum of 50 sessions / worker
- verbose > 1 details for a maximum of 10 sessions
Change-Id: I2cfb351b548e2e0a1d5b4345810be613e2917d17
Signed-off-by: Florin Coras <fcoras@cisco.com>
(cherry picked from commit 5bb23ecd098eac639641e2b3d62eb8744e0efef0)
Diffstat (limited to 'src/vnet/session/session.h')
-rw-r--r-- | src/vnet/session/session.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index de44bed27c9..b3805dba0b0 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -552,6 +552,14 @@ session_main_get_worker (u32 thread_index) return &session_main.wrk[thread_index]; } +static inline session_worker_t * +session_main_get_worker_if_valid (u32 thread_index) +{ + if (pool_is_free_index (session_main.wrk, thread_index)) + return 0; + return &session_main.wrk[thread_index]; +} + always_inline svm_msg_q_t * session_main_get_vpp_event_queue (u32 thread_index) { @@ -566,8 +574,8 @@ session_main_is_enabled () #define session_cli_return_if_not_enabled() \ do { \ - if (!session_main.is_enabled) \ - return clib_error_return(0, "session layer is not enabled"); \ + if (!session_main.is_enabled) \ + return clib_error_return (0, "session layer is not enabled"); \ } while (0) int session_main_flush_enqueue_events (u8 proto, u32 thread_index); |