summaryrefslogtreecommitdiff
path: root/pimd/pim_instance.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_instance.c')
-rw-r--r--pimd/pim_instance.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c
index b988c12cea..84fc9b9252 100644
--- a/pimd/pim_instance.c
+++ b/pimd/pim_instance.c
@@ -28,6 +28,8 @@
#include "pim_rpf.h"
#include "pim_rp.h"
#include "pim_mroute.h"
+#include "pim_oil.h"
+#include "pim_static.h"
static void pim_instance_terminate(struct pim_instance *pim)
{
@@ -43,6 +45,9 @@ static void pim_instance_terminate(struct pim_instance *pim)
pim->ssm_info = NULL;
}
+ if (pim->static_routes)
+ list_free(pim->static_routes);
+
XFREE(MTYPE_PIM_PIM_INSTANCE, pimg);
}
@@ -72,6 +77,15 @@ static struct pim_instance *pim_instance_init(struct vrf *vrf)
return NULL;
}
+ pim->static_routes = list_new();
+ if (!pim->static_routes) {
+ zlog_err("%s %s: failure: static_routes=list_new()", __FILE__,
+ __PRETTY_FUNCTION__);
+ pim_instance_terminate(pim);
+ return NULL;
+ }
+ pim->static_routes->del = (void (*)(void *))pim_static_route_free;
+
pim->send_v6_secondary = 1;
if (vrf->vrf_id == VRF_DEFAULT)