summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_top.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_top.c')
-rw-r--r--ospf6d/ospf6_top.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index 908cda43d0..7b4ed84d53 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -338,7 +338,8 @@ static void ospf6_disable(struct ospf6 *o)
ospf6_area_disable(oa);
/* XXX: This also changes persistent settings */
- ospf6_asbr_redistribute_reset(o->vrf_id);
+ /* Unregister redistribution */
+ ospf6_asbr_redistribute_reset(o);
ospf6_lsdb_remove_all(o->lsdb);
ospf6_route_remove_all(o->route_table);
@@ -848,7 +849,7 @@ DEFUN (no_ospf6_interface_area,
return CMD_SUCCESS;
}
- thread_execute(master, interface_down, oi, 0);
+ ospf6_interface_disable(oi);
oa = oi->area;
listnode_delete(oi->area->if_list, oi);
@@ -859,6 +860,7 @@ DEFUN (no_ospf6_interface_area,
UNSET_FLAG(oa->flag, OSPF6_AREA_ENABLE);
ospf6_abr_disable_area(oa);
}
+ ospf6_interface_delete(oi);
return CMD_SUCCESS;
}