summaryrefslogtreecommitdiff
path: root/pimd/pim_join.c
diff options
context:
space:
mode:
authorvdhingra <vdhingra@vmware.com>2020-10-28 07:32:00 -0700
committervdhingra <vdhingra@vmware.com>2020-11-02 01:06:59 -0800
commit99f9518b4a82b710902900c52dc1363cf9ef7da2 (patch)
treee430ff4f327683bd76b46929822d2024816339eb /pimd/pim_join.c
parent1af7c1af0621b770218c8ec84fb36d8c480a1091 (diff)
pimd: (*,G) Prune processing doesn't remove SGRpt ifchannel
problem : ========= When (*,G) prune received where we have SGRpt state, ifchannel goes to NO_INFO state and doesn't get removed. Root cause : ============ During the processing of (*,G) prune, we are not removing the ifchannel on PruneTmp or PrunePendingTmp state. Fix : ===== In that scenario, stop joinExpiry timer and delete the ifchannel. issue #7347 Co-authored-by: Saravanan K <saravanank@vmware.com> Signed-off-by: vishaldhingra <vdhingra@vmware.com>
Diffstat (limited to 'pimd/pim_join.c')
-rw-r--r--pimd/pim_join.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pimd/pim_join.c b/pimd/pim_join.c
index f54d5bf9bf..2766a6d2b5 100644
--- a/pimd/pim_join.c
+++ b/pimd/pim_join.c
@@ -350,8 +350,11 @@ int pim_joinprune_recv(struct interface *ifp, struct pim_neighbor *neigh,
== PIM_IFJOIN_PRUNE_PENDING_TMP)
THREAD_OFF(
child->t_ifjoin_prune_pending_timer);
+ THREAD_OFF(
+ child->t_ifjoin_expiry_timer);
PIM_IF_FLAG_UNSET_S_G_RPT(child->flags);
child->ifjoin_state = PIM_IFJOIN_NOINFO;
+ delete_on_noinfo(child);
}
}