BGP Protocol Interop
Daemon Docker- Same DUTs as the benchmark: FRR, BIRD, GoBGP
- Correctness first; the perf numbers above measure the same sessions
Measured, not claimed.
Benchmark numbers need context: these numbers measure
one scenario, on one machine, under artificial
conditions. They show relative differences between
implementations, not absolute performance. If it
matters to you, run le perf on your own
hardware with your own workload.
le perf establishes two BGP sessions
with a device under test: a sender injects
100,000 routes, a receiver times their arrival.
The same harness runs unmodified against BIRD,
FRR, GoBGP, RustyBGP, freeRtr, rustbgpd, and
OpenBGPd, all in Docker on the same host.
Go carries an estimated 10-15% CPU overhead against C/Rust implementations. That number comes from code-path analysis, not a measured benchmark -- Ze has not been benchmarked at DFZ scale (1M+ prefixes).
# build all DUT images, then run $ ./le perf run # test specific DUTs only $ ./le perf run dut "ze bird" # regenerate docs/performance.md from results $ ./le perf report --doc test/perf/results/*.json
Docker (Colima on macOS). le perf
works against any BGP implementation, not just
Ze -- point it at your own DUT.
Where else the numbers show up.