summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2019-12-18 12:17:06 +0000
committerNeale Ranns <nranns@cisco.com>2020-04-24 09:54:47 +0000
commitc99c0250a55ae6d4f02292e94d7b48589f8da4ce (patch)
tree383826431a2f11bcb106d48d93a7723e8b0410ef /src/vnet
parentec40a7d2bce4bba67af3b3d971547d40e90fdf97 (diff)
ip: reassembly: improve type safety
Type: refactor Change-Id: Ib2d4a11ffa0e1e56ca05705ba8cdf84e6cc66427 Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/ip/reass/ip4_full_reass.c10
-rw-r--r--src/vnet/ip/reass/ip4_sv_reass.c9
-rw-r--r--src/vnet/ip/reass/ip6_full_reass.c18
-rw-r--r--src/vnet/ip/reass/ip6_sv_reass.c17
4 files changed, 24 insertions, 30 deletions
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;