Merge pull request #11536 from mobash-rasool/temp1

pimd: During prune pending, behave as NOINFO state (conformance issue)
This commit is contained in:
Jafar Al-Gharaibeh 2022-07-14 12:24:35 -05:00 committed by GitHub
commit 6286ce45bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View File

@ -436,7 +436,7 @@ static int pim_update_upstream_nh_helper(struct hash_bucket *bucket, void *arg)
* RPF nbr is now unreachable the MFC has already been updated
* by pim_rpf_clear
*/
if (rpf_result != PIM_RPF_FAILURE)
if (rpf_result != PIM_RPF_CHANGED)
pim_upstream_mroute_iif_update(up->channel_oil, __func__);
if (rpf_result == PIM_RPF_CHANGED ||

View File

@ -930,7 +930,16 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
__func__, up->sg_str);
}
if (up->rpf.source_nexthop.interface) {
/* Consider a case where (S,G,rpt) prune is received and this
* upstream is getting created due to that, then as per RFC
* until prune pending time we need to behave same as NOINFO
* state, therefore do not install if OIF is NULL until then
* This is for PIM Conformance PIM-SM 16.3 fix
* When the prune pending timer pop, this mroute will get
* installed with none as OIF */
if (up->rpf.source_nexthop.interface &&
!(pim_upstream_empty_inherited_olist(up) && (ch != NULL) &&
PIM_IF_FLAG_TEST_S_G_RPT(ch->flags))) {
pim_upstream_mroute_iif_update(up->channel_oil,
__func__);
}