From b3ea73e766013bed70340688ce361d9096045b44 Mon Sep 17 00:00:00 2001 From: Nathan Skrzypczak Date: Thu, 5 Aug 2021 10:22:52 +0200 Subject: session: implement app_ns deletion Type: feature Change-Id: If0edbb21a0283d66c648a9e190d238c8cfa56353 Signed-off-by: Nathan Skrzypczak --- src/vnet/session/session_table.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/vnet/session/session_table.c') diff --git a/src/vnet/session/session_table.c b/src/vnet/session/session_table.c index d0b576fda7b..9af8ae6a584 100644 --- a/src/vnet/session/session_table.c +++ b/src/vnet/session/session_table.c @@ -60,6 +60,31 @@ session_table_get (u32 table_index) _(v6,halfopen,buckets,20000) \ _(v6,halfopen,memory,(64<<20)) +void +session_table_free (session_table_t *slt, u8 fib_proto) +{ + u8 all = fib_proto > FIB_PROTOCOL_IP6 ? 1 : 0; + int i; + + for (i = 0; i < TRANSPORT_N_PROTOS; i++) + session_rules_table_free (&slt->session_rules[i]); + + vec_free (slt->session_rules); + + if (fib_proto == FIB_PROTOCOL_IP4 || all) + { + clib_bihash_free_16_8 (&slt->v4_session_hash); + clib_bihash_free_16_8 (&slt->v4_half_open_hash); + } + if (fib_proto == FIB_PROTOCOL_IP6 || all) + { + clib_bihash_free_48_8 (&slt->v6_session_hash); + clib_bihash_free_48_8 (&slt->v6_half_open_hash); + } + + pool_put (lookup_tables, slt); +} + /** * Initialize session table hash tables * -- cgit 1.2.3-korg