diff options
author | Filip Varga <fivarga@cisco.com> | 2020-05-07 14:28:56 +0200 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-05-07 17:04:00 +0000 |
commit | 9bb09afb56b1aa787ca574cc732085272059fd5f (patch) | |
tree | 38a3051033c5ed864386969f710a07b89c224728 /src/plugins/nat/in2out.c | |
parent | 5505ee8904fafc7c1f017f88853f80a616784cf2 (diff) |
nat: fix per thread data vlib_main_t usage
Type: fix
Change-Id: If6784c9eb278f525e05304d10fd1a00641faaaf0
Signed-off-by: Filip Varga <fivarga@cisco.com>
Diffstat (limited to 'src/plugins/nat/in2out.c')
-rwxr-xr-x | src/plugins/nat/in2out.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/plugins/nat/in2out.c b/src/plugins/nat/in2out.c index 3f8c4abe60f..d5bd9f5c851 100755 --- a/src/plugins/nat/in2out.c +++ b/src/plugins/nat/in2out.c @@ -460,6 +460,7 @@ icmp_match_in2out_slow (snat_main_t * sm, vlib_node_runtime_t * node, snat_session_key_t * p_value, u8 * p_dont_translate, void *d, void *e) { + snat_main_per_thread_data_t *tsm = &sm->per_thread_data[thread_index]; u32 sw_if_index0; u32 rx_fib_index0; snat_session_key_t key0; @@ -483,8 +484,7 @@ icmp_match_in2out_slow (snat_main_t * sm, vlib_node_runtime_t * node, kv0.key = key0.as_u64; - if (clib_bihash_search_8_8 (&sm->per_thread_data[thread_index].in2out, &kv0, - &value0)) + if (clib_bihash_search_8_8 (&tsm->in2out, &kv0, &value0)) { if (vnet_buffer (b0)->sw_if_index[VLIB_TX] != ~0) { @@ -521,7 +521,7 @@ icmp_match_in2out_slow (snat_main_t * sm, vlib_node_runtime_t * node, } next0 = slow_path (sm, b0, ip0, rx_fib_index0, &key0, &s0, node, next0, - thread_index, vlib_time_now (sm->vlib_main)); + thread_index, vlib_time_now (tsm->vlib_main)); if (PREDICT_FALSE (next0 == SNAT_IN2OUT_NEXT_DROP)) goto out; @@ -547,8 +547,7 @@ icmp_match_in2out_slow (snat_main_t * sm, vlib_node_runtime_t * node, goto out; } - s0 = pool_elt_at_index (sm->per_thread_data[thread_index].sessions, - value0.value); + s0 = pool_elt_at_index (tsm->sessions, value0.value); } out: @@ -660,6 +659,7 @@ icmp_in2out (snat_main_t * sm, vlib_node_runtime_t * node, u32 next0, u32 thread_index, void *d, void *e) { + snat_main_per_thread_data_t *tsm = &sm->per_thread_data[thread_index]; snat_session_key_t sm0; u8 protocol; icmp_echo_header_t *echo0, *inner_echo0 = 0; @@ -686,11 +686,12 @@ icmp_in2out (snat_main_t * sm, if (PREDICT_TRUE (!ip4_is_fragment (ip0))) { - sum0 = ip_incremental_checksum_buffer (sm->vlib_main, b0, (u8 *) icmp0 - - (u8 *) - vlib_buffer_get_current (b0), - ntohs (ip0->length) - - ip4_header_bytes (ip0), 0); + sum0 = + ip_incremental_checksum_buffer (tsm->vlib_main, b0, + (u8 *) icmp0 - + (u8 *) vlib_buffer_get_current (b0), + ntohs (ip0->length) - + ip4_header_bytes (ip0), 0); checksum0 = ~ip_csum_fold (sum0); if (PREDICT_FALSE (checksum0 != 0 && checksum0 != 0xffff)) { @@ -818,6 +819,7 @@ icmp_in2out_slow_path (snat_main_t * sm, u32 next0, f64 now, u32 thread_index, snat_session_t ** p_s0) { + snat_main_per_thread_data_t *tsm = &sm->per_thread_data[thread_index]; next0 = icmp_in2out (sm, b0, ip0, icmp0, sw_if_index0, rx_fib_index0, node, next0, thread_index, p_s0, 0); snat_session_t *s0 = *p_s0; @@ -826,7 +828,7 @@ icmp_in2out_slow_path (snat_main_t * sm, /* Accounting */ nat44_session_update_counters (s0, now, vlib_buffer_length_in_chain - (sm->vlib_main, b0), thread_index); + (tsm->vlib_main, b0), thread_index); /* Per-user LRU list maintenance */ nat44_session_update_lru (sm, s0, thread_index); } |