]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: PIM not processing (*,G) joins sent during Prune-Pending State 6016/head
authorsaravanank <saravanank@vmware.com>
Thu, 19 Mar 2020 09:31:42 +0000 (02:31 -0700)
committersaravanank <saravanank@vmware.com>
Thu, 19 Mar 2020 09:35:48 +0000 (02:35 -0700)
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>
pimd/pim_ifchannel.c

index d6a9ba266be7e3bd9ef7b68904bccaadcda14dee..3e08a46aa9ebd381403575d04cd16a20482ef902 100644 (file)
@@ -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: