summaryrefslogtreecommitdiff
path: root/zebra/zebra_nhg.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_nhg.c')
-rw-r--r--zebra/zebra_nhg.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/zebra/zebra_nhg.c b/zebra/zebra_nhg.c
index 1839133310..172212c652 100644
--- a/zebra/zebra_nhg.c
+++ b/zebra/zebra_nhg.c
@@ -45,7 +45,6 @@ static void *zebra_nhg_alloc(void *arg)
nhe = XMALLOC(MTYPE_TMP, sizeof(struct nhg_hash_entry));
nhe->vrf_id = copy->vrf_id;
- nhe->afi = copy->afi;
nhe->refcnt = 0;
nhe->dplane_ref = zebra_router_get_next_sequence();
nhe->nhg.nexthop = NULL;
@@ -68,6 +67,7 @@ static uint32_t zebra_nhg_hash_key_nexthop_group(struct nexthop_group *nhg)
* resolved nexthops
*/
for (nh = nhg->nexthop; nh; nh = nh->next) {
+ key = jhash_1word(nh->type, key);
key = jhash_2words(nh->vrf_id, nh->nh_label_type, key);
/* gate and blackhole are together in a union */
key = jhash(&nh->gate, sizeof(nh->gate), key);
@@ -97,7 +97,7 @@ uint32_t zebra_nhg_hash_key(const void *arg)
const struct nhg_hash_entry *nhe = arg;
int key = 0x5a351234;
- key = jhash_2words(nhe->vrf_id, nhe->afi, key);
+ key = jhash_1word(nhe->vrf_id, key);
return jhash_1word(zebra_nhg_hash_key_nexthop_group(&nhe->nhg), key);
}
@@ -127,9 +127,6 @@ bool zebra_nhg_hash_equal(const void *arg1, const void *arg2)
if (nhe1->vrf_id != nhe2->vrf_id)
return false;
- if (nhe1->afi != nhe2->afi)
- return false;
-
/*
* Again we are not interested in looking at any recursively
* resolved nexthops. Top level only
@@ -183,25 +180,22 @@ void zebra_nhg_find_id(uint32_t id, struct nexthop_group *nhg)
zebra_nhg_lookup_get(zrouter.nhgs_id, &lookup);
}
-void zebra_nhg_find(afi_t afi, struct nexthop_group *nhg,
- struct route_entry *re)
+void zebra_nhg_find(struct nexthop_group *nhg, struct route_entry *re)
{
struct nhg_hash_entry lookup;
memset(&lookup, 0, sizeof(lookup));
lookup.vrf_id = re->vrf_id;
- lookup.afi = afi;
lookup.nhg = *nhg;
re->nhe = zebra_nhg_lookup_get(zrouter.nhgs, &lookup);
}
-void zebra_nhg_release(afi_t afi, struct route_entry *re)
+void zebra_nhg_release(struct route_entry *re)
{
struct nhg_hash_entry lookup, *nhe;
lookup.vrf_id = re->vrf_id;
- lookup.afi = afi;
lookup.nhg = *re->ng;
nhe = hash_lookup(zrouter.nhgs, &lookup);