diff options
Diffstat (limited to 'pimd/pim_instance.c')
| -rw-r--r-- | pimd/pim_instance.c | 14 |
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) |
