Skip to content

Commit 31802c5

Browse files
authored
Merge pull request #18156 from FRRouting/mergify/bp/stable/10.1/pr-18121
bgpd: release manual vpn label on instance deletion (backport #18121)
2 parents e3bd25e + 2fd8d31 commit 31802c5

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

bgpd/bgpd.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3959,6 +3959,37 @@ int bgp_delete(struct bgp *bgp)
39593959

39603960
bgp_vpn_leak_unimport(bgp);
39613961

3962+
<<<<<<< HEAD
3963+
=======
3964+
/*
3965+
* Release SRv6 SIDs, like it's done in `vpn_leak_postchange()`
3966+
* and bgp_sid_vpn_export_cmd/af_sid_vpn_export_cmd commands.
3967+
*/
3968+
bgp->tovpn_sid_index = 0;
3969+
UNSET_FLAG(bgp->vrf_flags, BGP_VRF_TOVPN_SID_AUTO);
3970+
delete_vrf_tovpn_sid_per_vrf(bgp_default, bgp);
3971+
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
3972+
bgp->vpn_policy[afi].tovpn_sid_index = 0;
3973+
UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_SID_AUTO);
3974+
delete_vrf_tovpn_sid_per_af(bgp_default, bgp, afi);
3975+
3976+
vpn_leak_zebra_vrf_sid_withdraw(bgp, afi);
3977+
}
3978+
3979+
/* release auto vpn labels */
3980+
bgp_vpn_release_label(bgp, AFI_IP, true);
3981+
bgp_vpn_release_label(bgp, AFI_IP6, true);
3982+
3983+
/* release manual vpn labels */
3984+
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
3985+
if (!CHECK_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_LABEL_MANUAL_REG))
3986+
continue;
3987+
bgp_zebra_release_label_range(bgp->vpn_policy[afi].tovpn_label,
3988+
bgp->vpn_policy[afi].tovpn_label);
3989+
UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_LABEL_MANUAL_REG);
3990+
}
3991+
3992+
>>>>>>> d6363625c (bgpd: release manual vpn label on instance deletion)
39623993
hook_call(bgp_inst_delete, bgp);
39633994

39643995
FOREACH_AFI_SAFI (afi, safi)

0 commit comments

Comments
 (0)