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.