summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_asbr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_asbr.c')
-rw-r--r--ospf6d/ospf6_asbr.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 60df6e6c..3605e3f8 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -409,6 +409,8 @@ ospf6_asbr_redistribute_unset (int type)
ospf6_asbr_redistribute_remove (info->type, route->nexthop[0].ifindex,
&route->prefix);
}
+
+ ospf6_asbr_routemap_unset (type);
}
void
@@ -636,7 +638,6 @@ DEFUN (ospf6_redistribute,
return CMD_WARNING;
ospf6_asbr_redistribute_unset (type);
- ospf6_asbr_routemap_unset (type);
ospf6_asbr_redistribute_set (type);
return CMD_SUCCESS;
}
@@ -677,7 +678,6 @@ DEFUN (no_ospf6_redistribute,
return CMD_WARNING;
ospf6_asbr_redistribute_unset (type);
- ospf6_asbr_routemap_unset (type);
return CMD_SUCCESS;
}
@@ -1313,6 +1313,20 @@ ospf6_asbr_init (void)
}
void
+ospf6_asbr_redistribute_reset (void)
+{
+ int type;
+
+ for (type = 0; type < ZEBRA_ROUTE_MAX; type++)
+ {
+ if (type == ZEBRA_ROUTE_OSPF6)
+ continue;
+ if (ospf6_zebra_is_redistribute (type))
+ ospf6_asbr_redistribute_unset(type);
+ }
+}
+
+void
ospf6_asbr_terminate (void)
{
route_map_finish ();