Merge pull request #463 from donaldsharp/pim_stable_3.0

Pim stable 3.0
This commit is contained in:
Jafar Al-Gharaibeh 2017-05-04 13:09:44 -05:00 committed by GitHub
commit bb738156e4
2 changed files with 12 additions and 3 deletions

View File

@ -790,6 +790,16 @@ void pim_ifchannel_join_add(struct interface *ifp,
pim_upstream_inherited_olist (ch->upstream); pim_upstream_inherited_olist (ch->upstream);
pim_forward_start(ch); 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; break;
case PIM_IFJOIN_JOIN: case PIM_IFJOIN_JOIN:
zassert(!ch->t_ifjoin_prune_pending_timer); zassert(!ch->t_ifjoin_prune_pending_timer);

View File

@ -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))",