Updates to network-instance EVPN models for VLAN-aware-bundle support
Change Scope
This is part 1 of splitting the original PR #1108 into 3 separate PRs. This one targets the changes to add VLAN-aware-bundle support.
The EVPN EVI configuration in the existing network-instance model contains a “service-type” leaf used for configuring the type of MACVRF that the EVI represents. EVPN supports 3 different service types, VLAN-based, VLAN-bundle, and VLAN-aware-bundle, but per https://www.openconfig.net/docs/models/evpn_use_cases/, the existing Openconfig model only supports the VLAN-based service type (“In the current version of EVPN Model in Openconfig, VLAN_BASED is supported”).
The existing EVI model only supports configuring a single VNI per-EVI (network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/vni/), while configuring a VLAN-aware-bundle MACVRF requires the ability to configure all of the VNIs contained in the bundle.
To that effect, this change proposes the addition of an additional “vni-list” leaf list, which will allow the configuration of an arbitrary number of VNIs per-MACVRF. This new “vni-list” member will be made conditional on the service-type of the MACVRF being VLAN_AWARE. The existing “vni” member will be made conditional on the service type of the MACVRF being VLAN_BASED or VLAN_AWARE.
Because only VLAN-based MACVRFs are currently supported, and the existing tree will not change for those types of MACVRFs, this change is fully backwards compatible.
New tree state after proposed change (additions in bold):
module: openconfig-network-instance
+--rw network-instances
+--rw network-instance* [name]
+--rw evpn
+--rw evpn-instances
+--rw evpn-instance* [evi]
+--rw vxlan
| +--rw config
| | +--rw vni? oc-evpn-types:vni-id
| | +--rw vni-list* oc-evpn-types:vni-id
| | +--rw overlay-endpoint-network-instance? -> ...
| | +--rw overlay-endpoint? -> ...
| | +--rw host-reachability-bgp? boolean
| | +--rw multicast-group? oc-inet:ip-address
| | +--rw multicast-mask? oc-inet:ip-address
| +--ro state
| | +--ro vni? oc-evpn-types:vni-id
| | +--ro vni-list* oc-evpn-types:vni-id
| | +--ro overlay-endpoint-network-instance? -> ...
| | +--ro overlay-endpoint? -> ...
| +--ro host-reachability-bgp? boolean
| +--ro multicast-group? oc-inet:ip-address
| +--ro multicast-mask? oc-inet:ip-address
+--rw anycast-source-interface
+--rw config
| ...
+--ro state
...
New Yang Paths:
- network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/config/vni-list/
- network-instances/network-instance/evpn/evpn-instances/evpn-instance/vxlan/status/vni-list/
Platform Implementations
Arista EOS:
VLAN-aware-bundle configuration: https://www.arista.com/en/um-eos/eos-evpn-overview#xx1247264
router bgp 65002
...
vlan-aware-bundle foo
rd 1.1.1.11:1213
route-target both 12:13
redistribute learned
vlan 12-13
/gcbrun
No major YANG version changes in commit ade975074bf541dfa2dab851f37cb1e6062deb6e
/gcbrun
/gcbrun
Looks like this is an error of omission from the existing model in order to meet "RFC 7432: BGP MPLS-Based Ethernet VPN, Section 6.2".
Setting this to last call for comments. @earies @limehat @mikewiebe @oscargdd for any comments.
@abamberger-arista please resolve the version number conflict so this will be ready to merge.
Looks like something went wrong with the git branch. the current github diff view shows 23 changed files. @abamberger-arista can you please resolve this for the final review?
Yeah, I botched something while trying to resolve the merge conflict, am working on fixing it up now
Ok, I think it should be fixed now, sorry about that
/gcbrun
Thanks! Last call deadline is August 20, 2024.
/gcbrun