diff options
| author | saravanank <saravanank@vmware.com> | 2020-03-19 02:31:42 -0700 |
|---|---|---|
| committer | saravanank <saravanank@vmware.com> | 2020-03-19 02:35:48 -0700 |
| commit | 877ebdf025bad3ccf4fbe0ccccd8a2dc58d05e0b (patch) | |
| tree | 90bf6cff7f334202ddd6dceb4764ab869d12398a | |
| parent | 48484e587524e3f42dfc1e1d08d65c59af892668 (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.c | 5 |
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: |
