Skip to content

Commit f3e1f1d

Browse files
authored
Enable EVPN with VXLAN-over-IPv6 on FRRouting (#3261)
1 parent 9dda222 commit f3e1f1d

File tree

4 files changed

+45
-22
lines changed

4 files changed

+45
-22
lines changed

docs/caveats.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ diag debug application httpsd -1
405405
* FRR configures BFD as part of OSPFv2/OSPFv3 configuration.
406406
* IPv6 L3VPN over SRv6 does not work in parallel with the IPv6 AF. You have to disable the IPv6 AF on IPv6 IBGP sessions with **bgp.activate.ipv6: []**.
407407
* An OSPFv3 ABR running FRR release 10.3 does not originate summary external routes from NSSA areas
408-
* FRR claims to support EVPN for VXLAN-over-IPv6, but it seems that the implementation is incomplete. For the moment, _netlab_ does not implement EVPN/VXLAN over IPv6 with FRR.
408+
* As of FRRouting release 10.6.0, the FRR implementation of EVPN for VXLAN-over-IPv6 is incompatible with the Arista EOS implementation due to different encodings of the PMSI_TUNNEL_ATTRIBUTE.
409409

410410
(caveats-junos)=
411411
## Common Junos caveats

docs/module/evpn.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,17 @@ Most EVPN/VXLAN implementations support only IPv4 VXLAN transport; some can run
117117
| Cumulus Linux 4.x |||
118118
| Cumulus 5.x (NVUE) |||
119119
| Dell OS 10 |||
120-
| FRR || [](caveats-frr) |
120+
| FRR || |
121121
| Junos[^JN] |||
122122
| Nokia SR Linux |||
123123
| Nokia SR OS[^SROS] |||
124124
| VyOS ||[](caveats-vyos) |
125125

126+
```{warning}
127+
* EVPN with VXLAN-over-IPv6 is enabled with the `defaults.vxlan.use_v6_vtep` attribute (see [](module-vxlan)). At the moment, you cannot run a control-plane-only EVPN node with IPv6 next hops.
128+
* Arista EOS 4.35.2F and FRRouting 10.6.0 use incompatible encodings of PMSI_TUNNEL_ATTRIBUTE when running EVPN over IPv6 next hops. While each implementation works on its own, they are not interoperable.
129+
```
130+
126131
(evpn-global-parameters)=
127132
## Global EVPN Parameters
128133

netsim/devices/frr.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ features:
122122
asymmetrical_irb: True
123123
multi_rt: True
124124
transport: [ vxlan ]
125+
ipv6: True
125126
gateway:
126127
protocol: [ vrrp, anycast ]
127128
isis:

tests/integration/evpn/41-vxlan-ipv6-bridging.yml

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ message: |
1313
Please note it might take a while for the lab to work due to STP learning
1414
phase
1515
16+
defaults.sources.extra: [ ../wait_times.yml, ../warnings.yml ]
1617
plugin: [ fix_mtu ]
1718

1819
addressing:
@@ -23,6 +24,8 @@ addressing:
2324

2425
defaults.vxlan.use_v6_vtep: true
2526

27+
module: [ vlan, vxlan, ospf, bgp, evpn ]
28+
2629
groups:
2730
_auto_create: True
2831
hosts:
@@ -31,9 +34,9 @@ groups:
3134
provider: clab
3235
switches:
3336
members: [ s1, s2 ]
34-
module: [ vlan, vxlan, ospf, bgp, evpn ]
3537
x_switches:
36-
members: [ s2 ]
38+
module: [ ospf, bgp, evpn ]
39+
members: [ probe ]
3740
device: eos
3841
provider: clab
3942

@@ -55,43 +58,57 @@ links:
5558
- s1:
5659
s2:
5760
mtu: 1600
61+
- s1-probe
62+
- s2-probe
5863

5964
validate:
6065
ospf_adj_s1:
61-
description: Check OSPF adjacencies with S1
62-
wait: 40
63-
nodes: [ s2 ]
64-
wait_msg: Waiting for OSPF adjacency process to complete
66+
description: Check OSPFv3 adjacencies with S1
67+
wait: ospfv3_adj_p2p
68+
nodes: [ probe ]
69+
wait_msg: Waiting for OSPFv3 adjacency process to complete
6570
plugin: ospf6_neighbor(nodes.s1.ospf.router_id)
71+
ospf_adj_s2:
72+
description: Check OSPFv3 adjacencies with S2
73+
wait: ospfv3_adj_p2p
74+
nodes: [ probe ]
75+
wait_msg: Waiting for OSPFv3 adjacency process to complete
76+
plugin: ospf6_neighbor(nodes.s2.ospf.router_id)
6677

6778
ibgp_adj_s1:
6879
description: Check IBGP adjacencies with S1
69-
wait: 40
70-
nodes: [ s2 ]
80+
wait: ibgp_session
81+
nodes: [ probe ]
7182
wait_msg: Waiting for IBGP session
7283
plugin: bgp_neighbor(node.bgp.neighbors,'s1',af='ipv6')
84+
ibgp_adj_s2:
85+
description: Check IBGP adjacencies with S2
86+
wait: ibgp_session
87+
nodes: [ probe ]
88+
wait_msg: Waiting for IBGP session
89+
plugin: bgp_neighbor(node.bgp.neighbors,'s2',af='ipv6')
7390

74-
ipv6_adj_s1:
75-
description: Check IPv6 AF on IBGP adjacencies with S1
76-
nodes: [ s2 ]
77-
plugin: bgp_neighbor(node.bgp.neighbors,'s1',activate='ipv6',af='ipv6')
78-
79-
evpn_adj_s1:
80-
description: Check EVPN AF on IBGP adjacencies with S1
81-
nodes: [ s2 ]
82-
plugin: bgp_neighbor(node.bgp.neighbors,'s1',activate='evpn',af='ipv6')
83-
stop_on_error: True
91+
# evpn_adj_s1:
92+
# description: Check EVPN AF on IBGP adjacencies with S1
93+
# nodes: [ probe ]
94+
# plugin: bgp_neighbor(node.bgp.neighbors,'s1',activate='evpn',af='ipv6')
95+
# stop_on_error: True
96+
# evpn_adj_s2:
97+
# description: Check EVPN AF on IBGP adjacencies with S2
98+
# nodes: [ probe ]
99+
# plugin: bgp_neighbor(node.bgp.neighbors,'s2',activate='evpn',af='ipv6')
100+
# stop_on_error: True
84101

85102
ping_red:
86103
description: Ping-based reachability test in VLAN red
87104
wait_msg: Waiting for STP to wake up
88-
wait: 30
105+
wait: ping_stp
89106
nodes: [ h1 ]
90107
plugin: ping('h2')
91108
ping_blue:
92109
description: Ping-based reachability test in VLAN blue
93110
wait_msg: We might have to wait a bit longer
94-
wait: 10
111+
wait: vxlan_ping
95112
nodes: [ h3 ]
96113
plugin: ping('h4')
97114
inter_vlan:

0 commit comments

Comments
 (0)