nat: add thread index assertions
Add extra assertions to debug build. Type: improvement Signed-off-by: Klement Sekera <ksekera@cisco.com> Change-Id: Ib20130365e8f9dbb556fcbb4321dd184c7eff603
This commit is contained in:

committed by
Ole Tr�an

parent
5fe9457fa2
commit
2de7e96e6f
@ -344,6 +344,7 @@ typedef CLIB_PACKED(struct
|
|||||||
/* per vrf sessions index */
|
/* per vrf sessions index */
|
||||||
u32 per_vrf_sessions_index;
|
u32 per_vrf_sessions_index;
|
||||||
|
|
||||||
|
u32 thread_index;
|
||||||
}) snat_session_t;
|
}) snat_session_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -1122,6 +1122,8 @@ nat44_ed_in2out_fast_path_node_fn_inline (vlib_main_t *vm,
|
|||||||
|
|
||||||
skip_lookup:
|
skip_lookup:
|
||||||
|
|
||||||
|
ASSERT (thread_index == s0->thread_index);
|
||||||
|
|
||||||
if (PREDICT_FALSE (per_vrf_sessions_is_expired (s0, thread_index)))
|
if (PREDICT_FALSE (per_vrf_sessions_is_expired (s0, thread_index)))
|
||||||
{
|
{
|
||||||
// session is closed, go slow path
|
// session is closed, go slow path
|
||||||
|
@ -329,6 +329,8 @@ nat_ed_ses_i2o_flow_hash_add_del (snat_main_t *sm, u32 thread_idx,
|
|||||||
nat_6t_flow_to_ed_kv (&kv, &s->i2o, thread_idx, s - tsm->sessions);
|
nat_6t_flow_to_ed_kv (&kv, &s->i2o, thread_idx, s - tsm->sessions);
|
||||||
nat_6t_l3_l4_csum_calc (&s->i2o);
|
nat_6t_l3_l4_csum_calc (&s->i2o);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ASSERT (thread_idx == s->thread_index);
|
||||||
return clib_bihash_add_del_16_8 (&sm->flow_hash, &kv, is_add);
|
return clib_bihash_add_del_16_8 (&sm->flow_hash, &kv, is_add);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,6 +350,7 @@ nat_ed_ses_o2i_flow_hash_add_del (snat_main_t *sm, u32 thread_idx,
|
|||||||
nat_6t_flow_to_ed_kv (&kv, &s->o2i, thread_idx, s - tsm->sessions);
|
nat_6t_flow_to_ed_kv (&kv, &s->o2i, thread_idx, s - tsm->sessions);
|
||||||
nat_6t_l3_l4_csum_calc (&s->o2i);
|
nat_6t_l3_l4_csum_calc (&s->o2i);
|
||||||
}
|
}
|
||||||
|
ASSERT (thread_idx == s->thread_index);
|
||||||
return clib_bihash_add_del_16_8 (&sm->flow_hash, &kv, is_add);
|
return clib_bihash_add_del_16_8 (&sm->flow_hash, &kv, is_add);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -441,6 +444,9 @@ nat_ed_session_alloc (snat_main_t *sm, u32 thread_index, f64 now, u8 proto)
|
|||||||
s->ha_last_refreshed = now;
|
s->ha_last_refreshed = now;
|
||||||
vlib_set_simple_counter (&sm->total_sessions, thread_index, 0,
|
vlib_set_simple_counter (&sm->total_sessions, thread_index, 0,
|
||||||
pool_elts (tsm->sessions));
|
pool_elts (tsm->sessions));
|
||||||
|
#if CLIB_ASSERT_ENABLE
|
||||||
|
s->thread_index = thread_index;
|
||||||
|
#endif
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -933,6 +933,8 @@ nat44_ed_out2in_fast_path_node_fn_inline (vlib_main_t * vm,
|
|||||||
ed_value_get_session_index (&value0));
|
ed_value_get_session_index (&value0));
|
||||||
skip_lookup:
|
skip_lookup:
|
||||||
|
|
||||||
|
ASSERT (thread_index == s0->thread_index);
|
||||||
|
|
||||||
if (PREDICT_FALSE (per_vrf_sessions_is_expired (s0, thread_index)))
|
if (PREDICT_FALSE (per_vrf_sessions_is_expired (s0, thread_index)))
|
||||||
{
|
{
|
||||||
// session is closed, go slow path
|
// session is closed, go slow path
|
||||||
|
Reference in New Issue
Block a user