summaryrefslogtreecommitdiff
path: root/bgpd/bgpd.c
diff options
context:
space:
mode:
authorRuss White <russ@riw.us>2025-02-18 10:28:10 -0500
committerGitHub <noreply@github.com>2025-02-18 10:28:10 -0500
commit2dce35a3977136195afb51edde9d1e6bd64d8669 (patch)
treede999fb3271d5e23e4542cdeb1788e2abdc7c43a /bgpd/bgpd.c
parentcdb2cc2f8970c7d5efa712bd0f4107c93cc8b826 (diff)
parentdfadee9d0230ab5aece4cf78fda7d401effb099e (diff)
Merge pull request #18155 from FRRouting/mergify/bp/stable/10.2/pr-18121
bgpd: release manual vpn label on instance deletion (backport #18121)
Diffstat (limited to 'bgpd/bgpd.c')
-rw-r--r--bgpd/bgpd.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 0601400afd..16dbae4f17 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -4046,6 +4046,37 @@ int bgp_delete(struct bgp *bgp)
bgp_vpn_leak_unimport(bgp);
+<<<<<<< HEAD
+=======
+ /*
+ * Release SRv6 SIDs, like it's done in `vpn_leak_postchange()`
+ * and bgp_sid_vpn_export_cmd/af_sid_vpn_export_cmd commands.
+ */
+ bgp->tovpn_sid_index = 0;
+ UNSET_FLAG(bgp->vrf_flags, BGP_VRF_TOVPN_SID_AUTO);
+ delete_vrf_tovpn_sid_per_vrf(bgp_default, bgp);
+ for (afi = AFI_IP; afi < AFI_MAX; afi++) {
+ bgp->vpn_policy[afi].tovpn_sid_index = 0;
+ UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_SID_AUTO);
+ delete_vrf_tovpn_sid_per_af(bgp_default, bgp, afi);
+
+ vpn_leak_zebra_vrf_sid_withdraw(bgp, afi);
+ }
+
+ /* release auto vpn labels */
+ bgp_vpn_release_label(bgp, AFI_IP, true);
+ bgp_vpn_release_label(bgp, AFI_IP6, true);
+
+ /* release manual vpn labels */
+ for (afi = AFI_IP; afi < AFI_MAX; afi++) {
+ if (!CHECK_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_LABEL_MANUAL_REG))
+ continue;
+ bgp_zebra_release_label_range(bgp->vpn_policy[afi].tovpn_label,
+ bgp->vpn_policy[afi].tovpn_label);
+ UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_LABEL_MANUAL_REG);
+ }
+
+>>>>>>> d6363625c (bgpd: release manual vpn label on instance deletion)
hook_call(bgp_inst_delete, bgp);
FOREACH_AFI_SAFI (afi, safi)