[multicast, refactor]: add ddm-peers omdb view, shift member writes to mg-lower#10346
Open
zeeshanlakhani wants to merge 1 commit into
Open
[multicast, refactor]: add ddm-peers omdb view, shift member writes to mg-lower#10346zeeshanlakhani wants to merge 1 commit into
zeeshanlakhani wants to merge 1 commit into
Conversation
15e64aa to
92d912b
Compare
2 tasks
44e7675 to
ef44f19
Compare
76d0d3f to
0e64f2d
Compare
…o mg-lower Under RFD 488 (incoming changes), and akin to unicast tunnel routes, mg-lower and ddmd derive underlay members directly from DDM peer subscriptions, so Nexus no longer resolves live sled-to-switch-port from inventory or DDM peers. The DDM client, instead, becomes a read-only peer view, and the reconciler's member->"Joined" path is a pure DB CAS plus best-effort sled-agent propagation, decoupled from MGS, the switch zone, and DPD member updates. Includes: - Adds the `omdb nexus multicast ddm-peers` view backed by the read-only DDM client, with a new internal-dns resolver helper (`lookup_all_socket_v6_by_target`) so per-switch clients correlate sockets back to their SRV targets - Adds reconciler config knobs to `MulticastGroupReconcilerConfig`: `group_concurrency_limit`, `member_concurrency_limit`, and `orphan_grace_secs` (grace before an orphaned empty "Creating" group is reaped), wired through the example, SMF, and test configs - Shifts underlay member writes to mg-lower, trimming the reconciler's member state machine and switch-zone coordination accordingly - Splits the multicast dataplane client into focused modules: `mrib.rs` for per-pass MRIB route reconciliation and `switch_zone.rs` for the MGD/DDM switch-zone clients, leaving `dataplane.rs` to DPD group operations - Adds schema migration `multicast-member-origin` (schema version 267): a new `multicast_group_member_origin` enum (`static` / `igmp_snooped`) and a `membership_origin` column on multicast group members defaulting to `static`. Groundwork for the RFD 488 static and IGMP/MLD paths, distinguishing which rows a future soft-state reaper may expire - Aligns the simulated sled-agent's `set_mcast_fwd` with real OPTE's additive next-hop semantics, and reads back through the `list_mcast_fwd` API in the multi-sled test - Also, the sled-agent multicast membership API was renamed `instance_join/leave_multicast_group` → `vmm_join/leave_multicast_group` (for sim + client/HTTP surface). - Corrects stale reconciler, switch-zone, and API-version docs throughout - Documents the test boundary: coverage stops at the Omicron-owned edge, while DDM exchange and DPD member programming are maghemite/dendrite's domain - Cleans up the now-dead inventory-based test scaffolding
8b54691 to
183f02d
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.
This PR stacks atop #10070 and inherits the multicast-to-physical (M2P) underlay forwarding and VMM-keyed instance subscription endpoints.
Under RFD 488 (incoming changes), and akin to unicast tunnel routes, mg-lower and ddmd derive underlay members directly from DDM peer subscriptions, so Nexus no longer resolves live sled-to-switch-port from inventory or DDM peers. The DDM client, instead, becomes a read-only peer view, and the reconciler's member->"Joined" path is a pure DB CAS plus best-effort sled-agent propagation, decoupled from MGS, the switch zone, and DPD member updates.
Includes:
omdb nexus multicast ddm-peersview backed by the read-only DDM client, with a new internal-dns resolver helper (lookup_all_socket_v6_by_target) so per-switch clients correlate sockets back to their SRV targetsMulticastGroupReconcilerConfig:group_concurrency_limit,member_concurrency_limit, andorphan_grace_secs(grace before an orphaned empty "Creating" group is reaped), wired through the example, SMF, and test configsmrib.rsfor per-pass MRIB route reconciliation andswitch_zone.rsfor the MGD/DDM switch-zone clients, leavingdataplane.rsto DPD group operationsmulticast-member-origin(schema version 267): a newmulticast_group_member_originenum (static/igmp_snooped) and amembership_origincolumn on multicast group members defaulting tostatic. Groundwork for the RFD 488 static and IGMP/MLD paths, distinguishing which rows a future soft-state reaper may expireset_mcast_fwdwith real OPTE's additive next-hop semantics, and reads back through thelist_mcast_fwdAPI in the multi-sled testinstance_join/leave_multicast_group→vmm_join/leave_multicast_group(for sim + client/HTTP surface).DDM exchange and DPD member programming are maghemite/dendrite's domain