]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: free asla at last flex-algo unconfiguration 16467/head
authorLouis Scalbert <louis.scalbert@6wind.com>
Fri, 26 Jul 2024 07:56:14 +0000 (09:56 +0200)
committerLouis Scalbert <louis.scalbert@6wind.com>
Fri, 26 Jul 2024 09:31:51 +0000 (11:31 +0200)
Free ASLA when the last flex-algo is unconfigured.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
isisd/isis_nb_config.c

index 66b66194c881682af067f5db596b354c784ecab5..2b47d5cbeb3874c9c4e548fe51d9a323388d7a47 100644 (file)
@@ -2884,6 +2884,7 @@ int isis_instance_flex_algo_create(struct nb_cb_create_args *args)
 
 int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
 {
+       struct isis_circuit *circuit;
        struct listnode *node, *nnode;
        struct flex_algo *fa;
        struct isis_area *area;
@@ -2899,6 +2900,12 @@ int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
                        if (fa->algorithm == algorithm)
                                flex_algo_free(area->flex_algos, fa);
                }
+               if (list_isempty(area->flex_algos->flex_algos)) {
+                       for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node,
+                                                 circuit))
+                               isis_link_params_update_asla(circuit,
+                                                            circuit->interface);
+               }
                lsp_regenerate_schedule(area, area->is_type, 0);
                break;
        case NB_EV_VALIDATE: