pimd: Note when a S,G stream should be a FHR as well

When we have a S,G being created, that it might
also be a FHR router as well.  This happens
when the FHR is in the path of the RP->LHR
for when it builds it's SPT tree for the S,G.

Ticket: CM-16056, CM-15836
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-04-25 10:00:39 -04:00
parent bacf3d12dd
commit e6d700e33b

View File

@ -790,6 +790,16 @@ void pim_ifchannel_join_add(struct interface *ifp,
pim_upstream_inherited_olist (ch->upstream);
pim_forward_start(ch);
}
/*
* If we are going to be a LHR, we need to note it
*/
if (ch->upstream->parent &&
(ch->upstream->parent->flags & PIM_UPSTREAM_FLAG_MASK_SRC_IGMP) &&
!(ch->upstream->flags & PIM_UPSTREAM_FLAG_MASK_SRC_LHR))
{
pim_upstream_ref (ch->upstream, PIM_UPSTREAM_FLAG_MASK_SRC_LHR);
pim_upstream_keep_alive_timer_start (ch->upstream, qpim_keep_alive_time);
}
break;
case PIM_IFJOIN_JOIN:
zassert(!ch->t_ifjoin_prune_pending_timer);