From 69283639958151a3941369804fcfaa3b9f14a150 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Fri, 22 Jul 2016 23:42:11 -0400 Subject: [PATCH] pimd: convert pim_ifchannel_local_membership_add to use struct prefix sg Signed-off-by: Donald Sharp --- pimd/pim_cmd.c | 9 ++++++--- pimd/pim_ifchannel.c | 10 ++-------- pimd/pim_ifchannel.h | 3 +-- pimd/pim_zebra.c | 3 +-- 4 files changed, 10 insertions(+), 15 deletions(-) diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index e8323ff08a..18957234cf 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -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 */ diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 06f5b756b4..edb1a104b1 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -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; } diff --git a/pimd/pim_ifchannel.h b/pimd/pim_ifchannel.h index 1fb066445c..3b7e2806a4 100644 --- a/pimd/pim_ifchannel.h +++ b/pimd/pim_ifchannel.h @@ -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); diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index e01b50fa87..8dce69a0da 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -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); } -- 2.39.5