Skip to content

Point p4rs at zl/multicast for bitmap-based replication#183

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

Point p4rs at zl/multicast for bitmap-based replication#183
zeeshanlakhani wants to merge 1 commit intomainfrom
zl/multicast

Conversation

@zeeshanlakhani
Copy link
Copy Markdown

@zeeshanlakhani zeeshanlakhani commented Mar 18, 2026

@zeeshanlakhani zeeshanlakhani marked this pull request as ready for review March 18, 2026 07:25
@zeeshanlakhani zeeshanlakhani force-pushed the zl/multicast branch 5 times, most recently from ac8e91a to f35f256 Compare March 25, 2026 15:07
@zeeshanlakhani zeeshanlakhani changed the title [multicast] Add multicast group management to the softnpu management protocol Point p4rs at zl/multicast for bitmap-based replication Mar 25, 2026
zeeshanlakhani added a commit to oxidecomputer/dendrite that referenced this pull request Mar 30, 2026
This wires up the softnpu ASIC backend to support multicast end-to-end by
translating DPD's sidecar.p4 table operations into sidecar-lite.p4's
simplified P4 pipeline.

## AsicMulticastOps

We replace the stubbed AsicMulticastOps implementation (which returned
"OperationUnsupported" for group creation and port addition with in-memory group
tracking via McGroupData, following the tofino_stub pattern.

Group membership is used by the table translation layer to build port
bitmaps for sidecar-lite's Replicate extern. Ports >= 128 are
rejected at add time to match sidecar-lite's 128-bit bitmap width.

## Table translation (asic/src/softnpu/table.rs)

We map sidecar.p4 table names to sidecar-lite equivalents and translate
action parameters where the designs differ for emulation.

All multicast action arms are gated with #[cfg(feature = "multicast")].

## References

- [softnpu #183](oxidecomputer/softnpu#183)
- [propolis #1093](oxidecomputer/propolis#1093)
- [p4rs #240](oxidecomputer/p4#240)
- [sidecar-lite #152](oxidecomputer/sidecar-lite#152)
- tokio: 1.50 (due to softnpu)
- oxide-tokio-rt: 0.1.3 (following-up from tokio's move to 1.50)
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