Skip to content

[Nexthop] Distro bootstrap agent config generator#1074

Open
travisb-nexthop wants to merge 1 commit intofacebook:mainfrom
nexthop-ai:distro_bootstrap_config
Open

[Nexthop] Distro bootstrap agent config generator#1074
travisb-nexthop wants to merge 1 commit intofacebook:mainfrom
nexthop-ai:distro_bootstrap_config

Conversation

@travisb-nexthop
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

Add a generator which produces a basic bootstrap configuration for the given platform based upon the platform mapping data files.

This configuration is intended to support a freshly installed system booting into a configuration where all interfaces are available to be configured by the CLI. In particular, every interface is initially configured as an L3 interface and run at full speed.

Also add example outputs for minipack3 and wedge800bact.

Test Plan

The two attached bootstrap configurations were generated like generate_agent_config.py --platform minipack3 --output agent.conf and after manually verifying the config on an actual Minipack3, copied into place in the source tree.

On one such dut we can see the interfaces defined and linked up where appropriate:

[root@dut ~]# fboss2-dev show interface                                                                                                                                                                                                                                  
+-----------+--------+-------+------+------+-----------------------+-------------+                                                                                                                                                                                           
| Interface | Status | Speed | VLAN | MTU  | Addresses             | Description |                                                                                                                                                                                           
----------------------------------------------------------------------------------                                                                                                                                                                                           
| eth1/1/1  | down   | 800G  | 9    | 9412 | fe80::ff:fee8:e49d/64 |             |                                                                                                                                                                                           
+-----------+--------+-------+------+------+-----------------------+-------------+                                                                                                                                                                                           
| eth1/2/1  | down   | 800G  | 1    | 9412 | fe80::ff:fee8:e49d/64 |             |                                                                                                                                                                                           
+-----------+--------+-------+------+------+-----------------------+-------------+                                                                                                                                                                                           
| eth1/3/1  | down   | 800G  | 19   | 9412 | fe80::ff:fee8:e49d/64 |             |                                                                                                                                                                                           
+-----------+--------+-------+------+------+-----------------------+-------------+                                                                                                                                                                                           
| eth1/4/1  | down   | 800G  | 11   | 9412 | fe80::ff:fee8:e49d/64 |             |                                                                                                                                                                                           
+-----------+--------+-------+------+------+-----------------------+-------------+                                                                                                                                                                                           
| eth1/5/1  | down   | 800G  | 30   | 9412 | fe80::ff:fee8:e49d/64 |             |                                                                                                                                                                                           
+-----------+--------+-------+------+------+-----------------------+-------------+ 
...
[root@dut ~]# fboss2-dev show port
 ID   Name       AdminState  LinkState  ActiveState  Transceiver  TcvrID  Speed  ProfileID                             HwLogicalPortId  Drained  PeerSwitchDrained  PeerPortDrainedOrDown  Errors  Core Id  Virtual device Id  Cable Len meters 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
...
 275  eth1/52/1  Enabled     Down       --                        51      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  277              No       --                 --                     --      --       --                 --
 294  eth1/53/1  Enabled     Down       --                        52      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  286              No       --                 --                     --      --       --                 --
 286  eth1/54/1  Enabled     Down       --                        53      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  288              No       --                 --                     --      --       --                 --
 305  eth1/55/1  Enabled     Down       --                        54      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  297              No       --                 --                     --      --       --                 --
 297  eth1/56/1  Enabled     Down       --                        55      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  299              No       --                 --                     --      --       --                 --
 316  eth1/57/1  Enabled     Up         --                        56      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  308              No       --                 --                     --      --       --                 --
 308  eth1/58/1  Enabled     Up         --                        57      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  310              No       --                 --                     --      --       --                 --
 327  eth1/59/1  Enabled     Up         --                        58      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  319              No       --                 --                     --      --       --                 --
 319  eth1/60/1  Enabled     Up         --                        59      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  321              No       --                 --                     --      --       --                 --
 338  eth1/61/1  Enabled     Up         --                        60      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  330              No       --                 --                     --      --       --                 --
 330  eth1/62/1  Enabled     Up         --                        61      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  332              No       --                 --                     --      --       --                 --
 349  eth1/63/1  Enabled     Up         --                        62      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  341              No       --                 --                     --      --       --                 --
 341  eth1/64/1  Enabled     Up         --                        63      800G   PROFILE_800G_8_PAM4_RS544X2N_OPTICAL  343              No       --                 --                     --      --       --                 --

Add a generator which produces a basic bootstrap configuration for the
given platform based upon the platform mapping data files.

This configuration is intended to support a freshly installed system
booting into a configuration where all interfaces are available to be
configured by the CLI. In particular, every interface is initially
configured as an L3 interface and run at full speed.

Also add example outputs for minipack3 and wedge800bact.
@travisb-nexthop travisb-nexthop force-pushed the distro_bootstrap_config branch from 22febb0 to 4b0eaa7 Compare April 10, 2026 23:25
@travisb-nexthop travisb-nexthop marked this pull request as ready for review April 10, 2026 23:25
@travisb-nexthop travisb-nexthop requested a review from a team as a code owner April 10, 2026 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant