Skip to content

[multicast] DDM multicast exchange: V4 protocol, MRIB sync, M2P hooks#696

Open
zeeshanlakhani wants to merge 1 commit intozl/mribfrom
zl/ddm-mcast
Open

[multicast] DDM multicast exchange: V4 protocol, MRIB sync, M2P hooks#696
zeeshanlakhani wants to merge 1 commit intozl/mribfrom
zl/ddm-mcast

Conversation

@zeeshanlakhani
Copy link
Copy Markdown

@zeeshanlakhani zeeshanlakhani commented Apr 2, 2026

Adds multicast group subscription distribution to the DDM exchange protocol with a V4 version bump (frozen V3 types for wire compat).

Key changes:

  • V4 exchange protocol with multicast support (V3 peers are unaffected)
  • UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types)
  • MRIB->DDM sync in mg-lower/mrib.rs
  • OPTE M2P hooks for learned multicast routes (requires OPTE #924)
  • Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work)
  • Collapsed send_update dispatch
  • Shared pull handler helpers (collect_underlay_tunnel, collect_multicast)
  • MulticastPathHop constructor
  • Some serde round-trip and validation tests, including for version handling

References

Stacked on zl/mrib (MRIB: Multicast RIB implementation #675) and depends on oxidecomputer/opte#924.

@zeeshanlakhani zeeshanlakhani force-pushed the zl/ddm-mcast branch 3 times, most recently from 339f250 to 1b5996d Compare April 2, 2026 11:49
@zeeshanlakhani zeeshanlakhani changed the title ddm-mcast [multicast] DDM multicast exchange: V4 protocol, MRIB sync, M2P hooks Apr 2, 2026
Adds multicast group subscription distribution to the DDM exchange
protocol with a V4 version bump (frozen V3 types for wire compat).

Key changes:
- V4 exchange protocol with multicast support (V3 peers are unaffected)
- UnderlayMulticastIpv6 validated newtype moved to mg-common (ff04::/64) (moved from rdb types)
- MRIB->DDM sync in mg-lower/mrib.rs
- OPTE M2P hooks for learned multicast routes (requires OPTE #924)
- Atomic update_imported_mcast on Db (single lock for import/delete/diff, which is a bit different from the tunnel work)
- Collapsed send_update dispatch
- Shared pull handler helpers (collect_underlay_tunnel, collect_multicast)
- MulticastPathHop constructor
- Some serde round-trip and validation tests, including for version handling

Stacked on zl/mrib (MRIB: Multicast RIB implementation [#675](#675)).
@zeeshanlakhani zeeshanlakhani marked this pull request as ready for review April 2, 2026 15:43
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.

1 participant