From f4d2dd841d598e4a38925e4552672f6cc7464d29 Mon Sep 17 00:00:00 2001 From: Don Slice Date: Wed, 21 Oct 2020 07:46:49 -0700 Subject: [PATCH] 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 --- bgpd/bgp_packet.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 2ebac56670..d75d032c5c 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -403,12 +403,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) -- 2.39.5