]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: rfapi: if BGP is terminating, free peer BPIs now instead of using timer 18045/head
authorG. Paul Ziemba <paulz@labn.net>
Thu, 6 Feb 2025 16:08:38 +0000 (08:08 -0800)
committerG. Paul Ziemba <paulz@labn.net>
Thu, 6 Feb 2025 16:45:01 +0000 (08:45 -0800)
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
bgpd/rfapi/rfapi_import.c

index 99d8bcfce44e6fc573a03a0363486c63bfb7921f..d9f63700f0c641b88b0be42c7fef0ca10818d50c 100644 (file)
@@ -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);
                        }
                }
        }