summaryrefslogtreecommitdiff
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index f9cc474d5c..cc5839a810 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -39,6 +39,7 @@
#include "libfrr.h"
#include "defaults.h"
#include "lib_errors.h"
+#include "ldp_sync.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_network.h"
@@ -57,6 +58,7 @@
#include "ospfd/ospf_abr.h"
#include "ospfd/ospf_flood.h"
#include "ospfd/ospf_ase.h"
+#include "ospfd/ospf_ldp_sync.h"
DEFINE_QOBJ_TYPE(ospf)
@@ -305,6 +307,8 @@ static struct ospf *ospf_new(unsigned short instance, const char *name)
new->oi_write_q = list_new();
new->write_oi_count = OSPF_WRITE_INTERFACE_COUNT_DEFAULT;
+ new->proactive_arp = OSPF_PROACTIVE_ARP_DEFAULT;
+
QOBJ_REG(new, ospf);
new->fd = -1;
@@ -617,6 +621,10 @@ static void ospf_finish_final(struct ospf *ospf)
list_delete(&ospf->vlinks);
+ /* shutdown LDP-Sync */
+ if (ospf->vrf_id == VRF_DEFAULT)
+ ospf_ldp_sync_gbl_exit(ospf, true);
+
/* Remove any ospf interface config params */
FOR_ALL_INTERFACES (vrf, ifp) {
struct ospf_if_params *params;
@@ -946,6 +954,9 @@ static void add_ospf_interface(struct connected *co, struct ospf_area *area)
ospf_area_add_if(oi->area, oi);
+ /* if LDP-IGP Sync is configured globally inherit config */
+ ospf_ldp_sync_if_init(oi);
+
/*
* if router_id is not configured, dont bring up
* interfaces.