EVPN injector: drop type-5 (collector 2.2.3 mis-decodes it)

Verified against the live collector: EVPN type-2 (MAC/IP) and type-3
(inclusive multicast) parse cleanly onto openbmp.parsed.evpn, but
type-5 (IP-prefix) is mis-decoded — the IP prefix corrupts the RD
field. inject-evpn.sh now injects only type-2/3; the type-5
limitation is documented in the injector README and roadmap E5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
sam 2026-05-19 09:24:08 -07:00
parent f7532b62ef
commit 41ec96c3ac
3 changed files with 24 additions and 5 deletions

View File

@ -325,6 +325,16 @@ 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.
### E-scale. PostgreSQL sizing for a full table
A full v4+v6 table is ~1.2M prefixes; with attributes and history this is a

View File

@ -34,5 +34,12 @@ docker compose --profile evpn-test stop gobgp-evpn
`gobgp` global-table feed (AS 65001).
- It is *not* part of the default stack: the `evpn-test` Compose profile
keeps it out of production and lets it be started/stopped on demand.
- EVPN type-5 (IP-prefix) routes require a `gw <gateway>` argument in the
GoBGP CLI — see `inject-evpn.sh`.
## Collector type-5 limitation
The OpenBMP collector 2.2.3 parses EVPN **type-2 (MAC/IP)** and **type-3
(inclusive multicast)** cleanly, but **mis-decodes type-5 (IP-prefix)**: the
IP prefix bleeds into the RD field on the `openbmp.parsed.evpn` topic
(observed garbage RDs such as `6154:3523870730`). `inject-evpn.sh` therefore
injects only type-2 and type-3. Full type-5 support needs a newer collector
or the GoBMP path — see `docs/ROADMAP.md` Track E (E5).

View File

@ -23,9 +23,11 @@ echo "Injecting EVPN type-3 (inclusive multicast) routes..."
"${G[@]}" multicast 10.40.40.251 etag 100 rd 65010:100 rt 65010:100
"${G[@]}" multicast 10.40.40.251 etag 200 rd 65010:200 rt 65010:200
echo "Injecting EVPN type-5 (IP prefix) routes..."
"${G[@]}" prefix 10.210.10.0/24 gw 10.40.40.251 etag 0 label 10210 rd 65010:210 rt 65010:210 encap vxlan
"${G[@]}" prefix 10.210.20.0/24 gw 10.40.40.251 etag 0 label 10220 rd 65010:220 rt 65010:220 encap vxlan
# NOTE: EVPN type-5 (IP-prefix) routes are intentionally NOT injected.
# The OpenBMP collector 2.2.3 parses type-2 (MAC/IP) and type-3 (multicast)
# cleanly, but mis-decodes the type-5 NLRI — the IP prefix bleeds into the
# RD field (observed RDs like '6154:3523870730'). Type-5 visibility needs a
# newer collector or the GoBMP path — see docs/ROADMAP.md E5.
echo
echo "Current EVPN RIB on gobgp-evpn:"