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:
Rayhaan JaufeerallyandClaude Fable 5.1 committed 2026-10-02 22:47:57 +02:00
1 parent cbf0df1eef
commit 9367c38907
48 files changed
+21 -3435

No files matched your search

+1 -2
View File
@@ -16,7 +16,7 @@ It has not yet run in a production network.
### Not there yet
- Announcing learned routes to other peers (the export policy for it is there: scripts)
- Announcing learned routes to other peers, and an export policy for it
- TCP-AO / TCP MD5 and GTSM
- Graceful restart, BFD, changing the configuration without a restart
- Next hops that are not directly connected
@@ -30,7 +30,6 @@ It has not yet run in a production network.
| `crates/rib` | The routing table, best route selection, the journal of changes |
| `crates/rpki` | The RTR client; origin validation and ASPA path verification |
| `crates/fib` | The best routes in the Linux kernel, over netlink |
| `crates/policy` | The operator's own rules for routes, as Rhai scripts |
| `crates/server` | Sessions, the state machine, policy, configuration |
| `crates/web` | The status page, HTTP API and metrics |
| `bin/bgp` | The daemon |