diff options
author | Florin Coras <fcoras@cisco.com> | 2022-01-20 18:10:26 -0800 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2022-01-22 00:29:30 +0000 |
commit | 5384cca85573f553452254abc888f0153a26c15e (patch) | |
tree | cec0101efd61ec4d0240ca11165772b8d6268de9 /src/vnet/session/session_node.c | |
parent | 77e69ae2d172dce74f4da4cae52bb63e28daa3ae (diff) |
session: update time for list of subscribers
Instead of constantly scanning all transport vfts for update time
functions, build list at transport enable time.
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Id5c07cc03ee1fdd072ebbbd40119d1a440a5e3b1
Diffstat (limited to 'src/vnet/session/session_node.c')
-rw-r--r-- | src/vnet/session/session_node.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 403c28f28ce..162d54e7697 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -1642,6 +1642,16 @@ static const u32 session_evt_msg_sizes[] = { /* *INDENT-ON* */ always_inline void +session_update_time_subscribers (session_main_t *smm, clib_time_type_t now, + u32 thread_index) +{ + session_update_time_fn *fn; + + vec_foreach (fn, smm->update_time_fns) + (*fn) (now, thread_index); +} + +always_inline void session_evt_add_to_list (session_worker_t * wrk, session_event_t * evt) { session_evt_elt_t *elt; @@ -1755,7 +1765,7 @@ session_queue_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, /* * Update transport time */ - transport_update_time (wrk->last_vlib_time, thread_index); + session_update_time_subscribers (smm, wrk->last_vlib_time, thread_index); n_tx_packets = vec_len (wrk->pending_tx_buffers); SESSION_EVT (SESSION_EVT_DSP_CNTRS, UPDATE_TIME, wrk); |