From fd542f1085d3a06066168c2d38e7f328b5b26ee3 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Wed, 16 May 2018 19:28:24 -0700 Subject: session: add session process node Add a session process node that handles main thread tx and retransmit in order to avoid having a polling input node. Change-Id: I3357e987c023a84b533b32793e37ab4204420f64 Signed-off-by: Florin Coras --- src/vlib/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/vlib/main.c') diff --git a/src/vlib/main.c b/src/vlib/main.c index d1f7592e502..7da519241bb 100644 --- a/src/vlib/main.c +++ b/src/vlib/main.c @@ -1276,6 +1276,7 @@ dispatch_process (vlib_main_t * vm, vlib_node_main_t *nm = &vm->node_main; vlib_node_runtime_t *node_runtime = &p->node_runtime; vlib_node_t *node = vlib_get_node (vm, node_runtime->node_index); + u32 old_process_index; u64 t; uword n_vectors, is_suspend; @@ -1291,11 +1292,12 @@ dispatch_process (vlib_main_t * vm, f ? f->n_vectors : 0, /* is_after */ 0); /* Save away current process for suspend. */ + old_process_index = nm->current_process_index; nm->current_process_index = node->runtime_index; n_vectors = vlib_process_startup (vm, p, f); - nm->current_process_index = ~0; + nm->current_process_index = old_process_index; ASSERT (n_vectors != VLIB_PROCESS_RETURN_LONGJMP_RETURN); is_suspend = n_vectors == VLIB_PROCESS_RETURN_LONGJMP_SUSPEND; -- cgit 1.2.3-korg