Skip to content

[multicast] Add multicast group management to the softnpu management protocol#183

Open
zeeshanlakhani wants to merge 1 commit intomainfrom
zl/multicast
Open

[multicast] Add multicast group management to the softnpu management protocol#183
zeeshanlakhani wants to merge 1 commit intomainfrom
zl/multicast

Conversation

@zeeshanlakhani
Copy link

This extends the management message protocol with operations for multicast group lifecycle: create, destroy, add port, remove port, and list. These dispatch to the corresponding p4rs Pipeline trait methods (add_mcast_group, remove_mcast_group, add_mcast_port, etc.) that were added to support bifurcated multicast replication in the p4rs codegen.

Mutating operations (create, destroy, add, remove) are fire-and-forget, matching the existing TableAdd/TableRemove pattern. MulticastGroupList is the only round-trip operation, returning a sorted group-to-ports mapping for use by dendrite's AsicMulticastOps queries.

The MulticastPortAdd struct carries rid and level1_excl_id for API parity with dendrite's AsicMulticastOps trait, though softnpu does not use them. Tofino's PRE handles per-replica identification and exclusion via these fields. softnpu handles the equivalent via McastReplicationTag in the codegenning.

…protocol

This extends the management message protocol with operations for multicast
group lifecycle: create, destroy, add port, remove port, and list. These dispatch
to the corresponding [p4rs](https://github.com/oxidecomputer/p4) Pipeline trait
methods (add_mcast_group, remove_mcast_group, add_mcast_port, etc.) that were added
to support bifurcated multicast replication in the p4rs codegen.

Mutating operations (create, destroy, add, remove) are fire-and-forget, matching the
existing TableAdd/TableRemove pattern. `MulticastGroupList` is the only round-trip
operation, returning a sorted group-to-ports mapping for use by dendrite's
`AsicMulticastOps` queries.

The `MulticastPortAdd` struct carries rid and level1_excl_id for API
parity with dendrite's AsicMulticastOps trait, though softnpu does not
use them. Tofino's PRE handles per-replica identification and
exclusion via these fields. softnpu handles the equivalent via
`McastReplicationTag` in the codegenning. 

This branch depends on the related oxidecomputer/p4#240.
@zeeshanlakhani zeeshanlakhani marked this pull request as ready for review March 18, 2026 07:25
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