zebra: handle route notification with no nexthops

Handle the special case where a route update contains
no installed nexthops - that means the route is not
installed.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
This commit is contained in:
Mark Stapp 2019-12-12 09:53:55 -05:00
parent 4c0b5436f9
commit 1f6a5aca26

View File

@ -1369,6 +1369,14 @@ static bool rib_update_re_from_ctx(struct route_entry *re,
ctx_nexthop = dplane_ctx_get_ng(ctx)->nexthop;
/* Nothing installed - we can skip some of the checking/comparison
* of nexthops.
*/
if (ctx_nexthop == NULL) {
changed_p = true;
goto no_nexthops;
}
/* Get the first `installed` one to check against.
* If the dataplane doesn't set these to be what was actually installed,
* it will just be whatever was in re->nhe->nhg?
@ -1431,6 +1439,8 @@ static bool rib_update_re_from_ctx(struct route_entry *re,
goto done;
}
no_nexthops:
/* FIB nexthop set differs from the RIB set:
* create a fib-specific nexthop-group
*/