public icon indicating copy to clipboard operation
public copied to clipboard

Updates to network-instance EVPN models for VLAN-aware-bundle support

Open abamberger-arista opened this issue 1 year ago • 4 comments

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

abamberger-arista avatar Jun 08 '24 06:06 abamberger-arista

/gcbrun

wenovus avatar Jun 25 '24 21:06 wenovus

No major YANG version changes in commit ade975074bf541dfa2dab851f37cb1e6062deb6e

OpenConfigBot avatar Jun 25 '24 21:06 OpenConfigBot

/gcbrun

wenovus avatar Jun 28 '24 19:06 wenovus

/gcbrun

wenovus avatar Jun 28 '24 19:06 wenovus

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.

dplore avatar Aug 06 '24 20:08 dplore

@abamberger-arista please resolve the version number conflict so this will be ready to merge.

dplore avatar Aug 06 '24 20:08 dplore

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?

LimeHat avatar Aug 07 '24 23:08 LimeHat

Yeah, I botched something while trying to resolve the merge conflict, am working on fixing it up now

abamberger-arista avatar Aug 07 '24 23:08 abamberger-arista

Ok, I think it should be fixed now, sorry about that

abamberger-arista avatar Aug 08 '24 00:08 abamberger-arista

/gcbrun

dplore avatar Aug 08 '24 00:08 dplore

Thanks! Last call deadline is August 20, 2024.

dplore avatar Aug 09 '24 00:08 dplore

/gcbrun

dplore avatar Aug 28 '24 23:08 dplore