Skip to content

Conversation

@zeeshanlakhani
Copy link

@zeeshanlakhani zeeshanlakhani commented Dec 8, 2025

Implements the Multicast Routing Information Base (MRIB) for multicast support. The MRIB follows a two-table architecture (mrib_inmrib_loc) with RPF verification against the unicast RIB when sources are provided.

This PR includes:

  • rdb/src/db.rs: modifications to accomodate MRIB implementation and persistence
  • rdb/src/mrib/mod.rs: the core MRIB implementation with route storage and change notifications
  • rdb/src/mrib/rpf.rs: RPF verification using poptrie for O(1) LPM lookups, with rate-limited rebuilds triggered on unicast RIB changes
  • rdb/src/types.rs: Validated multicast address types with input validation
  • mg-api/src/lib.rs: API v4 (VERSION_MULTICAST_SUPPORT) with new endpoints
  • mgd/src/mrib_admin.rs: HTTP handlers bridging API to MRIB
  • mgadm/src/mrib.rs: CLI for MRIB inspection and configuration

Note that Omicron is source of truth multicast overlay/underlay groups/addresses.

@zeeshanlakhani zeeshanlakhani marked this pull request as draft December 8, 2025 08:58
@zeeshanlakhani zeeshanlakhani force-pushed the zl/mrib branch 3 times, most recently from 71919aa to 512b04d Compare December 8, 2025 11:52
Implements the Multicast Routing Information Base for multicast
support. The MRIB follows a two-table architecture (mrib_in → mrib_loc)
with RPF verification against the unicast RIB when sources are provided.

This PR includes:
  - `rdb/src/db.rs`: modifications to accomodate MRIB implementation and
    persistence
  - `rdb/src/mrib/mod.rs`: the core MRIB implementation with route storage and
    change notifications
  - `rdb/src/mrib/rpf.rs`: RPF verification using poptrie for O(1) LPM lookups,
    with rate-limited rebuilds triggered on unicast RIB changes
  - `rdb/src/types.rs`: Validated multicast address types with input validation
  - `mg-api/src/lib.rs`: API v3 (VERSION_MULTICAST_SUPPORT) with new endpoints
  - `mgd/src/mrib_admin.rs`: HTTP handlers bridging API to MRIB
  - `mgadm/src/mrib.rs`: CLI for MRIB inspection and configuration

Note that Omicron is source of truth multicast overlay/underlay
groups/addresses.
@taspelund
Copy link
Contributor

Things are looking good overall. So far, I've been able to review everything except for rdb/src/db.rs and rdb/src/mrib/rpf.rs. I'll plan to pick up where I left off either tomorrow or Wednesday.

MRIB: API naming consistency and doc and validation fixes

Address PR #576 review feedback: rename MRIB functions to match
unicast patterns (get_mrib_*, read/update_mrib_*), fix stale doc
comments, make API more flexible, and minor cleanups.
@zeeshanlakhani zeeshanlakhani marked this pull request as ready for review December 17, 2025 05:52
@zeeshanlakhani zeeshanlakhani self-assigned this Jan 12, 2026
@zeeshanlakhani
Copy link
Author

Note: test-interop is expected to fail currently until @taspelund's upcoming work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants