diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 155374d3f0..8d79963c78 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -37,6 +37,7 @@ #include "ospf6_route.h" #include "ospf6_area.h" #include "ospf6_abr.h" +#include "ospf6_nssa.h" #include "ospf6_interface.h" #include "ospf6_neighbor.h" #include "ospf6_intra.h" @@ -1736,8 +1737,10 @@ void ospf6_interface_start(struct ospf6_interface *oi) ospf6_interface_enable(oi); /* If the router is ABR, originate summary routes */ - if (ospf6_check_and_set_router_abr(ospf6)) + if (ospf6_check_and_set_router_abr(ospf6)) { ospf6_abr_enable_area(oa); + ospf6_schedule_abr_task(ospf6); + } } void ospf6_interface_stop(struct ospf6_interface *oi) diff --git a/ospf6d/ospf6_nssa.h b/ospf6d/ospf6_nssa.h index 02234cc8bd..3cc45d900d 100644 --- a/ospf6d/ospf6_nssa.h +++ b/ospf6d/ospf6_nssa.h @@ -45,7 +45,7 @@ extern unsigned char config_debug_ospf6_nssa; #define OSPF6_LSA_APPROVED 0x08 #define OSPF6_LSA_LOCAL_XLT 0x40 -#define OSPF6_ABR_TASK_DELAY 7 +#define OSPF6_ABR_TASK_DELAY 5 int ospf6_area_nssa_no_summary_set(struct ospf6 *ospf6, struct in_addr area_id); int ospf6_area_nssa_unset(struct ospf6 *ospf6, struct ospf6_area *area); diff --git a/ospfd/ospf_abr.h b/ospfd/ospf_abr.h index e15f4a6bf7..c523638fb3 100644 --- a/ospfd/ospf_abr.h +++ b/ospfd/ospf_abr.h @@ -22,7 +22,7 @@ #ifndef _ZEBRA_OSPF_ABR_H #define _ZEBRA_OSPF_ABR_H -#define OSPF_ABR_TASK_DELAY 7 +#define OSPF_ABR_TASK_DELAY 5 #define OSPF_AREA_RANGE_ADVERTISE (1 << 0) #define OSPF_AREA_RANGE_SUBSTITUTE (1 << 1)