mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 00:06:09 +00:00
zebra: Check active on OLD system/kernel routes
We can assume that system/kernel routes are valid indeed if this is our first time procesing them. But since we don't get explicit deletion events for kernel routes anymore, we have to be prepared to process them if the nexthop becomes unreachable for instance. Therefore, if the route is not NEW, then don't assume its valid. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
This commit is contained in:
parent
2a99ab95e6
commit
a8c427ee39
@ -177,10 +177,16 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
|
||||
re->nexthop_mtu = 0;
|
||||
|
||||
/*
|
||||
* If the kernel has sent us a route, then
|
||||
* If the kernel has sent us a NEW route, then
|
||||
* by golly gee whiz it's a good route.
|
||||
*
|
||||
* If its an already INSTALLED route we have already handled, then the
|
||||
* kernel route's nexthop might have became unreachable
|
||||
* and we have to handle that.
|
||||
*/
|
||||
if (re->type == ZEBRA_ROUTE_KERNEL || re->type == ZEBRA_ROUTE_SYSTEM)
|
||||
if (!CHECK_FLAG(re->status, ROUTE_ENTRY_INSTALLED)
|
||||
&& (re->type == ZEBRA_ROUTE_KERNEL
|
||||
|| re->type == ZEBRA_ROUTE_SYSTEM))
|
||||
return 1;
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user