summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_nht.c
diff options
context:
space:
mode:
authorvivek <vivek@cumulusnetworks.com>2016-09-05 19:35:19 +0200
committervivek <vivek@cumulusnetworks.com>2016-09-05 19:35:19 +0200
commit3064bf43a7d8162dadada2934132f915a45d2bcb (patch)
tree2a13a6e40a5baed503681878ba6877c692e28239 /bgpd/bgp_nht.c
parentisisd: Remove impossible code (diff)
downloadfrr-3064bf43a7d8162dadada2934132f915a45d2bcb.tar.xz
frr-3064bf43a7d8162dadada2934132f915a45d2bcb.zip
bgpd: Fix route install upon non-best nexthop change
After BGP path selection, even if the best route entry selected has not changed, ensure that the route is installed again in zebra if any non-best but multipath route entry has a nexthop resolution change. In the absence of this fix, if a non-best multipath route entry had a nexthop resolution change (such as being resolved over two first hops instead of one), the route would get reinstalled into zebra only in some situations (i.e., when the best route entry had its IGP change flag set). If the route does not get reinstalled by BGP, the corresponding route in the zebra RIB would not have all the first hops. Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Sid Khot <sidkhot@cumulusnetworks.com> Ticket: CM-12390 Reviewed By: CCR-5134 Testing Done: Manual, bgp-smoke
Diffstat (limited to 'bgpd/bgp_nht.c')
-rw-r--r--bgpd/bgp_nht.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index 11b59fb3e..cdee80a0b 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -680,8 +680,6 @@ evaluate_paths (struct bgp_nexthop_cache *bnc)
if (CHECK_FLAG(bnc->change_flags, BGP_NEXTHOP_METRIC_CHANGED) ||
CHECK_FLAG(bnc->change_flags, BGP_NEXTHOP_CHANGED))
SET_FLAG(path->flags, BGP_INFO_IGP_CHANGED);
- else
- UNSET_FLAG (path->flags, BGP_INFO_IGP_CHANGED);
bgp_process(bgp, rn, afi, SAFI_UNICAST);
}