Skip to content

Add platform mapping CSVs for Wedge800BA#578

Closed
jcyu-accton wants to merge 2 commits into
facebook:mainfrom
jcyu-accton:Add-Platform-mapping-CSV-wedge800ba
Closed

Add platform mapping CSVs for Wedge800BA#578
jcyu-accton wants to merge 2 commits into
facebook:mainfrom
jcyu-accton:Add-Platform-mapping-CSV-wedge800ba

Conversation

@jcyu-accton

Copy link
Copy Markdown
Contributor

Summary:

This change introduces platform mapping CSV files for the Wedge800BA platform.

The platform mapping CSV files have not yet been tested. Updates will be made following validation with the hardware.

Following Platform Mapping Config Generation

  1. Add platform mapping CSV files into fboss/lib/platform_mapping_v2/platforms/wedge800ba/.

  2. Generate the corresponding platform mapping json file.

  3. Add platform mapping CSV files to support the following Profile ID for Front ports and Service ports.

    Front Ports(OPTICAL)
    1x 800GE,(100G PAM4) FEC: PROFILE_800G_8_PAM4_RS544X2N_OPTICAL = 39
    2x 400GE,(100G PAM4) FEC:PROFILE_400G_4_PAM4_RS544X2N_OPTICAL = 38
    2x 200GE,(50G PAM4) FEC: PROFILE_200G_4_PAM4_RS544X2N_OPTICAL = 25
    2x 100GE,(25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_OPTICAL = 23
    8x 100GE, (100G PAM4) FEC: PROFILE_100G_1_PAM4_RS544_OPTICAL = 47

    Front Ports(COPPER)
    1x 800GE, (100G PAM4) FEC: PROFILE_800G_8_PAM4_RS544X2N_COPPER = 50
    2x 400GE, (100G PAM4) FEC: PROFILE_400G_4_PAM4_RS544X2N_COPPER = 45
    2x 200GE, (50G PAM4) FEC: PROFILE_200G_4_PAM4_RS544X2N_COPPER = 24
    2x 100GE, (25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_COPPER = 22
    2x 100GE, (25G NRZ) NONE: PROFILE_100G_4_NRZ_NOFEC_COPPER = 32
    4x 200GE, (100G PAM4) FEC: PROFILE_200G_2_PAM4_RS544_COPPER=54
    4x 100GE, (50G PAM4) FEC: PROFILE_100G_2_PAM4_RS544_COPPER = 55
    4x 50GE, (25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_COPPER = 21
    4x 50GE, (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_COPPER = 19
    8x 100GE, (100G PAM4) FEC: PROFILE_100G_1_PAM4_RS544_COPPER = 56
    8x 50GE, (50G PAM4) FEC: PROFILE_50G_1_PAM4_RS544_COPPER = 43

    For Service Ports(OPTICAL)
    1x100GE,(25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_OPTICAL = 23
    2x50GE,(25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_OPTICAL = 48
    2x50GE (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_OPTICAL = 31
    2x25GE (25G NRZ) NONE: PROFILE_25G_1_NRZ_NOFEC_OPTICAL = 30
    2x10GE (10G NRZ) NONE: PROFILE_10G_1_NRZ_NOFEC_OPTICAL = 12

    For Service Ports(COPPER)
    1x100GE (25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_COPPER = 22
    2x50GE (25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_COPPER = 21
    2x50GE (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_COPPER = 19
    2x25GE (25G NRZ) FEC: PROFILE_25G_1_NRZ_RS528_COPPER = 16
    2x25GE (25G NRZ) NONE: PROFILE_25G_1_NRZ_NOFEC_COPPER = 14
    2x10GE (10G NRZ) NONE: PROFILE_10G_1_NRZ_NOFEC_COPPER = 11

@meta-cla meta-cla Bot added the CLA Signed label Oct 8, 2025
@jcyu-accton jcyu-accton closed this Oct 9, 2025
@jcyu-accton

Copy link
Copy Markdown
Contributor Author

This PR might be closed accidentally, reopen it again!

@jcyu-accton jcyu-accton reopened this Oct 17, 2025
Summary:

This change introduces platform mapping CSV files for the Wedge800BA platform.

The platform mapping CSV files have **not yet been tested**. Updates will be made following validation with the hardware.

Following [Platform Mapping Config Generation](https://facebook.github.io/fboss/docs/developing/platform_mapping)

1. Add platform mapping CSV files into fboss/lib/platform_mapping_v2/platforms/wedge800ba/.
2. Generate the corresponding platform mapping json file.
3. Add platform mapping CSV files to support the following Profile ID for Front ports and Service ports.

    Front Ports(OPTICAL)
        1x 800GE,(100G PAM4) FEC: PROFILE_800G_8_PAM4_RS544X2N_OPTICAL = 39
        2x 400GE,(100G PAM4) FEC:PROFILE_400G_4_PAM4_RS544X2N_OPTICAL = 38
        2x 200GE,(50G PAM4) FEC: PROFILE_200G_4_PAM4_RS544X2N_OPTICAL = 25
        2x 100GE,(25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_OPTICAL = 23
        8x 100GE, (100G PAM4) FEC: PROFILE_100G_1_PAM4_RS544_OPTICAL = 47

    Front Ports(COPPER)
        1x 800GE, (100G PAM4) FEC: PROFILE_800G_8_PAM4_RS544X2N_COPPER = 50
        2x 400GE, (100G PAM4) FEC: PROFILE_400G_4_PAM4_RS544X2N_COPPER = 45
        2x 200GE, (50G PAM4)  FEC: PROFILE_200G_4_PAM4_RS544X2N_COPPER = 24
        2x 100GE, (25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_COPPER = 22
        2x 100GE, (25G NRZ) NONE: PROFILE_100G_4_NRZ_NOFEC_COPPER = 32
        4x 200GE, (100G PAM4) FEC: PROFILE_200G_2_PAM4_RS544_COPPER=54
        4x 100GE, (50G PAM4) FEC: PROFILE_100G_2_PAM4_RS544_COPPER = 55
        4x 50GE, (25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_COPPER = 21
        4x 50GE, (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_COPPER = 19
        8x 100GE, (100G PAM4) FEC: PROFILE_100G_1_PAM4_RS544_COPPER = 56
        8x 50GE, (50G PAM4) FEC: PROFILE_50G_1_PAM4_RS544_COPPER = 43

    For Service Ports(OPTICAL)
        1x100GE,(25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_OPTICAL = 23
        2x50GE,(25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_OPTICAL = 48
        2x50GE (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_OPTICAL = 31
        2x25GE (25G NRZ) NONE: PROFILE_25G_1_NRZ_NOFEC_OPTICAL = 30
        2x10GE (10G NRZ) NONE: PROFILE_10G_1_NRZ_NOFEC_OPTICAL = 12

    For Service Ports(COPPER)
        1x100GE (25G NRZ) FEC: PROFILE_100G_4_NRZ_RS528_COPPER = 22
        2x50GE (25G NRZ) FEC: PROFILE_50G_2_NRZ_RS528_COPPER = 21
        2x50GE (25G NRZ) NONE: PROFILE_50G_2_NRZ_NOFEC_COPPER = 19
        2x25GE (25G NRZ) FEC: PROFILE_25G_1_NRZ_RS528_COPPER = 16
        2x25GE (25G NRZ) NONE: PROFILE_25G_1_NRZ_NOFEC_COPPER = 14
        2x10GE (10G NRZ) NONE: PROFILE_10G_1_NRZ_NOFEC_COPPER = 11
@jcyu-accton jcyu-accton force-pushed the Add-Platform-mapping-CSV-wedge800ba branch from 87fa8d6 to 1ea7480 Compare October 17, 2025 03:53
@meta-codesync

meta-codesync Bot commented Oct 17, 2025

Copy link
Copy Markdown
Contributor

@Protick666 has imported this pull request. If you are a Meta employee, you can view this in D84951226.

@meta-codesync

meta-codesync Bot commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

@Protick666 merged this pull request in 549b078.

meta-codesync Bot pushed a commit that referenced this pull request Feb 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`

When building only a specific cmake target to save time, getdeps removes
the "built marker” under `$builddir/installed/fboss/.built-by-getdeps`,
which makes it impossible to subsequently run the unit tests as  without
this file getdeps bails out with `project fboss has not been built`.
What’s more, because of a missing `return` the exit code was 0, which
was confusing.
This fix ensures that the return code is propagated properly and also
improves the cmake test runner to automatically detect missing
executables and build them on the fly. This will not rebuild the test
binaries if they've already been built and are merely stale (because the
source code has changed) but that was already the prior behavior. At
least now it's possible to rebuild a single cmake test target and re-run
the tests in one shot.

Pull Request resolved: #722

Test Plan:
- Manually removed one unit test target, running `getdeps.py test` now can detect the missing test executables, and then rebuild such executables before running the tests
```
[root@5f196107a3a6 fboss]# ls -al /var/FBOSS/tmp_bld_dir/build/fboss/fboss2_cmd_test
-rwxr-xr-x 1 root root 116548584 Feb 17 20:48 /var/FBOSS/tmp_bld_dir/build/fboss/fboss2_cmd_test

[root@5f196107a3a6 fboss]# rm -rf /var/FBOSS/tmp_bld_dir/build/fboss/fboss2_cmd_test

[root@5f196107a3a6 fboss]# ./build/fbcode_builder/getdeps.py test --allow-system-packages --extra-cmake-defines='{"CMAKE_BUILD_TYPE": "MinSizeRel", "CMAKE_CXX_STANDARD": "20"}' --scratch-path /var/FBOSS/tmp_bld_dir --num-jobs 16 --src-dir . fboss
Testing ENV[BOOST_ROOT_1_69_0]: None
Building missing test executables: fboss2_cmd_test
...
+ cd /var/FBOSS/tmp_bld_dir/build/fboss && \
+ /usr/bin/cmake \
+      --build \
+      /var/FBOSS/tmp_bld_dir/build/fboss \
+      --target \
+      fboss2_cmd_test \
+      --config \
+      RelWithDebInfo \
+      -j \
+      16
[1/1] Linking CXX executable fboss2_cmd_test
 ---
...
103/689 Test #110: CmdShowAggregatePortTestFixture.queryClient ......................................................................................................   Passed    0.10 sec
        Start 141: CmdShowRouteDetailsTestFixture.queryClient
104/689 Test #113: CmdShowExampleTestFixture.queryClient ............................................................................................................   Passed    0.09 sec
        Start  94: CmdShowArpTestFixture.queryClient
105/689 Test #126: CmdShowInterfaceErrorsTestFixture.queryClient ....................................................................................................   Passed    0.10 sec
        Start  87: CmdSetPortStateTestFixture.enableOnePort
106/689 Test #129: CmdShowMirrorTestFixture.queryClientWithoutTunnel ................................................................................................   Passed    0.10 sec
        Start 123: CmdShowInterfaceCountersTestFixture.queryClient
...
100% tests passed, 0 tests failed out of 689

Total Test time (real) =  20.93 sec
```

- Confirmed the test executable was actually build, noticed timestamp of such binary is different than before
```
[root@5f196107a3a6 fboss]# ls -al /var/FBOSS/tmp_bld_dir/build/fboss/fboss2_cmd_test
-rwxr-xr-x 1 root root 116548584 Feb 17 22:26 /var/FBOSS/tmp_bld_dir/build/fboss/fboss2_cmd_test
```

- Now run the test command again when all the test binaries exist without any issue
```
[root@5f196107a3a6 fboss]# ./build/fbcode_builder/getdeps.py test --allow-system-packages --extra-cmake-defines='{"CMAKE_BUILD_TYPE": "MinSizeRel", "CMAKE_CXX_STANDARD": "20"}' --scratch-path /var/FBOSS/tmp_bld_dir --num-jobs 16 --src-dir . fboss
Testing ENV[BOOST_ROOT_1_69_0]: None
 ---
...
686/689 Test #578: ThriftStructNodeTestSuite.ThriftStructNodeRemovePathOnThriftMapTest<TestParams<true>> ............................................................   Passed    0.01 sec
687/689 Test #579: ThriftStructNodeTestSuite.ThriftStructNodeRemovePathOnThriftListTest<TestParams<true>> ...........................................................   Passed    0.01 sec
688/689 Test #580: ThriftStructNodeTestSuite.ThriftStructNodeRemovePathOnThriftSetTest<TestParams<true>> ............................................................   Passed    0.01 sec
689/689 Test #550: ThriftStructNodeTests.ThriftStructNodeSetAlreadyPublished ........................................................................................   Passed    0.18 sec

100% tests passed, 0 tests failed out of 689

Total Test time (real) =  21.00 sec
```

Reviewed By: bigfootjon

Differential Revision: D93524014

Pulled By: joseph5wu

fbshipit-source-id: d58055430e181f4efa6901985b7b2e7de4626a11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

2 participants