[Nexthop] fix "asic_config_v2" output generation#1149
Closed
marif-nexthop wants to merge 5 commits into
Closed
Conversation
9ff7d36 to
ebb1a4b
Compare
This was referenced May 14, 2026
ebb1a4b to
b3fca39
Compare
add_fb_thrift_python_executable (and any add_fb_python_executable call with TYPE dir) produces a directory whose cmake target name is suffixed with .GEN_PY_EXE. Strip that suffix when computing the on-disk output path, and invoke directory outputs via python3 so __main__.py runs. Non-python targets (e.g. fboss-bspmapping-gen) continue to exec directly.
cmake/AsicConfigV2ConfigCli.cmake uses add_fb_thrift_python_executable, which registers the cmake target with a .GEN_PY_EXE suffix. Pass the suffixed name so build can find it; run-helper.py strips the suffix when locating the on-disk output.
Callers can now pass a JSON object of additional cmake defines which is
merged over the hardcoded {CMAKE_BUILD_TYPE, CMAKE_CXX_STANDARD} defaults.
Caller keys win on conflict. Existing callers that do not pass the flag
are unaffected.
range-v3's test suite fails to compile under clang's -Werror,-Wnrvo. Disable it at the cmake level via --extra-cmake-defines.
b3fca39 to
fa615d9
Compare
This was referenced May 28, 2026
Contributor
|
@joseph5wu has imported this pull request. If you are a Meta employee, you can view this in D108352862. |
Contributor
|
@joseph5wu merged this pull request in 19dc109. |
meta-codesync Bot
pushed a commit
that referenced
this pull request
Jun 17, 2026
Summary: **Pre-submission checklist** - [x] I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running `pip install -r requirements-dev.txt && pre-commit install` - [x] `pre-commit run` Implements `asic_config_v3` design. Add `fboss/lib/asic_config_v3/` Python package skeleton along with a fully defined CMake build target. This creates the basic infra of the data-driven ASIC config generator (`asic_config_v3`) that will replace the code-driven `asic_config_v2` path. The `gen.py` entry point is included with an empty `_GENERATOR_REGISTRY` so the `fboss-asic-config-v3-gen` target is buildable immediately; registry entries for concrete ASIC families will be added in follow-up commits. Pull Request resolved: #1198 Test Plan: Ran `fboss/lib/asic_config_v3/run-helper.sh`. Note: `fboss/lib/asic_config_v3/run-helper.sh` will not generate any output until "asic_config_v3" part 4 PR. ---- **This PR is created on top of** - #1131 - #1149 **so it contains diff from it. When that PR will merge, this PR will have a shorter diff.** Reviewed By: Scott8440 Differential Revision: D108936778 Pulled By: joseph5wu fbshipit-source-id: d51ab3e7eba2d90b992914abfbee1e0614e0805b
meta-codesync Bot
pushed a commit
that referenced
this pull request
Jun 19, 2026
Summary: **Pre-submission checklist** - [x] I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running `pip install -r requirements-dev.txt && pre-commit install` - [x] `pre-commit run` Implements `asic_config_v3` design. Add strict JSON schemas for the Broadcom `XGS` ASIC config, the platform config, and the shared vendor common JSONs. Include a validation script that scans the `asic_config_v3` directory tree and validates every matching file against its schema. Pull Request resolved: #1199 Test Plan: Install required package `python3 -m pip install jsonschema` Run schema validation ``` python3 fboss/lib/asic_config_v3/validation/validate_asic_configs.py Vendor common configs (vendor_common.schema.json): No files found. Broadcom XGS ASIC configs (broadcom_xgs_asic_config.schema.json): No files found. Platform configs (platform_config.schema.json): No files found. 0 passed, 0 failed ``` _Note: There are no json files to validate at this point. Will be added in the next PR._ ---- **This PR is created on top of** - #1131 - #1149 - #1198 **so it contains diff from these PRs. When these PRs will merge, this PR will have a shorter diff.** Reviewed By: srikrishnagopu Differential Revision: D109061608 Pulled By: joseph5wu fbshipit-source-id: 52ca32802e0db6b7dd3ac5c97a53ee262a4f15fe
meta-codesync Bot
pushed a commit
that referenced
this pull request
Jun 24, 2026
Summary: **Pre-submission checklist** - [x] I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running `pip install -r requirements-dev.txt && pre-commit install` - [x] `pre-commit run` Implements `asic_config_v3` design. In this PR, introduce the `asic_config_v3` Broadcom XGS generator class along with the shared XGS SDK and SAI common JSONs, and per-ASIC JSONs for Tomahawk 5 and Tomahawk 6. Registered both ASICs in gen.py's `_GENERATOR_REGISTRY` and extend the CMake target SOURCES with the new generator file. After this commit the `asic_config_v3` package can generate XGS configs for any platform whose `asic_config.json` references `tomahawk5` or `tomahawk6`. No platforms are registered yet but will be added in the following PRs. Pull Request resolved: #1220 Test Plan: Running `fboss/lib/asic_config_v3/run-helper.sh` is no-op as there are no platforms added yet. The platforms will be added in the following PRs. Schema validation passes for all files. ``` $ python3 ./fboss/lib/asic_config_v3/validation/validate_asic_configs.py Vendor common configs (vendor_common.schema.json): vendors/broadcom/xgs/sai_common.json: PASSED vendors/broadcom/xgs/sdk_common.json: PASSED Broadcom XGS ASIC configs (broadcom_xgs_asic_config.schema.json): vendors/broadcom/xgs/asics/tomahawk5.json: PASSED vendors/broadcom/xgs/asics/tomahawk6.json: PASSED Platform configs (platform_config.schema.json): No files found. 4 passed, 0 failed ``` ---- **This PR is created on top of** - #1131 - #1149 - #1198 - #1199 **so it contains diff from these PRs. When these PRs will merge, this PR will have a shorter diff.** Reviewed By: daiwei1983 Differential Revision: D109338944 Pulled By: joseph5wu fbshipit-source-id: 454fd40e05ba8504a5929ceee1efdd328e8c2b68
meta-codesync Bot
pushed a commit
that referenced
this pull request
Jun 25, 2026
Summary: **Pre-submission checklist** - [x] I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running `pip install -r requirements-dev.txt && pre-commit install` - [x] `pre-commit run` Implements `asic_config_v3` design. In this PR, add platform configurations for the four core XGS platforms which were originally generated by `asic_config_v2`: - montblanc - icecube800bc - icecube800banw - wedge800bact After this commit the `asic_config_v3` generator produces four XGS output files which should be identical to the `asic_config_v2` output. **Note: After review comments, changed variant name `base` to `default`.** v2: montblanc_base.yml v3: montblanc_defaultyml v2: wedge800bact_base.yml v3: wedge800bact_default.yml Pull Request resolved: #1221 Test Plan: Ran `fboss/lib/asic_config_v3/run-helper.sh` to generate `asic_config_v3` output: ``` Completed build for fboss-asic-config-v3-gen.GEN_PY_EXE ... Writing to /var/FBOSS/fboss/fboss/lib/asic_config_v3/generated_asic_configs/icecube800banw_default.yml ... Writing to /var/FBOSS/fboss/fboss/lib/asic_config_v3/generated_asic_configs/wedge800bact_default.yml ... Writing to /var/FBOSS/fboss/fboss/lib/asic_config_v3/generated_asic_configs/montblanc_default.yml ... Writing to /var/FBOSS/fboss/fboss/lib/asic_config_v3/generated_asic_configs/icecube800bc_default.yml Configs have been written to specified output directory $ ls -1 fboss/lib/asic_config_v3/generated_asic_configs icecube800banw_default.yml icecube800bc_default.yml montblanc_default.yml wedge800bact_default.yml ``` The generated output files are byte-identical with `asic_config_v2` output ``` $ diff -r fboss/lib/asic_config_v3/generated_asic_configs/ fboss/lib/asic_config_v2/generated_asic_configs/ <no diff> ``` Schema validation also passed for all files ``` $ python3 ./fboss/lib/asic_config_v3/validation/validate_asic_configs.py Vendor common configs (vendor_common.schema.json): vendors/broadcom/xgs/sai_common.json: PASSED vendors/broadcom/xgs/sdk_common.json: PASSED Broadcom XGS ASIC configs (broadcom_xgs_asic_config.schema.json): vendors/broadcom/xgs/asics/tomahawk5.json: PASSED vendors/broadcom/xgs/asics/tomahawk6.json: PASSED Platform configs (platform_config.schema.json): platforms/icecube800banw/asic_config.json: PASSED platforms/icecube800bc/asic_config.json: PASSED platforms/montblanc/asic_config.json: PASSED platforms/wedge800bact/asic_config.json: PASSED 8 passed, 0 failed ``` **This PR is created on top of** - #1131 - #1149 - #1198 - #1199 - #1220 **so it contains diff from these PRs. When these PRs will merge, this PR will have a shorter diff.** Reviewed By: daiwei1983 Differential Revision: D109735092 Pulled By: joseph5wu fbshipit-source-id: 936409ca309759f8feab3c29046ca0d8ad645189
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.
Pre-submission checklist
pip install -r requirements-dev.txt && pre-commit installpre-commit runSummary
The
asic_config_v2can generate output files infboss/lib/asic_config_v2/generated_asic_configsby runningfboss/lib/asic_config_v2/run-helper.shbut this is broken in OSS FBOSS currently because of some recent changes related to thrift etc.In this PR,
asic_config_v2output generation is fixed. The following are the main changes:fboss/lib/oss/run-helper.py--extra-cmake-definesand merge with the existing hardcoded valuesfboss/lib/asic_config_v2/run-helper.shto--extra-cmake-definesto disablerange-v3testsNote: Please check individual commits for reviewing each small change separately.
Test Plan
Generated
asic_config_v2output files infboss/lib/asic_config_v2/generated_asic_configsby runningfboss/lib/asic_config_v2/run-helper.sh.