Replies: 5 comments 8 replies
-
No objections on my side. |
Beta Was this translation helpful? Give feedback.
-
The condition for vrfs to be included in the list should be whether they have |
Beta Was this translation helpful? Give feedback.
-
The Say |
Beta Was this translation helpful? Give feedback.
-
Reading this again, I'm guessing you mean for |
Beta Was this translation helpful? Give feedback.
-
@jbemmel: the initial code is in the evpn branch. No idea how broken it is, the CI tests look good, but then we don't have much EVPN coverage. More tomorrow (or in a few days)... |
Beta Was this translation helpful? Give feedback.
-
It totally surprised me, but EVPN with MPLS works on Arista EOS with minor modifications to the EVPN configuration template -- all I had to do (apart from a few ridiculous nerd knobs) is to list VLANs in the BGP process.
To implement MPLS transport in EVPN, we'd add evpn.transport attribute that could be set to mpls (default value would be vxlan for backward compatibility). MPLS transport capability would be controlled by a device feature flag, preventing the need to update existing templates.
The transport will have to be VXLAN or MPLS but not both; I'm not brave enough to dream about implementing mixed MPLS/VXLAN EVPN environment, and trying to figure out which encapsulation to use with which BGP neighbor.
Current EVPN code generates VLAN service, bundle service, or IRB service based on vxlan.vlans attribute. We should replace that with evpn.vlans node attribute. Its default value would be vxlan.vlans attribute unless the evpn.transport is set to MPLS in which case evpn.vlans must be specified. The final evpn.vlans list in the node data would be the authoritative list of EVPN-enabled VLANs.
We could do the same for VRFs -- if the VRF has evpn.transit_vni or if the VRF is specified in evpn.vrfs then the VRF gets EVPN route targets. When missing, the evpn.vrfs list would be generated from VRFs that have evpn.transit_vni attribute.
This change should keep the existing VLAN data structures that are used to generate EVPN configuration templates intact, although I would eventually ask everyone to consider updating the templates to use evpn.vlans and evpn.vrfs lists for consistency.
Any objections or suggestion @ssasso @jbemmel?
Beta Was this translation helpful? Give feedback.
All reactions