diff options
author | vivek <vivek@cumulusnetworks.com> | 2016-09-05 19:35:19 +0200 |
---|---|---|
committer | vivek <vivek@cumulusnetworks.com> | 2016-09-05 19:35:19 +0200 |
commit | 3064bf43a7d8162dadada2934132f915a45d2bcb (patch) | |
tree | 2a13a6e40a5baed503681878ba6877c692e28239 /bgpd/bgp_nht.c | |
parent | isisd: Remove impossible code (diff) | |
download | frr-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.c | 2 |
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); } |