diff options
author | Filip Tehlar <ftehlar@cisco.com> | 2020-04-29 23:18:41 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-04-30 10:16:13 +0000 |
commit | e09912001f1e62a39b033b3e1c14854dc7c6f52f (patch) | |
tree | d97a512379e9096e86db140debc175ecaf715135 /src | |
parent | 3d18fbf8e62f4647c85848cb7bab1940d8bad400 (diff) |
ikev2: use thread local vlib_main in vlib_time_now
Type: fix
Change-Id: I8e4a47bd16fa8475ef695c09e3487eabf08faabe
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/ikev2/ikev2.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/plugins/ikev2/ikev2.c b/src/plugins/ikev2/ikev2.c index 45da023f104..1baa01eab9d 100644 --- a/src/plugins/ikev2/ikev2.c +++ b/src/plugins/ikev2/ikev2.c @@ -1580,7 +1580,7 @@ ikev2_add_tunnel_from_main (ikev2_add_ipsec_tunnel_args_t * a) } static int -ikev2_create_tunnel_interface (vnet_main_t * vnm, +ikev2_create_tunnel_interface (vlib_main_t * vm, u32 thread_index, ikev2_sa_t * sa, ikev2_child_sa_t * child, u32 sa_index, @@ -1756,8 +1756,7 @@ ikev2_create_tunnel_interface (vnet_main_t * vnm, if (p && p->lifetime) { - child->time_to_expiration = - vlib_time_now (vnm->vlib_main) + p->lifetime; + child->time_to_expiration = vlib_time_now (vm) + p->lifetime; if (p->lifetime_jitter) { // This is not much better than rand(3), which Coverity warns @@ -1765,7 +1764,7 @@ ikev2_create_tunnel_interface (vnet_main_t * vnm, // however fast. If this perturbance to the expiration time // needs to use a better RNG then we may need to use something // like /dev/urandom which has significant overhead. - u32 rnd = (u32) (vlib_time_now (vnm->vlib_main) * 1e6); + u32 rnd = (u32) (vlib_time_now (vm) * 1e6); rnd = random_u32 (&rnd); child->time_to_expiration += 1 + (rnd % p->lifetime_jitter); @@ -2305,11 +2304,10 @@ ikev2_retransmit_resp (ikev2_sa_t * sa, ike_header_t * ike) } static void -ikev2_init_sa (ikev2_sa_t * sa) +ikev2_init_sa (vlib_main_t * vm, ikev2_sa_t * sa) { ikev2_main_t *km = &ikev2_main; - sa->liveness_period_check = - vlib_time_now (km->vlib_main) + km->liveness_period; + sa->liveness_period_check = vlib_time_now (vm) + km->liveness_period; } static uword @@ -2420,7 +2418,7 @@ ikev2_node_fn (vlib_main_t * vm, pool_get (km->per_thread_data[thread_index].sas, sa0); clib_memcpy_fast (sa0, &sa, sizeof (*sa0)); - ikev2_init_sa (sa0); + ikev2_init_sa (vm, sa0); hash_set (km-> per_thread_data[thread_index].sa_by_rspi, sa0->rspi, @@ -2511,8 +2509,7 @@ ikev2_node_fn (vlib_main_t * vm, ikev2_initial_contact_cleanup (sa0); ikev2_sa_match_ts (sa0); if (sa0->state != IKEV2_STATE_TS_UNACCEPTABLE) - ikev2_create_tunnel_interface (km->vnet_main, - thread_index, sa0, + ikev2_create_tunnel_interface (vm, thread_index, sa0, &sa0->childs[0], p[0], 0, 0); } @@ -2643,9 +2640,8 @@ ikev2_node_fn (vlib_main_t * vm, child->i_proposals = sa0->rekey[0].i_proposal; child->tsi = sa0->rekey[0].tsi; child->tsr = sa0->rekey[0].tsr; - ikev2_create_tunnel_interface (km->vnet_main, - thread_index, sa0, - child, p[0], + ikev2_create_tunnel_interface (vm, thread_index, + sa0, child, p[0], child - sa0->childs, 1); } |