diff options
author | Maxime Peim <mpeim@cisco.com> | 2021-04-15 13:52:12 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2021-05-05 14:17:54 +0000 |
commit | dde163d96f5051582e2e5b88b9c78169a827370c (patch) | |
tree | 71535de1758331ade1378ba50e378330c5d3caf9 | |
parent | 9d91e0271f416819f8a6d712d5475593ea37d794 (diff) |
vlib: fix adaptive mode flag unset on nodes reforking
The adaptive mode flag is being unset on
nodes reforking. The flag is copied in order
to avoid this issue.
Old flags are copied for all nodes.
Type: fix
Signed-off-by: Maxime Peim <mpeim@cisco.com>
Change-Id: Ic29b20fc0e4454ce4b3765c478f55bf650b4572a
-rw-r--r-- | src/vlib/threads.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/vlib/threads.c b/src/vlib/threads.c index c65460e3234..7c796f5d0ea 100644 --- a/src/vlib/threads.c +++ b/src/vlib/threads.c @@ -1101,6 +1101,7 @@ vlib_worker_thread_node_refork (void) /* keep previous node state */ new_n_clone->state = old_n_clone->state; + new_n_clone->flags = old_n_clone->flags; } vec_add1 (nm_clone->nodes, new_n_clone); new_n_clone++; @@ -1132,6 +1133,7 @@ vlib_worker_thread_node_refork (void) { rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index); rt->state = old_rt[j].state; + rt->flags = old_rt[j].flags; clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data, VLIB_NODE_RUNTIME_DATA_SIZE); } @@ -1162,6 +1164,7 @@ vlib_worker_thread_node_refork (void) { rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index); rt->state = old_rt[j].state; + rt->flags = old_rt[j].flags; clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data, VLIB_NODE_RUNTIME_DATA_SIZE); } @@ -1189,6 +1192,7 @@ vlib_worker_thread_node_refork (void) { rt = vlib_node_get_runtime (vm_clone, old_rt[j].node_index); rt->state = old_rt[j].state; + rt->flags = old_rt[j].flags; clib_memcpy_fast (rt->runtime_data, old_rt[j].runtime_data, VLIB_NODE_RUNTIME_DATA_SIZE); } |