]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: When we fail to initiate ifchannel backout work done 3346/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 16 Nov 2018 00:28:43 +0000 (19:28 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 16 Nov 2018 00:28:43 +0000 (19:28 -0500)
When we receive a igmp report and attempt to initiate
a pim ifchannel for it and that fails to work then
let's back out the work done setting stuff up to this
point.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_zebra.c

index 3dfc36a0c2e8ae18d060741031786a267522f0b5..10ea17cf1f80dfe0487c1a09bc99033c1e875570 100644 (file)
@@ -1048,6 +1048,10 @@ void igmp_source_forward_start(struct pim_instance *pim,
                                   __PRETTY_FUNCTION__,
                                   pim_str_sg_dump(&sg),
                                   group->group_igmp_sock->interface->name);
+
+               pim_channel_del_oif(source->source_channel_oil,
+                                   group->group_igmp_sock->interface,
+                                   PIM_OIF_FLAG_PROTO_IGMP);
                return;
        }
        /*
@@ -1059,6 +1063,10 @@ void igmp_source_forward_start(struct pim_instance *pim,
                if (PIM_DEBUG_MROUTE)
                        zlog_warn("%s: Failure to add local membership for %s",
                                  __PRETTY_FUNCTION__, pim_str_sg_dump(&sg));
+
+               pim_channel_del_oif(source->source_channel_oil,
+                                   group->group_igmp_sock->interface,
+                                   PIM_OIF_FLAG_PROTO_IGMP);
                return;
        }