diff options
author | Chirag Shah <chirag@cumulusnetworks.com> | 2017-01-27 20:33:01 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-02-14 21:54:29 +0100 |
commit | e81d9709ff979502ff7b28ea622d04407068e0c2 (patch) | |
tree | 9e6a21db68270d1b95952e827909cce8feca7b30 /pimd/pim_igmpv3.c | |
parent | pimd: mroute entries unresolved IIF issue (diff) | |
download | frr-e81d9709ff979502ff7b28ea622d04407068e0c2.tar.xz frr-e81d9709ff979502ff7b28ea622d04407068e0c2.zip |
pimd: ifdown sequnce stale report entry
Ticket: CM-14652
Testing Done: Tested via sending IGMP report and flap port and verified pim upstream and mroute, the entry is deleted. Run pim-smoke
Even after Report received port down event, IGMP entry alawys exists in upstream, mroute, kernel.
The entry exist because it was recreated after delete due missing check if group has no more source list,
mode is exclude, last source address was * means (*, G) so do not trigger to create entry.
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_igmpv3.c')
-rw-r--r-- | pimd/pim_igmpv3.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index f7a6cbd0c..fb6566513 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -389,10 +389,14 @@ void igmp_source_delete(struct igmp_source *source) listnode_delete(group->group_source_list, source); igmp_source_free(source); - - if (group->group_filtermode_isexcl) { - group_exclude_fwd_anysrc_ifempty(group); - } + /* Group source list is empty and current source is * then + *,G group going away so do not trigger start */ + if (group->group_filtermode_isexcl && + (listcount (group->group_source_list) != 0) && + source->source_addr.s_addr != INADDR_ANY) + { + group_exclude_fwd_anysrc_ifempty (group); + } } static void source_delete_by_flag(struct list *source_list) |