From: Don Slice Date: Wed, 21 Oct 2020 14:46:49 +0000 (-0700) Subject: bgpd: delay local routes until update-delay is over X-Git-Tag: frr-7.5~4^2~19 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=e1025e0c4a425c6cc23fe74603c000d4ab3abbea;p=mirror%2Ffrr.git bgpd: delay local routes until update-delay is over Problem found that turning an update-delay would only delay prefixes learned from peers by delaying bestpath, but would allow local routes (network statements or redistributed) to be immediately advertised, followed by an End of Rib indicator. This fix delays sending local routes until the update-delay process is completed, which matches what testing shows other vendors do.. Ticket: CM-31743 Signed-off-by: Don Slice --- diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 6c077878b5..f26c8a6a29 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -402,12 +402,13 @@ int bgp_generate_updgrp_packets(struct thread *thread) /* * The code beyond this part deals with update packets, proceed only * if peer is Established and updates are not on hold (as part of - * update-delay post processing). + * update-delay processing). */ if (peer->status != Established) return 0; - if (peer->bgp->main_peers_update_hold) + if ((peer->bgp->main_peers_update_hold) + || bgp_update_delay_active(peer->bgp)) return 0; if (peer->t_routeadv)