Rhai made a decision about a route cost one to three microseconds, some two hundred times what the same costs in Rust. That was bearable where a function is asked once for an UPDATE, and is not where every route is weighed against every peer, as it is when routes are passed on. What is wanted of a policy (mark routes by where they came from, mark what is announced, let communities say who is told what) needs no language; it is to be configuration, done natively. Kept from that work: route selection goes by a LOCAL_PREF that policy set on a route from an external peer, and the lab's configuration can be added to by a phase. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
43 lines
1007 B
TOML
43 lines
1007 B
TOML
[package]
|
|
name = "bgp-bench"
|
|
description = "Benchmarks at the scale of the Internet routing table"
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
homepage.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
version.workspace = true
|
|
publish = false
|
|
|
|
[dependencies]
|
|
bgp-packet.workspace = true
|
|
bgp-primitives.workspace = true
|
|
bytes.workspace = true
|
|
flate2 = "1"
|
|
stats_alloc = { version = "0.1.10", optional = true }
|
|
|
|
[dev-dependencies]
|
|
bgp-integration-tests.workspace = true
|
|
bgp-rib.workspace = true
|
|
bgp-server.workspace = true
|
|
tokio.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
|
|
[features]
|
|
# Counts every allocation, to report how much memory a table holds. The
|
|
# counters are shared by all threads and slow them down, so timings are
|
|
# taken without this and memory is measured in a run of its own.
|
|
count-memory = ["dep:stats_alloc"]
|
|
|
|
[[bench]]
|
|
name = "full_table"
|
|
harness = false
|
|
|
|
[[bench]]
|
|
name = "real_table"
|
|
harness = false
|
|
|
|
[lints]
|
|
workspace = true
|