From: Donald Sharp Date: Fri, 5 Apr 2019 12:40:51 +0000 (-0400) Subject: pimd: Initiate *,G S,G RPT Prune in some cases X-Git-Tag: 7.1_pulled~77^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=2de05c606e34e8ea2bb60fce110228caeb356e48;p=mirror%2Ffrr.git pimd: Initiate *,G S,G RPT Prune in some cases On the LHR after we decide that traffic is flowing and we set the SPT bit for the S,G *and* the incoming IIF of the S,G is different than the incoming IIF of the *,G we should immediately send the *,G S,G RPT Prune as a triggered response instead of waiting for the next cycle. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 2a0804e10b..8c59207246 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1292,11 +1292,15 @@ void pim_upstream_set_sptbit(struct pim_upstream *up, if (!starup || up->rpf.source_nexthop .interface != starup->rpf.source_nexthop.interface) { + struct pim_upstream *starup = up->parent; + if (PIM_DEBUG_TRACE) zlog_debug( "%s: %s RPF_interface(S) != RPF_interface(RP(G))", __PRETTY_FUNCTION__, up->sg_str); up->sptbit = PIM_UPSTREAM_SPTBIT_TRUE; + + pim_jp_agg_single_upstream_send(&starup->rpf, starup, true); return; }