summaryrefslogtreecommitdiff
path: root/pimd/pim_bsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_bsm.c')
-rw-r--r--pimd/pim_bsm.c25
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",