From 633e504d0a87cbaac2a700ceb667be04281064bf Mon Sep 17 00:00:00 2001 From: Don Slice Date: Fri, 15 Jul 2016 06:33:48 -0700 Subject: [PATCH] zebra: Eliminate use of imported arp entries as next-hops for other routes 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 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index d70f528f5a..8a2728a890 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -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; } -- 2.39.5