From ad1f3e148224bced41afd47b0ab1ed158c07f399 Mon Sep 17 00:00:00 2001 From: Matus Fabian Date: Wed, 28 Nov 2018 21:26:34 -0800 Subject: NAT: syslog - sessions logging (VPP-1139) Change-Id: I6e0b7cf37c1a9ac66f8ac011db29504e57844ee9 Signed-off-by: Matus Fabian --- src/plugins/nat/dslite_in2out.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/plugins/nat/dslite_in2out.c') diff --git a/src/plugins/nat/dslite_in2out.c b/src/plugins/nat/dslite_in2out.c index e7a3028f28a..5c1de19b8b2 100644 --- a/src/plugins/nat/dslite_in2out.c +++ b/src/plugins/nat/dslite_in2out.c @@ -14,6 +14,7 @@ */ #include #include +#include vlib_node_registration_t dslite_in2out_node; vlib_node_registration_t dslite_in2out_slowpath_node; @@ -45,6 +46,7 @@ slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key, u32 oldest_index; dslite_session_t *s; snat_session_key_t out2in_key; + u32 b4_index; out2in_key.protocol = in2out_key->proto; out2in_key.fib_index = 0; @@ -66,12 +68,13 @@ slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key, clib_dlist_init (dm->per_thread_data[thread_index].list_pool, b4->sessions_per_b4_list_head_index); - b4_kv.value = b4 - dm->per_thread_data[thread_index].b4s; + b4_index = b4_kv.value = b4 - dm->per_thread_data[thread_index].b4s; clib_bihash_add_del_16_8 (&dm->per_thread_data[thread_index].b4_hash, &b4_kv, 1); } else { + b4_index = b4_value.value; b4 = pool_elt_at_index (dm->per_thread_data[thread_index].b4s, b4_value.value); @@ -104,6 +107,11 @@ slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key, snat_free_outside_address_and_port (dm->addr_pool, thread_index, &s->out2in); + nat_syslog_dslite_apmdel (b4_index, &s->in2out.softwire_id, + &s->in2out.addr, s->in2out.port, + &s->out2in.addr, s->out2in.port, + s->in2out.proto); + if (snat_alloc_outside_address_and_port (dm->addr_pool, 0, thread_index, &out2in_key, dm->port_per_thread, thread_index)) @@ -147,6 +155,10 @@ slow_path (dslite_main_t * dm, dslite_session_key_t * in2out_key, clib_bihash_add_del_8_8 (&dm->per_thread_data[thread_index].out2in, &out2in_kv, 1); + nat_syslog_dslite_apmadd (b4_index, &s->in2out.softwire_id, &s->in2out.addr, + s->in2out.port, &s->out2in.addr, s->out2in.port, + s->in2out.proto); + return next; } -- cgit 1.2.3-korg