diff options
Diffstat (limited to 'ospf6d/ospf6_top.c')
| -rw-r--r-- | ospf6d/ospf6_top.c | 6 |
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; } |
