aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cnat/cnat_types.c
diff options
context:
space:
mode:
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>2020-09-23 10:43:16 +0200
committerOle Tr�an <otroan@employees.org>2020-09-23 12:02:12 +0000
commitd63f73b8393b086d21a5197d1e02fac243867a93 (patch)
tree7442b7c98fc64f220070216ccf8d4f9bdf59d49a /src/plugins/cnat/cnat_types.c
parent8eb69407c8075e101b773d5a27ea21bd3fc906d7 (diff)
cnat: Disable default scanner process
Type: feature Change-Id: Iba9d9f384eaa35c5522e828e3cbe4516416294db Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/plugins/cnat/cnat_types.c')
-rw-r--r--src/plugins/cnat/cnat_types.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/plugins/cnat/cnat_types.c b/src/plugins/cnat/cnat_types.c
index 1f2287e1de3..ae485a48d79 100644
--- a/src/plugins/cnat/cnat_types.c
+++ b/src/plugins/cnat/cnat_types.c
@@ -88,6 +88,23 @@ cnat_types_init (vlib_main_t * vm)
return (NULL);
}
+void
+cnat_enable_disable_scanner (cnat_scanner_cmd_t event_type)
+{
+ vlib_main_t *vm = vlib_get_main ();
+ vlib_process_signal_event (vm, cnat_main.scanner_node_index, event_type, 0);
+}
+
+void
+cnat_lazy_init ()
+{
+ cnat_main_t *cm = &cnat_main;
+ if (cm->lazy_init_done)
+ return;
+ cnat_enable_disable_scanner (cm->default_scanner_state);
+ cm->lazy_init_done = 1;
+}
+
static clib_error_t *
cnat_config (vlib_main_t * vm, unformat_input_t * input)
{
@@ -102,6 +119,8 @@ cnat_config (vlib_main_t * vm, unformat_input_t * input)
cm->scanner_timeout = CNAT_DEFAULT_SCANNER_TIMEOUT;
cm->session_max_age = CNAT_DEFAULT_SESSION_MAX_AGE;
cm->tcp_max_age = CNAT_DEFAULT_TCP_MAX_AGE;
+ cm->default_scanner_state = CNAT_SCANNER_ON;
+ cm->lazy_init_done = 0;
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{
@@ -125,6 +144,10 @@ cnat_config (vlib_main_t * vm, unformat_input_t * input)
else if (unformat (input, "session-cleanup-timeout %f",
&cm->scanner_timeout))
;
+ else if (unformat (input, "scanner off"))
+ cm->default_scanner_state = CNAT_SCANNER_OFF;
+ else if (unformat (input, "scanner on"))
+ cm->default_scanner_state = CNAT_SCANNER_ON;
else if (unformat (input, "session-max-age %u", &cm->session_max_age))
;
else if (unformat (input, "tcp-max-age %u", &cm->tcp_max_age))