summaryrefslogtreecommitdiff
path: root/pimd/pim_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_util.c')
-rw-r--r--pimd/pim_util.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/pimd/pim_util.c b/pimd/pim_util.c
index 4b67dbf1b1..273c332c95 100644
--- a/pimd/pim_util.c
+++ b/pimd/pim_util.c
@@ -150,7 +150,9 @@ bool pim_is_group_filtered(struct pim_interface *pim_ifp, pim_addr *grp)
pim_addr_to_prefix(&grp_pfx, *grp);
pl = prefix_list_lookup(PIM_AFI, pim_ifp->boundary_oil_plist);
- return pl ? prefix_list_apply(pl, &grp_pfx) == PREFIX_DENY : false;
+ return pl ? prefix_list_apply_ext(pl, NULL, &grp_pfx, true) ==
+ PREFIX_DENY
+ : false;
}
@@ -166,3 +168,15 @@ int pim_get_all_mcast_group(struct prefix *prefix)
#endif
return 1;
}
+
+bool pim_addr_is_multicast(pim_addr addr)
+{
+#if PIM_IPV == 4
+ if (IN_MULTICAST(addr.s_addr))
+ return true;
+#else
+ if (IN6_IS_ADDR_MULTICAST(&addr))
+ return true;
+#endif
+ return false;
+}