#include "pim_ssmpingd.h"
#include "pim_rp.h"
#include "pim_nht.h"
+#include "pim_jp_agg.h"
static void pim_if_igmp_join_del_all(struct interface *ifp);
static int igmp_join_sock(const char *ifname, ifindex_t ifindex,
if (pim_ifp->upstream_switch_list)
list_delete(pim_ifp->upstream_switch_list);
+ if (pim_ifp->sec_addr_list)
+ list_delete(pim_ifp->sec_addr_list);
+
while ((ch = RB_ROOT(pim_ifchannel_rb,
&pim_ifp->ifchannel_rb)) != NULL)
pim_ifchannel_delete(ch);
__FILE__, __PRETTY_FUNCTION__);
return if_list_clean(pim_ifp);
}
+ pim_ifp->upstream_switch_list->del =
+ (void (*)(void *))pim_jp_agg_group_list_free;
+ pim_ifp->upstream_switch_list->cmp = pim_jp_agg_group_list_cmp;
RB_INIT(pim_ifchannel_rb, &pim_ifp->ifchannel_rb);
list_delete(pim_ifp->igmp_socket_list);
list_delete(pim_ifp->pim_neighbor_list);
list_delete(pim_ifp->upstream_switch_list);
+ list_delete(pim_ifp->sec_addr_list);
while ((ch = RB_ROOT(pim_ifchannel_rb,
&pim_ifp->ifchannel_rb)) != NULL)
static void igmp_group_free(struct igmp_group *group)
{
- list_free(group->group_source_list);
+ list_delete(group->group_source_list);
XFREE(MTYPE_PIM_IGMP_GROUP, group);
}
zassert(igmp->igmp_group_list);
zassert(!listcount(igmp->igmp_group_list));
- list_free(igmp->igmp_group_list);
+ list_delete(igmp->igmp_group_list);
hash_free(igmp->igmp_group_hash);
XFREE(MTYPE_PIM_IGMP_SOCKET, igmp);
}
if (pim->static_routes)
- list_free(pim->static_routes);
+ list_delete(pim->static_routes);
pim_rp_free(pim);
js->up = NULL;
XFREE(MTYPE_PIM_JP_AGG_SOURCE, js);
}
+ list_delete(jag->sources);
jag->sources = NULL;
listnode_delete(group, jag);
XFREE(MTYPE_PIM_JP_AGG_GROUP, jag);
XFREE(MTYPE_PIM_MSDP_MG_NAME, mg->mesh_group_name);
if (mg->mbr_list)
- list_free(mg->mbr_list);
+ list_delete(mg->mbr_list);
XFREE(MTYPE_PIM_MSDP_MG, mg);
pim->msdp.mg = NULL;
void pim_oil_terminate(struct pim_instance *pim)
{
if (pim->channel_oil_list)
- list_free(pim->channel_oil_list);
+ list_delete(pim->channel_oil_list);
pim->channel_oil_list = NULL;
if (pim->channel_oil_hash)
void pim_ssmpingd_destroy(struct pim_instance *pim)
{
if (pim->ssmpingd_list) {
- list_free(pim->ssmpingd_list);
+ list_delete(pim->ssmpingd_list);
pim->ssmpingd_list = 0;
}
}