Skip to content

eos: add EVPN lab with multiple import/export route-targets per VRF - #225

Merged
dhalperi merged 1 commit into
mainfrom
eos-evpn-multiple-rts
Jul 21, 2026
Merged

eos: add EVPN lab with multiple import/export route-targets per VRF#225
dhalperi merged 1 commit into
mainfrom
eos-evpn-multiple-rts

Conversation

@dhalperi

Copy link
Copy Markdown
Member

Arista cEOS lab capturing how EOS handles a VRF that declares several
route-target import evpn and route-target export evpn lines, for
batfish/batfish#10113. Two directly-connected VTEPs run an eBGP IPv4
underlay plus an eBGP EVPN overlay over Loopback0, each with one tenant
VRF and a symmetric-IRB L3VNI:

  • leaf1 AS 65101, vrf RED (L3VNI 15001), loopback 10.1.1.1/32,
    import evpn 65000:100 + 65000:199, export evpn 65000:200 + 65000:299
  • leaf2 AS 65102, vrf BLUE (L3VNI 15002), loopback 10.2.2.2/32,
    import evpn 65000:200 + 65000:288, export evpn 65000:100 + 65000:177

The matching RT is listed before an unused decoy in each direction, so
on the real device both tenant loopbacks cross into the peer VRF (leaf2
BLUE learns 10.1.1.1/32 via 65000:200, leaf1 RED learns 10.2.2.2/32 via
65000:100). All six checks.yaml preconditions pass on cEOS 4.36.0.1F.

Batfish keeps only a single import and single export RT per VRF (the
last line wins in AristaBgpVrf), so it retains only the decoys, matches
nothing, and imports neither route. test_main_rib_routes,
test_bgp_rib_routes, and test_evpn_rib_routes fail on both leaves; all
three are sickbayed to xfail against batfish/batfish#10113. Remove the
sickbay entries once Batfish models multiple import/export RTs.

For batfish/batfish#10113.


Prompt:

Analyze https://github.com/batfish/batfish/issues/10113

I think we should start by making an Arista EVPN lab that exercises
this type of configuration so that we can ensure we're doing the right
thing in our modeling

Arista cEOS lab capturing how EOS handles a VRF that declares several
`route-target import evpn` and `route-target export evpn` lines, for
batfish/batfish#10113. Two directly-connected VTEPs run an eBGP IPv4
underlay plus an eBGP EVPN overlay over Loopback0, each with one tenant
VRF and a symmetric-IRB L3VNI:

- leaf1 AS 65101, vrf RED (L3VNI 15001), loopback 10.1.1.1/32,
  import evpn 65000:100 + 65000:199, export evpn 65000:200 + 65000:299
- leaf2 AS 65102, vrf BLUE (L3VNI 15002), loopback 10.2.2.2/32,
  import evpn 65000:200 + 65000:288, export evpn 65000:100 + 65000:177

The matching RT is listed before an unused decoy in each direction, so
on the real device both tenant loopbacks cross into the peer VRF (leaf2
BLUE learns 10.1.1.1/32 via 65000:200, leaf1 RED learns 10.2.2.2/32 via
65000:100). All six checks.yaml preconditions pass on cEOS 4.36.0.1F.

Batfish keeps only a single import and single export RT per VRF (the
last line wins in AristaBgpVrf), so it retains only the decoys, matches
nothing, and imports neither route. test_main_rib_routes,
test_bgp_rib_routes, and test_evpn_rib_routes fail on both leaves; all
three are sickbayed to xfail against batfish/batfish#10113. Remove the
sickbay entries once Batfish models multiple import/export RTs.

For batfish/batfish#10113.

----

Prompt:
```
Analyze batfish/batfish#10113

I think we should start by making an Arista EVPN lab that exercises
this type of configuration so that we can ensure we're doing the right
thing in our modeling
```
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.39%. Comparing base (c01cf04) to head (bcb393f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #225   +/-   ##
=======================================
  Coverage   84.39%   84.39%           
=======================================
  Files          93       93           
  Lines        4532     4532           
=======================================
  Hits         3825     3825           
  Misses        707      707           
Flag Coverage Δ
unittests 84.39% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dhalperi
dhalperi enabled auto-merge (squash) July 21, 2026 16:25
@dhalperi
dhalperi merged commit 8b78941 into main Jul 21, 2026
141 checks passed
@dhalperi
dhalperi deleted the eos-evpn-multiple-rts branch July 21, 2026 16:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants