]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: convert pim_ifchannel_local_membership_add to use struct prefix sg
authorDonald Sharp <sharpd@cumulusnetwroks.com>
Sat, 23 Jul 2016 03:42:11 +0000 (23:42 -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_cmd.c
pimd/pim_ifchannel.c
pimd/pim_ifchannel.h
pimd/pim_zebra.c

index e8323ff08aaf536337c4e98ae956a0dde8fa4892..18957234cfb5335a09c49cce97978220e5ec2af3 100644 (file)
@@ -129,9 +129,12 @@ static void pim_if_membership_refresh(struct interface *ifp)
       for (ALL_LIST_ELEMENTS_RO(grp->group_source_list, srcnode, src)) {
 
        if (IGMP_SOURCE_TEST_FORWARDING(src->source_flags)) {
-         pim_ifchannel_local_membership_add(ifp,
-                                            src->source_addr,
-                                            grp->group_addr);
+         struct prefix sg;
+
+         memset (&sg, 0, sizeof (struct prefix));
+         sg.u.sg.src = src->source_addr;
+         sg.u.sg.grp = grp->group_addr;
+         pim_ifchannel_local_membership_add(ifp, &sg);
        }
        
       } /* scan group sources */
index 06f5b756b44d182280030f73296e0a3477e42940..edb1a104b1a3e2695d5fdc81c39d025a4217c375 100644 (file)
@@ -675,16 +675,10 @@ void pim_ifchannel_prune(struct interface *ifp,
 }
 
 void pim_ifchannel_local_membership_add(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;
@@ -693,7 +687,7 @@ void pim_ifchannel_local_membership_add(struct interface *ifp,
   if (!PIM_IF_TEST_PIM(pim_ifp->options))
     return;
 
-  ch = pim_ifchannel_add(ifp, &sg);
+  ch = pim_ifchannel_add(ifp, sg);
   if (!ch) {
     return;
   }
index 1fb066445c32313cb6d38ff08cec851c3a27b09f..3b7e2806a4857d67f26353131e52570fcbbedebd 100644 (file)
@@ -119,8 +119,7 @@ void pim_ifchannel_prune(struct interface *ifp,
                         uint8_t source_flags,
                         uint16_t holdtime);
 void pim_ifchannel_local_membership_add(struct interface *ifp,
-                                       struct in_addr source_addr,
-                                       struct in_addr group_addr);
+                                       struct prefix *sg);
 void pim_ifchannel_local_membership_del(struct interface *ifp,
                                        struct in_addr source_addr,
                                        struct in_addr group_addr);
index e01b50fa874863a9d602f4bb4027248c8832b9c2..8dce69a0dad3f1490f1f0b33d884995f6f31a924 100644 (file)
@@ -1044,8 +1044,7 @@ void igmp_source_forward_start(struct igmp_source *source)
     Feed IGMPv3-gathered local membership information into PIM
     per-interface (S,G) state.
    */
-  pim_ifchannel_local_membership_add(group->group_igmp_sock->interface,
-                                    source->source_addr, group->group_addr);
+  pim_ifchannel_local_membership_add(group->group_igmp_sock->interface, &sg);
 
   IGMP_SOURCE_DO_FORWARDING(source->source_flags);
 }