X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession_table.c;h=d619fa580d8e91481d649eae13849805e2e41dc5;hb=46d0ff3945404f7c95e0e504f98f466e155ab753;hp=3722e0f63be493486d66a98faec0d5fd9810f607;hpb=31c9955a4e83578422b3328ef0d7b2b248536644;p=vpp.git diff --git a/src/vnet/session/session_table.c b/src/vnet/session/session_table.c index 3722e0f63be..d619fa580d8 100644 --- a/src/vnet/session/session_table.c +++ b/src/vnet/session/session_table.c @@ -86,21 +86,47 @@ session_table_init (session_table_t * slt, u8 fib_proto) if (fib_proto == FIB_PROTOCOL_IP4 || all) { - clib_bihash_init_16_8 (&slt->v4_session_hash, "v4 session table", - configured_v4_session_table_buckets, - configured_v4_session_table_memory); - clib_bihash_init_16_8 (&slt->v4_half_open_hash, "v4 half-open table", - configured_v4_halfopen_table_buckets, - configured_v4_halfopen_table_memory); + clib_bihash_init2_args_16_8_t _a, *a = &_a; + + memset (a, 0, sizeof (*a)); + a->h = &slt->v4_session_hash; + a->name = "v4 session table"; + a->nbuckets = configured_v4_session_table_buckets; + a->memory_size = configured_v4_session_table_memory; + a->dont_add_to_all_bihash_list = 1; + a->instantiate_immediately = 1; + clib_bihash_init2_16_8 (a); + + memset (a, 0, sizeof (*a)); + a->h = &slt->v4_half_open_hash; + a->name = "v4 half-open table"; + a->nbuckets = configured_v4_halfopen_table_buckets; + a->memory_size = configured_v4_halfopen_table_memory; + a->dont_add_to_all_bihash_list = 1; + a->instantiate_immediately = 1; + clib_bihash_init2_16_8 (a); } if (fib_proto == FIB_PROTOCOL_IP6 || all) { - clib_bihash_init_48_8 (&slt->v6_session_hash, "v6 session table", - configured_v6_session_table_buckets, - configured_v6_session_table_memory); - clib_bihash_init_48_8 (&slt->v6_half_open_hash, "v6 half-open table", - configured_v6_halfopen_table_buckets, - configured_v6_halfopen_table_memory); + clib_bihash_init2_args_48_8_t _a, *a = &_a; + + memset (a, 0, sizeof (*a)); + a->h = &slt->v6_session_hash; + a->name = "v6 session table"; + a->nbuckets = configured_v6_session_table_buckets; + a->memory_size = configured_v6_session_table_memory; + a->dont_add_to_all_bihash_list = 1; + a->instantiate_immediately = 1; + clib_bihash_init2_48_8 (a); + + memset (a, 0, sizeof (*a)); + a->h = &slt->v6_half_open_hash; + a->name = "v6 half-open table"; + a->nbuckets = configured_v6_halfopen_table_buckets; + a->memory_size = configured_v6_halfopen_table_memory; + a->dont_add_to_all_bihash_list = 1; + a->instantiate_immediately = 1; + clib_bihash_init2_48_8 (a); } for (i = 0; i < TRANSPORT_N_PROTO; i++) @@ -113,11 +139,12 @@ typedef struct _ip4_session_table_walk_ctx_t void *ctx; } ip4_session_table_walk_ctx_t; -void +static int ip4_session_table_walk_cb (clib_bihash_kv_16_8_t * kvp, void *arg) { ip4_session_table_walk_ctx_t *ctx = arg; ctx->fn (kvp, ctx->ctx); + return (BIHASH_WALK_CONTINUE); } void