*: call if_init()/if_terminate() from vrf_init()/vrf_terminate()
Later, an interface will belong to a specific VRF, and the interface
initialization will be a part of the VRF initialization. So now call
if_init() from vrf_init(), and if_terminate() from vrf_terminate().
Daemons have the according changes:
- if if_init() was called or "iflist" was initialized, now call
vrf_init() instead;
- if if_terminate() was called or "iflist" was destroyed, now call
vrf_terminate() instead.
Signed-off-by: Feng Lu <lu.feng@6wind.com>
Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Acked-by: Vincent JARDIN <vincent.jardin@6wind.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index ecf9ef6..dc3e9a2 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -43,11 +43,6 @@
static void pim_if_igmp_join_del_all(struct interface *ifp);
-void pim_if_init()
-{
- if_init();
-}
-
static void *if_list_clean(struct pim_interface *pim_ifp)
{
if (pim_ifp->igmp_join_list) {
diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h
index 4b06b9f..8806fdd 100644
--- a/pimd/pim_iface.h
+++ b/pimd/pim_iface.h
@@ -108,8 +108,6 @@
((pim_ifp)->pim_hello_period * 7 / 2) : \
((pim_ifp)->pim_default_holdtime))
-void pim_if_init(void);
-
struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim);
void pim_if_delete(struct interface *ifp);
void pim_if_addr_add(struct connected *ifc);
diff --git a/pimd/pim_main.c b/pimd/pim_main.c
index b57f881..63dd636 100644
--- a/pimd/pim_main.c
+++ b/pimd/pim_main.c
@@ -31,6 +31,7 @@
#include <signal.h>
#include "memory.h"
+#include "vrf.h"
#include "filter.h"
#include "vty.h"
#include "sigevent.h"
@@ -203,6 +204,7 @@
cmd_init(1);
vty_init(master);
memory_init();
+ vrf_init();
access_list_init();
pim_init();
diff --git a/pimd/pimd.c b/pimd/pimd.c
index 855defc..78c3ff5 100644
--- a/pimd/pimd.c
+++ b/pimd/pimd.c
@@ -24,6 +24,7 @@
#include "log.h"
#include "memory.h"
+#include "vrf.h"
#include "pimd.h"
#include "pim_cmd.h"
@@ -130,12 +131,12 @@
qpim_infinite_assert_metric.route_metric = PIM_ASSERT_ROUTE_METRIC_MAX;
qpim_infinite_assert_metric.ip_address = qpim_inaddr_any;
- pim_if_init();
pim_cmd_init();
pim_ssmpingd_init();
}
void pim_terminate()
{
+ vrf_terminate();
pim_free();
}