diff options
author | Florin Coras <fcoras@cisco.com> | 2018-11-13 15:52:38 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-11-18 19:46:38 +0000 |
commit | 053a0e44edb21713e0825f9c09ba4af12e686b38 (patch) | |
tree | 950e303daf1b367eab26cc823c0efc23ae170b1d /src/vcl/vcl_cfg.c | |
parent | 0c4fec0134f32bc913299b37d048a99293b1a851 (diff) |
vcl/session: apps with process workers
Allow apps to register child processes as app workers. In particular,
on fork vcl now registers the child process with vpp as a new worker.
Change-Id: I52a65fbc3292962b1f6e1fe0f6153f739e6e0d4a
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vcl/vcl_cfg.c')
-rw-r--r-- | src/vcl/vcl_cfg.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/vcl/vcl_cfg.c b/src/vcl/vcl_cfg.c index e39e5177908..3e92941d720 100644 --- a/src/vcl/vcl_cfg.c +++ b/src/vcl/vcl_cfg.c @@ -22,6 +22,7 @@ static vppcom_main_t _vppcom_main = { .debug = VPPCOM_DEBUG_INIT, .is_init = 0, + .main_api_client_index = ~0, .my_client_index = ~0 }; @@ -170,6 +171,7 @@ vppcom_cfg_heapsize (char *conf_fname) goto defaulted; } } + free (argv[i]); } defaulted: @@ -231,8 +233,7 @@ vppcom_cfg_read_file (char *conf_fname) if (fstat (fd, &s) < 0) { - VCFG_DBG (0, - "VCL<%d>: failed to stat `%s', using default configuration", + VCFG_DBG (0, "VCL<%d>: failed to stat `%s' using default configuration", getpid (), conf_fname); goto file_done; } @@ -254,17 +255,21 @@ vppcom_cfg_read_file (char *conf_fname) if (unformat (line_input, "vcl {")) { vc_cfg_input = 1; + unformat_free (line_input); continue; } if (vc_cfg_input) { - if (unformat (line_input, "heapsize %lu", &vcl_cfg->heapsize)) + if (unformat (line_input, "heapsize %U", unformat_memory_size, + &vcl_cfg->heapsize)) { VCFG_DBG (0, "VCL<%d>: configured heapsize %lu", getpid (), vcl_cfg->heapsize); } - if (unformat (line_input, "max-workers %u", &vcl_cfg->max_workers)) + else + if (unformat + (line_input, "max-workers %u", &vcl_cfg->max_workers)) { VCFG_DBG (0, "VCL<%d>: configured max-workers %u", getpid (), vcl_cfg->max_workers); @@ -490,6 +495,7 @@ vppcom_cfg_read_file (char *conf_fname) vc_cfg_input = 0; VCFG_DBG (0, "VCL<%d>: completed parsing vppcom config!", getpid ()); + unformat_free (line_input); goto input_done; } else @@ -501,6 +507,7 @@ vppcom_cfg_read_file (char *conf_fname) &line_input->buffer[line_input->index]); } } + unformat_free (line_input); } } |