]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_vty.c
Merge pull request #11981 from proelbtn/add-support-to-change-function-length
[mirror_frr.git] / bgpd / bgp_vty.c
index 7de222316feec6a90de685482939c1ca2d34ff56..89010b61bbb087501f3ba40dba7b85ddbdb8fb67 100644 (file)
@@ -295,7 +295,7 @@ static int bgp_srv6_locator_unset(struct bgp *bgp)
 {
        int ret;
        struct listnode *node, *nnode;
-       struct srv6_locator_chunk *chunk;
+       struct srv6_locator_chunk *chunk, *tovpn_sid_locator;
        struct bgp_srv6_function *func;
        struct bgp *bgp_vrf;
 
@@ -340,12 +340,20 @@ static int bgp_srv6_locator_unset(struct bgp *bgp)
                        continue;
 
                /* refresh vpnv4 tovpn_sid_locator */
-               XFREE(MTYPE_BGP_SRV6_SID,
-                     bgp_vrf->vpn_policy[AFI_IP].tovpn_sid_locator);
+               tovpn_sid_locator =
+                       bgp_vrf->vpn_policy[AFI_IP].tovpn_sid_locator;
+               if (tovpn_sid_locator) {
+                       srv6_locator_chunk_free(tovpn_sid_locator);
+                       bgp_vrf->vpn_policy[AFI_IP].tovpn_sid_locator = NULL;
+               }
 
                /* refresh vpnv6 tovpn_sid_locator */
-               XFREE(MTYPE_BGP_SRV6_SID,
-                     bgp_vrf->vpn_policy[AFI_IP6].tovpn_sid_locator);
+               tovpn_sid_locator =
+                       bgp_vrf->vpn_policy[AFI_IP6].tovpn_sid_locator;
+               if (tovpn_sid_locator) {
+                       srv6_locator_chunk_free(tovpn_sid_locator);
+                       bgp_vrf->vpn_policy[AFI_IP6].tovpn_sid_locator = NULL;
+               }
        }
 
        /* clear locator name */
@@ -8890,7 +8898,7 @@ DEFPY (af_label_vpn_export,
 
 DEFPY (af_sid_vpn_export,
        af_sid_vpn_export_cmd,
-       "[no] sid vpn export <(1-255)$sid_idx|auto$sid_auto>",
+       "[no] sid vpn export <(1-1048575)$sid_idx|auto$sid_auto>",
        NO_STR
        "sid value for VRF\n"
        "Between current address-family and vpn\n"