mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 11:21:07 +00:00
Merge pull request #4518 from sarav511/dr_lhr
pimd: fix DR at LHR scenario where non DR is connected to RP
This commit is contained in:
commit
4bcf44412a
@ -364,10 +364,12 @@ int pim_channel_add_oif(struct channel_oil *channel_oil, struct interface *oif,
|
||||
IGMP must be protected against adding looped MFC entries created
|
||||
by both source and receiver attached to the same interface. See
|
||||
TODO T22.
|
||||
We shall allow igmp to create upstream when it is DR for the intf.
|
||||
Assume RP reachable via non DR.
|
||||
*/
|
||||
if (channel_oil->up &&
|
||||
PIM_UPSTREAM_FLAG_TEST_ALLOW_IIF_IN_OIL(
|
||||
channel_oil->up->flags)) {
|
||||
if ((channel_oil->up &&
|
||||
PIM_UPSTREAM_FLAG_TEST_ALLOW_IIF_IN_OIL(channel_oil->up->flags)) ||
|
||||
((proto_mask == PIM_OIF_FLAG_PROTO_IGMP) && PIM_I_am_DR(pim_ifp))) {
|
||||
allow_iif_in_oil = true;
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user