#define PIM_MSG_REGISTER_BIT_RESERVED_LEN 4
ip_hdr = (struct ip *)(tlv_buf + PIM_MSG_REGISTER_BIT_RESERVED_LEN);
- if (!pim_rp_check_is_my_ip_address(pim_ifp->pim, ip_hdr->ip_dst,
- dest_addr)) {
+ if (!pim_rp_check_is_my_ip_address(pim_ifp->pim, dest_addr)) {
if (PIM_DEBUG_PIM_REG) {
char dest[INET_ADDRSTRLEN];
pim_inet4_dump("<dst?>", dest_addr, dest, sizeof(dest));
zlog_debug(
- "%s: Received Register message for %s that I do not own",
+ "%s: Received Register message for destination address: %s that I do not own",
__func__, dest);
}
return 0;
return count;
}
-int pim_rp_check_is_my_ip_address(struct pim_instance *pim,
- struct in_addr group,
- struct in_addr dest_addr)
+bool pim_rp_check_is_my_ip_address(struct pim_instance *pim,
+ struct in_addr dest_addr)
{
- struct rp_info *rp_info;
- struct prefix g;
-
- memset(&g, 0, sizeof(g));
- g.family = AF_INET;
- g.prefixlen = 32;
- g.u.prefix4 = group;
-
- rp_info = pim_rp_find_match_group(pim, &g);
- /*
- * See if we can short-cut some?
- * This might not make sense if we ever leave a static RP
- * type of configuration.
- * Note - Premature optimization might bite our patooeys' here.
- */
- if (I_am_RP(pim, group)) {
- if (dest_addr.s_addr == rp_info->rp.rpf_addr.u.prefix4.s_addr)
- return 1;
- }
-
if (if_lookup_exact_address(&dest_addr, AF_INET, pim->vrf_id))
- return 1;
+ return true;
- return 0;
+ return false;
}
void pim_rp_show_information(struct pim_instance *pim, struct vty *vty, bool uj)
void pim_rp_check_on_if_add(struct pim_interface *pim_ifp);
void pim_i_am_rp_re_evaluate(struct pim_instance *pim);
-int pim_rp_check_is_my_ip_address(struct pim_instance *pim,
- struct in_addr group,
- struct in_addr dest_addr);
+bool pim_rp_check_is_my_ip_address(struct pim_instance *pim,
+ struct in_addr dest_addr);
int pim_rp_set_upstream_addr(struct pim_instance *pim, struct in_addr *up,
struct in_addr source, struct in_addr group);