New Platform Onboarding
Overview
This document describes the steps involved in onboarding a new platform to FBOSS using OSS. For common problems and their solutions, please refer to the troubleshooting guide.
Preparation Steps
- Request access of FBOSS OSS New Platform Onboarding Tracker Template
- Make a copy of this template for your new platform
- Fill in project details in the Tracker copy and share the file to External Vendor/Meta Workplace Group
- Regularly update the project tracker to cover new platform development/testing progress
Steps
[Manual] Add Initial Support for Platform Services
Work Items:
- Add platform manager support
- Add BSP support
- Build FBOSS Platform Stack
- Ensure PlatformManager can start successfully
- Run HW tests for platform services
Outcomes:
-
platform_manager.jsonis committed to the FBOSS repository -
platform_manager.jsonabides by the specification - The BSP repository is setup
- The BSP repository is accessible by Meta and linked in the summary page of the onboarding tracker
- The BSP abides by the API specification and development requirements
- The BSP is compiled as out-of-tree kernel modules and deployed in FBOSS to unblock FBOSS development
-
bsp_tests.jsonis modified as needed based on guidance inbsp_tests_config.thrift - 100% of BSP tests pass
- Expected errors are defined in the test config if and only if the hardware has a valid reason and this is agreed to by Meta
- Platform services can be built successfully
- Platform manager can start successfully
- 100% of platform service hardware tests pass
Add Necessary Development Code
Work Items:
- Add Platform Mapping Config
- Add BSP Mapping Config
- Add All Platform Support Code in Agent and Qsfp Service
- Support and Run LED HW Tests
- Onboard NPU [Optional depending on new platform needs]
- Onboard New Transceiver/Phy [Optional depending on new platform needs]
- Build FBOSS Forwarding Stack
Outcomes:
- Provide vendor platform mapping csv files and submit to FBOSS OSS repo
- Generate platform mapping json files and corresponding cpp files
- Generate bsp config json files and corresonding cpp files
- Generate all necessary FBOSS Agent cpp files
- Generate all necessary FBOSS Qsfp cpp files
- 100% Pass LED HW tests
- Agent binary can be built linking to the appropriate vendor SDK
- Agent HW tests binary can be built linking to the appropriate vendor SDK
- SAI tests binary can be built linking to the appropriate vendor SDK
- QSFP Service binary can be built
Validate FBOSS Agent Changes
Work Items:
- Generate Agent HW test config
- Pass T0 Agent tests and T0 SAI tests
Outcomes:
Validate Transceiver/Phy Changes
Work Items:
- Build QSFP HW test binaries
- Build a QSFP/Link test setup with 100% port coverage
- Generate QSFP HW Tests Config
- Pass T0 QSFP tests
Outcomes:
- QSFP HW tests binary can be built
- Vendor should use Meta recommended transceivers to setup 100% port coverage test setup
- Generate QSFP config for testing
- 100% Pass T0 QSFP tests
Validate FBOSS Forwarding Stack
Work Items:
- Build FBOSS Link Test binary
- Generate Link Test config - (Currently Meta will provide a link test config)
- Pass T0 Link tests
- Build a Ping test setup
- Pass ping tests
Outcomes:
- Link Test binary can be built linking to the appropriate vendor SDK
- Work with Meta to generate the Link Test config based on the 100% port coverage test setup
- 100% Pass T0 Link tests
- Successfully use systemd to bringup FBOSS Agent and QSFP Service on two connected switches
- The two switches are able to ping each other and fboss can learn arp/ndp
Achieve 100% Test Pass Rate
Work Items:
- Stabilize remaining tests
Outcomes:
- 100% Pass Agent HW tests
- 100% Pass Agent SAI tests
- 100% Pass Agent Benchmark tests
- 100% Pass QSFP HW tests
- 100% Pass Link Tests
- 100% Pass Data Corral Service HW tests
- 100% Pass Fan Service HW tests
- 100% Pass Sensor Service HW tests
- 100% Pass Weutil HW tests
- 100% Pass Platform Manager HW tests
- 100% Pass FW Util HW tests