diff options
Diffstat (limited to 'pimd/pim_instance.c')
| -rw-r--r-- | pimd/pim_instance.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c index 8f117033e4..359e3db718 100644 --- a/pimd/pim_instance.c +++ b/pimd/pim_instance.c @@ -70,6 +70,8 @@ static void pim_instance_terminate(struct pim_instance *pim) pim_msdp_exit(pim); + pim_mroute_socket_disable(pim); + XFREE(MTYPE_PIM_PLIST_NAME, pim->spt.plist); XFREE(MTYPE_PIM_PLIST_NAME, pim->register_plist); @@ -238,5 +240,20 @@ void pim_vrf_init(void) void pim_vrf_terminate(void) { + struct vrf *vrf; + + RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) { + struct pim_instance *pim; + + pim = vrf->info; + if (!pim) + continue; + + pim_ssmpingd_destroy(pim); + pim_instance_terminate(pim); + + vrf->info = NULL; + } + vrf_terminate(); } |
