From: Donald Sharp Date: Thu, 10 Aug 2017 18:41:38 +0000 (-0400) Subject: pimd: Single Upstream join when Keepalive timer pops X-Git-Tag: frr-4.0-dev~417^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=8022df6a6dae1c7e8d127e1ec064bd10e1ccaf2d;p=matthieu%2Ffrr.git pimd: Single Upstream join when Keepalive timer pops If a single S,G is being deleted because the keepalive timer has timed out, Send a *,G join upstream to clear the S,G RPT prune bit. Signed-off-by: Donald Sharp --- diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 95d1a840ff..cc90cef3ae 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1111,8 +1111,15 @@ static int pim_upstream_keep_alive_timer(struct thread *t) PIM_UPSTREAM_FLAG_UNSET_SRC_STREAM(up->flags); pim_upstream_del(pim, up, __PRETTY_FUNCTION__); } else if (PIM_UPSTREAM_FLAG_TEST_SRC_LHR(up->flags)) { + struct pim_upstream *parent = up->parent; + PIM_UPSTREAM_FLAG_UNSET_SRC_LHR(up->flags); pim_upstream_del(pim, up, __PRETTY_FUNCTION__); + + if (parent) { + pim_jp_agg_single_upstream_send(&parent->rpf, + parent, true); + } } return 0;