summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsaravanank <saravanank@vmware.com>2020-03-19 02:31:42 -0700
committersaravanank <saravanank@vmware.com>2020-03-19 02:35:48 -0700
commit877ebdf025bad3ccf4fbe0ccccd8a2dc58d05e0b (patch)
tree90bf6cff7f334202ddd6dceb4764ab869d12398a
parent48484e587524e3f42dfc1e1d08d65c59af892668 (diff)
pimd: PIM not processing (*,G) joins sent during Prune-Pending State
RCA: starg join fell in to SGRpt join check and was treated as SGRpt join so ifchannel state machine moved from prunepending to noinfo. Fix: Check if it is starg join and process Signed-off-by: Saravanan K <sarav511@vmware.com>
-rw-r--r--pimd/pim_ifchannel.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c
index d6a9ba266b..3e08a46aa9 100644
--- a/pimd/pim_ifchannel.c
+++ b/pimd/pim_ifchannel.c
@@ -955,7 +955,10 @@ void pim_ifchannel_join_add(struct interface *ifp, struct in_addr neigh_addr,
* triggering Join/Prune message.
*/
THREAD_OFF(ch->t_ifjoin_prune_pending_timer);
- if (source_flags & PIM_ENCODE_RPT_BIT) {
+
+ /* Check if SGRpt join Received */
+ if ((source_flags & PIM_ENCODE_RPT_BIT)
+ && (sg->src.s_addr != INADDR_ANY)) {
/*
* Transitions from Prune-Pending State (Rcv SGRpt Join)
* RFC 7761 Sec 4.5.3: