This website requires JavaScript.
db8edaae8e
policy, config, web: the TCP gauges named once, one revalidator, one peer-naming rule
main
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 22:44:32 +02:00
4cddd6fb04
export: one rule each for admission, identifiers and what the peer had
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 22:44:32 +02:00
bef875e50b
session: the way out to the peer as a type of its own
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 22:44:32 +02:00
25597ab3ef
packet, fib, bench: framing helpers, one netlink reader, a mesh with named phases
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 22:44:32 +02:00
bcfd6e013f
rib: the lock-free number in a slot of its own, and the reader in named steps
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 22:44:32 +02:00
c70a223d0d
rib: a reader counts the table once a poll, not once a shard
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 17:12:37 +02:00
a15efaa26c
export: give the leave to gather back once the table is gathered
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 15:43:48 +02:00
624d20f965
Release 0.2.6
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 15:30:07 +02:00
b5ca42244d
export: a lighter gather, and UPDATEs to the session by the piece
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 15:28:40 +02:00
7425b101ed
export: gather a table by attributes, then stream it
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 15:16:18 +02:00
92b9bdd3c5
export: keep the peer reading while the next batch is dressed
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 14:19:02 +02:00
381eabd886
export: encode a route's attributes once a session
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 13:47:47 +02:00
f1aca37ebe
rib: a short row grows by doubling
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 13:45:15 +02:00
cbc1dc7e44
bench: two routers exchanging their tables with ADD-PATH
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 13:45:15 +02:00
d0f092ff06
session: write to the peer from a task of its own
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 12:22:06 +02:00
ce1b68ca59
bgp: jemalloc's background thread on Linux only
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 12:06:39 +02:00
9276bc9f7a
session: write messages in batches, with TCP_NODELAY
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-10 11:14:08 +02:00
b0dd357986
export: a kilobyte less a route advertised with all_paths; memory accounted for
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 22:51:11 +02:00
d7d7d39bb9
metrics: export each session's TCP connection figures
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 12:12:53 +02:00
99a47da2af
status: a session's TCP connection as the kernel sees it; a route in full
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 11:41:47 +02:00
efde277fd8
Test: both families reach a collector over one IPv6 session
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 01:37:57 +02:00
9b211b61e9
export: count routes as they go out, and say when the table is walked again
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 01:31:46 +02:00
ec5c9be454
export: advertise every route for a prefix with ADD-PATH (all_paths)
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 01:16:48 +02:00
03f4f58ecb
rib: give a row room for every peer's route at its first growth
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 00:34:23 +02:00
48da8cc7d2
rib: size the routing table for the routes the peers are expected to send
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 00:12:19 +02:00
9e9e4f90ef
fib: take best routes from the table 16384 at a time
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 00:07:46 +02:00
5915c8e562
profile: configure the peers and report the kernel's change counts
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 00:07:46 +02:00
1bc71aaac5
fib, bench: profile the daemon taking in a full table; count blackholes instead of scanning
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-09 00:03:43 +02:00
6d8f89e509
policy, fib: blackhole routing for routes with the BLACKHOLE community
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-08 23:08:50 +02:00
01ac3e2cd8
Test peer: no bail! in expression position
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-08 00:10:32 +02:00
3608897245
fib: resolve next hops through the kernel's routing table
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-08 00:10:32 +02:00
430addcf20
Status page: IPv6 first in a neighbour's pair of sessions
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-07 23:19:56 +02:00
277b973f1a
Status page: what moved, what is missing, and a dark room
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-07 23:16:01 +02:00
7b6547d3c9
Docs: say what the forge cannot render, and two headings by the style guide
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-07 22:18:18 +02:00
3a1e42e594
README for a public release
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-07 22:09:07 +02:00
35ce2e2e57
Status page: routes in order of selection, lookup by origin AS
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-07 22:09:07 +02:00
1ce7eef27e
Status page: what needs attention first, glyphs for what repeats
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 17:49:06 +02:00
23e8b4aadb
One word for a route that is not taken: rejected
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 12:10:58 +02:00
c218ea4d85
Integration tests: one copy of each helper
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:54:49 +02:00
673920d48b
Names that said the same thing twice, or two things once
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:35:12 +02:00
0829f873f2
Server: the long functions in named steps
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:32:20 +02:00
724bb99f11
Kernel: read what the table has before letting kept routes go
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:21:53 +02:00
175a13d506
Hygiene: scripts, CI, docs and manifests
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:15:58 +02:00
e5341ea639
Packet: the wire format's shared pieces in one module
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:15:58 +02:00
b467b136e4
Kernel and RPKI: say what went wrong, and once
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:15:58 +02:00
3b22e318a2
Server: one way to work on the table off-thread, and smaller tidying
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:15:58 +02:00
c69aa38090
Routing table: a reader waits out a change under way instead of spinning
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 11:15:58 +02:00
befc292215
Tidy the export limits, passive peers and status page code
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-06 10:05:31 +02:00
2dfc00862b
Release 0.2.5
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-06 00:06:06 +02:00
c9751883c4
Passive peers: configured, and left to connect
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-06 00:05:54 +02:00
910dd258fb
Release 0.2.4
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 23:11:03 +02:00
9cfd3f67f0
Export limits, and a role for every peer where routes are passed on
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 23:10:43 +02:00
17045a3634
Status page: tables for the kernel, communities by AS, attributes as text
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 23:09:02 +02:00
89e0c3a3e2
Release 0.2.3
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 18:15:28 +02:00
b16227c51f
Route reflection, with ourselves as next hop
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 18:10:35 +02:00
164b1099f1
Release 0.2.2
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:39:06 +02:00
4e945b278f
Import rules: preference and communities for some routes only
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:34:17 +02:00
4d13336874
Release 0.2.1
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:16:45 +02:00
72444c2706
Control communities: session groups, prepends, and only ours to give
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:12:05 +02:00
3609451bdc
Ignore our own prefixes from our own routers, and say why a route for a network of this machine is held
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:11:53 +02:00
52593bb2c2
RPKI: ask a cache without data yet again soon
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-05 16:08:19 +02:00
9362ba9e34
Release 0.2.0
v0.2.0
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 22:48:08 +02:00
65f136048e
Graceful restart (RFC 4724, RFC 8538)
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 22:43:47 +02:00
acecc22f48
Status page: count rejected announcements, and name AS numbers
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 22:43:36 +02:00
efb2d81a50
Reject blackhole requests with a reason of their own
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 01:03:16 +02:00
bd674002a2
Keep the path attributes of rejected routes, and show them
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 01:03:16 +02:00
e1d819d629
Add a script that builds a static Linux executable
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 01:03:16 +02:00
361c48f656
Use jemalloc as the daemon's memory allocator
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-04 01:03:16 +02:00
9ce81a873e
Docs: show the front page photograph in its own colours
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-03 21:35:30 +02:00
dc275f99d7
Add a documentation website, built with Zola
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-03 15:12:43 +02:00
9820a5d3bc
Log without colour codes when the output is not a terminal
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-03 15:12:43 +02:00
b0c94f6643
Release 0.1.0
Rayhaan Jaufeerally and Claude Opus 5.5
2026-10-03 11:33:59 +02:00
1e2e8f2d86
Pass learned routes on to peers, with marks and control communities
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 23:48:08 +02:00
9367c38907
Remove policy scripts
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 22:47:57 +02:00
cbf0df1eef
Policy scripts: the operator's own rules for routes, in Rhai
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 21:09:39 +02:00
f1d80c66df
Do not choose a route whose next hop cannot be reached (RFC 4271 §9.1.2.1)
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 20:29:31 +02:00
3d946c32ce
Code health after review: docs, metrics, structure, one more fuzz target
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 19:31:19 +02:00
9ca86ede2f
Harden import, the kernel task and the RTR client after review
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 19:13:40 +02:00
fd2248feb5
Peer at link-local addresses: fe80::1%eth0
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 18:24:13 +02:00
92e013ca01
Carry IPv4 routes over IPv6 sessions with IPv6 next hops (RFC 8950)
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 17:58:03 +02:00
321af51e4b
Add an interoperability lab with FRR, BIRD and Routinator
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 17:44:49 +02:00
1de75fc610
Install a full table in the kernel in about a second
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 17:13:44 +02:00
1fc44798b7
Install best routes in the Linux kernel over netlink
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 15:15:43 +02:00
1f84235e87
Page through the received routes, on the status page and in the API
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 14:33:38 +02:00
f9ef781d51
Check roles in OPEN and prevent route leaks with Only to Customer (RFC 9234)
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 14:27:36 +02:00
8086aa994f
Verify AS paths with ASPAs, over RTR version 2
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 14:12:59 +02:00
bdaf226a16
Validate route origins against the RPKI and refuse invalid routes
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 13:39:40 +02:00
1f89fb4b13
Add the bgp-rpki crate: route origin validation and an RTR client
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 13:28:32 +02:00
599cd0ad8b
Look routes up, and see and alert on the ones that were refused
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 13:14:41 +02:00
e2b1979e38
Judge every route a peer announces: import policy, prefix limit, hold-down
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 12:59:37 +02:00
630c175918
Rework the speaker: sans-I/O FSM, sharded table, RFC 7606, ADD-PATH
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 12:35:54 +02:00
9caaf5018e
Review pass on the server: bugs fixed, session setup simplified
speaker-cleanup
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 10:46:09 +02:00
a8aba52562
Review pass on the codec and the table: bugs fixed, encoders simplified
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 10:32:27 +02:00
d49bab58a5
Add ADD-PATH (RFC 7911): several routes for a prefix from one peer
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 00:57:15 +02:00
31aa3a4563
Use the sharded table in the server: sessions choose best routes
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 00:31:28 +02:00
3b20576971
Add the journal: following the table's best routes at one's own pace
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 00:14:20 +02:00
eab891567b
Add the sharded routing table: Adj-RIBs-In and Loc-RIB in one
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-02 00:01:50 +02:00
c1cf15c792
Benchmark on a real table: read MRT dumps from route collectors
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-01 23:43:22 +02:00
7e488e31aa
Make IpPrefix a fixed-size value with no allocation behind it
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-01 23:38:39 +02:00
64df419b3a
Add a benchmark of taking in the Internet routing table
Rayhaan Jaufeerally and Claude Fable 5.1
2026-10-01 23:30:11 +02:00