Updating hashes
Summary: GitHub commits:
https://github.com/WhatsApp/erlang-language-platform/commit/cc2024b21d684e24cc3a0c4a8d1676e907b724e7 https://github.com/facebook/CacheLib/commit/50986d1c6001b77a6fcd5c91b6ba88d68444f697 https://github.com/facebook/fb303/commit/b3dd7124a4a435a31306dada17eb5d0e95aa580f https://github.com/facebook/fbthrift/commit/921b59d4fb61c8b8cc0ce4eade597d4687f402e1 https://github.com/facebook/folly/commit/c8c7adb72c6d73e2fced5ff5cebc96aa3ff65b2c https://github.com/facebook/hermes/commit/bd254f2ec2088bce79f0a675d54a2feb471e6a4e https://github.com/facebook/mvfst/commit/7c41b1e538d4abbcad78b52eeda8cc8b1e019548 https://github.com/facebook/proxygen/commit/694c58132151467e07732dbe2926f01f6a363820 https://github.com/facebook/pyrefly/commit/afe65f2272be705530df792160febdbcb16ab9cd https://github.com/facebook/wangle/commit/4861bc487106abd62d9f3e469146004636fccf4c https://github.com/facebookexperimental/edencommon/commit/83dfee97ac1946a00e8cea7e231e0b54135a05a7 https://github.com/facebookexperimental/rust-shed/commit/b2f41ce1662cf6f16724830884237d68acf32b58 https://github.com/facebookincubator/fizz/commit/756a0d4491d5d2dd72a262e28fbb3c529b27aee6
Reviewed By: dzhdhr
fbshipit-source-id: 3854e98c1a5e543c7fcfd0b4e4defdd71a66b7d4
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
BGP++
BGP++ is Meta’s C++ implementation of the Border Gateway Protocol. It supports Meta’s Data Center and Express Backbone networks and can be used as a standalone routing daemon or as a collection of BGP libraries.
This repository provides two mutually exclusive build variants:
Build variants
dcfsdb_clientbgp_binsbin/bgpbbexported_librariesbgp_bb_binsbin/bgp_bbdcis the default CMake variant. GitHub CI always sets the variant explicitly.Only one variant is configured in each CMake tree. Use separate scratch directories for DC and BB builds.
Requirements
The supported OSS build uses
getdeps.py, which downloads and builds BGP++ and its dependencies.The build requires:
--allow-system-packages.GitHub CI uses 18 parallel jobs on a 32-core runner. Use a lower value on machines with less memory.
Clone the repository
Scratch directories
Use a separate scratch directory outside the Git checkout for each variant:
/tmp/${USER}-bgp-build-dc/tmp/${USER}-bgp-build-bbDo not use paths inside the repository, such as
./build-outputor./.getdeps, and do not share one scratch directory between DC and BB.There are two reasons:
getdeps.pyapplies dependency patches relative to the enclosing Git repository. An in-repository scratch path can make patches resolve against the BGP checkout and fail with errors such asNo such file or directory.BGP_BUILD_VARIANTandFBOSS_BUILD_PROFILEvalues. Reusing one scratch directory can retain dependency configuration from the other variant and cause incorrect configure or link results.When switching variants, use the matching existing scratch directory or create a new one.
Build the DC variant
The DC build uses the FBOSS
fsdb_clientprofile and producesbgp.BUILD_SAI_FAKE=1builds the FBOSS dependency without a vendor SAI SDK.--src-dir=.ensures that the current BGP checkout is built.Build the BB variant
The BB build uses the smaller FBOSS
exported_librariesprofile and producesbgp_bb.The BB profile builds only these FBOSS libraries and their dependencies:
nodebaseradix_treeexponential_back_offlog_thrift_callalert_loggerThe BGP manifest selects Open/R’s
exported_librariesprofile automatically.Run tests
Tests must use the same variant, FBOSS profile, scratch directory, and build type as the corresponding build.
DC tests
BB tests
Locate the installed binaries
Use
show-inst-dirwith the same scratch directory, CMake variant, and privilege as the corresponding build.DC
BB
getdeps.pyinstalls the selected daemon undersbin/, generated and public headers underinclude/, and reusable static libraries underlib/.Build only the daemon
The commands above build the complete selected variant, including its test targets. For a daemon-only build, add these options after the
buildsubcommand:--no-tests --cmake-target bgp_bin--no-tests --cmake-target bgp_bb_binRerun the complete build without
--no-testsbefore invokinggetdeps.py test.Build types
getdeps.pysupports:DebugRelWithDebInfo— defaultMinSizeRelReleasePass the same value to every build, test, and path-query command:
Runtime integration
Both daemons accept:
--config=<path>for the BGP configuration.--policy=<path>for an optional separate policy configuration.--helpto list all registered command-line flags.--versionfor build information.The main configuration schema is
configerator/structs/neteng/fboss/bgp/bgp_config.thrift. Policy schemas are underconfigerator/structs/neteng/bgp_policy/thrift/.A test-only standalone configuration is available at
neteng/fboss/bgp/cpp/tests/sample_configs/stand_alone_conf.json. It is a test fixture, not a production deployment template.During normal startup:
bgpwaits for the FBOSS Agent FIB service.bgp_bbwaits for both FibEbb and the Open/R FIB agent.--platform=devskips the platform-readiness wait for development, but does not provide the missing FIB services.Repository layout
The paths below are relative to the GitHub repository root.
CMakeLists.txtBGP_BUILD_VARIANT=dc|bb.cmake/neteng/fboss/bgp/configerator/common/build/fbcode_builder/getdeps.py, dependency manifests, and shared CMake helpers..github/workflows/CONTRIBUTING.mdCODE_OF_CONDUCT.mdLICENSE