summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_interface.c
diff options
context:
space:
mode:
authorAcee Lindem <acee@lindem.com>2025-03-14 16:02:28 +0000
committerAcee Lindem <acee@lindem.com>2025-03-14 16:02:28 +0000
commit04994891fe164b4d5a2819d3bc90e5346f94dc53 (patch)
tree86e586922605f223d7935d03395aec99cda838cf /ospf6d/ospf6_interface.c
parent7945af02000541ea6c1dc1ee0321cb5380768baf (diff)
ospf6d: Disable and delete OSPFv3 areas that no longer have interfaces or configuration.
This fix will delete an OSPFv3 area when all the interfaces and configuration (ranges, NSSA ranges, stub area, NSSA area, filter-list, import-list and export-list) have been removed. The changes provides a general solution to https://github.com/FRRouting/frr/issues/18324. Signed-off-by: Acee Lindem <acee@lindem.com>
Diffstat (limited to 'ospf6d/ospf6_interface.c')
-rw-r--r--ospf6d/ospf6_interface.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 60f92385dd..1022101eb3 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -1823,6 +1823,9 @@ void ospf6_interface_stop(struct ospf6_interface *oi)
if (oa->if_list->count == 0) {
UNSET_FLAG(oa->flag, OSPF6_AREA_ENABLE);
ospf6_abr_disable_area(oa);
+
+ /* Delete area if no interfaces or configuration. */
+ ospf6_area_no_config_delete(oa);
}
}