diff options
author | Florin Coras <fcoras@cisco.com> | 2020-11-25 08:44:16 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-11-25 19:02:59 +0000 |
commit | e92c946498f544d6d435353eb06aa07fb20e054e (patch) | |
tree | 60e27e57cb7e26099bf0ab4fc4e27416d38d4f49 | |
parent | bc867c3d2137dab4b1395196c1936233517980ab (diff) |
session: add startup option to poll in main
Type: improvement
Needed to support multi-worker tests
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I68d5590cece24a744513dc6c324dfb2861a38a94
-rw-r--r-- | src/plugins/quic/test/test_quic.py | 4 | ||||
-rw-r--r-- | src/vcl/test/test_vcl.py | 1 | ||||
-rw-r--r-- | src/vnet/session/session.c | 7 | ||||
-rw-r--r-- | src/vnet/session/session.h | 3 |
4 files changed, 11 insertions, 4 deletions
diff --git a/src/plugins/quic/test/test_quic.py b/src/plugins/quic/test/test_quic.py index d2c2476b7e6..0a654cba52b 100644 --- a/src/plugins/quic/test/test_quic.py +++ b/src/plugins/quic/test/test_quic.py @@ -110,7 +110,7 @@ class QUICTestCase(VppTestCase): class QUICEchoIntTestCase(QUICTestCase): """QUIC Echo Internal Test Case""" test_bytes = ' test-bytes' - extra_vpp_punt_config = ["session", "{", "enable", "}"] + extra_vpp_punt_config = ["session", "{", "enable", "poll-main", "}"] def setUp(self): super(QUICEchoIntTestCase, self).setUp() @@ -177,7 +177,7 @@ class QUICEchoExtTestCase(QUICTestCase): server_fifo_size = "1M" client_fifo_size = "4M" extra_vpp_punt_config = ["session", "{", - "enable", "evt_qs_memfd_seg", + "enable", "poll-main", "evt_qs_memfd_seg", "evt_qs_seg_size", "64M", "event-queue-length", f"{evt_q_len}", "preallocated-sessions", "1024", diff --git a/src/vcl/test/test_vcl.py b/src/vcl/test/test_vcl.py index f6d638539f0..afb38482207 100644 --- a/src/vcl/test/test_vcl.py +++ b/src/vcl/test/test_vcl.py @@ -49,6 +49,7 @@ class VCLAppWorker(Worker): class VCLTestCase(VppTestCase): """ VCL Test Class """ + extra_vpp_punt_config = ["session", "{", "poll-main", "}"] @classmethod def setUpClass(cls): diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index 1f248057745..b0a17bbb214 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -1780,8 +1780,8 @@ session_node_enable_disable (u8 is_en) session_queue_process_node.index, SESSION_Q_PROCESS_STOP, 0); } - - continue; + if (!session_main.poll_main) + continue; } vlib_node_set_state (this_vlib_main, session_queue_node.index, state); @@ -1818,6 +1818,7 @@ session_main_init (vlib_main_t * vm) smm->is_enabled = 0; smm->session_enable_asap = 0; + smm->poll_main = 0; smm->session_baseva = HIGH_SEGMENT_BASEVA; #if (HIGH_SEGMENT_BASEVA > (4ULL << 30)) @@ -1935,6 +1936,8 @@ session_config_fn (vlib_main_t * vm, unformat_input_t * input) ; else if (unformat (input, "use-app-socket-api")) appns_sapi_enable (); + else if (unformat (input, "poll-main")) + smm->poll_main = 1; else return clib_error_return (0, "unknown input `%U'", format_unformat_error, input); diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index f6997fb18f6..9b9cd29114d 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -171,6 +171,9 @@ typedef struct session_main_ /** Enable session manager at startup */ u8 session_enable_asap; + /** Poll session node in main thread */ + u8 poll_main; + /** vpp fifo event queue configured length */ u32 configured_event_queue_length; |