]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_mplsvpn.c
Merge pull request #12219 from cscarpitta/feature/srv6-usid-behavior-support
[mirror_frr.git] / bgpd / bgp_mplsvpn.c
index 63f436029396fd2c59de985993bb7fcc075a8c7d..18cb90763c038a91062982b9023bf76e3ce96d34 100644 (file)
@@ -368,7 +368,6 @@ void vpn_leak_zebra_vrf_sid_update_per_af(struct bgp *bgp, afi_t afi)
        struct in6_addr *tovpn_sid = NULL;
        struct in6_addr *tovpn_sid_ls = NULL;
        struct vrf *vrf;
-       char buf[256] = {0};
 
        if (bgp->vrf_id == VRF_UNKNOWN) {
                if (debug)
@@ -385,12 +384,10 @@ void vpn_leak_zebra_vrf_sid_update_per_af(struct bgp *bgp, afi_t afi)
                return;
        }
 
-       if (debug) {
-               inet_ntop(AF_INET6, tovpn_sid, buf, sizeof(buf));
-               zlog_debug("%s: vrf %s: afi %s: setting sid %s for vrf id %d",
-                          __func__, bgp->name_pretty, afi2str(afi), buf,
+       if (debug)
+               zlog_debug("%s: vrf %s: afi %s: setting sid %pI6 for vrf id %d",
+                          __func__, bgp->name_pretty, afi2str(afi), tovpn_sid,
                           bgp->vrf_id);
-       }
 
        vrf = vrf_lookup_by_id(bgp->vrf_id);
        if (!vrf)
@@ -732,7 +729,6 @@ void ensure_vrf_tovpn_sid_per_af(struct bgp *bgp_vpn, struct bgp *bgp_vrf,
                                 afi_t afi)
 {
        int debug = BGP_DEBUG(vpn, VPN_LEAK_FROM_VRF);
-       char buf[256];
        struct srv6_locator_chunk *tovpn_sid_locator;
        struct in6_addr *tovpn_sid;
        uint32_t tovpn_sid_index = 0, tovpn_sid_transpose_label;
@@ -779,17 +775,15 @@ void ensure_vrf_tovpn_sid_per_af(struct bgp *bgp_vpn, struct bgp *bgp_vrf,
                        zlog_debug(
                                "%s: not allocated new sid for vrf %s: afi %s",
                                __func__, bgp_vrf->name_pretty, afi2str(afi));
-               srv6_locator_chunk_free(tovpn_sid_locator);
+               srv6_locator_chunk_free(&tovpn_sid_locator);
                XFREE(MTYPE_BGP_SRV6_SID, tovpn_sid);
                return;
        }
 
-       if (debug) {
-               inet_ntop(AF_INET6, tovpn_sid, buf, sizeof(buf));
-               zlog_debug("%s: new sid %s allocated for vrf %s: afi %s",
-                          __func__, buf, bgp_vrf->name_pretty,
+       if (debug)
+               zlog_debug("%s: new sid %pI6 allocated for vrf %s: afi %s",
+                          __func__, tovpn_sid, bgp_vrf->name_pretty,
                           afi2str(afi));
-       }
 
        bgp_vrf->vpn_policy[afi].tovpn_sid = tovpn_sid;
        bgp_vrf->vpn_policy[afi].tovpn_sid_locator = tovpn_sid_locator;
@@ -844,7 +838,7 @@ void ensure_vrf_tovpn_sid_per_vrf(struct bgp *bgp_vpn, struct bgp *bgp_vrf)
                if (debug)
                        zlog_debug("%s: not allocated new sid for vrf %s",
                                   __func__, bgp_vrf->name_pretty);
-               srv6_locator_chunk_free(tovpn_sid_locator);
+               srv6_locator_chunk_free(&tovpn_sid_locator);
                XFREE(MTYPE_BGP_SRV6_SID, tovpn_sid);
                return;
        }
@@ -891,8 +885,7 @@ void delete_vrf_tovpn_sid_per_af(struct bgp *bgp_vpn, struct bgp *bgp_vrf,
        if (tovpn_sid_index != 0 || tovpn_sid_auto)
                return;
 
-       srv6_locator_chunk_free(bgp_vrf->vpn_policy[afi].tovpn_sid_locator);
-       bgp_vrf->vpn_policy[afi].tovpn_sid_locator = NULL;
+       srv6_locator_chunk_free(&bgp_vrf->vpn_policy[afi].tovpn_sid_locator);
 
        if (bgp_vrf->vpn_policy[afi].tovpn_sid) {
                sid_unregister(bgp_vrf, bgp_vrf->vpn_policy[afi].tovpn_sid);
@@ -919,8 +912,7 @@ void delete_vrf_tovpn_sid_per_vrf(struct bgp *bgp_vpn, struct bgp *bgp_vrf)
        if (tovpn_sid_index != 0 || tovpn_sid_auto)
                return;
 
-       srv6_locator_chunk_free(bgp_vrf->tovpn_sid_locator);
-       bgp_vrf->tovpn_sid_locator = NULL;
+       srv6_locator_chunk_free(&bgp_vrf->tovpn_sid_locator);
 
        if (bgp_vrf->tovpn_sid) {
                sid_unregister(bgp_vrf, bgp_vrf->tovpn_sid);