From 1f6a5aca264d5cc78aa4fd16bbad31d91a80f01a Mon Sep 17 00:00:00 2001 From: Mark Stapp Date: Thu, 12 Dec 2019 09:53:55 -0500 Subject: [PATCH] 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 --- zebra/zebra_rib.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index fb5dadd2d6..f375036db2 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -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 */ -- 2.39.5