]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospfd/ospf_sr.c
zebra: Allow ns delete to happen after under/over flow checks
[mirror_frr.git] / ospfd / ospf_sr.c
index 33ec09b9f3a329e51b248ec7063ee70c373f546a..43842e414e007e9fe5bd4d659d9c8ab8da94ca75 100644 (file)
@@ -94,7 +94,7 @@ static unsigned int sr_hash(void *p)
 }
 
 /* Compare 2 Router ID hash entries based on SR Node */
-static int sr_cmp(const void *p1, const void *p2)
+static bool sr_cmp(const void *p1, const void *p2)
 {
        const struct sr_node *srn = p1;
        const struct in_addr *rid = p2;
@@ -165,10 +165,10 @@ static void sr_node_del(struct sr_node *srn)
                return;
 
        /* Clean Extended Link */
-       list_delete_and_null(&srn->ext_link);
+       list_delete(&srn->ext_link);
 
        /* Clean Prefix List */
-       list_delete_and_null(&srn->ext_prefix);
+       list_delete(&srn->ext_prefix);
 
        XFREE(MTYPE_OSPF_SR_PARAMS, srn);
 }
@@ -283,7 +283,7 @@ static void ospf_sr_stop(void)
 
        /*
         * Remove all SR Nodes from the Hash table. Prefix and Link SID will
-        * be remove though list_delete_and_null() call. See sr_node_del()
+        * be remove though list_delete() call. See sr_node_del()
         */
        hash_clean(OspfSR.neighbors, (void *)sr_node_del);
 }
@@ -2053,6 +2053,9 @@ DEFUN (no_sr_prefix_sid,
        bool found = false;
        int rc;
 
+       if (!ospf_sr_enabled(vty))
+               return CMD_WARNING_CONFIG_FAILED;
+
        /* Get network prefix */
        argv_find(argv, argc, "A.B.C.D/M", &idx);
        rc = str2prefix(argv[idx]->arg, &p);