Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pimd: Extend multicast boundary/ACL functionality #17461

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

csiltala
Copy link

  • Add new interface command ip multicast boundary ACCESSLIST4_NAME. This allows filtering on both source and group vs. group-only as with the existing ip multicast boundary oil WORD command, which uses prefix-lists. If both are configured, the prefix-list is evaluated first.
  • Add basic test and documentation
  • Add documentation for existing access-list functionality

pimd/pim_iface.c Outdated Show resolved Hide resolved
Comment on lines -315 to -318
/* if we are filtering this group, skip the prune */
if (filtered)
continue;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the reasoning here is that we should always scan the prune sources regardless of filtering rules?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prunes for flows for which we have no state have no effect, but if we begin filtering a (S,G) that is already being forwarded, then we'll want to continue processing prunes for that flow if it tries to prune before the flow state times out.

@donaldsharp
Copy link
Member

Is there any particular reason you don't actually have any commit message? Make it easier for the person coming behind you to look at what you were doing / thinking about the functionality.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@Jafaral Jafaral changed the title pimd: Extend multicast boundary functionality pimd: Extend multicast boundary/ACL functionality Nov 21, 2024
Corey Siltala added 3 commits November 21, 2024 16:44
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
!

Also move the extended access-list handling from pim_msdp_packet.c to
pim_util.c to allow use elsewhere in the daemon.

Signed-off-by: Corey Siltala <csiltala@atcorp.com>
Add simple test to show filtering of IGMP joins using new "ip multicast
boundary" filtering with access-lists, include test of existing prefix-
list based "ip multicast boundary oil" command.

Signed-off-by: Corey Siltala <csiltala@atcorp.com>
Add documentation for existing extended access-list functionality and
the new "ip multicast boundary" command leveraging that functionality.

Signed-off-by: Corey Siltala <csiltala@atcorp.com>
@csiltala
Copy link
Author

csiltala commented Nov 22, 2024

Is there any particular reason you don't actually have any commit message? Make it easier for the person coming behind you to look at what you were doing / thinking about the functionality.

@donaldsharp I've updated the commit messages; let me know if you'd like any further changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants