]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Eliminate use of imported arp entries as next-hops for other routes
authorDon Slice <dslice@cumulusnetworks.com>
Fri, 15 Jul 2016 13:33:48 +0000 (06:33 -0700)
committerDon Slice <dslice@cumulusnetworks.com>
Fri, 15 Jul 2016 13:33:48 +0000 (06:33 -0700)
Ticket: CM-8228
Signed-off-by: Donald Slice
Reviewed By:
Testing Done: Manual testing succesful. bgp-min and ospf-smoke successful. redistribute-neighbor-smoke
has the same failures as the base image.

Problem was due to considering imported /32 arp entries as elible next-hops for other routes
(in this case a static route.)  This confuses the rib since this next-hop is considered both
recursive and  onlink.  Disallowed the use of this imported arp entry in next-hop determination.

zebra/zebra_rib.c

index d70f528f5a41e95ae0d86d37d55f2d7883961109..8a2728a890a262785c6b6ad93acc10a3a33f9e44 100644 (file)
@@ -405,6 +405,10 @@ nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set,
        {
          if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED))
            continue;
+
+          /* if the next hop is imported from another table, skip it */
+          if (match->type == ZEBRA_ROUTE_TABLE)
+            continue;
          if (CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
            break;
        }