mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 16:39:33 +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
|
IGMP must be protected against adding looped MFC entries created
|
||||||
by both source and receiver attached to the same interface. See
|
by both source and receiver attached to the same interface. See
|
||||||
TODO T22.
|
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 &&
|
if ((channel_oil->up &&
|
||||||
PIM_UPSTREAM_FLAG_TEST_ALLOW_IIF_IN_OIL(
|
PIM_UPSTREAM_FLAG_TEST_ALLOW_IIF_IN_OIL(channel_oil->up->flags)) ||
|
||||||
channel_oil->up->flags)) {
|
((proto_mask == PIM_OIF_FLAG_PROTO_IGMP) && PIM_I_am_DR(pim_ifp))) {
|
||||||
allow_iif_in_oil = true;
|
allow_iif_in_oil = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1045,10 +1045,12 @@ void igmp_source_forward_start(struct pim_instance *pim,
|
|||||||
* Protect IGMP against adding looped MFC
|
* Protect IGMP against adding looped MFC
|
||||||
* entries created by both source and receiver
|
* entries created by both source and receiver
|
||||||
* attached to the same interface. See TODO
|
* 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 ==
|
if ((input_iface_vif_index ==
|
||||||
pim_oif->mroute_vif_index) {
|
pim_oif->mroute_vif_index) &&
|
||||||
|
!(PIM_I_am_DR(pim_oif))) {
|
||||||
/* ignore request for looped MFC entry
|
/* ignore request for looped MFC entry
|
||||||
*/
|
*/
|
||||||
if (PIM_DEBUG_IGMP_TRACE) {
|
if (PIM_DEBUG_IGMP_TRACE) {
|
||||||
|
Loading…
Reference in New Issue
Block a user