]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Move SRv6 cleanup functions 15965/head
authorCarmine Scarpitta <cscarpit@cisco.com>
Wed, 8 May 2024 07:48:55 +0000 (09:48 +0200)
committerCarmine Scarpitta <cscarpit@cisco.com>
Thu, 9 May 2024 06:14:34 +0000 (08:14 +0200)
Move SRv6 cleanup operations to `bgp_srv6_cleanup` function.

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
bgpd/bgpd.c

index c133e02c73b3bfe56ddee4bfaa13bc7ddc1c11d7..76014d4eb95e31764c21092b0d720e63b36dc719 100644 (file)
@@ -1473,6 +1473,20 @@ static void bgp_srv6_init(struct bgp *bgp)
 
 static void bgp_srv6_cleanup(struct bgp *bgp)
 {
+       for (afi_t afi = AFI_IP; afi < AFI_MAX; afi++) {
+               if (bgp->vpn_policy[afi].tovpn_sid_locator != NULL)
+                       srv6_locator_chunk_free(
+                               &bgp->vpn_policy[afi].tovpn_sid_locator);
+               if (bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent != NULL)
+                       XFREE(MTYPE_BGP_SRV6_SID,
+                             bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent);
+               if (bgp->vpn_policy[afi].tovpn_sid != NULL) {
+                       sid_unregister(bgp, bgp->vpn_policy[afi].tovpn_sid);
+                       XFREE(MTYPE_BGP_SRV6_SID,
+                             bgp->vpn_policy[afi].tovpn_sid);
+               }
+       }
+
        if (bgp->tovpn_sid_locator != NULL)
                srv6_locator_chunk_free(&bgp->tovpn_sid_locator);
        if (bgp->tovpn_zebra_vrf_sid_last_sent != NULL)
@@ -4145,18 +4159,6 @@ void bgp_free(struct bgp *bgp)
                if (bgp->vpn_policy[afi].tovpn_rd_pretty)
                        XFREE(MTYPE_BGP_NAME,
                              bgp->vpn_policy[afi].tovpn_rd_pretty);
-               if (bgp->vpn_policy[afi].tovpn_sid_locator != NULL)
-                       srv6_locator_chunk_free(
-                               &bgp->vpn_policy[afi].tovpn_sid_locator);
-               if (bgp->vpn_policy[afi].tovpn_zebra_vrf_sid_last_sent != NULL)
-                       XFREE(MTYPE_BGP_SRV6_SID,
-                             bgp->vpn_policy[afi]
-                                     .tovpn_zebra_vrf_sid_last_sent);
-               if (bgp->vpn_policy[afi].tovpn_sid != NULL) {
-                       sid_unregister(bgp, bgp->vpn_policy[afi].tovpn_sid);
-                       XFREE(MTYPE_BGP_SRV6_SID,
-                             bgp->vpn_policy[afi].tovpn_sid);
-               }
        }
        bgp_srv6_cleanup(bgp);
        bgp_confederation_id_unset(bgp);