fboss — Engineering Performance
84 engineers all time · Jan 2025 – Aug 2026 · built 2026-08-23 · GitHub
Performance snapshot
Today's rolling 90-day reading for fboss, compared with the start of the series. Pick a window to move that comparison point.
Eff. capacity added
+0.7engineers
53 devs deliver like 54 (1.0x pre-AI)
Avg. perf / dev / mo (ETV)
+91.4%
0.46 → 0.87
Active engineers
+10.4%
48.0 → 53.0
Features
−2.8pp
34.2% → 31.4%
fboss vs. Meta
Per-engineer ETV for fboss against Meta as a whole. Both lines are 90-day rolling averages scaled to a 30-day month, so they share one axis and can be read against each other at any point. Pick a window to zoom the chart to it.
Performance over time
ETV stacked by Features / Maintenance / Tests / Docs / Fixes — 90-day moving average, normalized to ETV / month.
Engineering capacity
Effective engineers behind fboss, in pre-AI terms. Per-engineer ETV divided by the Q1 2025 baseline of 0.86 ETV / dev / mo gives a capacity multiple, and that multiple applied to the engineers active in the trailing 90 days turns it into engineer-equivalents. The line is the real headcount, so the gap between line and area is what the leverage is worth.
Knowledge concentration
How dependent is this repo on a small number of engineers? Higher top-1 share = higher key-person risk.
Jasmeet Bagga owns 10.9 % of commits.
Reports
Written summary of the work completed each month.
No monthly reports available yet.
Most impactful commits
Top 10 by ETV in the all-time window.
- 2.5ETVAdd test client for FSDB cgo subscriber Summary: Adding FSDB test client in golang to cover FSDB subscribers that are implemented in go. Reviewed By: Reincarnationist Differential Revision: D96035218 fbshipit-source-id: 59a3212155dc196790f41e45fb38273c9c777dbaPriyank Warkhede · d5d6df6e · 2026-03-12
- 2.5ETVAdd/Prune MAC entry while (un)resolving nhop in ecmp helper Summary: ECMP setup helper are relying on the staticL2Observer to add mac entry post neighbor updates being installed. This is no longer the case as we update mac entry in the same update as neighbor entry (D71510482) Therefore, while resolving neighbor entry, ECMP helper also needs update mac entry accordingly in the same update. Reviewed By: jasmeetbagga Differential Revision: D73632906 fbshipit-source-id: 2311ec0d40b3042f0726fd305b21f48290b7d208Ron He · f2034b1a · 2025-05-05
- 2.2ETVMove runners to subdirectory Summary: Pulls out each runner class into a separate file and moves them into a separate `runners/` package Reviewed By: harshitgulati18 Differential Revision: D107117881 fbshipit-source-id: 798e37a9d61f72f5221abf2fc596427e93441960Scott Smith · 498aa6de · 2026-06-10
- 2.0ETVFixing RxEqualizer settings configuration for multi-port optics Summary: We had bugs in the code that sets RxEqualizer setting for multi-port optics. For example, we would correctly configure the setting for /1, but not for /5 in 2x800G-DR4 optics Differential Revision: D87515787 Privacy Context Container: L1390529 fbshipit-source-id: babb8bc52c9f45d911f9743ad31771b2a813d7d3Harshit Gulati · 5b26f8d3 · 2025-12-02
- 1.9ETVLift some asic utils from test utils to agent code Summary: Lift some asic utils from test utils to agent code so they can be used in config flow. Reviewed By: jasmeetbagga Differential Revision: D73865120 fbshipit-source-id: 68bda35d5713f4949e75cf15c59a4f57b16f8e77Max Ng · c5f8e5ab · 2025-05-01
- 1.9ETVAdd Yangra2/Chenab2 platform support Summary: Applying vendor patch for yangra2 support allow-large-files Reviewed By: phshaikh Differential Revision: D92926533 fbshipit-source-id: 095a1696c9644367dd972d7837171248fba97a0eJagadeesh Babu Challagundla · dca5ade3 · 2026-03-05
- 1.9ETVReplace file-based config versioning with Git (#825) 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` Replace the basic file-based configuration versioning mechanism with Git-based versioning for the CLI config session. Key changes: - Add new `Git` class providing a simple interface for Git operations: init, commit, log, show, etc - Use `folly::Subprocess` with full path `/usr/bin/git` for all Git commands - Replace revision files (`agent-rN.conf` + symlink) with atomic writes to agent.conf tracked in a local Git repository - Use Git commit SHAs as revision identifiers instead of rN format - Update RevisionList validation to accept Git SHAs (7+ hex chars) Repository initialization: - Automatically initialize Git repo if it doesn't exist - Automatically create initial commit if repo has no commits but config file exists - Use `--shared=group` flag and umask 0002 to ensure `.git` directory is group-writable when `/etc/coop` is group-writable Commands updated: - config history: Shows Git commit log with SHA, author, timestamp, message - config session diff: Uses git show to compare commits - config session commit: Creates Git commits with username as author - config rollback: Reads config from Git history and creates new commit Note: this change is part of a series, the previous one is https://github.com/facebook/fboss/issues/809, the next one is https://github.com/facebook/fboss/issues/832. Pull Request resolved: https://github.com/facebook/fboss/pull/825 Test Plan: Test updates: - Update all CLI config tests to use Git-based setup - Initialize Git repo and create initial commit in test fixtures - Added new unit tests for the Git layer ## Sample usage Simple change and session commit: ``` [admin@fboss101 benoit]$ ./fboss2-dev show interface eth1/1/1 +-----------+--------+-------+------+------+------------------------------+-------------+ | Interface | Status | Speed | VLAN | MTU | Addresses | Description | ----------------------------------------------------------------------------------------- | eth1/1/1 | down | 800G | 2001 | 9000 | 10.0.0.0/24 | demo | | | | | | | 2400::/64 | | | | | | | | fe80::b4db:91ff:fe95:ff07/64 | | ----------------------------------------------------------------------------------------- [admin@fboss101 benoit]$ ./fboss2-dev config interface eth1/1/1 description hello Successfully set description for interface(s) eth1/1/1 [admin@fboss101 benoit]$ ./fboss2-dev config session diff --- current live config +++ session config @@ -2200,7 +2200,7 @@ "ports": [ { "conditionalEntropyRehash": false, - "description": "demo", + "description": "hello", "drainState": 0, "expectedLLDPValues": { "2": "eth1/5/1" [admin@fboss101 benoit]$ ./fboss2-dev config session commit Config session committed successfully as b8245b4 and config reloaded. [admin@fboss101 benoit]$ ./fboss2-dev config history | head Commit Author Commit Time Message ------------------------------------------------------------------------ b8245b40 admin 2026-01-21 11:13:57 Config commit by admin 7241abad admin 2026-01-21 11:12:51 Config commit by admin 02fe511c admin 2026-01-21 10:51:36 Config commit by admin e5650a98 admin 2026-01-21 10:51:35 Config commit by admin ad07138f admin 2026-01-21 10:51:35 Config commit by admin 1845e710 admin 2026-01-21 10:51:35 Config commit by admin ede5a527 admin 2026-01-20 14:28:10 Config commit by admin e900ef88 admin 2026-01-20 14:23:25 Config commit by admin [admin@fboss101 benoit]$ cd /etc/coop [admin@fboss101 coop]$ git -c safe.directory=/etc/coop show commit b8245b40b2b3c8797cbeed2fb91161e5440b7fd9 (HEAD -> main) Author: admin <fboss-cli@localhost> Date: Wed Jan 21 11:13:57 2026 -0800 Config commit by admin diff --git a/cli/agent.conf b/cli/agent.conf index 406b341..f61516f 100644 --- a/cli/agent.conf +++ b/cli/agent.conf @@ -2200,7 +2200,7 @@ "ports": [ { "conditionalEntropyRehash": false, - "description": "demo", + "description": "hello", "drainState": 0, "expectedLLDPValues": { "2": "eth1/5/1" diff --git a/cli/cli_metadata.json b/cli/cli_metadata.json index 68f340a..6c6a925 100644 --- a/cli/cli_metadata.json +++ b/cli/cli_metadata.json @@ -1,6 +1,6 @@ { "action": {}, "commands": [ - "config interface eth1/1/1 description demo" + "config interface eth1/1/1 description hello" ] } \ No newline at end of file ``` Rollback flow: ``` [admin@fboss101 benoit]$ ./fboss2-dev config interface eth1/1/1 description hello2 Successfully set description for interface(s) eth1/1/1 [admin@fboss101 benoit]$ ./fboss2-dev config session commit Config session committed successfully as 476f9ee and config reloaded. [admin@fboss101 benoit]$ ./fboss2-dev config history | head Commit Author Commit Time Message ------------------------------------------------------------------------ 476f9ee4 admin 2026-01-21 11:15:23 Config commit by admin b8245b40 admin 2026-01-21 11:13:57 Config commit by admin 7241abad admin 2026-01-21 11:12:51 Config commit by admin <-- we're going to rollback to here 02fe511c admin 2026-01-21 10:51:36 Config commit by admin e5650a98 admin 2026-01-21 10:51:35 Config commit by admin ad07138f admin 2026-01-21 10:51:35 Config commit by admin 1845e710 admin 2026-01-21 10:51:35 Config commit by admin ede5a527 admin 2026-01-20 14:28:10 Config commit by admin [admin@fboss101 benoit]$ ./fboss2-dev config rollback 7241abad Successfully rolled back. New commit: 8be163e7. Config reloaded. [admin@fboss101 benoit]$ ./fboss2-dev show interface eth1/1/1 +-----------+--------+-------+------+------+------------------------------+-------------+ | Interface | Status | Speed | VLAN | MTU | Addresses | Description | ----------------------------------------------------------------------------------------- | eth1/1/1 | down | 800G | 2001 | 9000 | 10.0.0.0/24 | demo | | | | | | | 2400::/64 | | | | | | | | fe80::b4db:91ff:fe95:ff07/64 | | ----------------------------------------------------------------------------------------- [admin@fboss101 benoit]$ ./fboss2-dev config history | head Commit Author Commit Time Message --------------------------------------------------------------------------- 8be163e7 admin 2026-01-21 11:17:26 Rollback to 7241abad by admin 476f9ee4 admin 2026-01-21 11:15:23 Config commit by admin b8245b40 admin 2026-01-21 11:13:57 Config commit by admin 7241abad admin 2026-01-21 11:12:51 Config commit by admin 02fe511c admin 2026-01-21 10:51:36 Config commit by admin e5650a98 admin 2026-01-21 10:51:35 Config commit by admin ad07138f admin 2026-01-21 10:51:35 Config commit by admin 1845e710 admin 2026-01-21 10:51:35 Config commit by admin [admin@fboss101 benoit]$ cd /etc/coop [admin@fboss101 coop]$ git -c safe.directory=/etc/coop show commit 8be163e7cd60574278dc7201b157e4238fa55380 (HEAD -> main) Author: admin <fboss-cli@localhost> Date: Wed Jan 21 11:17:26 2026 -0800 Rollback to 7241abad by admin diff --git a/cli/agent.conf b/cli/agent.conf index d918bae..406b341 100644 --- a/cli/agent.conf +++ b/cli/agent.conf @@ -2200,7 +2200,7 @@ "ports": [ { "conditionalEntropyRehash": false, - "description": "hello2", + "description": "demo", "drainState": 0, "expectedLLDPValues": { "2": "eth1/5/1" diff --git a/cli/cli_metadata.json b/cli/cli_metadata.json index 5435c54..68f340a 100644 --- a/cli/cli_metadata.json +++ b/cli/cli_metadata.json @@ -1,6 +1,6 @@ { "action": {}, "commands": [ - "config interface eth1/1/1 description hello2" + "config interface eth1/1/1 description demo" ] } \ No newline at end of file ``` Reviewed By: srikrishnagopu Differential Revision: D94975358 Pulled By: joseph5wu fbshipit-source-id: 197bc68feed6f5fe9443ad91d24999546ebbb0e7Benoit Sigoure · 307355c5 · 2026-03-03
- 1.6ETVenhance fboss switch_config to prioritize credit requests from certain remote dsf node Summary: FBOSS config proposal to prioritize credit requests from certain subset of remote dsf nodes using SP or WRR scheduling mechanism. One use case is to prioritize EDSW credit request over peer RDSWs requests Reviewed By: jasmeetbagga, zechengh09 Differential Revision: D75976809 Privacy Context Container: L1125642 fbshipit-source-id: 0731c072060a266754f2b6a406336f4e4a50f26cWei Dai · bf8c998f · 2025-06-06
- 1.6ETVRefactor StateUtils to remove FLAGS_switch_id_for_testing dependency Summary: This is a follow-up of D100038728 comments to move FLAGS_switch_id_for_testing related logics from fboss/agent/state/StateUtils.cpp that could be used for production codes to test only codes at fboss/agent/test/TestUtils.cpp Refactor getMacForFirstInterfaceWithPorts(), firstInterfaceIDWithPorts(), and firstInterfaceWithPorts() in StateUtils to take explicit SwitchID instead of optional<SwitchID> with implicit FLAGS_switch_id_for_testing fallback. This separates test-only concerns from production utility code: - StateUtils functions now require an explicit SwitchID parameter, making the API clearer and removing the hidden dependency on a test-only gflag - New ForTesting() wrapper functions added to TestUtils.h/cpp that internally use FLAGS_switch_id_for_testing for convenience in test code - All ~80 test files updated to use the new ForTesting() wrappers - Non-test caller (ApplyThriftConfig.cpp) updated to explicitly provide SwitchID Reviewed By: shri-khare Differential Revision: D100174508 fbshipit-source-id: 5c14d128723be40d4921ec1124fecd1c75afb991Wei Dai · 24e691b0 · 2026-04-11
- 1.5ETVThriftRemoveGetters_fboss/cli/fboss2 Differential Revision: D71212796 fbshipit-source-id: 3efcdff6346ec10c87bb6a760662624cd88c7c5bgeneratedunixname1030151775592158 · ba4ecf0e · 2025-03-14