diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-06-21 19:33:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-21 19:33:14 -0400 |
| commit | 4bcf44412a8c96a3e88c0192a94a2006cd45f538 (patch) | |
| tree | 12cc936cbdbfebaa1394a3528347a8ebb52a84a8 /pimd/pim_zebra.c | |
| parent | a9617f89c5e759ca63110f514969ca16349e281a (diff) | |
| parent | 50d06d9e561affb999a1a7c893e260f50d4fe1c6 (diff) | |
Merge pull request #4518 from sarav511/dr_lhr
pimd: fix DR at LHR scenario where non DR is connected to RP
Diffstat (limited to 'pimd/pim_zebra.c')
| -rw-r--r-- | pimd/pim_zebra.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index e09163a527..4cebc43a0a 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -1045,10 +1045,12 @@ void igmp_source_forward_start(struct pim_instance *pim, * Protect IGMP against adding looped MFC * entries created by both source and receiver * attached to the same interface. See TODO - * T22. + * T22. Block only when the intf is non DR + * DR must create upstream. */ - if (input_iface_vif_index == - pim_oif->mroute_vif_index) { + if ((input_iface_vif_index == + pim_oif->mroute_vif_index) && + !(PIM_I_am_DR(pim_oif))) { /* ignore request for looped MFC entry */ if (PIM_DEBUG_IGMP_TRACE) { |
