From e6d700e33bb093d40d6c030556bb099f50e1bf96 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 25 Apr 2017 10:00:39 -0400 Subject: [PATCH] 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 --- pimd/pim_ifchannel.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index d267ee9fb2..f3c3e282c6 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -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); -- 2.39.5