]> git.proxmox.com Git - mirror_frr.git/commitdiff
zebra: Trust kernel and System routes
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 30 Jan 2019 02:45:02 +0000 (21:45 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 30 Jan 2019 02:45:02 +0000 (21:45 -0500)
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>
zebra/zebra_rib.c

index 0d284b74b0583fbf58105ddea561faf60b9fc482..3205f68b6882d9daedd6f0221cde3baf2cf690c5 100644 (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))
                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 */
        /* The nexthops are specific to this route and so the same */
        /* nexthop for a different route may not have this flag set */