summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorG. Paul Ziemba <paulz@labn.net>2025-02-06 08:08:38 -0800
committerG. Paul Ziemba <paulz@labn.net>2025-02-06 08:45:01 -0800
commit125a480b532a7b392581cba464d1e719e13340ed (patch)
treea9548b4b06662055e7b666cdf7fa38fec70f0c8e
parenta02ec27693ddfa708ec1f62400af6cea533bf1e8 (diff)
bgpd: rfapi: if BGP is terminating, free peer BPIs now instead of using timer
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
-rw-r--r--bgpd/rfapi/rfapi_import.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/bgpd/rfapi/rfapi_import.c b/bgpd/rfapi/rfapi_import.c
index 99d8bcfce4..d9f63700f0 100644
--- a/bgpd/rfapi/rfapi_import.c
+++ b/bgpd/rfapi/rfapi_import.c
@@ -4067,9 +4067,15 @@ static void rfapiProcessPeerDownRt(struct peer *peer,
bpi, import_table, afi, -1);
import_table->holddown_count[afi] += 1;
}
- rfapiBiStartWithdrawTimer(import_table, rn, bpi,
- afi, safi,
- timer_service_func);
+ if (bm->terminating) {
+ if (safi == SAFI_MPLS_VPN)
+ rfapiExpireVpnNow(import_table, rn, bpi, 1);
+ else
+ rfapiExpireEncapNow(import_table, rn, bpi);
+
+ } else
+ rfapiBiStartWithdrawTimer(import_table, rn, bpi, afi, safi,
+ timer_service_func);
}
}
}