From c99c0250a55ae6d4f02292e94d7b48589f8da4ce Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Wed, 18 Dec 2019 12:17:06 +0000 Subject: ip: reassembly: improve type safety Type: refactor Change-Id: Ib2d4a11ffa0e1e56ca05705ba8cdf84e6cc66427 Signed-off-by: Klement Sekera --- src/vnet/ip/reass/ip4_full_reass.c | 10 ++++------ src/vnet/ip/reass/ip4_sv_reass.c | 9 ++++----- src/vnet/ip/reass/ip6_full_reass.c | 18 ++++++++---------- src/vnet/ip/reass/ip6_sv_reass.c | 17 ++++++++--------- 4 files changed, 24 insertions(+), 30 deletions(-) (limited to 'src/vnet/ip') diff --git a/src/vnet/ip/reass/ip4_full_reass.c b/src/vnet/ip/reass/ip4_full_reass.c index 94136ff487c..0828d3b0e47 100644 --- a/src/vnet/ip/reass/ip4_full_reass.c +++ b/src/vnet/ip/reass/ip4_full_reass.c @@ -480,8 +480,7 @@ again: reass = NULL; now = vlib_time_now (vm); - if (!clib_bihash_search_16_8 - (&rm->hash, (clib_bihash_kv_16_8_t *) kv, (clib_bihash_kv_16_8_t *) kv)) + if (!clib_bihash_search_16_8 (&rm->hash, &kv->kv, &kv->kv)) { reass = pool_elt_at_index (rm->per_thread_data @@ -523,14 +522,13 @@ again: ++rt->reass_n; } - reass->key.as_u64[0] = ((clib_bihash_kv_16_8_t *) kv)->key[0]; - reass->key.as_u64[1] = ((clib_bihash_kv_16_8_t *) kv)->key[1]; + reass->key.as_u64[0] = kv->kv.key[0]; + reass->key.as_u64[1] = kv->kv.key[1]; kv->v.reass_index = (reass - rt->pool); kv->v.memory_owner_thread_index = vm->thread_index; reass->last_heard = now; - int rv = - clib_bihash_add_del_16_8 (&rm->hash, (clib_bihash_kv_16_8_t *) kv, 2); + int rv = clib_bihash_add_del_16_8 (&rm->hash, &kv->kv, 2); if (rv) { ip4_full_reass_free_ctx (rt, reass); diff --git a/src/vnet/ip/reass/ip4_sv_reass.c b/src/vnet/ip/reass/ip4_sv_reass.c index 9b6116c9778..63debefbc98 100644 --- a/src/vnet/ip/reass/ip4_sv_reass.c +++ b/src/vnet/ip/reass/ip4_sv_reass.c @@ -307,8 +307,7 @@ ip4_sv_reass_find_or_create (vlib_main_t * vm, ip4_sv_reass_main_t * rm, ip4_sv_reass_t *reass = NULL; f64 now = vlib_time_now (rm->vlib_main); - if (!clib_bihash_search_16_8 - (&rm->hash, (clib_bihash_kv_16_8_t *) kv, (clib_bihash_kv_16_8_t *) kv)) + if (!clib_bihash_search_16_8 (&rm->hash, &kv->kv, &kv->kv)) { if (vm->thread_index != kv->v.thread_index) { @@ -356,13 +355,13 @@ ip4_sv_reass_find_or_create (vlib_main_t * vm, ip4_sv_reass_main_t * rm, rt->lru_first = rt->lru_last = reass - rt->pool; } - reass->key.as_u64[0] = ((clib_bihash_kv_16_8_t *) kv)->key[0]; - reass->key.as_u64[1] = ((clib_bihash_kv_16_8_t *) kv)->key[1]; + reass->key.as_u64[0] = kv->kv.key[0]; + reass->key.as_u64[1] = kv->kv.key[1]; kv->v.reass_index = (reass - rt->pool); kv->v.thread_index = vm->thread_index; reass->last_heard = now; - if (clib_bihash_add_del_16_8 (&rm->hash, (clib_bihash_kv_16_8_t *) kv, 1)) + if (clib_bihash_add_del_16_8 (&rm->hash, &kv->kv, 1)) { ip4_sv_reass_free (vm, rm, rt, reass); reass = NULL; diff --git a/src/vnet/ip/reass/ip6_full_reass.c b/src/vnet/ip/reass/ip6_full_reass.c index ff3475a38d7..15ee3e3775d 100644 --- a/src/vnet/ip/reass/ip6_full_reass.c +++ b/src/vnet/ip/reass/ip6_full_reass.c @@ -506,8 +506,7 @@ again: reass = NULL; now = vlib_time_now (vm); - if (!clib_bihash_search_48_8 - (&rm->hash, (clib_bihash_kv_48_8_t *) kv, (clib_bihash_kv_48_8_t *) kv)) + if (!clib_bihash_search_48_8 (&rm->hash, &kv->kv, &kv->kv)) { reass = pool_elt_at_index (rm->per_thread_data @@ -552,18 +551,17 @@ again: ++rt->reass_n; } - reass->key.as_u64[0] = ((clib_bihash_kv_48_8_t *) kv)->key[0]; - reass->key.as_u64[1] = ((clib_bihash_kv_48_8_t *) kv)->key[1]; - reass->key.as_u64[2] = ((clib_bihash_kv_48_8_t *) kv)->key[2]; - reass->key.as_u64[3] = ((clib_bihash_kv_48_8_t *) kv)->key[3]; - reass->key.as_u64[4] = ((clib_bihash_kv_48_8_t *) kv)->key[4]; - reass->key.as_u64[5] = ((clib_bihash_kv_48_8_t *) kv)->key[5]; + reass->key.as_u64[0] = kv->kv.key[0]; + reass->key.as_u64[1] = kv->kv.key[1]; + reass->key.as_u64[2] = kv->kv.key[2]; + reass->key.as_u64[3] = kv->kv.key[3]; + reass->key.as_u64[4] = kv->kv.key[4]; + reass->key.as_u64[5] = kv->kv.key[5]; kv->v.reass_index = (reass - rt->pool); kv->v.memory_owner_thread_index = vm->thread_index; reass->last_heard = now; - int rv = - clib_bihash_add_del_48_8 (&rm->hash, (clib_bihash_kv_48_8_t *) kv, 2); + int rv = clib_bihash_add_del_48_8 (&rm->hash, &kv->kv, 2); if (rv) { ip6_full_reass_free (rm, rt, reass); diff --git a/src/vnet/ip/reass/ip6_sv_reass.c b/src/vnet/ip/reass/ip6_sv_reass.c index e026597ea7b..720b430cb50 100644 --- a/src/vnet/ip/reass/ip6_sv_reass.c +++ b/src/vnet/ip/reass/ip6_sv_reass.c @@ -305,8 +305,7 @@ ip6_sv_reass_find_or_create (vlib_main_t * vm, vlib_node_runtime_t * node, ip6_sv_reass_t *reass = NULL; f64 now = vlib_time_now (rm->vlib_main); - if (!clib_bihash_search_48_8 - (&rm->hash, (clib_bihash_kv_48_8_t *) kv, (clib_bihash_kv_48_8_t *) kv)) + if (!clib_bihash_search_48_8 (&rm->hash, &kv->kv, &kv->kv)) { if (vm->thread_index != kv->v.thread_index) { @@ -355,17 +354,17 @@ ip6_sv_reass_find_or_create (vlib_main_t * vm, vlib_node_runtime_t * node, rt->lru_first = rt->lru_last = reass - rt->pool; } - reass->key.as_u64[0] = ((clib_bihash_kv_48_8_t *) kv)->key[0]; - reass->key.as_u64[1] = ((clib_bihash_kv_48_8_t *) kv)->key[1]; - reass->key.as_u64[2] = ((clib_bihash_kv_48_8_t *) kv)->key[2]; - reass->key.as_u64[3] = ((clib_bihash_kv_48_8_t *) kv)->key[3]; - reass->key.as_u64[4] = ((clib_bihash_kv_48_8_t *) kv)->key[4]; - reass->key.as_u64[5] = ((clib_bihash_kv_48_8_t *) kv)->key[5]; + reass->key.as_u64[0] = kv->kv.key[0]; + reass->key.as_u64[1] = kv->kv.key[1]; + reass->key.as_u64[2] = kv->kv.key[2]; + reass->key.as_u64[3] = kv->kv.key[3]; + reass->key.as_u64[4] = kv->kv.key[4]; + reass->key.as_u64[5] = kv->kv.key[5]; kv->v.reass_index = (reass - rt->pool); kv->v.thread_index = vm->thread_index; reass->last_heard = now; - if (clib_bihash_add_del_48_8 (&rm->hash, (clib_bihash_kv_48_8_t *) kv, 1)) + if (clib_bihash_add_del_48_8 (&rm->hash, &kv->kv, 1)) { ip6_sv_reass_free (vm, rm, rt, reass); reass = NULL; -- cgit 1.2.3-korg