oxidecomputer / oxidecomputer/omicron
Oxide API design and implementation for multicast management and tracking of subscribers
@zeeshanlakhani is already working on this.
Since May 30, 2025.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
As per RFD 488:
Our current approach for multicast in the rack is driven by membership management through the Oxide API. Ingesting membership information changes would either involve end-users explicitly directing multicast join/leave events or leverage a provided configuration flag that enables racks on an AZ-by-AZ (AZ being Availability Zone) basis to act as both an IGMP snooper and IGMP querier.
The Oxide API will be the interface through which join/leave events enter the system, identifying which multicast addresses belong to which instances. With that information at hand, the Omicron control plane programs the MRIB for OPTE and the rack switch MRIB, and tracks the larger set of information around multicast groups and subscribers. This approach obviates the need to have IGMP support in OPTE and multicast announcements in DDM.
To avoid centralizing all information through Omicron, we will plumb multicast address advertisement and underlay mechanics through to ddm and mgd accordingly, akin to the implementation work on
boundary tunnel routing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.