diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2020-09-23 10:43:16 +0200 |
---|---|---|
committer | Ole Tr�an <otroan@employees.org> | 2020-09-23 12:02:12 +0000 |
commit | d63f73b8393b086d21a5197d1e02fac243867a93 (patch) | |
tree | 7442b7c98fc64f220070216ccf8d4f9bdf59d49a /src/plugins/cnat/cnat_types.c | |
parent | 8eb69407c8075e101b773d5a27ea21bd3fc906d7 (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.c | 23 |
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)) |