summaryrefslogtreecommitdiffstats
path: root/pimd/pim_util.h
diff options
context:
space:
mode:
authorCorey Siltala <csiltala@atcorp.com>2024-11-25 17:36:54 +0100
committerCorey Siltala <csiltala@atcorp.com>2024-12-06 21:44:17 +0100
commit4de4017d64ccaaa5a0f768873bc36aad4a8912a6 (patch)
tree7bb032b90c4c08f3f65f188f60220e267f0a89a4 /pimd/pim_util.h
parentpimd: Move ACL handling to pim_util.c (diff)
downloadfrr-4de4017d64ccaaa5a0f768873bc36aad4a8912a6.tar.xz
frr-4de4017d64ccaaa5a0f768873bc36aad4a8912a6.zip
pimd,yang: Extend multicast boundary functionality
Add new interface command ip multicast boundary ACCESSLIST4_NAME. This allows filtering on both source and group using the extended access-list syntax vs. group-only as with the existing "ip multicast boundary oil" command, which uses prefix-lists. If both are configured, the prefix- list is evaluated first. The default behavior for both prefix-lists and access-lists remains "deny", so the prefix-list must have a terminating "permit" statement in order to also evaluate against the access-list. The following example denies groups in range 229.1.1.0/24 and groups in range 232.1.1.0/24 with source 10.0.20.2: ! ip prefix-list pim-oil-plist seq 10 deny 229.1.1.0/24 ip prefix-list pim-oil-plist seq 20 permit any ! access-list pim-acl seq 10 deny ip host 10.0.20.2 232.1.1.0 0.0.0.255 access-list pim-acl seq 20 permit ip any any ! interface r1-eth0 ip address 10.0.20.1/24 ip igmp ip pim ip multicast boundary oil pim-oil-plist ip multicast boundary pim-acl ! Signed-off-by: Corey Siltala <csiltala@atcorp.com>
Diffstat (limited to 'pimd/pim_util.h')
-rw-r--r--pimd/pim_util.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/pimd/pim_util.h b/pimd/pim_util.h
index cffa93ed2..dda93110b 100644
--- a/pimd/pim_util.h
+++ b/pimd/pim_util.h
@@ -25,7 +25,7 @@ int pim_is_group_224_0_0_0_24(struct in_addr group_addr);
int pim_is_group_224_4(struct in_addr group_addr);
enum filter_type pim_access_list_apply(struct access_list *access, const struct in_addr *source,
const struct in_addr *group);
-bool pim_is_group_filtered(struct pim_interface *pim_ifp, pim_addr *grp);
+bool pim_is_group_filtered(struct pim_interface *pim_ifp, pim_addr *grp, pim_addr *src);
int pim_get_all_mcast_group(struct prefix *prefix);
bool pim_addr_is_multicast(pim_addr addr);
#endif /* PIM_UTIL_H */