rfc9746.original   rfc9746.txt 
BESS Workgroup J. Rabadan, Ed. Internet Engineering Task Force (IETF) J. Rabadan, Ed.
Internet-Draft K. Nagaraj Request for Comments: 9746 K. Nagaraj
Updates: 8365, 7432 (if approved) Nokia Updates: 7432, 8365 Nokia
Intended status: Standards Track W. Lin Category: Standards Track W. Lin
Expires: 17 February 2025 Juniper ISSN: 2070-1721 Juniper
A. Sajassi A. Sajassi
Cisco Cisco
16 August 2024 February 2025
BGP EVPN Multi-Homing Extensions for Split Horizon Filtering BGP EVPN Multihoming Extensions for Split Horizon Filtering
draft-ietf-bess-evpn-mh-split-horizon-11
Abstract Abstract
Ethernet Virtual Private Network (EVPN) is commonly used with Network An Ethernet Virtual Private Network (EVPN) is commonly used with
Virtualization Overlay (NVO) tunnels, as well as MPLS and Segment Network Virtualization Overlay (NVO) tunnels as well as with MPLS and
Routing tunnels. The multi-homing procedures in EVPN may vary based Segment Routing (SR) tunnels. The multihoming procedures in EVPN may
on the type of tunnel used within the EVPN Broadcast Domain. vary based on the type of tunnel used within the EVPN Broadcast
Specifically, there are two multi-homing Split Horizon procedures Domain. Specifically, there are two multihoming Split Horizon
designed to prevent looped frames on multi-homed Customer Edge (CE) procedures designed to prevent looped frames on multihomed Customer
devices: the ESI Label-based procedure and the Local Bias procedure. Edge (CE) devices: the Ethernet Segment Identifier (ESI) Label-based
The ESI Label-based Split Horizon is applied to MPLS-based tunnels, procedure and the Local Bias procedure. The ESI Label-based Split
such as MPLSoUDP, while the Local Bias procedure is used for other Horizon procedure is applied to MPLS-based tunnels such as MPLS over
tunnels, such as VXLAN. UDP (MPLSoUDP), while the Local Bias procedure is used for other
tunnels such as Virtual eXtensible Local Area Network (VXLAN)
tunnels.
Current specifications do not allow operators to choose which Split Current specifications do not allow operators to choose which Split
Horizon procedure to use for tunnel encapsulations that support both Horizon procedure to use for tunnel encapsulations that support both
methods. Examples of tunnels that may support both procedures methods. Examples of tunnels that may support both procedures
include MPLSoGRE, MPLSoUDP, GENEVE, and SRv6. This document updates include MPLSoUDP, MPLS over GRE (MPLSoGRE), Generic Network
the EVPN multi-homing procedures described in RFC 8365 and RFC 7432, Virtualization Encapsulation (GENEVE), and Segment Routing over IPv6
enabling operators to select the Split Horizon procedure that meets (SRv6) tunnels. This document updates the EVPN multihoming
their specific requirements. procedures described in RFCs 7432 and 8365, enabling operators to
select the Split Horizon procedure that meets their specific
requirements.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document is a product of the Internet Engineering Task Force
Task Force (IETF). Note that other groups may also distribute (IETF). It represents the consensus of the IETF community. It has
working documents as Internet-Drafts. The list of current Internet- received public review and has been approved for publication by the
Drafts is at https://datatracker.ietf.org/drafts/current/. Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Internet-Drafts are draft documents valid for a maximum of six months Information about the current status of this document, any errata,
and may be updated, replaced, or obsoleted by other documents at any and how to provide feedback on it may be obtained at
time. It is inappropriate to use Internet-Drafts as reference https://www.rfc-editor.org/info/rfc9746.
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 17 February 2025.
Copyright Notice Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Conventions and Terminology . . . . . . . . . . . . . . . 3 1.1. Conventions and Terminology
1.2. Split Horizon Filtering and Tunnel Encapsulations . . . . 5 1.2. Split Horizon Filtering and Tunnel Encapsulations
2. BGP EVPN Extensions . . . . . . . . . . . . . . . . . . . . . 9 2. BGP EVPN Extensions
2.1. The Split Horizon Type . . . . . . . . . . . . . . . . . 9 2.1. The Split Horizon Type
2.2. Use of the Split Horizon Type In A-D Per ES Routes . . . 10 2.2. Use of the Split Horizon Type in A-D per ES Routes
2.3. ESI Label Value In A-D Per ES Routes . . . . . . . . . . 12 2.3. The ESI Label Value in A-D per ES Routes
2.4. Backwards Compatibility With RFC8365 NVEs . . . . . . . . 12 2.4. Backwards Compatibility with RFC 8365 NVEs
3. Procedures for NVEs Supporting Multiple Encapsulations . . . 13 3. Procedures for NVEs Supporting Multiple Encapsulations
4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 4. Security Considerations
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 5. IANA Considerations
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 6. References
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 6.1. Normative References
7.1. Normative References . . . . . . . . . . . . . . . . . . 17 6.2. Informative References
7.2. Informative References . . . . . . . . . . . . . . . . . 18 Acknowledgments
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 Authors' Addresses
1. Introduction 1. Introduction
Ethernet Virtual Private Networks (EVPN) are commonly used with the Ethernet Virtual Private Networks (EVPNs) are commonly used with the
following tunnel encapsulations: following tunnel encapsulations:
* Network Virtualization Overlay (NVO) tunnels, where the EVPN * Network Virtualization Overlay (NVO) tunnels, where the EVPN
procedures are specified in [RFC8365]. MPLSoGRE [RFC4023], procedures are specified in [RFC8365]. MPLSoGRE [RFC4023],
MPLSoUDP [RFC7510], GENEVE [RFC8926] or VXLAN [RFC7348] tunnels MPLSoUDP [RFC7510], GENEVE [RFC8926], or VXLAN [RFC7348] tunnels
are considered NVO tunnels. are considered NVO tunnels.
* MPLS and Segment Routing with MPLS data plane (SR-MPLS), where the * MPLS and Segment Routing over MPLS (SR-MPLS) tunnels, where the
relevant EVPN procedures are specified in [RFC7432]. Segment relevant EVPN procedures are specified in [RFC7432]. SR-MPLS
Routing with MPLS data plane tunneling is specified in [RFC8660]. tunneling is specified in [RFC8660].
* Segment Routing with IPv6 data plane (SRv6), where the relevant * Segment Routing over IPv6 (SRv6) tunnels, where the relevant EVPN
EVPN procedures are specified in [RFC9252]. SRv6 is specified in procedures are specified in [RFC9252]. SRv6 is specified in
[RFC8402][RFC8754]. [RFC8402] and [RFC8754].
Split Horizon, in this document, follows the definition in [RFC7432]. In this document, the term "Split Horizon" follows the definition in
Split Horizon refers to the EVPN multihoming procedure that prevents [RFC7432]. Split Horizon refers to the EVPN multihoming procedure
a PE from sending a frame back to a multihomed Customer Edge (CE) that prevents a Provider Edge (PE) from sending a frame back to a
when that CE originated the frame in the first place. multihomed Customer Edge (CE) when that CE originated the frame in
the first place.
EVPN multihoming procedures may vary depending on the type of tunnel EVPN multihoming procedures may vary depending on the type of tunnel
utilized within the EVPN Broadcast Domain. Specifically, there are utilized within the EVPN Broadcast Domain. Specifically, there are
two multihoming Split Horizon procedures employed to prevent looped two multihoming Split Horizon procedures employed to prevent looped
frames on multihomed CE devices: the ESI Label-based procedure and frames on multihomed CE devices: the ESI Label-based procedure and
the Local Bias procedure. the Local Bias procedure.
The ESI Label-based Split Horizon procedure is used for MPLS or MPLS- The ESI Label-based Split Horizon procedure is used for MPLS or MPLS
over-X (MPLSoX) tunnels, such as MPLS-over-UDP, and its procedures over X (MPLSoX) tunnels, such as MPLSoUDP, and its procedures are
are detailed in [RFC7432]. Conversely, the Local Bias procedure is detailed in [RFC7432]. Conversely, the Local Bias procedure is used
used for IP-based tunnels, such as VXLAN tunnels, and it is described for IP-based tunnels, such as VXLAN tunnels, and it is described in
in [RFC8365]. [RFC8365].
1.1. Conventions and Terminology 1.1. Conventions and Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
* AC: Attachment Circuit. AC: Attachment Circuit
* A-D per ES route: refers to the EVPN Ethernet Auto-Discovery per A-D per ES route: Auto-Discovery per Ethernet Segment route. Refers
ES route defined in [RFC7432]. to the EVPN Ethernet Auto-Discovery per ES route defined in
[RFC7432].
* Arg.FE2: refers to the ESI filtering argument used for Split Arg.FE2: Refers to the ESI filtering argument used for Split Horizon
Horizon as specified in [RFC9252]. as specified in [RFC9252].
* Broadcast Domain (BD): an emulated Ethernet, such that two systems BD: Broadcast Domain. Refers to an emulated Ethernet, such that two
on the same BD will receive each other's broadcast, unknown and systems on the same BD will receive each other's BUM traffic. In
multicast traffic. In this document, BD also refers to the this document, BD also refers to the instantiation of a BD on an
instantiation of a Broadcast Domain on an EVPN PE. An EVPN PE can EVPN PE. An EVPN PE can be attached to one or multiple BDs of the
be attached to one or multiple BDs of the same tenant. same tenant.
* BUM: Broadcast, Unknown unicast and Multicast traffic. BUM: Broadcast, Unknown Unicast, and Multicast
* Designated Forwarder (DF): as defined in [RFC7432], an ES may be DF: Designated Forwarder. As defined in [RFC7432], an ES may be
multihomed (attached to more than one PE). An ES may also contain multihomed (attached to more than one PE). An ES may also contain
multiple BDs, of one or more EVIs. For each such EVI, one of the multiple BDs of one or more EVIs. For each such EVI, one of the
PEs attached to the segment becomes that EVI's DF for that PEs attached to the segment becomes that EVI's DF for that
segment. Since a BD may belong to only one EVI, we can speak segment. Since a BD may belong to only one EVI, we can speak
unambiguously of the BD's DF for a given segment. unambiguously of the BD's DF for a given segment.
* ES and ESI: Ethernet Segment and Ethernet Segment Identifier. ES: Ethernet Segment
* EVI: EVPN Instance ESI: Ethernet Segment Identifier
* EVI-RT: EVI Route Target. A group of NVEs attached to the same EVI: EVPN Instance
EVI will share the same EVI-RT.
* GENEVE: Generic Network Virtualization Encapsulation, [RFC8926] EVI-RT: EVI Route Target. Refers to a group of NVEs attached to the
([IANA-BGP-TUNNEL-ENCAP] tunnel type 19). same EVI that will share the same EVI-RT.
* MPLS tunnels and non-MPLS NVO tunnels: refer to Multi-Protocol GENEVE: Generic Network Virtualization Encapsulation [RFC8926] (see
Label Switching (or the absence of it) Network Virtualization tunnel type 19 in [TUNNEL-ENCAP]).
Overlay tunnels. Network Virtualization Overlay tunnels use an IP
encapsulation for overlay frames, where the source IP address
identifies the ingress NVE and the destination IP address the
egress NVE.
* MPLSoUDP: Multi-Protocol Label Switching over User Datagram MPLS tunnels and non-MPLS NVO tunnels: Refers to Multiprotocol Label
Protocol, [RFC7510] ([IANA-BGP-TUNNEL-ENCAP] tunnel type 13). Switching (or the absence of it) Network Virtualization Overlay
tunnels. NVO tunnels use an IP encapsulation for overlay frames,
where the source IP address identifies the ingress NVE and the
destination IP address identifies the egress NVE.
* MPLSoGRE: Multi-Protocol Label Switching over Generic Network MPLSoUDP: Multiprotocol Label Switching over User Datagram Protocol
Encapsulation, [RFC4023] ([IANA-BGP-TUNNEL-ENCAP] tunnel type 11). [RFC7510] (see tunnel type 13 in [TUNNEL-ENCAP]).
* MPLSoX: refers to MPLS over any IP encapsulation. Examples are MPLSoGRE: Multiprotocol Label Switching over Generic Network
MPLS-over-UDP or MPLS-over-GRE. Encapsulation [RFC4023] (see tunnel type 11 in [TUNNEL-ENCAP]).
* NVE: Network Virtualization Edge device. MPLSoX: Refers to MPLS over any IP encapsulation, for example,
MPLSoUDP or MPLSoGRE.
* NVGRE: Network Virtualization Using Generic Routing Encapsulation, NVE: Network Virtualization Edge
[RFC7637] ([IANA-BGP-TUNNEL-ENCAP] tunnel type 9).
* VXLAN: Virtual eXtensible Local Area Network, [RFC7348] NVGRE: Network Virtualization Using Generic Routing Encapsulation
([IANA-BGP-TUNNEL-ENCAP] tunnel type 8). [RFC7637] (see tunnel type 9 in [TUNNEL-ENCAP]).
* VXLAN-GPE: VXLAN Generic Protocol Extension, VXLAN: Virtual eXtensible Local Area Network [RFC7348] (see tunnel
[I-D.ietf-nvo3-vxlan-gpe] ([IANA-BGP-TUNNEL-ENCAP] tunnel type type 8 in [TUNNEL-ENCAP]).
12).
* SHT: Split Horizon Type, it refers to the Split Horizon method VXLAN-GPE: VXLAN Generic Protocol Extension [VXLAN-GPE] (see tunnel
that a PE intends to use and advertises in an A-D per ES route. type 12 in [TUNNEL-ENCAP]).
* SRv6: Segment Routing with an IPv6 data plane, [RFC8402][RFC8754]. SHT: Split Horizon Type. Refers to the Split Horizon method that a
PE intends to use and advertises in an A-D per ES route.
SRv6: Segment Routing over IPv6 (see [RFC8402] and [RFC8754]).
This document also assumes familiarity with the terminology of This document also assumes familiarity with the terminology of
[RFC7432] and [RFC8365]. [RFC7432] and [RFC8365].
1.2. Split Horizon Filtering and Tunnel Encapsulations 1.2. Split Horizon Filtering and Tunnel Encapsulations
EVPN supports two Split Horizon Filtering mechanisms: EVPN supports two Split Horizon filtering mechanisms:
* ESI Label based Split Horizon filtering [RFC7432] 1. ESI Label-based Split Horizon filtering [RFC7432]:
When EVPN is employed for MPLS transport tunnels, an MPLS label When EVPN is employed for MPLS transport tunnels, an MPLS label
facilitates Split Horizon filtering to support All-Active facilitates Split Horizon filtering to support All-Active
multihoming. The ingress Network Virtualization Edge (NVE) device multihoming. The ingress NVE device appends a label
appends a label corresponding to the source Ethernet Segment corresponding to the source Ethernet Segment Identifier (ESI
Identifier (ESI label) during packet encapsulation. The egress label) during packet encapsulation. The egress NVE verifies the
NVE verifies the ESI label when attempting to forward a multi- ESI label when attempting to forward a multi-destination frame
destination frame through a local Ethernet Segment (ES) interface. through a local Ethernet Segment (ES) interface. If the ESI
If the ESI label matches the site identifier (ESI) associated with label matches the site identifier (ESI) associated with that ES
that ES interface, the packet is not forwarded. This mechanism interface, then the packet is not forwarded. This mechanism
effectively prevents forwarding loops for BUM traffic. effectively prevents forwarding loops for BUM traffic.
The ESI Label Split Horizon filtering should also be utilized with ESI Label Split Horizon filtering should also be utilized with
Single-Active multihoming to prevent transient loops for in-flight Single-Active multihoming to prevent transient loops for in-
packets when the egress NVE assumes the role of Designated flight packets when the egress NVE assumes the role of DF for an
Forwarder for an ES. ES.
* Local Bias [RFC8365] 2. Local Bias filtering [RFC8365]:
Since IP tunnels, such as VXLAN or NVGRE, do not support the ESI Since IP tunnels such as VXLAN or NVGRE do not support the ESI
label or any MPLS label, an alternative Split Horizon filtering label or any MPLS label, an alternative Split Horizon filtering
procedure must be implemented for All-Active multihoming. This procedure must be implemented for All-Active multihoming. This
mechanism, known as Local Bias, relies on the source IP address of mechanism, known as Local Bias, relies on the source IP address
the tunnel to determine whether to forward BUM traffic to a local of the tunnel to determine whether to forward BUM traffic to a
Ethernet Segment (ES) interface at the egress Network local ES interface at the egress NVE.
Virtualization Edge (NVE).
In summary and as specified in [RFC8365], each NVE tracks the IP In summary and as specified in [RFC8365], each NVE tracks the IP
address(es) of other NVEs with which it shares multihomed ESs. address(es) of other NVEs with which it shares multihomed ESs.
Upon receiving a BUM frame encapsulated in an IP tunnel, the Upon receiving a BUM frame encapsulated in an IP tunnel, the
egress NVE inspects the source IP address in the tunnel header, egress NVE inspects the source IP address in the tunnel header,
which identifies the ingress NVE. The egress NVE then filters out which identifies the ingress NVE. The egress NVE then filters
the frame on all local interfaces connected to ESs that are shared out the frame on all local interfaces connected to ESs that are
with the ingress NVE. shared with the ingress NVE.
Due to this behavior at the egress NVE, the ingress NVE is Due to this behavior at the egress NVE, the ingress NVE is
required to perform local replication to all directly attached required to perform local replication to all directly attached
ESs, regardless of the Designated Forwarder election state, for ESs, regardless of the DF election state, for all BUM traffic
all BUM traffic ingressing from the access Attachment Circuits ingressing from the access ACs. This local replication at the
(ACs). This local replication at the ingress NVE is the basis for ingress NVE is the basis for the term "Local Bias".
the term Local Bias.
Local Bias is not suitable for Single-Active multihoming, as the Local Bias is not suitable for Single-Active multihoming, as the
ingress NVE deactivates the ACs for which it is not the Designated ingress NVE deactivates the ACs for which it is not the DF.
Forwarder. Consequently, local replication to non-Designated Consequently, local replication to non-DF ACs cannot occur,
Forwarder ACs cannot occur, leading to transient in-flight BUM leading to transient in-flight BUM packets being looped back to
packets to be looped back to the originating site by newly elected the originating site by newly elected DF egress NVEs.
Designated Forwarder egress NVEs.
[RFC8365] specifies that Local Bias is exclusively utilized for IP [RFC8365] specifies that Local Bias is exclusively utilized for IP
tunnels, while ESI Label-based Split Horizon is employed for IP-based tunnels, while ESI Label-based Split Horizon is employed for IP-based
MPLS tunnels. However, IP-based MPLS tunnels, such as MPLS over GRE MPLS tunnels. However, IP-based MPLS tunnels such as MPLSoGRE or
(MPLSoGRE) or MPLS over UDP (MPLSoUDP), are also categorized as IP MPLSoUDP are also categorized as IP tunnels and have the potential to
tunnels and have the potential to support both procedures. These support both procedures. These tunnels are capable of carrying ESI
tunnels are capable of carrying ESI labels and also utilize a tunnel labels and also utilize a tunnel IP header in which the source IP
IP header in which the source IP address identifies the ingress address identifies the ingress NVE.
Network Virtualization Edge (NVE).
Similarly, certain IP tunnels - that include an identifier for the Similarly, certain IP tunnels (those that include an identifier for
source Ethernet Segment (ES) in the tunnel header - may also the source ES in the tunnel header) may also potentially support
potentially support either procedure. Examples of such tunnels either procedure. Examples of such tunnels include GENEVE and SRv6:
include GENEVE and SRv6.:
* In a GENEVE tunnel, the source IP address identifies the ingress * In a GENEVE tunnel, the source IP address identifies the ingress
NVE therefore local bias is possible. Also, NVE; therefore, Local Bias is possible. Also, Section 4.1 of
[I-D.ietf-bess-evpn-geneve] section 4.1 defines an Ethernet option [EVPN-GENEVE] defines an Ethernet option Type-Length-Value (TLV)
TLV (Type Length Value) to encode an ESI label value. to encode an ESI label value.
* In an SRv6 tunnel, the source IP address identifies the ingress * In an SRv6 tunnel, the source IP address identifies the ingress
NVE. By default, and as outlined in [RFC9252], the ingress PE NVE. By default, and as outlined in [RFC9252], the ingress PE
adds specific information to the SRv6 packet to enable the egress adds specific information to the SRv6 packet to enable the egress
PE to identify the source ES of the BUM packet. This information PE to identify the source ES of the BUM packet. This information
is the ESI filtering argument (Arg.FE2) [RFC9252] (section 6.1.1) is the ESI filtering argument (Arg.FE2) (see Section 6.1.1 of
[RFC8986] (section 4.12) of the service Segment Identifier (SID) [RFC9252] and Section 4.12 of [RFC8986]) of the service Segment
received on an A-D per ES route from the egress PE. Identifier (SID) received on an A-D per ES route from the egress
PE.
Table 1 presents various tunnel encapsulations along with their Table 1 presents various tunnel encapsulations along with their
supported and default Split Horizon methods. For GENEVE, the default supported and default Split Horizon methods. For GENEVE, the default
Split Horizon Type (SHT) is contingent upon the negotiation of the SHT is contingent upon the negotiation of the Ethernet Option with
Ethernet Option with the Source ID TLV. In the case of SRv6, the the Source ID TLV. In the case of SRv6, the default SHT is specified
default SHT is specified as ESI Label filtering in the table, as its as ESI Label filtering in the table, as its behavior is analogous to
behavior is analogous to that of ESI Label filtering. In this that of ESI Label filtering. In this document, "ESI Label filtering"
document, ESI Label filtering refers to the Split Horizon filtering refers to the Split Horizon filtering based on the presence of a
based on the presence of a source Ethernet Segment (ES) identifier in source ES identifier in the tunnel header.
the tunnel header.
This document classifies the tunnel encapsulations used by EVPN into: This document classifies the tunnel encapsulations used by EVPN into:
1. IP-based MPLS tunnels 1. IP-based MPLS tunnels
2. (SR-)MPLS tunnels, that is, MPLS and Segment Routing with MPLS 2. (SR-)MPLS tunnels, that is, MPLS and Segment Routing with MPLS
data plane tunnels data plane tunnels
3. IP tunnels 3. IP tunnels
4. SRv6 tunnels 4. SRv6 tunnels
Table 1 lists the encapsulations supported by this document. Any Table 1 lists the encapsulations supported by this document. Any
tunnel encapsulation not listed in Table 1) is out of scope. Tunnel tunnel encapsulation not listed in Table 1 is out of scope. Tunnel
encapsulations used by EVPN can be categorized into one of the four encapsulations used by EVPN can be categorized into one of the four
encapsulation groups mentioned above and support Split Horizon encapsulation groups mentioned above and support Split Horizon
filtering based on the following rules: filtering based on the following rules:
* IP-based MPLS tunnels and SRv6 tunnels are capable of supporting * IP-based MPLS tunnels and SRv6 tunnels are capable of supporting
both Split Horizon filtering methods. both Split Horizon filtering methods.
* (SR-)MPLS tunnels only support ESI Label-based Split Horizon * (SR-)MPLS tunnels only support ESI Label-based Split Horizon
filtering filtering.
* IP tunnels support Local Bias Split Horizon filtering and may also * IP tunnels support Local Bias Split Horizon filtering and may also
support ESI Label-based Split Horizon filtering, provided they support ESI Label-based Split Horizon filtering, provided they
incorporate a mechanism to identify the source ESI in the header. incorporate a mechanism to identify the source ESI in the header.
+===============+=========================+============+===========+ +===============+====================+============+===========+
| Tunnel | Default Split Horizon | Supports | Supports | | Tunnel | Default Split | Supports | Supports |
| Encapsulation | Type (SHT) | Local Bias | ESI Label | | Encapsulation | Horizon Type (SHT) | Local Bias | ESI Label |
+===============+=========================+============+===========+ +===============+====================+============+===========+
| MPLSoGRE (IP- | ESI Label filtering | Yes | Yes | | MPLSoGRE (IP- | ESI Label | Yes | Yes |
| based MPLS) | | | | | based MPLS) | filtering | | |
+---------------+-------------------------+------------+-----------+ +---------------+--------------------+------------+-----------+
| MPLSoUDP (IP- | ESI Label filtering | Yes | Yes | | MPLSoUDP (IP- | ESI Label | Yes | Yes |
| based MPLS) | | | | | based MPLS) | filtering | | |
+---------------+-------------------------+------------+-----------+ +---------------+--------------------+------------+-----------+
| (SR-)MPLS | ESI Label filtering | No | Yes | | (SR-)MPLS | ESI Label | No | Yes |
+---------------+-------------------------+------------+-----------+ | | filtering | | |
| VXLAN (IP | Local Bias | Yes | No | +---------------+--------------------+------------+-----------+
| tunnels) | | | | | VXLAN (IP | Local Bias | Yes | No |
+---------------+-------------------------+------------+-----------+ | tunnels) | | | |
| NVGRE (IP | Local Bias | Yes | No | +---------------+--------------------+------------+-----------+
| tunnels) | | | | | NVGRE (IP | Local Bias | Yes | No |
+---------------+-------------------------+------------+-----------+ | tunnels) | | | |
| VXLAN-GPE (IP | Local Bias | Yes | No | +---------------+--------------------+------------+-----------+
| tunnels) | | | | | VXLAN-GPE (IP | Local Bias | Yes | No |
+---------------+-------------------------+------------+-----------+ | tunnels) | | | |
| GENEVE (IP | Local Bias (no ESI Lb), | Yes | Yes | +---------------+--------------------+------------+-----------+
| tunnels) | ESI Label (if ESI lb) | | | | GENEVE (IP | Local Bias (if no | Yes | Yes |
+---------------+-------------------------+------------+-----------+ | tunnels) | ESI Lb), ESI Label | | |
| SRv6 | ESI Label filtering | Yes | Yes | | | (if ESI lb) | | |
+---------------+-------------------------+------------+-----------+ +---------------+--------------------+------------+-----------+
| SRv6 | ESI Label | Yes | Yes |
| | filtering | | |
+---------------+--------------------+------------+-----------+
Table 1: Tunnel Encapsulations and Split Horizon Types Table 1: Tunnel Encapsulations and Split Horizon Types
The ESI Label method is applicable for both All-Active and Single- The ESI Label method is applicable for both All-Active and Single-
Active configurations, whereas the Local Bias method is suitable only Active configurations, whereas the Local Bias method is suitable only
for All-Active configurations. Moreover, the ESI Label method is for All-Active configurations. Moreover, the ESI Label method is
effective across different network domains, while Local Bias is effective across different network domains, while Local Bias is
constrained to networks where there is no change in the next hop constrained to networks where there is no change in the next hop
between the NVEs attached to the same ES. Nonetheless, some between the NVEs attached to the same ES. Nonetheless, some
operators favor the Local Bias method due to its simplification of operators favor the Local Bias method due to its simplification of
the encapsulation process, reduced resource consumption on NVEs, and the encapsulation process, reduced resource consumption on NVEs, and
the fact that the ingress NVE always forwards traffic locally to the fact that the ingress NVE always forwards traffic locally to
skipping to change at page 9, line 14 skipping to change at line 374
NVGRE, will continue to adhere to the procedures specified in NVGRE, will continue to adhere to the procedures specified in
[RFC8365]. Note that this document does not modify the Local Bias or [RFC8365]. Note that this document does not modify the Local Bias or
the ESI Label Split Horizon procedures themselves, just focuses on the ESI Label Split Horizon procedures themselves, just focuses on
the signaling and selection of the Split Horizon method to apply by the signaling and selection of the Split Horizon method to apply by
the multihomed NVEs. the multihomed NVEs.
2. BGP EVPN Extensions 2. BGP EVPN Extensions
Extensions to EVPN are required to enable NVEs to advertise their Extensions to EVPN are required to enable NVEs to advertise their
preferred Split Horizon method for a given ES. Figure 1 illustrates preferred Split Horizon method for a given ES. Figure 1 illustrates
the ESI Label extended community ([RFC7432] Section 7.5), which is the ESI Label extended community (Section 7.5 of [RFC7432]), which is
consistently advertised alongside the EVPN A-D per ES route. All consistently advertised alongside the EVPN A-D per ES route. All
NVEs connected to an ES advertise an A-D per ES route for that ES, NVEs connected to an ES advertise an A-D per ES route for that ES,
including the extended community, which communicates information including the extended community, which communicates information
regarding the multihoming mode (either All-Active or Single-Active) regarding the multihoming mode (either All-Active or Single-Active)
and, if necessary, specifies the ESI Label to be utilized. and, if necessary, specifies the ESI Label to be utilized.
1 2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06 | Sub-Type=0x01 | Flags(1 octet)| Reserved=0 | | Type=0x06 | Sub-Type=0x01 | Flags(1 octet)| Reserved=0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved=0 | ESI Label | | Reserved=0 | ESI Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: ESI Label extended community Figure 1: ESI Label Extended Community
[RFC7432] defines the low-order bit of the Flags octet (bit 0) as the [RFC7432] defines the low-order bit of the Flags octet (bit 0) as the
"Single-Active" bit: "Single-Active" bit:
* A value of 0 means that the multihomed ES is operating in All- * A value of 0 means that the multihomed ES is operating in All-
Active multihoming redundancy mode. Active multihoming redundancy mode.
* A value of 1 means that the multihomed ES is operating in Single- * A value of 1 means that the multihomed ES is operating in Single-
Active multihoming redundancy mode. Active multihoming redundancy mode.
Section 5 establishes a registry for the Flags octet, designating the Section 5 establishes a registry for the Flags octet, designating the
"Single-Active" bit as the low-order bit of the newly defined "Single-Active" bit as the low-order bit of the newly defined
multihoming redundancy mode field. Multihoming Redundancy Mode field.
2.1. The Split Horizon Type 2.1. The Split Horizon Type
[RFC8365] does not include any explicit indication regarding the [RFC8365] does not include any explicit indication regarding the
Split Horizon method in the A-D per Ethernet Segment (ES) route. In Split Horizon method in the A-D per ES route. In this document, the
this document, the Split Horizon procedure defined in [RFC8365] Split Horizon procedure defined in Section 8.3.1 of [RFC8365] is
(section 8.3.1) is considered the default behavior, presuming that considered the default behavior, presuming that Local Bias is
Local Bias is employed exclusively for IP tunnels, while ESI Label- employed exclusively for IP tunnels, while ESI Label-based Split
based Split Horizon is used for IP-based MPLS tunnels. This document Horizon is used for IP-based MPLS tunnels. This document specifies
specifies that the two high-order bits in the Flags octet (bits 6 and that the two high-order bits in the Flags octet (bits 6 and 7)
7) constitute the "Split Horizon Type" (SHT) field, where: constitute the "Split Horizon Type" or "SHT" field, where:
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|SHT| |RED| |SHT| |RED|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
RED = "Multihoming Redundancy Mode" field (section 5) RED = "Multihoming Redundancy Mode" field (section 5)
SHT bit 7 6 SHT bit 7 6
----------- -----------
0 0 --> Default SHT 0 0 --> Default SHT
Backwards compatible with [RFC8365] and [RFC7432] Backwards compatible with [RFC8365] and [RFC7432]
0 1 --> Local Bias 0 1 --> Local Bias
1 0 --> ESI Label based filtering 1 0 --> ESI Label-based filtering
1 1 --> reserved for future use 1 1 --> reserved for future use
* SHT = 00 is backwards compatible with [RFC8365] and [RFC7432], and * SHT = 00 is backwards compatible with [RFC8365] and [RFC7432], and
indicates that the advertising NVE intends to use the default or indicates that the advertising NVE intends to use the default or
built-in SHT. The default SHT is shown in Table 1 for each built-in SHT. The default SHT is shown in Table 1 for each
encapsulation. An egress NVE that follows the [RFC8365] behavior encapsulation. An egress NVE that follows the [RFC8365] behavior
and does not support this specification will ignore the SHT bits and does not support this specification will ignore the SHT bits
(which is equivalent to process them as value of 00). (which is equivalent to processing them as a value of 00).
* SHT = 01 indicates that the advertising NVE intends to use Local * SHT = 01 indicates that the advertising NVE intends to use Local
Bias procedures in the ES for which the AD per-ES route is Bias procedures in the ES for which the AD per-ES route is
advertised. advertised.
* SHT = 10 indicates that the advertising NVE intends to use the ESI * SHT = 10 indicates that the advertising NVE intends to use the ESI
Label based Split Horizon method procedures in the ES for which Label-based Split Horizon method procedures in the ES for which
the AD per-ES route is advertised. the AD per-ES route is advertised.
* SHT = 11 is a reserved value, for future use. * SHT = 11 is a reserved value, for future use.
2.2. Use of the Split Horizon Type In A-D Per ES Routes 2.2. Use of the Split Horizon Type in A-D per ES Routes
The following behavior is observed: The following behavior is observed:
* An SHT value of 01 or 10 MUST NOT be used with encapsulations that * An SHT value of 01 or 10 MUST NOT be used with encapsulations that
support only one SHT in Table 1, and MAY be used by encapsulations support only one SHT in Table 1, and MAY be used by encapsulations
that support the two SHTs in Table 1. that support the two SHTs in Table 1.
* An SHT value different from 00 expresses the intent to use a * An SHT value different than 00 expresses the intent to use a
specific Split Horizon method, but does not reflect the actual specific Split Horizon method, but does not reflect the actual
operational SHT used by the advertising NVE, unless all the NVEs operational SHT used by the advertising NVE, unless all the NVEs
attached to the ES advertise the same SHT. attached to the ES advertise the same SHT.
* In case of inconsistency in the SHT value advertised by the NVEs * In case of an inconsistency in the SHT value advertised by the
attached to the same ES for a given EVI, all the NVEs MUST revert NVEs attached to the same ES for a given EVI, all the NVEs MUST
to the [RFC8365] behavior, and use the default SHT in Table 1, revert to the behavior in [RFC8365] and use the default SHT in
irrespective of the advertised SHT. Table 1, irrespective of the advertised SHT.
* An SHT different from 00 MUST NOT be set if the Single-Active bit * An SHT different than 00 MUST NOT be set if the "Single-Active"
is set. A received A-D per ES route where Single-Active and SHT bit is set. A received A-D per ES route where the "Single-Active"
bits are different from zero MUST follow the treat-as-withdraw and SHT bits are different than zero MUST follow the treat-as-
behavior [RFC7606]. withdraw behavior in [RFC7606].
* The SHT MUST have the same value in each Ethernet A-D per ES route * The SHT MUST have the same value in each Ethernet A-D per ES route
that an NVE advertises for a given ES and a given encapsulation that an NVE advertises for a given ES and a given encapsulation
(see Section 3 for NVEs supporting multiple encapsulations). (see Section 3 for NVEs supporting multiple encapsulations).
As an example, egress NVEs that support IP-based MPLS tunnels, such As an example, egress NVEs that support IP-based MPLS tunnels, such
as MPLSoGRE or MPLSoUDP, will advertise A-D per ES routes for the ES as MPLSoGRE or MPLSoUDP, will advertise A-D per ES routes for the ES
along with the BGP Encapsulation extended community, as defined in along with the BGP Encapsulation Extended Community, as defined in
[RFC9012]. This extended community indicates the encapsulation type [RFC9012]. This extended community indicates the encapsulation type
(MPLSoGRE or MPLSoUDP) and may use the SHT value of 01 or 10 to (MPLSoGRE or MPLSoUDP) and may use the SHT value of 01 or 10 to
signify the intent to use Local Bias or ESI Label, respectively. signify the intent to use Local Bias or the ESI Label, respectively.
An egress NVE MUST NOT use an SHT value other than 00 when An egress NVE MUST NOT use an SHT value other than 00 when
advertising an A-D per ES route with [RFC9012] Tunnel encapsulation advertising an A-D per ES route with [RFC9012] Tunnel encapsulation
types of VXLAN (type 8), NVGRE (type 9), MPLS (type 10), or no BGP types of VXLAN (type 8), NVGRE (type 9), MPLS (type 10), or no BGP
tunnel encapsulation extended community at all. In all these cases, Tunnel Encapsulation Extended Community at all. In all these cases,
it is presumed that there is no choice for the Split Horizon method; it is presumed that there is no choice for the Split Horizon method;
therefore, the SHT value MUST be set to 00. If a route with any of therefore, the SHT value MUST be set to 00. If a route with any of
the mentioned encapsulation options is received and has an SHT value the mentioned encapsulation options is received and has an SHT value
different from 00, it SHOULD apply the treat-as-withdraw behavior, different than 00, it SHOULD apply the treat-as-withdraw behavior,
per [RFC7606]. per [RFC7606].
An egress NVE advertising A-D per ES route(s) for an ES with GENEVE An egress NVE advertising A-D per ES route(s) for an ES with GENEVE
encapsulation ([RFC9012], Tunnel encapsulation type 19, encapsulation ([RFC9012], Tunnel encapsulation type 19,
[I-D.ietf-bess-evpn-geneve]) MAY use an SHT value of 01 or 10. A [EVPN-GENEVE]) MAY use an SHT value of 01 or 10. A value of 01
value of 01 indicates the intent to use Local Bias, regardless of the indicates the intent to use Local Bias, regardless of the presence of
presence of an Ethernet option TLV with a non-zero Source-ID, as an Ethernet option TLV with a non-zero Source-ID, as described in
described in [I-D.ietf-bess-evpn-geneve]. A value of 10 indicates [EVPN-GENEVE]. A value of 10 indicates the intent to use ESI Label-
the intent to use ESI Label-based Split Horizon, and it is only valid based Split Horizon, and it is only valid if an Ethernet option TLV
if an Ethernet option TLV with non-zero Source-ID is present. A with a non-zero Source-ID is present. A value of 00 indicates the
value of 00 indicates the default behavior outlined in Table 1, which default behavior outlined in Table 1, which is to use Local Bias if:
is to use Local Bias if: a) no ESI-Label is present in the Ethernet
option TLV, or b) if there is no Ethernet option TLV. Otherwise, the a. no ESI Label is present in the Ethernet option TLV, or
ESI Label Split Horizon method is applied.
b. there is no Ethernet option TLV.
Otherwise, the ESI Label Split Horizon method is applied.
These procedures assume a single encapsulation supported in the These procedures assume a single encapsulation supported in the
egress NVE. Section 3 describes additional procedures for NVEs egress NVE. Section 3 describes additional procedures for NVEs
supporting multiple encapsulations. supporting multiple encapsulations.
2.3. ESI Label Value In A-D Per ES Routes 2.3. The ESI Label Value in A-D per ES Routes
This document also updates [RFC8365] regarding the value that is This document also updates [RFC8365] regarding the value that is
advertised in the ESI Label field of the ESI Label extended advertised in the ESI Label field of the ESI Label extended
community, as follows: community, as follows:
* The A-D per ES route(s) for an ES MAY have an ESI Label value of * The A-D per ES route(s) for an ES MAY have an ESI Label value of
zero if the SHT value is 01. Section 2.2 specifies the scenarios zero if the SHT value is 01. Section 2.2 specifies the scenarios
where the SHT can be 01. An ESI Label value of zero eliminates where the SHT can be 01. An ESI Label value of zero eliminates
the need to allocate labels in cases where they are not utilized, the need to allocate labels in cases where they are not utilized,
such as in the Local Bias method. such as in the Local Bias method.
* The A-D per ES route(s) for an ES MAY have an ESI Label value of * The A-D per ES route(s) for an ES MAY have an ESI Label value of
zero for VXLAN or NVGRE encapsulations. zero for VXLAN or NVGRE encapsulations.
2.4. Backwards Compatibility With RFC8365 NVEs 2.4. Backwards Compatibility with RFC 8365 NVEs
As discussed in Section 2.2 this specification is backwards As discussed in Section 2.2, this specification is backwards
compatible with the Split Horizon filtering behavior in [RFC8365] and compatible with the Split Horizon filtering behavior in [RFC8365] and
a non-upgraded NVE can be attached to the same ES as other NVEs a non-upgraded NVE can be attached to the same ES as other NVEs
supporting this specification. supporting this specification.
An NVE maintains an administrative SHT value for an Ethernet Segment An NVE maintains an administrative SHT value for an ES, which is
(ES), which is advertised alongside the A-D per ES route, and an advertised alongside the A-D per ES route, and an operational SHT
operational SHT value, which is the one actually used regardless of value, which is the one actually used regardless of what the NVE has
what the NVE has advertised. The administrative SHT matches the advertised. The administrative SHT matches the operational SHT if
operational SHT if all the NVEs attached to the ES have the same all the NVEs attached to the ES have the same administrative SHT.
administrative SHT.
This document assumes that an implementation of [RFC7432] or This document assumes that an implementation of [RFC7432] or
[RFC8365] that does not support the specifications in this document [RFC8365] that does not support the specifications in this document
will ignore the values of all the Flags in the ESI Label extended will ignore the values of all the Flags in the ESI Label extended
community, except for the Single-Active bit. Based on this community, except for the "Single-Active" bit. Based on this
assumption, a non-upgraded NVE will disregard any SHT value other assumption, a non-upgraded NVE will disregard any SHT value other
than 00. If an upgraded NVE receives at least one A-D per ES route than 00. If an upgraded NVE receives at least one A-D per ES route
for the ES with an SHT value of 00, it MUST revert its operational for the ES with an SHT value of 00, it MUST revert its operational
SHT to the default Split Horizon method, as described in Table 1, SHT to the default Split Horizon method, as described in Table 1,
irrespective of its administrative SHT. irrespective of its administrative SHT.
For instance, consider an NVE attached to ES N that receives two A-D For instance, consider an NVE attached to ES N that receives two A-D
per ES routes for N from different NVEs, NVE1 and NVE2. If the route per ES routes for N from different NVEs, NVE1 and NVE2. If the route
from NVE1 has an SHT value of 00 and the one from NVE2 has an SHT from NVE1 has an SHT value of 00 and the one from NVE2 has an SHT
value of 01, the NVE MUST use the default Split Horizon method value of 01, the NVE MUST use the default Split Horizon method
skipping to change at page 13, line 37 skipping to change at line 587
As specified in [RFC8365], an NVE that supports multiple data plane As specified in [RFC8365], an NVE that supports multiple data plane
encapsulations (e.g., VXLAN, NVGRE, MPLS, MPLSoUDP, GENEVE) must encapsulations (e.g., VXLAN, NVGRE, MPLS, MPLSoUDP, GENEVE) must
indicate all supported encapsulations using BGP Encapsulation indicate all supported encapsulations using BGP Encapsulation
extended communities as defined in [RFC9012] for all EVPN routes. extended communities as defined in [RFC9012] for all EVPN routes.
This section provides clarification on the multihoming Split Horizon This section provides clarification on the multihoming Split Horizon
behavior for NVEs that advertise and receive multiple BGP behavior for NVEs that advertise and receive multiple BGP
Encapsulation extended communities along with the A-D per ES routes. Encapsulation extended communities along with the A-D per ES routes.
This section uses the notation {x, y} (more than two encapsulations This section uses the notation {x, y} (more than two encapsulations
is possible too) to denote the encapsulations advertised in BGP is possible too) to denote the encapsulations advertised in BGP
Encapsulation extended communities (or BGP Tunnel Encapsulation Encapsulation extended communities (or the BGP Tunnel Encapsulation
Attribute), where x and y represent different encapsulation values. Attribute), where x and y represent different encapsulation values.
When GENEVE is one of the encapsulations, the tunnel type is When GENEVE is one of the encapsulations, the tunnel type is
indicated in either a BGP Encapsulation extended community or a BGP indicated in either a BGP Encapsulation extended community or a BGP
Tunnel Encapsulation Attribute. Tunnel Encapsulation Attribute.
It is important to note that an NVE MAY advertise multiple A-D per ES It is important to note that an NVE MAY advertise multiple A-D per ES
routes for the same ES, rather than a single route, with each route routes for the same ES, rather than a single route, with each route
conveying a set of Route Targets (RT). The total set of Route conveying a set of Route Targets (RTs). The total set of RTs
Targets associated with a given ES is referred to as the RT-set for associated with a given ES is referred to as the RT-set for that ES.
that ES. Each of the EVIs represented in the RT-set will have its RT Each of the EVIs represented in the RT-set will have its RT included
included in one, and only one, A-D per ES route for the ES. When in one, and only one, A-D per ES route for the ES. When multiple A-D
multiple A-D per ES routes are advertised for the same ES, each route per ES routes are advertised for the same ES, each route must have a
must have a distinct Route Distinguisher. distinct Route Distinguisher.
As per [RFC8365], an NVE that advertises multiple encapsulations in As per [RFC8365], an NVE that advertises multiple encapsulations in
the A-D per ES route(s) for an ES MUST advertise encapsulations that the A-D per ES route(s) for an ES MUST advertise encapsulations that
use the same Split Horizon filtering method in the same route. For use the same Split Horizon filtering method in the same route. For
example: example:
* An A-D per ES route for ES-x may be advertised with {VXLAN, NVGRE} * An A-D per ES route for ES-x may be advertised with {VXLAN, NVGRE}
encapsulations. encapsulations.
* An A-D per ES route for ES-y may be advertised with {MPLS, * An A-D per ES route for ES-y may be advertised with {MPLS,
MPLSoUDP, MPLSoGRE} encapsulations (or a subset). MPLSoUDP, MPLSoGRE} encapsulations (or a subset).
* But an A-D per ES route for ES-z MUST NOT be advertised with * However, an A-D per ES route for ES-z MUST NOT be advertised with
{MPLS, VXLAN} encapsulations. {MPLS, VXLAN} encapsulations.
This document extends the described behavior as follows: This document extends the described behavior as follows:
a. An A-D per ES route for ES-x may be advertised with multiple a. An A-D per ES route for ES-x may be advertised with multiple
encapsulations, some of which support a single Split Horizon encapsulations, some of which support a single Split Horizon
method. In this case, the Split Horizon Type (SHT) value MUST be method. In this case, the SHT value MUST be 00. For instance,
00. For instance, encapsulations such as {VXLAN, NVGRE}, {VXLAN, encapsulations such as {VXLAN, NVGRE}, {VXLAN, GENEVE}, or {MPLS,
GENEVE}, or {MPLS, MPLSoGRE, MPLSoUDP} can be advertised in an MPLSoGRE, MPLSoUDP} can be advertised in an A-D per ES route. In
A-D per ES route. In all these cases, the SHT value MUST be 00 all these cases, the SHT value MUST be 00 and the treat-as-
and the behavior treat-as-withdraw [RFC7606] is applied in case withdraw behavior [RFC7606] is applied in case of any other
of any other value. value.
b. An A-D per ES route for ES-y may be advertised with multiple b. An A-D per ES route for ES-y may be advertised with multiple
encapsulations that all support both Split Horizon methods. In encapsulations that all support both Split Horizon methods. In
this case, the SHT value MAY be 01 if the preferred method is this case, the SHT value MAY be 01 if the preferred method is
Local Bias, or 10 if the ESI Label-based method is desired. For Local Bias, or 10 if the ESI Label-based method is desired. For
example, encapsulations such as {MPLSoGRE, MPLSoUDP, GENEVE} (or example, encapsulations such as {MPLSoGRE, MPLSoUDP, GENEVE} (or
a subset) MAY be advertised in an A-D per ES route with an SHT a subset) MAY be advertised in an A-D per ES route with an SHT
value of 01. The ESI Label value in this case MAY be zero. value of 01. The ESI Label value in this case MAY be zero.
c. If ES-z with RT-set composed of (RT1, RT2, RT3.. RTn) supports c. If ES-z with an RT-set composed of (RT1, RT2, RT3.. RTn) supports
multiple encapsulations requiring different Split Horizon multiple encapsulations requiring different Split Horizon
methods, a distinct A-D per ES route (or group of routes) per methods, a distinct A-D per ES route (or group of routes) per
Split Horizon method MUST be advertised. For example, consider Split Horizon method MUST be advertised. For example, consider
an ES-z with n Route Targets (RTs) where: an ES-z with n RTs, where:
* the EVIs corresponding to (RT1..RTi) support VXLAN, * the EVIs corresponding to (RT1..RTi) support VXLAN,
* the ones for (RTi+1..RTm) (with i<m) support MPLSoUDP with * the ones for (RTi+1..RTm) (with i<m) support MPLSoUDP with
Local Bias, Local Bias, and
* and the ones for (RTm+1..RTn) (with m<n) support GENEVE with * the ones for (RTm+1..RTn) (with m<n) support GENEVE with ESI
ESI Label based Split Horizon. Label-based Split Horizon.
In this scenario, three groups of A-D per ES routes MUST be In this scenario, three groups of A-D per ES routes MUST be
advertised for ES-z: advertised for ES-z:
* A-D per ES route group 1, including (RT1..RTi), with * A-D per ES route group 1, including (RT1..RTi) with
encapsulation {VXLAN}, and an SHT value of 00. The ESI Label encapsulation {VXLAN} and an SHT value of 00. The ESI Label
MAY be zero. MAY be zero.
* A-D per ES route group 2, including (RTi+1..RTm), with * A-D per ES route group 2, including (RTi+1..RTm) with
encapsulation {MPLSoUDP}, and an SHT value of 01. The ESI encapsulation {MPLSoUDP} and an SHT value of 01. The ESI
Label MAY be zero. Label MAY be zero.
* A-D per ES route group 3, including (RTm+1..RTn), with * A-D per ES route group 3, including (RTm+1..RTn) with
encapsulation {GENEVE}, and an SHT value of 10. The ESI Label encapsulation {GENEVE} and an SHT value of 10. The ESI Label
MUST have a valid, non-zero value, and the Ethernet option as MUST have a valid, non-zero value, and the Ethernet option as
defined in [RFC8926] MUST be advertised. defined in [RFC8926] MUST be advertised.
As per [RFC8365], it is the responsibility of the operator of a given As per [RFC8365], it is the responsibility of the operator of a given
EVI to ensure that all of the NVEs within that EVI support a common EVI to ensure that all of the NVEs within that EVI support a common
encapsulation. Failure to meet this condition may result in service encapsulation. Failure to meet this condition may result in service
disruption or failure. disruption or failure.
4. Security Considerations 4. Security Considerations
All the security considerations described in [RFC7432] are applicable All the security considerations described in [RFC7432] are applicable
to this document. to this document.
Additionally, this document modifies the procedures for Split Horizon Additionally, this document modifies the procedures for Split Horizon
filtering as outlined in [RFC8365], offering operators a choice filtering as outlined in [RFC8365], offering operators a choice
between Local Bias and ESI Label-based filtering for tunnels that between Local Bias and ESI Label-based filtering for tunnels that
support both methods. Misconfiguration of the desired Split Horizon support both methods. Misconfiguration of the desired SHT could lead
Type (SHT) could lead to forwarding behaviors that differ from the to forwarding behaviors that differ from the intended configuration.
intended configuration. Apart from this risk, this document Apart from this risk, this document describes procedures to ensure
describes procedures to ensure that all Provider Edge (PE) devices or that all PE devices or NVEs connected to the same ES agree on a
Network Virtualization Edges (NVEs) connected to the same Ethernet common SHT method, with a fallback to a default behavior in case of a
Segment (ES) agree on a common SHT method, with a fallback to a mismatch in the SHT bits being advertised by any two PEs or NVEs in
default behavior in case of a mismatch in the SHT bits being the ES. Consequently, unauthorized changes to the SHT configuration
advertised by any two PEs or NVEs in the Ethernet Segment. by an attacker on a single PE or NVE of the ES should not cause
Consequently, unauthorized changes to the SHT configuration by an traffic disruption (as long as the SHT value is valid as per this
attacker on a single PE or NVE of the Ethernet Segment should not document) but may result in alterations to forwarding behavior.
cause traffic disruption (as long as the SHT value is valid as per
this document) but may result in alterations to forwarding behavior.
5. IANA Considerations 5. IANA Considerations
This document creates a registry called "EVPN ESI Label Extended Per this document, IANA has created the "EVPN ESI Label Extended
Community Flags" for the 1-octet Flags field in the ESI Label Community Flags" registry for the 1-octet Flags field in the ESI
Extended Community [RFC7432], as follows: Label Extended Community [RFC7432], as follows:
+==============+=============================+===============+ +==============+=============================+===========+
| Bit Position | Name | Reference | | Bit Position | Name | Reference |
+==============+=============================+===============+ +==============+=============================+===========+
| 0-1 | Multihoming Redundancy Mode | [RFC7432] | | 0-1 | Multihoming Redundancy Mode | [RFC7432] |
+--------------+-----------------------------+---------------+ +--------------+-----------------------------+-----------+
| 2-5 | Unassigned | | | 2-5 | Unassigned | |
+--------------+-----------------------------+---------------+ +--------------+-----------------------------+-----------+
| 6-7 | Split Horizon Type | This Document | | 6-7 | Split Horizon Type | RFC 9746 |
+--------------+-----------------------------+---------------+ +--------------+-----------------------------+-----------+
Table 2 Table 2
This document also creates a registry for the "Multihoming Redundancy IANA has also created the "Multihoming Redundancy Mode" registry for
Mode" field of the EVPN ESI Label Extended Community Flags. This the related field of the "EVPN ESI Label Extended Community Flags".
registry is called "Multihoming Redundancy Mode" and is initialized The registry has been populated with the following initial values:
as follows:
+=======+=============================+===========+ +=======+=============================+===========+
| Value | Multihoming redundancy mode | Reference | | Value | Multihoming Redundancy Mode | Reference |
+=======+=============================+===========+ +=======+=============================+===========+
| 00 | All-Active mode | [RFC7432] | | 00 | All-Active mode | [RFC7432] |
+-------+-----------------------------+-----------+ +-------+-----------------------------+-----------+
| 01 | Single-Active mode | [RFC7432] | | 01 | Single-Active mode | [RFC7432] |
+-------+-----------------------------+-----------+ +-------+-----------------------------+-----------+
| 10 | Unassigned | | | 10 | Unassigned | |
+-------+-----------------------------+-----------+ +-------+-----------------------------+-----------+
| 11 | Unassigned | | | 11 | Unassigned | |
+-------+-----------------------------+-----------+ +-------+-----------------------------+-----------+
Table 3 Table 3
Finally, a third registry for the "Split Horizon Type" field of the Finally, IANA has created the "Split Horizon Type" registry for the
EVPN ESI Label Extended Community Flags is created by this document related field of the "EVPN ESI Label Extended Community Flags". The
too. This registry is called "Split Horizon Type" and is initialized registry has been populated with the following initial values:
as follows:
+=======+===========================+===============+ +=======+===========================+===========+
| Value | Split Horizon Type value | Reference | | Value | Split Horizon Type Value | Reference |
+=======+===========================+===============+ +=======+===========================+===========+
| 00 | Default SHT | This document | | 00 | Default SHT | RFC 9746 |
+-------+---------------------------+---------------+ +-------+---------------------------+-----------+
| 01 | Local Bias | This document | | 01 | Local Bias | RFC 9746 |
+-------+---------------------------+---------------+ +-------+---------------------------+-----------+
| 10 | ESI Label based filtering | This document | | 10 | ESI Label-based filtering | RFC 9746 |
+-------+---------------------------+---------------+ +-------+---------------------------+-----------+
| 11 | Unassigned | | | 11 | Unassigned | |
+-------+---------------------------+---------------+ +-------+---------------------------+-----------+
Table 4 Table 4
New registrations in the "EVPN ESI Label Extended Community Flags", New registrations in the "EVPN ESI Label Extended Community Flags",
"Multihoming Redundancy Mode", and "Split Horizon Type" registries "Multihoming Redundancy Mode", and "Split Horizon Type" registries
will be made through the "IETF Review" procedure defined in will be made through the "IETF Review" procedure defined in
[RFC8126]. These registries are located in the "Border Gateway [RFC8126]. These registries are located in the "Border Gateway
Protocol (BGP) Extended Communities" registry group. Protocol (BGP) Extended Communities" registry group.
6. Acknowledgments 6. References
The authors would like to thank Anoop Ghanwani, Gyan Mishra and
Jeffrey Zhang for their review and useful comments. Thanks to Gunter
van de Velde and Sue Hares as well, for their thorough review.
7. References
7.1. Normative References 6.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
skipping to change at page 18, line 17 skipping to change at line 784
Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365, Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365,
DOI 10.17487/RFC8365, March 2018, DOI 10.17487/RFC8365, March 2018,
<https://www.rfc-editor.org/info/rfc8365>. <https://www.rfc-editor.org/info/rfc8365>.
[RFC9252] Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene, [RFC9252] Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene,
B., Zhuang, S., and J. Rabadan, "BGP Overlay Services B., Zhuang, S., and J. Rabadan, "BGP Overlay Services
Based on Segment Routing over IPv6 (SRv6)", RFC 9252, Based on Segment Routing over IPv6 (SRv6)", RFC 9252,
DOI 10.17487/RFC9252, July 2022, DOI 10.17487/RFC9252, July 2022,
<https://www.rfc-editor.org/info/rfc9252>. <https://www.rfc-editor.org/info/rfc9252>.
7.2. Informative References 6.2. Informative References
[I-D.ietf-bess-evpn-geneve] [EVPN-GENEVE]
Boutros, S., Sajassi, A., Drake, J., Rabadan, J., and S. Boutros, S., Sajassi, A., Drake, J., Rabadan, J., and S.
Aldrin, "EVPN control plane for Geneve", Work in Progress, Aldrin, "EVPN control plane for Geneve", Work in Progress,
Internet-Draft, draft-ietf-bess-evpn-geneve-08, 5 July Internet-Draft, draft-ietf-bess-evpn-geneve-08, 5 July
2024, <https://datatracker.ietf.org/doc/html/draft-ietf- 2024, <https://datatracker.ietf.org/doc/html/draft-ietf-
bess-evpn-geneve-08>. bess-evpn-geneve-08>.
[RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger, [RFC7348] Mahalingam, M., Dutt, D., Duda, K., Agarwal, P., Kreeger,
L., Sridhar, T., Bursell, M., and C. Wright, "Virtual L., Sridhar, T., Bursell, M., and C. Wright, "Virtual
eXtensible Local Area Network (VXLAN): A Framework for eXtensible Local Area Network (VXLAN): A Framework for
Overlaying Virtualized Layer 2 Networks over Layer 3 Overlaying Virtualized Layer 2 Networks over Layer 3
skipping to change at page 19, line 37 skipping to change at line 852
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>. July 2018, <https://www.rfc-editor.org/info/rfc8402>.
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
<https://www.rfc-editor.org/info/rfc8754>. <https://www.rfc-editor.org/info/rfc8754>.
[I-D.ietf-nvo3-vxlan-gpe] [VXLAN-GPE]
Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol Maino, F., Kreeger, L., and U. Elzur, "Generic Protocol
Extension for VXLAN (VXLAN-GPE)", Work in Progress, Extension for VXLAN (VXLAN-GPE)", Work in Progress,
Internet-Draft, draft-ietf-nvo3-vxlan-gpe-13, 4 November Internet-Draft, draft-ietf-nvo3-vxlan-gpe-13, 4 November
2023, <https://datatracker.ietf.org/doc/html/draft-ietf- 2023, <https://datatracker.ietf.org/doc/html/draft-ietf-
nvo3-vxlan-gpe-13>. nvo3-vxlan-gpe-13>.
[IANA-BGP-TUNNEL-ENCAP] [TUNNEL-ENCAP]
IANA, "Border Gateway Protocol (BGP) Tunnel IANA, "Border Gateway Protocol (BGP) Tunnel
Encapsulation", <https://www.iana.org/assignments/bgp- Encapsulation", <https://www.iana.org/assignments/bgp-
tunnel-encapsulation/bgp-tunnel- tunnel-encapsulation>.
encapsulation.xhtml#tunnel-types>.
Acknowledgments
The authors would like to thank Anoop Ghanwani, Gyan Mishra, and
Jeffrey Zhang for their review and useful comments. Thanks to Gunter
Van de Velde and Sue Hares as well, for their thorough review.
Authors' Addresses Authors' Addresses
Jorge Rabadan (editor) Jorge Rabadan (editor)
Nokia Nokia
520 Almanor Avenue 520 Almanor Avenue
Sunnyvale, CA 94085 Sunnyvale, CA 94085
United States of America United States of America
Email: jorge.rabadan@nokia.com Email: jorge.rabadan@nokia.com
Kiran Nagaraj Kiran Nagaraj
Nokia Nokia
520 Almanor Avenue 520 Almanor Avenue
 End of changes. 104 change blocks. 
343 lines changed or deleted 343 lines changed or added

This html diff was produced by rfcdiff 1.48.