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 <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2019-04-05 08:40:51 -04:00
parent 2cb7234faf
commit 2de05c606e

View File

@ -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;
}