{"id":14957027,"url":"https://github.com/facebook/fboss","last_synced_at":"2025-05-14T12:09:29.585Z","repository":{"id":28412926,"uuid":"31927407","full_name":"facebook/fboss","owner":"facebook","description":"Facebook Open Switching System\n\nSoftware for controlling network switches.","archived":false,"fork":false,"pushed_at":"2025-04-11T04:48:00.000Z","size":92049,"stargazers_count":888,"open_issues_count":82,"forks_count":315,"subscribers_count":129,"default_branch":"main","last_synced_at":"2025-04-11T04:59:24.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/facebook.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-09T23:04:15.000Z","updated_at":"2025-04-11T04:48:03.000Z","dependencies_parsed_at":"2025-03-24T15:39:47.443Z","dependency_job_id":null,"html_url":"https://github.com/facebook/fboss","commit_stats":{"total_commits":32269,"total_committers":495,"mean_commits":65.18989898989899,"dds":0.7930831448139081,"last_synced_commit":"5586cb6453f5f1255b4bebe0a5069e5df42b4a23"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Ffboss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Ffboss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Ffboss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/facebook%2Ffboss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/facebook","download_url":"https://codeload.github.com/facebook/fboss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248345273,"owners_count":21088244,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:13:57.319Z","updated_at":"2025-04-11T04:59:40.640Z","avatar_url":"https://github.com/facebook.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Facebook Open Switching System (FBOSS)\n--------------------------------------\n\n[![Support Ukraine](https://img.shields.io/badge/Support-Ukraine-FFD500?style=flat\u0026labelColor=005BBB)](https://opensource.fb.com/support-ukraine)\n\nFBOSS is Facebook's software stack for controlling and managing network\nswitches.\n\n## Components\n\nFBOSS consists of a number of user-space applications, libraries, and\nutilities.\n\nThe initial open source release of FBOSS consists primarily of the agent\ndaemon, but we are working on releasing additional pieces and functionality as\nwell.\n\n### Agent Daemon\n\nOne of the central pieces of FBOSS is the agent daemon, which runs on each\nswitch, and controls the hardware forwarding ASIC.  The agent daemon sends\nforwarding information to the hardware, and implements some control plane\nprotocols such as ARP and NDP.  The agent provides thrift APIs for managing\nroutes, to allow external routing control processes to get their routing\ninformation programmed into the hardware forwarding tables.\n\nThe code for the agent can be found in fboss/agent\n\nThe agent requires a JSON configuration file to specify its port and VLAN\nconfiguration.  Some sample configuration files can be found under\nfboss/agent/configs.  These files are not really intended for human\nconsumption--at Facebook we have tooling that generates these files for us.\n\n### Routing Daemon\n\nThe FBOSS agent manages the forwarding tables in the hardware ASIC, but it\nneeds to be informed of the current routes via thrift APIs.\n\nOur initial open source release does not yet contain a routing protocol daemon\ncapable of talking to the agent.  The routing protocol daemon we use at\nFacebook is rather specific to our environment, and likely won't be as useful\nto the open source community.  For more general use outside of Facebook, it\nshould be possible to modify existing open source routing tools to talk to the\nFBOSS agent, but we have not implemented this yet.  In the meantime, we have\nincluded a small sample python script in fboss/agent/tools that can manually\nadd and remove routes.\n\n### Management Tools\n\nObviously additional tools and utilities are required for interacting with the\nFBOSS agent, reporting its status, generating configuration files, and\ndebugging issues.\n\nAt the moment we do not have many of our tools ready for open source release,\nbut we hope to make more of these available in the future weeks.  In the\nmeantime, the thrift compiler can automatically generate a python-remote script\nto allow manual invocation of the agent's various thrift interfaces.\n\n## Building\n\nSee the BUILD.md document for instructions on how to build FBOSS.\n\n## Future Development\n\nFBOSS has been designed specifically to handle the needs of Facebook's data\ncenter networks, but we hope it can be useful for the wider community as well.\nHowever, note that this initial release of FBOSS will likely require\nmodification and additional development to support other network configurations\nbeyond the features used by Facebook.  Until it matures more, FBOSS will likely\nbe primarily of interest to network software developers, rather than to network\nadministrators who are hoping to use it as an turnkey solution.\n\nWe look forward to getting feedback from the community, and we hope FBOSS can\nserve as a jumping-off point for other users wishing to program network\nswitches.\n\nFBOSS development is ongoing at Facebook, and we plan to continue releasing\nmore components, additional features, and improvements to the existing tooling.\n\n## License\n\nSee [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebook%2Ffboss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffacebook%2Ffboss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffacebook%2Ffboss/lists"}