Commit 98e9742
committed
[multicast] M2P forwarding, OPTE port subscription, and sled-agent propagation
Complete the multicast data path by adding per-sled M2P (multicast-to-
physical) mapping, forwarding entry management, and OPTE port subscription
for multicast group members.
Sled-agent:
- Add `multicast_subscribe` / `multicast_unsubscribe` endpoints (API v29)
that configure M2P, forwarding, and OPTE port subscription for a VMM
- OPTE port_manager gains set/clear operations for M2P and forwarding
- Port subscription cleanup on PortTicket release
Nexus:
- New `sled.rs` (MulticastSledClient) encapsulating all sled-agent
multicast interactions: subscribe/unsubscribe, M2P/forwarding
propagation and teardown
- Groups RPW propagates M2P and forwarding entries to all member sleds
after DPD configuration, with convergent retry on failure
- Members RPW uses MemberReconcileCtx to thread shared reconciliation
state. This handles subscribe on join, unsubscribe on leave, and
re-subscribe on migration
- Dataplane client updated for bifurcated replication groups
Tests:
- Integration tests for M2P/forwarding/subscribe lifecycle
- Instance migration multicast re-convergence1 parent a741697 commit 98e9742
31 files changed
Lines changed: 4425 additions & 944 deletions
File tree
- illumos-utils/src/opte
- nexus
- mgs-updates/src/test_util
- src/app
- background/tasks/multicast
- multicast
- tests/integration_tests/multicast
- openapi/sled-agent
- sled-agent
- api/src
- src
- sim
- workspace-hack
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
651 | | - | |
| 651 | + | |
652 | 652 | | |
653 | 653 | | |
654 | 654 | | |
| |||
657 | 657 | | |
658 | 658 | | |
659 | 659 | | |
660 | | - | |
| 660 | + | |
661 | 661 | | |
662 | 662 | | |
663 | 663 | | |
| |||
0 commit comments