*: 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/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index 0f02cc8..07c3fe3 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -1254,7 +1254,6 @@
ospf_if_init ()
{
/* Initialize Zebra interface data structure. */
- if_init ();
om->iflist = iflist;
if_add_hook (IF_NEW_HOOK, ospf_if_new_hook);
if_add_hook (IF_DELETE_HOOK, ospf_if_delete_hook);
diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
index 96dfd57..826fc98 100644
--- a/ospfd/ospf_main.c
+++ b/ospfd/ospf_main.c
@@ -39,6 +39,7 @@
#include "privs.h"
#include "sigevent.h"
#include "zclient.h"
+#include "vrf.h"
#include "ospfd/ospfd.h"
#include "ospfd/ospf_interface.h"
@@ -290,6 +291,7 @@
debug_init ();
vty_init (master);
memory_init ();
+ vrf_init ();
access_list_init ();
prefix_list_init ();