summaryrefslogtreecommitdiffstats
path: root/pimd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2016-07-11 22:22:14 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2016-07-12 16:46:01 +0200
commit2560106c04574349022c0876550ca37b78726265 (patch)
tree5066cc36ec8d09b043f3e6128b045fdfa77dfe1c /pimd
parentpimd: IGMPv3 leave not deleting group entry (diff)
downloadfrr-2560106c04574349022c0876550ca37b78726265.tar.xz
frr-2560106c04574349022c0876550ca37b78726265.zip
pimd: Start naive implementation of anysource_forward_stop
Naive implementation of igmp_anysource_foward_stop. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd')
-rw-r--r--pimd/pim_zebra.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c
index 5918a5192..b19b3941b 100644
--- a/pimd/pim_zebra.c
+++ b/pimd/pim_zebra.c
@@ -43,6 +43,7 @@
#include "pim_zlookup.h"
#include "pim_ifchannel.h"
#include "pim_rp.h"
+#include "pim_igmpv3.h"
#undef PIM_DEBUG_IFADDR_DUMP
#define PIM_DEBUG_IFADDR_DUMP
@@ -740,13 +741,12 @@ void igmp_anysource_forward_start(struct igmp_group *group)
void igmp_anysource_forward_stop(struct igmp_group *group)
{
- /* Any source (*,G) is forwarded only if mode is EXCLUDE {empty} */
- zassert((!group->group_filtermode_isexcl) || (listcount(group->group_source_list) > 0));
+ struct igmp_source *source;
+ struct in_addr star = { .s_addr = 0 };
- if (PIM_DEBUG_IGMP_TRACE) {
- zlog_debug("%s %s: UNIMPLEMENTED",
- __FILE__, __PRETTY_FUNCTION__);
- }
+ source = igmp_find_source_by_addr (group, star);
+ if (source)
+ igmp_source_forward_stop (source);
}
static int fib_lookup_if_vif_index(struct in_addr addr)