Add per-member multicast source filtering#924
Open
zeeshanlakhani wants to merge 1 commit intomasterfrom
Open
Conversation
275e35c to
491d3e0
Compare
Implements IGMPv3/MLDv2-based source filtering for multicast subscriptions, including:
- SourceFilter and FilterMode types in oxide-vpc API
- Fast-path optimization for EXCLUDE() (accept all) case
- Per-member/port filtering on both Tx and Rx paths
- Per-next-hop forwarding filtering: Check aggregated SourceFilter before
forwarding to each remote sled
- Allows skipping forwarding to sleds where no subscriber would accept the packet
- This will involve additions to Omicron, but we have to do that anyway for OPTE changes
- DTrace probe and stats for filtered/filtered-out packets
- Benchmark(s) and integration tests
- This PR also includes optimizations to the xde test suite setup for mcast
- Note: Contains an API bump
- Minor: clippy test cleanup
491d3e0 to
42e42bc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements IGMPv3/MLDv2-based source filtering for multicast subscriptions at two levels:
SourceFilterchecked on deliveryThis work includes:
forwarding to each remote sled
We can't really afford (stages, etc) to do this source filtering on the Tofino switch (currently), as it has to happen post-replication, which happens at the Egress portion pipeline of the sidecar. So, it makes sense to handle this in OPTE at the moment.