diff options
Diffstat (limited to 'pimd/pim_bsm.c')
| -rw-r--r-- | pimd/pim_bsm.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/pimd/pim_bsm.c b/pimd/pim_bsm.c index 4214790476..0b993ec05e 100644 --- a/pimd/pim_bsm.c +++ b/pimd/pim_bsm.c @@ -667,10 +667,7 @@ void pim_bsm_clear(struct pim_instance *pim) struct prefix grp; struct rp_info *trp_info; - grp.family = AF_INET; - grp.prefixlen = IPV4_MAX_BITLEN; - grp.u.prefix4 = up->sg.grp; - + pim_addr_to_prefix(&grp, up->sg.grp); trp_info = pim_rp_find_match_group(pim, &grp); /* RP not found for the group grp */ @@ -690,7 +687,7 @@ void pim_bsm_clear(struct pim_instance *pim) } static bool pim_bsm_send_intf(uint8_t *buf, int len, struct interface *ifp, - struct in_addr dst_addr) + pim_addr dst_addr) { struct pim_interface *pim_ifp; @@ -723,8 +720,7 @@ static bool pim_bsm_send_intf(uint8_t *buf, int len, struct interface *ifp, } static bool pim_bsm_frag_send(uint8_t *buf, uint32_t len, struct interface *ifp, - uint32_t pim_mtu, struct in_addr dst_addr, - bool no_fwd) + uint32_t pim_mtu, pim_addr dst_addr, bool no_fwd) { struct bsmmsg_grpinfo *grpinfo, *curgrp; uint8_t *firstgrp_ptr; @@ -895,7 +891,7 @@ static void pim_bsm_fwd_whole_sz(struct pim_instance *pim, uint8_t *buf, { struct interface *ifp; struct pim_interface *pim_ifp; - struct in_addr dst_addr; + pim_addr dst_addr; uint32_t pim_mtu; bool no_fwd = false; bool ret = false; @@ -942,7 +938,7 @@ static void pim_bsm_fwd_whole_sz(struct pim_instance *pim, uint8_t *buf, bool pim_bsm_new_nbr_fwd(struct pim_neighbor *neigh, struct interface *ifp) { - struct in_addr dst_addr; + pim_addr dst_addr; struct pim_interface *pim_ifp; struct bsm_scope *scope; struct bsm_frag *bsfrag; @@ -951,17 +947,14 @@ bool pim_bsm_new_nbr_fwd(struct pim_neighbor *neigh, struct interface *ifp) bool no_fwd = true; bool ret = false; - if (PIM_DEBUG_BSM) { - pim_inet4_dump("<src?>", neigh->source_addr, neigh_src_str, - sizeof(neigh_src_str)); - zlog_debug("%s: New neighbor %s seen on %s", __func__, - neigh_src_str, ifp->name); - } + if (PIM_DEBUG_BSM) + zlog_debug("%s: New neighbor %pPA seen on %s", __func__, + &neigh->source_addr, ifp->name); pim_ifp = ifp->info; /* DR only forwards BSM packet */ - if (pim_ifp->pim_dr_addr.s_addr == pim_ifp->primary_address.s_addr) { + if (!pim_addr_cmp(pim_ifp->pim_dr_addr, pim_ifp->primary_address)) { if (PIM_DEBUG_BSM) zlog_debug( "%s: It is not DR, so don't forward BSM packet", |
