sam f7532b62ef Add modular gobgp-evpn EVPN test-route injector (roadmap E5)
A profile-gated GoBGP instance (Compose profile 'evpn-test', not part
of the normal stack) that originates synthetic BGP EVPN routes and
BMP-exports its local RIB to the collector. Verified end to end: the
injected type-2/3/5 routes are parsed by the collector and land on
the openbmp.parsed.evpn Kafka topic, ready for the EVPN consumer.

inject-evpn.sh pushes type-2 (MAC/IP), type-3 (inclusive multicast)
and type-5 (IP-prefix) routes. Start with:
  docker compose --profile evpn-test up -d gobgp-evpn

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 09:15:44 -07:00
..

gobgp-evpn — modular EVPN test-route injector

A profile-gated, non-production GoBGP instance for exercising the EVPN ingestion pipeline (roadmap E5). The CML IOS-XR lab cannot originate EVPN routes, so this container synthesises them.

What it does

gobgp-evpn runs GoBGP with no BGP peers, BMP-exporting its local RIB (route-monitoring-policy = local-rib) to the OpenBMP collector. Routes injected with inject-evpn.sh are parsed by the collector and published to the openbmp.parsed.evpn Kafka topic, where the EVPN consumer picks them up and writes the evpn_rib table.

Usage

# start the injector (not started by a normal `docker compose up`)
docker compose --profile evpn-test up -d gobgp-evpn

# push synthetic type-2 / type-3 / type-5 EVPN routes
bash gobgp-evpn/inject-evpn.sh

# inspect what GoBGP holds
docker exec obmp-gobgp-evpn gobgp global rib -a evpn

# stop it when done testing
docker compose --profile evpn-test stop gobgp-evpn

Notes

  • Local AS 65010, router-id 10.40.40.251 — distinct from the production 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.