summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorLouis Scalbert <louis.scalbert@6wind.com>2025-02-12 13:09:37 +0100
committerLouis Scalbert <louis.scalbert@6wind.com>2025-02-14 18:08:53 +0100
commita2c1956efa399c6770605712d0b53e5f24979acc (patch)
treef3408ebd6326944573617a65895944a989248e8c /bgpd
parent20664936afc7f952a51a19ab26daece5105bbee5 (diff)
bgpd: fix process_queue when un-hiding
bgp_process_queue_init() is not called in bgp_create() when leaving the BGP instance hidden state because of the following goto: > if (hidden) { > bgp = bgp_old; > goto peer_init; > } Upon reconfiguration of the default instance, the prefixes are never set into a meta queue by mq_add_handler(). They are never processed for zebra RIB installation and announcements of update/withdraw. Do not delete the BGP process_queue when hiding. Fixes: 4d0e7a49cf ("bgpd: VRF-Lite fix default bgp delete") Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgpd.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 7b60c4fc17..edda82b63c 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -4257,12 +4257,11 @@ int bgp_delete(struct bgp *bgp)
bgp_set_evpn(bgp_get_default());
}
- if (bgp->process_queue)
- work_queue_free_and_null(&bgp->process_queue);
-
- if (!IS_BGP_INSTANCE_HIDDEN(bgp))
+ if (!IS_BGP_INSTANCE_HIDDEN(bgp)) {
+ if (bgp->process_queue)
+ work_queue_free_and_null(&bgp->process_queue);
bgp_unlock(bgp); /* initial reference */
- else {
+ } else {
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
enum vpn_policy_direction dir;