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