Remove policy scripts
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>
This commit is contained in:
1 parent
cbf0df1eef
commit
9367c38907
48 files changed
+21
-3435
No files matched your search
@@ -176,12 +176,6 @@ pub enum ConfigError {
|
||||
HttpPort,
|
||||
#[error("rpki: no caches are listed")]
|
||||
RpkiNoCaches,
|
||||
#[error("policy: give the script's path or its source, and not both")]
|
||||
PolicySource,
|
||||
#[error("policy: cannot read {path}: {error}")]
|
||||
PolicyFile { path: String, error: String },
|
||||
#[error("policy: {0}")]
|
||||
Policy(#[from] bgp_policy::PolicyError),
|
||||
#[error("rpki: the port of cache {0:?} is required")]
|
||||
RpkiCachePort(String),
|
||||
#[error("peer {peer:?}: {problem}")]
|
||||
@@ -198,10 +192,6 @@ pub enum ConfigError {
|
||||
pub enum PeerProblem {
|
||||
#[error("endpoint is missing")]
|
||||
MissingEndpoint,
|
||||
#[error("{0}")]
|
||||
Policy(#[from] bgp_policy::PolicyError),
|
||||
#[error("names the policy function {0:?}, and there is no policy script")]
|
||||
NoPolicyScript(String),
|
||||
#[error("endpoint is invalid: {0}")]
|
||||
Endpoint(Box<ConfigError>),
|
||||
#[error("remote_asn must be non-zero")]
|
||||
|
||||
Reference in new issue
Block a user