Feature/tofino backend#5
Merged
Merged
Conversation
added 3 commits
April 14, 2026 12:39
Introduces openoptics/backends/tofino/ with SSH/SCP-based deployment, BFRt control plane, P4 sources for emulated OCS and openoptics-tor, and config-driven multi-ToR setup. Moves existing Mininet-specific P4 and BMv2 targets under openoptics/backends/mininet/ and prefixes the corresponding examples with mininet_. Refactors control-plane plumbing so backends consume structured TableEntry objects instead of BMv2 CLI strings, adds a supports_device_manager flag to gate Thrift setup, and extends routing/topology with HoHo optimal-substructure, VLB random sentinel, and guardband-aware schedules. Expands unit tests for the new routing and TableEntry plumbing.
The openoptics-tor and emulated-ocs READMEs had drifted: hardcoded OCS port tables, a non-existent init_tables() wrapper, and missing source routing support. Sync the docs with the config-driven deployment flow and the new ETHERTYPE_OPTICS_SR / time_flow_table_source path.
- Update example .rst includes to the mininet_ prefixed paths - Add physical wiring ASCII diagrams for config_4tor and config_4tor_2link - Add dashboard-for-telemetry item to the hardware status table as TODO - Exclude tofino-backend-internals.md from the Sphinx build - Enable myst_heading_anchors so intra-page links resolve - Drop directory-only relative links that myst cannot resolve
ymlei
added a commit
that referenced
this pull request
Apr 15, 2026
* Add Tofino2 hardware backend and refactor Mininet into backends/mininet/ Introduces openoptics/backends/tofino/ with SSH/SCP-based deployment, BFRt control plane, P4 sources for emulated OCS and openoptics-tor, and config-driven multi-ToR setup. Moves existing Mininet-specific P4 and BMv2 targets under openoptics/backends/mininet/ and prefixes the corresponding examples with mininet_. Refactors control-plane plumbing so backends consume structured TableEntry objects instead of BMv2 CLI strings, adds a supports_device_manager flag to gate Thrift setup, and extends routing/topology with HoHo optimal-substructure, VLB random sentinel, and guardband-aware schedules. Expands unit tests for the new routing and TableEntry plumbing. * Update Tofino backend READMEs to match current code The openoptics-tor and emulated-ocs READMEs had drifted: hardcoded OCS port tables, a non-existent init_tables() wrapper, and missing source routing support. Sync the docs with the config-driven deployment flow and the new ETHERTYPE_OPTICS_SR / time_flow_table_source path. * Update docs for Tofino backend and fix Sphinx build warnings - Update example .rst includes to the mininet_ prefixed paths - Add physical wiring ASCII diagrams for config_4tor and config_4tor_2link - Add dashboard-for-telemetry item to the hardware status table as TODO - Exclude tofino-backend-internals.md from the Sphinx build - Enable myst_heading_anchors so intra-page links resolve - Drop directory-only relative links that myst cannot resolve ---------
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Tofino2 hardware backend and refactor Mininet into backends/mininet/
New Tofino backend (openoptics/backends/tofino/):
parallel multi-ToR rollout
openoptics-tor data plane
with apply_secrets.py overlay for testbed-specific values
Mininet refactor:
Control-plane plumbing:
CLI strings
Tofino can skip it cleanly
Routing and topology:
from_schedule() and add_guardband() helpers
Testing:
TableEntry plumbing