From 1dac3a9619c8436f81c7b37f0252574b0b677dd0 Mon Sep 17 00:00:00 2001 From: Don Slice Date: Tue, 14 Feb 2017 09:15:40 -0800 Subject: [PATCH] zebra: stop deregistering static nexthops unless removing the static Problem reported was that with some overlapping static route configurations, when the link went down the less specific static was not re-installed after the link came back up. Determined that with the overlapping statics, we would recursively resolve the next-hop temporarily thru the more specific static route, but since the next-hop wasn't actually reachable, we would go through the code that clears the nht information for the static completely. This caused the nht code to no longer process the static route. After reviewing the process, there doesn't seem to be any reason that the static should be deregistered in that section of code. Removed the deregister and the problem is resolved and not addional failures seen in manual testing. zebra_test.py completed successfully and ospf and bgp smokes completed with no new failures. Ticket: CM-14873 Signed-off-by: Don Slice Reviewed-by: CCR-5696 --- zebra/zebra_rib.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index e48da0479b..23c4c9ebea 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -366,7 +366,6 @@ nexthop_active_ipv4 (struct rib *rib, struct nexthop *nexthop, int set, if (set) { UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE); - zebra_deregister_rnh_static_nexthops(rib->vrf_id, nexthop->resolved, top); nexthops_free(nexthop->resolved); nexthop->resolved = NULL; rib->nexthop_mtu = 0; @@ -597,7 +596,6 @@ nexthop_active_ipv6 (struct rib *rib, struct nexthop *nexthop, int set, if (set) { UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE); - zebra_deregister_rnh_static_nexthops (rib->vrf_id, nexthop->resolved, top); nexthops_free(nexthop->resolved); nexthop->resolved = NULL; }