mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 15:33:56 +00:00
pimd: Only compare the actual IIF of the *,G to S,G
Now that pim has the ability to use ecmp, the Group path to the RP, may be different than what is choosen for the *,G IIF. As such when we are making the spt switchover decision, compare the S,G IIF to the *,G IIF. Ticket: CM-15870 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
b3d28d8f8a
commit
bacf3d12dd
@ -1217,7 +1217,7 @@ pim_upstream_is_sg_rpt (struct pim_upstream *up)
|
|||||||
void
|
void
|
||||||
pim_upstream_set_sptbit (struct pim_upstream *up, struct interface *incoming)
|
pim_upstream_set_sptbit (struct pim_upstream *up, struct interface *incoming)
|
||||||
{
|
{
|
||||||
struct pim_rpf *grpf = NULL;
|
struct pim_upstream *starup = up->parent;
|
||||||
|
|
||||||
// iif == RPF_interfvace(S)
|
// iif == RPF_interfvace(S)
|
||||||
if (up->rpf.source_nexthop.interface != incoming)
|
if (up->rpf.source_nexthop.interface != incoming)
|
||||||
@ -1242,8 +1242,7 @@ pim_upstream_set_sptbit (struct pim_upstream *up, struct interface *incoming)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OR RPF_interface(S) != RPF_interface(RP(G))
|
// OR RPF_interface(S) != RPF_interface(RP(G))
|
||||||
grpf = RP(up->sg.grp);
|
if (!starup || up->rpf.source_nexthop.interface != starup->rpf.source_nexthop.interface)
|
||||||
if (!grpf || up->rpf.source_nexthop.interface != grpf->source_nexthop.interface)
|
|
||||||
{
|
{
|
||||||
if (PIM_DEBUG_TRACE)
|
if (PIM_DEBUG_TRACE)
|
||||||
zlog_debug ("%s: %s RPF_interface(S) != RPF_interface(RP(G))",
|
zlog_debug ("%s: %s RPF_interface(S) != RPF_interface(RP(G))",
|
||||||
|
Loading…
Reference in New Issue
Block a user