Skip to content

Osprey 0.9.9

Choose a tag to compare

@MichelW6667 MichelW6667 released this 09 Jul 21:24
· 8 commits to main since this release

Osprey 0.9.9.

Real-time network visibility & engineering for OSPF, IS-IS, BGP, MPLS, and EVPN. Passive topology discovery via GRE, SNMP, and BMP; multi-protocol SPF; what-if simulation; time travel; and incident correlation — a single binary backed by PostgreSQL.

A service-visibility release: Osprey now sees the Layer-2 service overlay. MPLS L2VPN (VPWS point-to-point wires and VPLS emulated LANs) and BGP EVPN (E-LAN and EVPN-VPWS, VXLAN or MPLS) are discovered, browsed, drawn on the topology, and correlated into incidents — and every service overlay now shares one visual language with path visualization.

Highlights since 0.9.8

EVPN visibility (new)

  • EVPN via BMP: EVPN instances (EVIs) are discovered straight from the BGP feed — E-LAN and EVPN-VPWS, with VXLAN or MPLS encapsulation. Observations from redundant route reflectors collapse into one canonical instance, so a dual-RR fabric shows each EVI once, with member counts deduplicated rather than doubled.
  • A new Reports → EVPN browser appears the moment the feed carries EVPN routes: every EVI lists its service kind, encapsulation, member PEs with per-PE MAC and IP counts, its Ethernet Segments (multihoming), and honest on-map / off-view placement. Clicking an EVI highlights its member PEs on the canvas and draws membership edges.
  • MAC mobility and PE loss as correlated symptoms: a host moving between PEs (detected via the standard MAC-Mobility sequence, with an all-active multihoming guard so normal redundancy never fires false moves) and a PE dropping out of an EVI both become symptom events that attach to the co-incident device or link failure — they enrich the incident, never open one of their own. Storm-guarded, so a broadcast storm cannot become an event flood. The EVI drill-down lists the instance's recent moves and losses.

MPLS L2VPN visibility (new)

  • Pseudowire discovery: VPWS wires and VPLS instances are walked per PE via the standard PW MIBs (with a per-device fallback driver), paired into end-to-end wires — including honest half-wires when the far end is outside the monitored network — and grouped into VPLS instances with a mesh-completeness badge (full / partial / unknown).
  • Two new Reports entries ("VPWS Wires", "VPLS Instances") with live-updating browsers and canvas overlays: a focused wire draws as one endpoint-to-endpoint arc, a focused VPLS highlights its PE sites with membership edges.
  • Pseudowire failures correlate into incidents: a PW going down attaches to the failure at either end of the wire, so a core failure that takes L2VPN services down shows those services under the one incident. Service symptoms that surface on the polling tick minutes after a failure now still attach to the incident — closing a correlation gap that also benefits MPLS-TE tunnel and L3VPN symptoms.

UI

  • One visual language for services and paths: MPLS-TE tunnels, VPWS wires, VPLS/L3VPN/EVPN membership edges now share the route-path stroke — same weight, same marching-ants animation (with a subtle periodic hitch in the motion fixed), full opacity. Down and partial states stay clearly distinct, and motion never claims traffic that isn't flowing.
  • Reports → Routing reordered along the protocol stack: IGP state first, then routes, then BGP, then a dedicated MPLS-services block that only appears when a service is actually discovered.

Reliability & API correctness

  • Malformed or empty IDs in API paths now return a clean 400 naming the parameter (previously a 500), and an invalid protocol on a protocol instance is rejected up front with the allowed values.
  • EVPN robustness end-to-end: an EVI whose member PEs haven't resolved yet renders as a neutral "not yet resolved" state instead of erroring the panel; mobility events stay accurate when the BMP exporter is identified after the feed starts; MAC/IP counts self-heal after transient database errors; and high-volume EVPN feeds ride the same sharded pipeline as BGP, so a full table dump cannot stall ingestion. Label/VNI decoding is encapsulation-aware for mixed VXLAN/MPLS fabrics.

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. Production licensing: sales@wijnberg.net.

Full documentation: https://www.wijnberg.net/osprey/docs