FBOSS Distro Provisioning
Provisioning Requirements
To provision FBOSS Distro, you require one of the following boot options:
- USB Boot
- PXE Boot
- ONIE Boot
How FBOSS Distro Works
FBOSS Distro is a single ISO-based image which contains services that automatically start based on hardware requirements detected during early provisioning. The following services are brought up in a specific sequence required for the NOS.
Platform Stack
| Service | Description |
|---|---|
| Platform Manager Service | Sets up base-level services and installs a BSP kernel module to configure all hardware on the box |
| Fan Service | Controls fan speed |
| Sensor Service | Controls sensor data and temperatures |
| Data Corral Service | Controls legacy sensor metadata |
CLIs Distributed:
weutilfwutilsensor_service_data
FBOSS Forwarding Stack
| Service | Description |
|---|---|
| FSDB Service | Pub/Sub system that communicates with all services required for critical components |
| FBOSS Agent | Core service that programs the ASIC and communicates with other network configuration tools |
| FBOSS HW Agent | Controls an individual ASIC and its internal state. Multiple instances may run depending on the hardware |
| FBOSS SW Agent | Primary web endpoint that communicates with all HW agents for route programming |
| FBOSS QSFP Service | Primarily responsible for programming optics/transceivers from FBOSS SW Agent requests |
| FBOSS BGP | BGP routing daemon that communicates with FBOSS SW Agent (Available Q3 2026) |
CLIs Distributed:
fboss_bcm_shellbcm_shell
Provisioning Options
General Requirements
- BMC IP Address: Must be SLAAC assigned in your environment on the management network
- ETH0 IP Address: Will also use SLAAC assignment during provisioning
USB Boot
A USB-based ISO is available on the FBOSS GitHub page for easy reproducibility. Use any USB drive imaging tool with the ISO and the system will boot automatically.
PXE Boot
Requirements
- PXE requests must not have any race conditions for the ETH0 IP allocation with other DHCP servers on the network
Option 1: Configure Your Own DHCP Server
Configure your own DHCP server in your lab to serve the ISO for a targeted set of MAC addresses.
- Refer to your respective DHCP server documentation (e.g., Kea, DHCPD)
- Your lab environment must contain a DHCP server where you can point the Distro ISO
Option 2: Configure a Local Provisioning DHCP Server
Configure a local provisioning DHCP server only targeting PXE requests for a target set of MAC addresses.
- Only use this option if you foresee challenges with DHCP server isolation in your environment
- Refer to respective DHCP server documentation
- Requires a dedicated server on the L2 management network
Option 3: Use Distro Provisioning Container and Distro CLI
The FBOSS team provides the Distro Container which uses dnsmasq as a PXE environment to serve PXE requests.
- Similar to Option 2, this requires a dedicated provisioning server
- Use the Distro CLI to deploy the image to the environment
ONIE Boot
ONIE-based ISOs will be available. Refer to the ONIE documentation for details.
ONIE boot support is currently in development.
Supporting New NPIs and Custom Binary Deployments
For deploying custom binaries or controllers alongside FBOSS Distro, you have two options:
Option 1: Run Custom Binaries in Docker Container
Run your custom controller or binary in a Docker container within the FBOSS OSS Distro. This is the recommended approach for most use cases as it provides isolation and easier deployment management.
Option 2: Build and Deploy Custom Binaries Directly
- Use the FBOSS OSS build environment as described in Building FBOSS on Docker Containers
- Rebuild your custom binary using the build environment
- Copy the binaries to the switch running FBOSS OSS Distro
- Run the binary directly on the switch