Merge pull request #10844 from mobash-rasool/fixes

pimd: correct prefix-list ssm range update for exclude mode
This commit is contained in:
Jafar Al-Gharaibeh 2022-03-23 12:17:27 -05:00 committed by GitHub
commit c4cb7b1172
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -131,11 +131,26 @@ void igmp_source_forward_reevaluate_all(struct pim_instance *pim)
struct listnode *srcnode; struct listnode *srcnode;
struct gm_source *src; struct gm_source *src;
/*
* RFC 4604
* section 2.2.1
* EXCLUDE mode does not apply to SSM addresses,
* and an SSM-aware router will ignore
* MODE_IS_EXCLUDE and CHANGE_TO_EXCLUDE_MODE
* requests in the SSM range.
*/
if (pim_is_grp_ssm(pim, grp->group_addr) &&
grp->group_filtermode_isexcl) {
igmp_group_delete(grp);
} else {
/* scan group sources */ /* scan group sources */
for (ALL_LIST_ELEMENTS_RO(grp->group_source_list, for (ALL_LIST_ELEMENTS_RO(
srcnode, src)) { grp->group_source_list, srcnode,
igmp_source_forward_reevaluate_one(pim, src); src)) {
igmp_source_forward_reevaluate_one(pim,
src);
} /* scan group sources */ } /* scan group sources */
}
} /* scan igmp groups */ } /* scan igmp groups */
RB_FOREACH_SAFE (ch, pim_ifchannel_rb, &pim_ifp->ifchannel_rb, RB_FOREACH_SAFE (ch, pim_ifchannel_rb, &pim_ifp->ifchannel_rb,