pimd: modification in mroute

Problem:
-------
(*,G) created on transit node where same groups are defined as SSM
At present FRR has SSM checks for IGMP report, but SSM check is missing for PIM join.

Fix:
----
Whenever there is a modification in prefix list for SSM range, then we need to browse the ifchannels (PIM joins)
and groups coming in SSM range with (and *,G) should be removed from ifchannel database and also withdraw those routes
from upstream routers.

Signed-off-by: Sai Gomathi <nsaigomathi@vmware.com>
This commit is contained in:
Sai Gomathi 2021-10-26 07:03:58 -07:00
parent 34abbcc4b1
commit c29fec4d3a

View File

@ -542,6 +542,7 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim)
struct pim_interface *pim_ifp = ifp->info;
struct listnode *grpnode;
struct igmp_group *grp;
struct pim_ifchannel *ch, *ch_temp;
if (!pim_ifp)
continue;
@ -558,6 +559,14 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim)
igmp_source_forward_reevaluate_one(pim, src);
} /* scan group sources */
} /* scan igmp groups */
RB_FOREACH_SAFE (ch, pim_ifchannel_rb, &pim_ifp->ifchannel_rb,
ch_temp) {
if (pim_is_grp_ssm(pim, ch->sg.grp)) {
if (ch->sg.src.s_addr == INADDR_ANY)
pim_ifchannel_delete(ch);
}
}
} /* scan interfaces */
}