bgpd: Re-announce the routes if the underlay IGP metric changes

If the underlay IGP metric changes, we SHOULD re-announce the routes with the
correct bpi->extra->igpmetric set.

Without this patch if the IGP link cost (metric) changes, we never notice this
and the peers do not have the updated metrics, which in turn causes incorrect
best path selections on remote peers.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2024-10-09 18:20:48 +03:00
parent 7cdece8c84
commit b924f03387

View File

@ -3727,11 +3727,10 @@ static void bgp_process_main_one(struct bgp *bgp, struct bgp_dest *dest,
/* If there is a change of interest to peers, reannounce the
* route. */
if (CHECK_FLAG(old_select->flags, BGP_PATH_ATTR_CHANGED)
|| CHECK_FLAG(old_select->flags, BGP_PATH_LINK_BW_CHG)
|| CHECK_FLAG(dest->flags, BGP_NODE_LABEL_CHANGED)) {
if (CHECK_FLAG(old_select->flags, BGP_PATH_ATTR_CHANGED) ||
CHECK_FLAG(dest->flags, BGP_NODE_LABEL_CHANGED) ||
bgp_zebra_has_route_changed(old_select)) {
group_announce_route(bgp, afi, safi, dest, new_select);
/* unicast routes must also be annouced to
* labeled-unicast update-groups */
if (safi == SAFI_UNICAST)