X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fnat44%2Finlines.h;h=a5118ea2fa65436d6c2ba867167564341d16a6e4;hb=c611f36bbc75a7157bbec26a78178872ddc5441f;hp=229daa2425e18165116bbed8fd5ccd54deccdcea;hpb=e4deacc4220511c5ee93eca6b059d2a64ab1d36c;p=vpp.git diff --git a/src/plugins/nat/nat44/inlines.h b/src/plugins/nat/nat44/inlines.h index 229daa2425e..a5118ea2fa6 100644 --- a/src/plugins/nat/nat44/inlines.h +++ b/src/plugins/nat/nat44/inlines.h @@ -77,6 +77,28 @@ nat44_global_lru_insert (snat_main_per_thread_data_t * tsm, s->last_lru_update = now; } +static_always_inline void +nat44_sessions_clear () +{ + snat_main_t *sm = &snat_main; + snat_main_per_thread_data_t *tsm; + + /* *INDENT-OFF* */ + vec_foreach (tsm, sm->per_thread_data) + { + u32 ti; + + nat44_db_free (tsm); + nat44_db_init (tsm); + + ti = tsm->snat_thread_index; + // clear per thread session counters + vlib_set_simple_counter (&sm->total_users, ti, 0, 0); + vlib_set_simple_counter (&sm->total_sessions, ti, 0, 0); + } + /* *INDENT-ON* */ +} + static_always_inline void nat44_user_del_sessions (snat_user_t * u, u32 thread_index) { @@ -113,6 +135,9 @@ nat44_user_del (ip4_address_t * addr, u32 fib_index) snat_user_key_t user_key; clib_bihash_kv_8_8_t kv, value; + if (sm->deterministic || sm->endpoint_dependent) + return rv; + user_key.addr.as_u32 = addr->as_u32; user_key.fib_index = fib_index; kv.key = user_key.as_u64;