]> git.puffer.fish Git - mirror/frr.git/commitdiff
pimd: Convert pim_ifchannel_local_membership_del to struct prefix *sg
authorDonald Sharp <sharpd@cumulusnetwroks.com>
Sat, 23 Jul 2016 03:50:29 +0000 (23:50 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:03 +0000 (20:26 -0500)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_ifchannel.c
pimd/pim_ifchannel.h
pimd/pim_zebra.c

index edb1a104b1a3e2695d5fdc81c39d025a4217c375..0d246a57f8fc86eaf9d75d199531ea8df4512f3a 100644 (file)
@@ -698,16 +698,10 @@ void pim_ifchannel_local_membership_add(struct interface *ifp,
 }
 
 void pim_ifchannel_local_membership_del(struct interface *ifp,
-                                       struct in_addr source_addr,
-                                       struct in_addr group_addr)
+                                       struct prefix *sg)
 {
   struct pim_ifchannel *ch;
   struct pim_interface *pim_ifp;
-  struct prefix sg;
-
-  memset (&sg, 0, sizeof (struct prefix));
-  sg.u.sg.src = source_addr;
-  sg.u.sg.grp = group_addr;
 
   /* PIM enabled on interface? */
   pim_ifp = ifp->info;
@@ -716,7 +710,7 @@ void pim_ifchannel_local_membership_del(struct interface *ifp,
   if (!PIM_IF_TEST_PIM(pim_ifp->options))
     return;
 
-  ch = pim_ifchannel_find(ifp, &sg);
+  ch = pim_ifchannel_find(ifp, sg);
   if (!ch)
     return;
 
index 3b7e2806a4857d67f26353131e52570fcbbedebd..2fd429ca04211fd5e08ae90adb2fccc87f660903 100644 (file)
@@ -121,8 +121,7 @@ void pim_ifchannel_prune(struct interface *ifp,
 void pim_ifchannel_local_membership_add(struct interface *ifp,
                                        struct prefix *sg);
 void pim_ifchannel_local_membership_del(struct interface *ifp,
-                                       struct in_addr source_addr,
-                                       struct in_addr group_addr);
+                                       struct prefix *sg);
 
 void pim_ifchannel_ifjoin_switch(const char *caller,
                                 struct pim_ifchannel *ch,
index 8dce69a0dad3f1490f1f0b33d884995f6f31a924..87e2258ad7d3a472edf36282eede3ce16e5181b1 100644 (file)
@@ -952,6 +952,7 @@ void igmp_source_forward_start(struct igmp_source *source)
   struct prefix sg;
   int result;
 
+  memset (&sg, 0, sizeof (struct prefix));
   sg.u.sg.src = source->source_addr;
   sg.u.sg.grp = source->source_group->group_addr;
 
@@ -1056,16 +1057,17 @@ void igmp_source_forward_start(struct igmp_source *source)
 void igmp_source_forward_stop(struct igmp_source *source)
 {
   struct igmp_group *group;
+  struct prefix sg;
   int result;
 
+  memset (&sg, 0, sizeof (struct prefix));
+  sg.u.sg.src = source->source_addr;
+  sg.u.sg.grp = source->source_group->group_addr;
+
   if (PIM_DEBUG_IGMP_TRACE) {
-    char source_str[100];
-    char group_str[100]; 
-    pim_inet4_dump("<source?>", source->source_addr, source_str, sizeof(source_str));
-    pim_inet4_dump("<group?>", source->source_group->group_addr, group_str, sizeof(group_str));
-    zlog_debug("%s: (S,G)=(%s,%s) igmp_sock=%d oif=%s fwd=%d",
+    zlog_debug("%s: (S,G)=%s igmp_sock=%d oif=%s fwd=%d",
               __PRETTY_FUNCTION__,
-              source_str, group_str,
+              pim_str_sg_dump (&sg),
               source->source_group->group_igmp_sock->fd,
               source->source_group->group_igmp_sock->interface->name,
               IGMP_SOURCE_TEST_FORWARDING(source->source_flags));
@@ -1104,7 +1106,7 @@ void igmp_source_forward_stop(struct igmp_source *source)
     per-interface (S,G) state.
    */
   pim_ifchannel_local_membership_del(group->group_igmp_sock->interface,
-                                    source->source_addr, group->group_addr);
+                                    &sg);
 
   IGMP_SOURCE_DONT_FORWARDING(source->source_flags);
 }