diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 99fac90..a0f8e78 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -325,15 +325,20 @@ Recommended: path 2 for fastest EVPN visibility; path 1 if a single unified OpenBMP schema outweighs the extra effort. Either way, then build EVPN dashboards (per-EVI, MAC mobility, RT scoping). -**Status / measured:** the `evpn_rib` table is in place -(`postgres/scripts/007_obmp_evpn.sql`) and a profile-gated `gobgp-evpn` -injector exercises the pipeline. Verified against the running collector -2.2.3: EVPN **type-2 (MAC/IP)** and **type-3 (inclusive multicast)** parse -cleanly onto `openbmp.parsed.evpn`; **type-5 (IP-prefix) is mis-decoded** (the -prefix corrupts the RD field). So a path-1 fork inherits a collector that -only does type-2/3 reliably — another point in favour of path 2 (GoBMP) if -type-5 matters. Next: the `obmp-evpn-consumer` for type-2/3, then the -dashboard. +**Status — lab-testable scope DONE (path 1, type-2/3):** +- `evpn_rib` table — `postgres/scripts/007_obmp_evpn.sql`. +- `gobgp-evpn` — profile-gated synthetic EVPN injector (`evpn-test` profile). +- `obmp-evpn-consumer` — standalone Python consumer, `openbmp.parsed.evpn` + → `evpn_rib` (the gap path 1 describes, done without forking the Java + psql-app — a small isolated container instead). +- `EVPN RIB` Grafana dashboard (OBMP-L3VPN folder). +- Verified end to end with synthetic type-2/type-3 routes. + +**Known limitation:** collector 2.2.3 **mis-decodes EVPN type-5** (IP-prefix) +— the prefix corrupts the RD field — so type-5 is not ingested. Full type-5 +support still needs path 2 (GoBMP) or a newer/fixed collector. Real EVPN +(vs the synthetic injector) also needs an EVPN-capable BMP source — the CML +IOS-XR lab has none. ### E-scale. PostgreSQL sizing for a full table