Osprey 1.3.0
Osprey 1.3.0. Network topology intelligence for OSPF, IS-IS, EIGRP, BGP, MPLS, and EVPN — passive discovery, protocol-accurate modelling, no agents on your routers and no routes injected.
This release extends the BGP AS-flow view: a candidate-path mode that shows every path a router knows, zoom and pan navigation, branch-based layout for dense graphs, and clickable adjacencies.
Highlights since 1.2.3
BGP & AS-flow
- All-candidates mode. Alongside best-path mode, the AS-flow view can draw every AS-path learned from every peer: live from the per-peer RIB on any BMP feed, or as of a past instant when full RIB history recording is enabled. If the recording does not cover the requested instant or scope, the view reports not available instead of an empty graph. The response labels its counting unit (candidate entries), indicates when a feed's session types make candidates identical to best paths, and warns about the cost of an unbounded whole-AS read.
- Top-N folding preserves transit structure. Only the origin bubble folds into the "other" cloud; a folded path's transit edges stay drawn, so the transit weave no longer depends on which origins made the cut. Prepended origins fold correctly, and a directly peered origin never folds.
- Validated at scale against a live DN42 feed: a single BMP session carrying roughly a thousand ASes and five thousand candidate entries.
AS-flow navigation and layout
- Camera controls. Wheel-zoom to the cursor, drag-pan,
+/−/0keys, double-click-to-fit, and on-canvas buttons with a zoom readout. The drawing surface tracks the panel one-to-one, so maximize adds real drawing space and fills the canvas region edge-to-edge. Dense columns grow the world instead of overlapping bubbles. Zoom and pan reset on AS or mode switches, never during timeline scrubbing. - Semantic zoom. Zooming out sheds edge counts, then sublabels, then all text. Graphs above a density threshold disable glow and flow animations to cap GPU load.
- Branch layout. Each column's ASes group under their dominant upstream, with gaps between groups; same-depth peerings arc sideways instead of overlapping the column axis.
- Clickable adjacencies. Clicking a flow line opens a card with both AS numbers and names (where known), the entries traversing the hop, and each side's share — noting that adjacency in received AS-paths is observed, not a verified peering session. Per-edge counts appear only on own exit flows, the selected AS, and a clicked adjacency.
- Readability controls. An "AS numbers" toggle (own AS, selection, and fold cloud keep their labels; hover always identifies a bubble), a Top-N origin control, and tooltips plus an on-canvas legend explaining the ±N badges shown during timeline events.
Packaging
- Upgrades no longer leave
osprey.targetinactive. The package now starts the target after restarting the services. On hosts upgraded with older packages, a one-timesystemctl start osprey.targetclears the state without touching running services.
Install
curl -LO https://github.com/wijnberg-net/osprey/releases/latest/download/osprey_amd64.deb
curl -LO https://github.com/wijnberg-net/osprey/releases/latest/download/SHA256SUMS
sha256sum -c SHA256SUMS
sudo apt install ./osprey_amd64.deb
Debian 12+, Ubuntu 24.04+ (bare metal, Proxmox LXC, or VM). PostgreSQL, NATS, and nginx are pulled in as dependencies; services start under systemd and a self-signed TLS certificate is generated on first install. Open https://your-server/ and log in with the admin account created during setup.
Free evaluation: all features, up to 32 devices, no time limit. Commercial licensing: sales@wijnberg.net.
Full documentation: https://www.wijnberg.net/docs/