BGP server implementations using exabgp
to complete
the architecture described here.
Contact information:
Email: [email protected]
Twitter: @nickrusso42518
There are three API implementations in this repository:
-
Flask/HTTP: This uses Python
flask
as a front-end to build a simple HTTP API (not RESTful) for announcing and withdrawing routes. This includes a Postman collection and corresponding environment to simplify adoption/testing. -
gRPC: This uses a custom protobuf services file to define various RPCs supported by the API. It also includes a compilation script for Python source code. Last, it includes dial-in streaming telemetry to count the number of currently-advertised routes.
-
FastAPI/REST: This uses Python
fastapi
as a front-end to build a REST API using HTTP transport for announcing and withdrawing routes. This includes a Postman collection and corresponding environment to simplify adoption/testing. For simplicity, the example database is an ordinary Python dictionary.
See .travis.yml
for an example of a multi-job CI configuration. To reduce
repetitive code, each general phase has been generically implemented in a
corresponding bash script.