diff options
author | 2016-06-21 16:05:09 -0500 | |
---|---|---|
committer | 2016-06-29 09:18:43 +0000 | |
commit | 2838a2355a130b951ef5e3ebbf630f6d2c65b120 (patch) | |
tree | 341df8fcee0c3a301ff4632604c1a762a16052d3 /vnet/vnet/ipsec/ipsec_cli.c | |
parent | 816f3e1b879b43802ea8035d6a3f1cbf5db76825 (diff) |
VPP-158: VPP crashes in IKEv2 code when running multithreaded
Change tunnel interface creation to be done from the main thread instead
of a worker thread by calling vl_api_rpc_call_main_thread.
Make per-thread copies of volatile elements in ikev2_main.
Change-Id: I4cda8aaa392a04c2aea2d50a52a07933cf40c016
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Diffstat (limited to 'vnet/vnet/ipsec/ipsec_cli.c')
-rw-r--r-- | vnet/vnet/ipsec/ipsec_cli.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/vnet/vnet/ipsec/ipsec_cli.c b/vnet/vnet/ipsec/ipsec_cli.c index 0205d8bc877..1d19e537b88 100644 --- a/vnet/vnet/ipsec/ipsec_cli.c +++ b/vnet/vnet/ipsec/ipsec_cli.c @@ -585,12 +585,11 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm, { unformat_input_t _line_input, * line_input = &_line_input; ipsec_add_del_tunnel_args_t a; - ipsec_main_t *im = &ipsec_main; int rv; u32 num_m_args = 0; + + memset(&a, 0, sizeof(a)); a.is_add = 1; - a.anti_replay = 0; - a.esn = 0; /* Get a line of input. */ if (! unformat_user (input, unformat_line_input, line_input)) @@ -616,7 +615,7 @@ create_ipsec_tunnel_command_fn (vlib_main_t * vm, if (num_m_args < 4) return clib_error_return (0, "mandatory argument(s) missing"); - rv = ipsec_add_del_tunnel_if (im->vnet_main, &a); + rv = ipsec_add_del_tunnel_if (&a); switch(rv) { |