zebra: Trust kernel and System routes

If we receive a valid message from the kernel that
is either a kernel or system route, we should trust
that the route is legit and just use it.

Old behavior:

K * 172.22.0.0/15 [0/0] via 172.22.2.254, eva_dummy1 inactive, 00:00:16

New Behavior:

K>* 172.22.0.0/15 [0/0] via 172.22.2.254, eva_dummy1, 00:02:35

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2019-01-29 21:45:02 -05:00
parent 2da33d6b3a
commit 058c16b7e2

View File

@ -437,6 +437,14 @@ static int nexthop_active(afi_t afi, struct route_entry *re,
if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_EVPN_RVTEP)) if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_EVPN_RVTEP))
return 1; return 1;
/*
* If the kernel has sent us a route, then
* by golly gee whiz it's a good route.
*/
if (re->type == ZEBRA_ROUTE_KERNEL ||
re->type == ZEBRA_ROUTE_SYSTEM)
return 1;
/* Skip nexthops that have been filtered out due to route-map */ /* Skip nexthops that have been filtered out due to route-map */
/* The nexthops are specific to this route and so the same */ /* The nexthops are specific to this route and so the same */
/* nexthop for a different route may not have this flag set */ /* nexthop for a different route may not have this flag set */