Open
Conversation
Author
|
@taspelund Just reopening this pointing back to main (I merged the previous PR into my multicast-e2e branch). |
…ni type, sled transactions, merge main (665) This is setup to come after #665 API modifications, but uses the up-to-date setup and dropshot API manager.
22b7b3e to
954f63a
Compare
taspelund
reviewed
Apr 1, 2026
zeeshanlakhani
commented
Apr 2, 2026
| )] | ||
| #[serde(try_from = "Ipv6Addr", into = "Ipv6Addr")] | ||
| #[schemars(transparent)] | ||
| pub struct UnderlayMulticastIpv6(Ipv6Addr); |
Author
There was a problem hiding this comment.
In the DDM work, this will move to mg-common/src/net, but I'll handle that there (there's already enough here).
zeeshanlakhani
added a commit
that referenced
this pull request
Apr 2, 2026
…amming Adds multicast group subscription distribution to the DDM exchange protocol with a V4 version bump (frozen V3 types for wire compat). Key changes: - V4 exchange protocol with multicast support (V3 peers are unaffected) - UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types) - MRIB->DDM sync in mg-lower/mrib.rs - OPTE M2P table programming on learned multicast routes - Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work) - Collapsed send_update dispatch - Shared pull handler helpers (collect_underlay_tunnel, collect_multicast) - MulticastPathHop constructor - Some serde round-trip and validation tests, including for version handling Stacked on zl/mrib (MRIB: Multicast RIB implementation [#675](#675)).
zeeshanlakhani
added a commit
that referenced
this pull request
Apr 2, 2026
Adds multicast group subscription distribution to the DDM exchange protocol with a V4 version bump (frozen V3 types for wire compat). Key changes: - V4 exchange protocol with multicast support (V3 peers are unaffected) - UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types) - MRIB->DDM sync in mg-lower/mrib.rs - OPTE M2P hooks for learned multicast routes (requires OPTE #924) - Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work) - Collapsed send_update dispatch - Shared pull handler helpers (collect_underlay_tunnel, collect_multicast) - MulticastPathHop constructor - Some serde round-trip and validation tests, including for version handling Stacked on zl/mrib (MRIB: Multicast RIB implementation [#675](#675)).
zeeshanlakhani
added a commit
that referenced
this pull request
Apr 2, 2026
Adds multicast group subscription distribution to the DDM exchange protocol with a V4 version bump (frozen V3 types for wire compat). Key changes: - V4 exchange protocol with multicast support (V3 peers are unaffected) - UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types) - MRIB->DDM sync in mg-lower/mrib.rs - OPTE M2P hooks for learned multicast routes (requires OPTE #924) - Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work) - Collapsed send_update dispatch - Shared pull handler helpers (collect_underlay_tunnel, collect_multicast) - MulticastPathHop constructor - Some serde round-trip and validation tests, including for version handling Stacked on zl/mrib (MRIB: Multicast RIB implementation [#675](#675)).
zeeshanlakhani
added a commit
that referenced
this pull request
Apr 7, 2026
Adds multicast group subscription distribution to the DDM exchange protocol with a V4 version bump (frozen V3 types for wire compat). Key changes: - V4 exchange protocol with multicast support (V3 peers are unaffected) - UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types) - MRIB->DDM sync in mg-lower/mrib.rs - OPTE M2P hooks for learned multicast routes (requires OPTE #924) - Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work) - Collapsed send_update dispatch - Shared pull handler helpers (collect_underlay_tunnel, collect_multicast) - MulticastPathHop constructor - Some serde round-trip and validation tests, including for version handling Stacked on zl/mrib (MRIB: Multicast RIB implementation [#675](#675)).
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 the Multicast Routing Information Base (MRIB) for multicast support. The MRIB follows a two-table architecture (
mrib_in→mrib_loc) with RPF verification against the unicast RIB when sources are provided.This PR includes:
rdb/src/mrib/mod.rs: core MRIB with route storage and change notificationsrdb/src/mrib/rpf.rs: RPF verification using poptrie for O(1) LPM lookups,with rate-limited rebuilds triggered on unicast RIB changes
rdb/src/db.rs: MRIB persistence with sled transactionsrdb/src/types.rs: validated multicast types (UnderlayMulticastIpv6,Vni)mg-api/src/lib.rs: API v8 (VERSION_MULTICAST_SUPPORT) endpoints,following RFD 619 pattern (atop [mg-api] migrate to RFD 619 pattern #665)
mg-types/versions/src/multicast_support/: versioned API typesmgd/src/mrib_admin.rs: HTTP handlers bridging API to MRIBmgadm/src/mrib.rs: CLI for MRIB inspection and configurationOmicron is source of truth multicast overlay/underlay groups/addresses.
References
zl/filter-mcast-srcsbranch for multicast source filtering support.