Skip to content

Commit

Permalink
pimd: (*,G) Prune processing doesn't remove SGRpt ifchannel
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
vishaldhingra and sarav511 committed Nov 2, 2020
1 parent 1af7c1a commit 99f9518
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pimd/pim_ifchannel.c
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ void pim_ifchannel_delete_all(struct interface *ifp)
}
}

static void delete_on_noinfo(struct pim_ifchannel *ch)
void delete_on_noinfo(struct pim_ifchannel *ch)
{
if (ch->local_ifmembership == PIM_IFMEMBERSHIP_NOINFO
&& ch->ifjoin_state == PIM_IFJOIN_NOINFO
Expand Down
1 change: 1 addition & 0 deletions pimd/pim_ifchannel.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,5 @@ int pim_ifchannel_compare(const struct pim_ifchannel *ch1,
const struct pim_ifchannel *ch2);

unsigned int pim_ifchannel_hash_key(const void *arg);
void delete_on_noinfo(struct pim_ifchannel *ch);
#endif /* PIM_IFCHANNEL_H */
3 changes: 3 additions & 0 deletions pimd/pim_join.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down

0 comments on commit 99f9518

Please sign in to comment.