Skip to content

[Nexthop][feature] "asic_config_v3" - Add DNX support to the asic config content validator - #1736

Closed
marif-nexthop wants to merge 1 commit into
meta:mainfrom
nexthop-ai:marif.fboss-asic-config-v3-validator-dnx
Closed

marif-nexthop wants to merge 1 commit into
meta:mainfrom
nexthop-ai:marif.fboss-asic-config-v3-validator-dnx

Conversation

@marif-nexthop

@marif-nexthop marif-nexthop commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Pre-submission checklist

  • 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
  • pre-commit run

Summary

Implements asic_config_v3 design.

In this PR, the content validator verifies DNX (JSON) output the same way as XGS (YAML).

  • A variant is compared against the synced ASIC config found by the existing lookup on main, so JSON output is still compared against <platform>.materialized_JSON as added with [Nexthop][NPI] "asic_config_v3" - Broadcom DNX generator, vendor data and meru800bia platform #1583.
  • An HW_TEST variant is compared against the ASIC config embedded in fboss/oss/hw_test_configs/<platform>.agent.materialized_JSON: the yamlConfig string for XGS, the config mapping for DNX.
  • JSON is compared as parsed documents, so key order does not matter (SEMANTIC_MATCH).
  • A missing synced reference fails the run unless the exact platform and variant are listed in VARIANTS_WITHOUT_SYNCED_REFERENCE, which is currently empty. A missing HW_TEST reference always fails.

Also added the symlink synced_asic_configs/meru800bia_default.json -> meru800bia.materialized_JSON so that the meru800bia default variant resolves to its synced reference.

Test Plan

Ran the content validator against the checked-in generated files:

% python3 -m fboss.lib.asic_config_v3.test.validate_asic_configs_contents --fboss-root fboss --compare-checked-in
...
Platform        Variant       Reference                                                              Result
--------------  ------------  ---------------------------------------------------------------------  --------------
icecube800banw  default       lib/asic_config_v2/synced_asic_configs/icecube800banw.yml              BYTE_MATCH
icecube800bc    default       lib/asic_config_v2/synced_asic_configs/icecube800bc.yml                BYTE_MATCH
icetea800bc     default       lib/asic_config_v2/synced_asic_configs/icetea800bc.yml                 BYTE_MATCH
ladakh800bcls   rack          lib/asic_config_v2/synced_asic_configs/ladakh800bcls_rack.yml          BYTE_MATCH
ladakh800bcls   test_fixture  lib/asic_config_v2/synced_asic_configs/ladakh800bcls_test_fixture.yml  BYTE_MATCH
meru800bia      default       lib/asic_config_v2/synced_asic_configs/meru800bia.materialized_JSON    BYTE_MATCH
montblanc       default       lib/asic_config_v2/synced_asic_configs/montblanc.yml                   BYTE_MATCH
montblanc       hw_test       oss/hw_test_configs/montblanc.agent.materialized_JSON                  BYTE_MATCH
tahan800bc      chassis       lib/asic_config_v2/synced_asic_configs/tahan800bc_chassis.yml          BYTE_MATCH
tahan800bc      test_fixture  lib/asic_config_v2/synced_asic_configs/tahan800bc_test_fixture.yml     BYTE_MATCH
tahansb800bc    default       lib/asic_config_v2/synced_asic_configs/tahansb800bc.yml                SEMANTIC_MATCH
tahansb800bc    test_fixture  lib/asic_config_v2/synced_asic_configs/tahansb800bc_test_fixture.yml   SEMANTIC_MATCH
wedge800bact    default       lib/asic_config_v2/synced_asic_configs/wedge800bact.yml                SEMANTIC_MATCH
wedge800bact    hw_test       oss/hw_test_configs/wedge800bact.agent.materialized_JSON               SEMANTIC_MATCH

Summary:
  Platforms: 9
  Variants: 14
  BYTE_MATCH: 10
  SEMANTIC_MATCH: 4
  CONTENT_MISMATCH: 0
  REFERENCE_MISSING: 0
...
Ran 7 tests in 0.858s

OK

All variants match, and the new unit tests for YAML and JSON result classification, materialized reference extraction, and the missing reference policy pass. Regenerating meru800bia instead of reading the checked-in file also gives BYTE_MATCH.

Ran the schema validator. All 15 vendor, ASIC and platform configs pass, including jericho3.json and meru800bia:

% python3 -m fboss.lib.asic_config_v3.test.validate_asic_configs_schemas --fboss-root "$PWD/fboss"
...
15 passed, 0 failed

@meta-cla meta-cla Bot added the CLA Signed label Oct 8, 2026
@marif-nexthop
marif-nexthop marked this pull request as ready for review October 8, 2026 20:01
@marif-nexthop
marif-nexthop requested review from a team as code owners October 8, 2026 20:01
@marif-nexthop
marif-nexthop force-pushed the marif.fboss-asic-config-v3-validator-dnx branch from 679a334 to 67576e7 Compare October 8, 2026 22:01
@marif-nexthop marif-nexthop changed the title [Nexthop][NPI] "asic_config_v3" - Add DNX support to the asic config content validator [Nexthop][feature] "asic_config_v3" - Add DNX support to the asic config content validator Oct 15, 2026
@github-actions github-actions Bot added nexthop project:feature FBOSS project: feature labels Oct 15, 2026
@marif-nexthop
marif-nexthop force-pushed the marif.fboss-asic-config-v3-validator-dnx branch from 67576e7 to 2eb9931 Compare October 15, 2026 07:41
@marif-nexthop

Copy link
Copy Markdown
Contributor Author

Talked to @joseph5wu offline and decided to close this PR in favour of the DNX validation added by him earlier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant