pimd: Fix missing code

Found some more missing code that got dropped during the
upstreaming process causing issues with things actually
working.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2020-06-03 12:12:32 -04:00
parent edfdfe201a
commit df94b33a6e
2 changed files with 16 additions and 1 deletions

View File

@ -375,6 +375,20 @@ static bool pim_channel_eval_oif_mute(struct channel_oil *c_oil,
return do_mute; return do_mute;
} }
if (PIM_I_am_DualActive(pim_ifp)) {
struct pim_upstream *starup = c_oil->up->parent;
if (PIM_UPSTREAM_FLAG_TEST_MLAG_INTERFACE(c_oil->up->flags)
&& (PIM_UPSTREAM_FLAG_TEST_MLAG_NON_DF(c_oil->up->flags)))
do_mute = true;
/* In case entry is (S,G), Negotiation happens at (*.G) */
if (starup
&& PIM_UPSTREAM_FLAG_TEST_MLAG_INTERFACE(starup->flags)
&& (PIM_UPSTREAM_FLAG_TEST_MLAG_NON_DF(starup->flags)))
do_mute = true;
return do_mute;
}
return do_mute; return do_mute;
} }

View File

@ -286,7 +286,8 @@ static inline bool pim_up_mlag_is_local(struct pim_upstream *up)
/* XXX: extend this to also return true if the channel-oil has /* XXX: extend this to also return true if the channel-oil has
* any AA devices * any AA devices
*/ */
return (up->flags & PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN); return (up->flags & (PIM_UPSTREAM_FLAG_MASK_MLAG_VXLAN
| PIM_UPSTREAM_FLAG_MASK_MLAG_INTERFACE));
} }
struct pim_upstream *pim_upstream_find(struct pim_instance *pim, struct pim_upstream *pim_upstream_find(struct pim_instance *pim,