oxidecomputer / oxidecomputer/omicron

Oxide API design and implementation for multicast management and tracking of subscribers

Open
#8,241 0 comments 0 reactions 1 assignee View on GitHub

@zeeshanlakhani is already working on this.

Since May 30, 2025.

multicast
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.