rfc9746xml2.original.xml   rfc9746.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8174.xml">
<!ENTITY RFC7432 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7432.xml">
<!ENTITY RFC8365 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8365.xml">
<!ENTITY RFC8584 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8584.xml">
<!ENTITY I-D.ietf-bess-evpn-geneve SYSTEM "https://xml2rfc.ietf.org/public/rfc/b
ibxml3/reference.I-D.ietf-bess-evpn-geneve.xml">
<!ENTITY RFC7348 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7348.xml">
<!ENTITY RFC5512 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5512.xml">
<!ENTITY RFC4023 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4023.xml">
<!ENTITY RFC7637 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7637.xml">
<!ENTITY RFC7510 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7510.xml">
<!ENTITY RFC8926 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8926.xml">
<!ENTITY RFC9012 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.9012.xml">
<!ENTITY RFC7606 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.7606.xml">
<!ENTITY RFC8660 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8660.xml">
<!ENTITY RFC8986 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8986.xml">
<!ENTITY RFC8402 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8402.xml">
<!ENTITY RFC8754 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8754.xml">
<!ENTITY RFC9252 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.9252.xml">
<!ENTITY RFC8126 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8126.xml">
<!ENTITY I-D.ietf-nvo3-vxlan-gpe SYSTEM "https://xml2rfc.ietf.org/public/rfc/bib
xml3/reference.I-D.ietf-nvo3-vxlan-gpe.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-bess-evpn-mh-split-horizon-11"
ipr="trust200902" submissionType="IETF" updates="8365, 7432">
<!--Generated by id2xml 1.5.0 on 2020-07-31T12:56:54Z -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?> <!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<?rfc text-list-symbols="oo*+-"?> <!-- sortRefs set to false in submitted XML file. -->
<?rfc toc="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie tf-bess-evpn-mh-split-horizon-11" number="9746" ipr="trust200902" consensus="tru e" submissionType="IETF" updates="7432, 8365" obsoletes="" xml:lang="en" tocIncl ude="true" tocDepth="3" symRefs="true" sortRefs="false" version="3">
<front> <front>
<title abbrev="EVPN MH Split Horizon Extensions">BGP EVPN Multi-Homing <title abbrev="EVPN MH Split Horizon Extensions">BGP EVPN Multihoming
Extensions for Split Horizon Filtering</title> Extensions for Split Horizon Filtering</title>
<seriesInfo name="RFC" value="9746"/>
<author fullname="Jorge Rabadan" initials="J." role="editor" <author fullname="Jorge Rabadan" initials="J." role="editor" surname="Rabada
surname="Rabadan"> n">
<organization>Nokia</organization> <organization>Nokia</organization>
<address> <address>
<postal> <postal>
<street>520 Almanor Avenue</street> <street>520 Almanor Avenue</street>
<city>Sunnyvale</city> <city>Sunnyvale</city>
<region>CA</region> <region>CA</region>
<code>94085</code> <code>94085</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>jorge.rabadan@nokia.com</email> <email>jorge.rabadan@nokia.com</email>
</address> </address>
</author> </author>
<author fullname="Kiran Nagaraj" initials="K." surname="Nagaraj"> <author fullname="Kiran Nagaraj" initials="K." surname="Nagaraj">
<organization>Nokia</organization> <organization>Nokia</organization>
<address> <address>
<postal> <postal>
<street>520 Almanor Avenue</street> <street>520 Almanor Avenue</street>
<city>Sunnyvale</city> <city>Sunnyvale</city>
<region>CA</region> <region>CA</region>
<code>94085</code> <code>94085</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>kiran.nagaraj@nokia.com</email> <email>kiran.nagaraj@nokia.com</email>
</address> </address>
</author> </author>
<author fullname="Wen Lin" initials="W." surname="Lin"> <author fullname="Wen Lin" initials="W." surname="Lin">
<organization abbrev="Juniper">Juniper Networks</organization> <organization abbrev="Juniper">Juniper Networks</organization>
<address> <address>
<email>wlin@juniper.net</email> <email>wlin@juniper.net</email>
</address> </address>
</author> </author>
<author fullname="Ali Sajassi" initials="A." surname="Sajassi"> <author fullname="Ali Sajassi" initials="A." surname="Sajassi">
<organization abbrev="Cisco">Cisco Systems, Inc.</organization> <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
<address> <address>
<email>sajassi@cisco.com</email> <email>sajassi@cisco.com</email>
</address> </address>
</author> </author>
<date month="February" year="2025"/>
<area>RTG</area>
<workgroup>bess</workgroup>
<date day="16" month="August" year="2024"/> <!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->
<workgroup>BESS Workgroup</workgroup> <keyword>example</keyword>
<abstract> <abstract>
<t>Ethernet Virtual Private Network (EVPN) is commonly used with Network <t>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 on Segment Routing (SR) tunnels. The multihoming procedures in EVPN may
the type of tunnel used within the EVPN Broadcast Domain. Specifically, vary based on the type of tunnel used within the EVPN Broadcast
there are two multi-homing Split Horizon procedures designed to prevent Domain. Specifically, there are two multihoming Split Horizon procedures
looped frames on multi-homed Customer Edge (CE) devices: the ESI designed to prevent looped frames on multihomed Customer Edge (CE)
Label-based procedure and the Local Bias procedure. The ESI Label-based devices: the Ethernet Segment Identifier (ESI) Label-based procedure and
Split Horizon is applied to MPLS-based tunnels, such as MPLSoUDP, while the Local Bias procedure. The ESI Label-based Split Horizon procedure is
the Local Bias procedure is used for other tunnels, such as VXLAN.</t> applied to MPLS-based tunnels such as MPLS over UDP (MPLSoUDP), while
the Local Bias procedure is used for other tunnels such as Virtual
eXtensible Local Area Network (VXLAN) tunnels.</t>
<t>Current specifications do not allow operators to choose which Split <t>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 include methods. Examples of tunnels that may support both procedures include
MPLSoGRE, MPLSoUDP, GENEVE, and SRv6. This document updates the EVPN MPLSoUDP, MPLS over GRE (MPLSoGRE), Generic Network Virtualization
multi-homing procedures described in RFC 8365 and RFC 7432, enabling Encapsulation (GENEVE), and Segment Routing over IPv6 (SRv6)
operators to select the Split Horizon procedure that meets their tunnels. This document updates the EVPN multihoming procedures described
specific requirements.</t> in RFCs 7432 and 8365, enabling operators to select the Split Horizon
procedure that meets their specific requirements.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="sect-1" title="Introduction"> <section anchor="sect-1" numbered="true" toc="default">
<t>Ethernet Virtual Private Networks (EVPN) are commonly used with the <name>Introduction</name>
<t>Ethernet Virtual Private Networks (EVPNs) are commonly used with the
following tunnel encapsulations:</t> following tunnel encapsulations:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>Network Virtualization Overlay (NVO) tunnels, where the EVPN <t>Network Virtualization Overlay (NVO) tunnels, where the EVPN
procedures are specified in <xref target="RFC8365"/>. MPLSoGRE <xref procedures are specified in <xref target="RFC8365"
target="RFC4023"/>, MPLSoUDP <xref target="RFC7510"/>, GENEVE <xref format="default"/>. MPLSoGRE <xref target="RFC4023"
target="RFC8926"/> or VXLAN <xref target="RFC7348"/> tunnels are format="default"/>, MPLSoUDP <xref target="RFC7510"
format="default"/>, GENEVE <xref target="RFC8926" format="default"/>,
or VXLAN <xref target="RFC7348" format="default"/> tunnels are
considered NVO tunnels.</t> considered NVO tunnels.</t>
</li>
<t>MPLS and Segment Routing with MPLS data plane (SR-MPLS), where <li>
the relevant EVPN procedures are specified in <xref <t>MPLS and Segment Routing over MPLS (SR-MPLS) tunnels, where the
target="RFC7432"/>. Segment Routing with MPLS data plane tunneling relevant EVPN procedures are specified in <xref target="RFC7432"
is specified in <xref target="RFC8660"/>.</t> format="default"/>. SR-MPLS tunneling is specified in <xref
target="RFC8660" format="default"/>.</t>
</li>
<li>
<t>Segment Routing over IPv6 (SRv6) tunnels, where the relevant EVPN
procedures are specified in <xref target="RFC9252"
format="default"/>. SRv6 is specified in <xref target="RFC8402"
format="default"/> and <xref target="RFC8754"
format="default"/>.</t>
</li>
</ul>
<!-- [rfced] We see the following terms used in various ways in the RFC Series.
This document was consistent in their use of the capitalziation for the terms b
elow. Is this the preferred form for future documents related to this subject?
<t>Segment Routing with IPv6 data plane (SRv6), where the relevant a) RFC 7432 uses "split-horizon" (lowercase and hyphenated) when acting as an ad
EVPN procedures are specified in <xref target="RFC9252"/>. SRv6 is jective appearing before the noun, while this document uses the initial-capitali
specified in <xref target="RFC8402"/><xref target="RFC8754"/>.</t> zed form without a hyphen consistently.
</list></t>
<t>Split Horizon, in this document, follows the definition in <xref Examples from this document:
target="RFC7432"/>. Split Horizon refers to the EVPN multihoming Split Horizon procedure
procedure that prevents a PE from sending a frame back to a multihomed Split Horizon filtering
Customer Edge (CE) when that CE originated the frame in the first Split Horizon method
place.</t> Split Horizon behavior
Split Horizon Type (SHT)
b) "Local Bias" (this document) vs "local-bias" per RFCs 8365 and 9252
c) "GENEVE" (this document) vs "Geneve" per RFC 8926
-->
<t>In this document, the term "Split Horizon" follows the definition in <x
ref
target="RFC7432" format="default"/>. Split Horizon refers to the EVPN
multihoming procedure that prevents a Provider Edge (PE) from sending a
frame back to a multihomed Customer Edge (CE) when that CE originated
the frame in the first place.</t>
<t>EVPN multihoming procedures may vary depending on the type of tunnel <t>EVPN multihoming procedures may vary depending on the type of tunnel
utilized within the EVPN Broadcast Domain. Specifically, there are two utilized within the EVPN Broadcast Domain. Specifically, there are two
multihoming Split Horizon procedures employed to prevent looped frames multihoming Split Horizon procedures employed to prevent looped frames
on multihomed CE devices: the ESI Label-based procedure and the Local on multihomed CE devices: the ESI Label-based procedure and the Local
Bias procedure.</t> Bias procedure.</t>
<t>The ESI Label-based Split Horizon procedure is used for MPLS or <t>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 MPLS over X (MPLSoX) tunnels, such as MPLSoUDP, and its procedures
are detailed in <xref target="RFC7432"/>. Conversely, the Local Bias are detailed in <xref target="RFC7432" format="default"/>. Conversely, the
Local Bias
procedure is used for IP-based tunnels, such as VXLAN tunnels, and it is procedure is used for IP-based tunnels, such as VXLAN tunnels, and it is
described in <xref target="RFC8365"/>. </t> described in <xref target="RFC8365" format="default"/>.</t>
<section anchor="sect-1.1" numbered="true" toc="default">
<name>Conventions and Terminology</name>
<t>
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>
",
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
be
interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.
</t>
<section anchor="sect-1.1" title="Conventions and Terminology"> <!-- [rfced] Please review the following questions and changes regarding the
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", terminology list in Section 1.1.
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
when, they appear in all capitals, as shown here.</t>
<t><list style="symbols"> a.) We have made some adjustments for readability and to demonstrate 1:1
<t>AC: Attachment Circuit.</t> relationships between abbreviations and their expansions. Please carefully
review and let us know any objections.
<t>A-D per ES route: refers to the EVPN Ethernet Auto-Discovery b.) We were unable to find the "EVPN Ethernet Auto-Discovery per ES route"
per ES route defined in <xref target="RFC7432"/>.</t> explicitly mentioned in RFC 7432. May we update this item as follows for
accuracy and concision?
<t>Arg.FE2: refers to the ESI filtering argument used for Split Original:
Horizon as specified in <xref target="RFC9252"/>.</t>
<t>Broadcast Domain (BD): an emulated Ethernet, such that two * A-D per ES route: refers to the EVPN Ethernet Auto-Discovery per
systems on the same BD will receive each other's broadcast, ES route defined in [RFC7432].
unknown and multicast traffic. In this document, BD also refers to
the instantiation of a Broadcast Domain on an EVPN PE. An EVPN PE
can be attached to one or multiple BDs of the same tenant.</t>
<t>BUM: Broadcast, Unknown unicast and Multicast traffic.</t> Perhaps:
<t>Designated Forwarder (DF): as defined in <xref A-D per ES route: Auto-Discovery per Ethernet Segment route (as defined in
target="RFC7432"/>, an ES may be multihomed (attached to more than [RFC7432]).
one PE). An ES may also contain 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 segment. Since a BD may belong to only one
EVI, we can speak unambiguously of the BD's DF for a given
segment.</t>
<t>ES and ESI: Ethernet Segment and Ethernet Segment c.) Arg.FE2 is mentioned in RFC 9252; however, RFC 9252 says that "the Arg.FE2
Identifier.</t> notation [is] introduced in [RFC8986]". Would you like to update the citation
below to RFC 8986?
<t>EVI: EVPN Instance</t> Original:
<t>EVI-RT: EVI Route Target. A group of NVEs attached to the same * Arg.FE2: refers to the ESI filtering argument used for Split
EVI will share the same EVI-RT.</t> Horizon as specified in [RFC9252].
<t>GENEVE: Generic Network Virtualization Encapsulation, <xref d.) Several abbreviations appear in this document but are not included in this
target="RFC8926"/> (<xref target="IANA-BGP-TUNNEL-ENCAP"/> tunnel terminology list (see some examples below). Please review and let us know if
type 19).</t> you would like to add these or any additional terms to this list.
<t>MPLS tunnels and non-MPLS NVO tunnels: refer to Multi-Protocol Type-Length-Value (TLV)
Label Switching (or the absence of it) Network Virtualization Route Targets (RTs)
Overlay tunnels. Network Virtualization Overlay tunnels use an IP Provider Edge (PE)
Customer Edge (CE)
-->
<dl spacing="normal">
<dt>AC:</dt>
<dd>Attachment Circuit</dd>
<dt>A-D per ES route:</dt>
<dd>Auto-Discovery per Ethernet Segment
route. Refers to the EVPN Ethernet Auto-Discovery per ES route
defined in <xref target="RFC7432" format="default"/>.</dd>
<dt>Arg.FE2:</dt>
<dd>Refers to the ESI filtering argument used for Split Horizon as
specified in <xref target="RFC9252" format="default"/>.</dd>
<dt>BD:</dt>
<dd>Broadcast Domain. Refers to an emulated Ethernet, such that
two systems on the same BD will receive each other's BUM
traffic. In this document, BD also refers to the instantiation of
a BD on an EVPN PE. An EVPN PE can be attached to one or multiple
BDs of the same tenant.</dd>
<dt>BUM:</dt>
<dd>Broadcast, Unknown Unicast, and Multicast</dd>
<dt>DF:</dt>
<dd>Designated Forwarder. As defined in <xref
target="RFC7432" format="default"/>, an ES may be 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 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
unambiguously of the BD's DF for a given segment.</dd>
<dt>ES:</dt>
<dd>Ethernet Segment</dd>
<dt>ESI:</dt>
<dd>Ethernet Segment Identifier</dd>
<dt>EVI:</dt>
<dd>EVPN Instance</dd>
<dt>EVI-RT:</dt><dd>EVI Route Target. Refers to a group of NVEs atta
ched to the same
EVI that will share the same EVI-RT.</dd>
<dt>GENEVE:</dt><dd>Generic Network Virtualization Encapsulation
<xref target="RFC8926" format="default"/> (see tunnel type 19 in <xr
ef
target="TUNNEL-ENCAP" format="default"/>).</dd>
<dt>MPLS tunnels and non-MPLS NVO tunnels:</dt><dd>Refers to
Multiprotocol Label Switching (or the absence of it) Network
Virtualization Overlay tunnels. NVO tunnels use an IP
encapsulation for overlay frames, where the source IP address encapsulation for overlay frames, where the source IP address
identifies the ingress NVE and the destination IP address the identifies the ingress NVE and the destination IP address identifies
egress NVE.</t> the
egress NVE.</dd>
<t>MPLSoUDP: Multi-Protocol Label Switching over User Datagram <dt>MPLSoUDP:</dt><dd>Multiprotocol Label Switching over User
Protocol, <xref target="RFC7510"/> (<xref Datagram Protocol <xref target="RFC7510" format="default"/> (see
target="IANA-BGP-TUNNEL-ENCAP"/> tunnel type 13).</t> tunnel type 13 in <xref target="TUNNEL-ENCAP"
format="default"/>).</dd>
<t>MPLSoGRE: Multi-Protocol Label Switching over Generic Network <dt>MPLSoGRE:</dt><dd>Multiprotocol Label Switching over Generic
Encapsulation, <xref target="RFC4023"/> (<xref Network Encapsulation <xref target="RFC4023" format="default"/>
target="IANA-BGP-TUNNEL-ENCAP"/> tunnel type 11).</t> (see tunnel type 11 in <xref target="TUNNEL-ENCAP"
format="default"/>).</dd>
<t>MPLSoX: refers to MPLS over any IP encapsulation. Examples are <dt>MPLSoX:</dt><dd>Refers to MPLS over any IP encapsulation, for
MPLS-over-UDP or MPLS-over-GRE.</t> example, MPLSoUDP or MPLSoGRE.</dd>
<t>NVE: Network Virtualization Edge device.</t> <dt>NVE:</dt><dd>Network Virtualization Edge</dd>
<t>NVGRE: Network Virtualization Using Generic Routing <dt>NVGRE:</dt><dd>Network Virtualization Using Generic Routing
Encapsulation, <xref target="RFC7637"/> (<xref Encapsulation <xref target="RFC7637" format="default"/> (see
target="IANA-BGP-TUNNEL-ENCAP"/> tunnel type 9).</t> tunnel type 9 in <xref target="TUNNEL-ENCAP"
format="default"/>).</dd>
<t>VXLAN: Virtual eXtensible Local Area Network, <xref <dt>VXLAN:</dt><dd>Virtual eXtensible Local Area Network <xref
target="RFC7348"/> (<xref target="IANA-BGP-TUNNEL-ENCAP"/> tunnel target="RFC7348" format="default"/> (see tunnel type 8 in <xref
type 8).</t> target="TUNNEL-ENCAP" format="default"/>).</dd>
<t>VXLAN-GPE: VXLAN Generic Protocol Extension, <xref <dt>VXLAN-GPE:</dt><dd>VXLAN Generic Protocol Extension <xref
target="I-D.ietf-nvo3-vxlan-gpe"/> (<xref target="I-D.ietf-nvo3-vxlan-gpe" format="default"/> (see tunnel
target="IANA-BGP-TUNNEL-ENCAP"/> tunnel type 12).</t> type 12 in <xref target="TUNNEL-ENCAP"
format="default"/>).</dd>
<t>SHT: Split Horizon Type, it refers to the Split Horizon method <dt>SHT:</dt><dd>Split Horizon Type. Refers to the Split Horizon met hod
that a PE intends to use and advertises in an A-D per ES that a PE intends to use and advertises in an A-D per ES
route.</t> route.</dd>
<t>SRv6: Segment Routing with an IPv6 data plane, <xref <dt>SRv6:</dt><dd>Segment Routing over IPv6 (see <xref target="RFC84
target="RFC8402"/><xref target="RFC8754"/>.</t> 02"
</list></t> format="default"/> and <xref target="RFC8754" format="default"/>).</
dd>
</dl>
<t>This document also assumes familiarity with the terminology of <t>This document also assumes familiarity with the terminology of
<xref target="RFC7432"/> and <xref target="RFC8365"/>.</t> <xref target="RFC7432" format="default"/> and <xref target="RFC8365"
format="default"/>.</t>
</section> </section>
<section numbered="true" toc="default">
<name>Split Horizon Filtering and Tunnel Encapsulations</name>
<section title="Split Horizon Filtering and Tunnel Encapsulations"> <t>EVPN supports two Split Horizon filtering mechanisms:</t>
<t>EVPN supports two Split Horizon Filtering mechanisms:</t> <ol type="1" spacing="normal">
<li>
<t>ESI Label-based Split Horizon filtering <xref target="RFC7432"
format="default"/>:</t>
<t><list style="symbols"> <!-- [rfced] The parentheses in the text below seem to contain a mixture of
<t>ESI Label based Split Horizon filtering <xref abbreviations and additional context. For clarity and readability, may we
target="RFC7432"/><vspace blankLines="1"/>When EVPN is employed update as follows?
for MPLS transport tunnels, an MPLS label facilitates Split
Horizon filtering to support All-Active multihoming. The ingress Original:
Network Virtualization Edge (NVE) device appends a label
corresponding to the source Ethernet Segment Identifier (ESI The ingress Network Virtualization Edge (NVE) device appends a label
label) during packet encapsulation. The egress NVE verifies the corresponding to the source Ethernet Segment Identifier (ESI label)
ESI label when attempting to forward a multi-destination frame during packet encapsulation. The egress NVE verifies the ESI label when
through a local Ethernet Segment (ES) interface. If the ESI label attempting to forward a multi-destination frame through a local
matches the site identifier (ESI) associated with that ES Ethernet Segment (ES) interface. If the ESI label matches the site
interface, the packet is not forwarded. This mechanism effectively identifier (ESI) associated with that ES interface, the packet is not
prevents forwarding loops for BUM traffic. <vspace forwarded...
blankLines="1"/>The ESI Label Split Horizon filtering should also
Perhaps:
The ingress NVE device appends a label corresponding to the source ESI
(the ESI label) during packet encapsulation. The egress NVE verifies
the ESI label when attempting to forward a multi-destination frame
through a local ES interface. If the ESI label matches the site
identifier (the ESI) associated with that ES interface, then the packet
is not forwarded...
-->
<t>When EVPN is employed for MPLS transport tunnels, an MPLS label
facilitates Split Horizon filtering to support All-Active
multihoming. The ingress NVE device
appends a label corresponding to the source Ethernet Segment
Identifier (ESI label) during packet encapsulation. The egress NVE
verifies the ESI label when attempting to forward a
multi-destination frame through a local Ethernet Segment (ES)
interface. If the ESI label matches the site identifier (ESI)
associated with that ES interface, then the packet is not
forwarded. This mechanism effectively prevents forwarding loops for
BUM traffic. </t>
<t>ESI Label Split Horizon filtering should also
be utilized with Single-Active multihoming to prevent transient be utilized with Single-Active multihoming to prevent transient
loops for in-flight packets when the egress NVE assumes the role loops for in-flight packets when the egress NVE assumes the role
of Designated Forwarder for an ES.</t> of DF for an ES.</t>
</li>
<t>Local Bias <xref target="RFC8365"/><vspace <li>
blankLines="1"/>Since IP tunnels, such as VXLAN or NVGRE, do not <t>Local Bias filtering <xref target="RFC8365" format="default"/>:</
t>
<t>Since IP tunnels such as VXLAN or NVGRE do not
support the ESI label or any MPLS label, an alternative Split support the ESI label or any MPLS label, an alternative Split
Horizon filtering procedure must be implemented for All-Active Horizon filtering procedure must be implemented for All-Active
multihoming. This mechanism, known as Local Bias, relies on the multihoming. This mechanism, known as Local Bias, relies on the
source IP address of the tunnel to determine whether to forward source IP address of the tunnel to determine whether to forward
BUM traffic to a local Ethernet Segment (ES) interface at the BUM traffic to a local ES interface at the
egress Network Virtualization Edge (NVE). <vspace egress NVE.</t>
blankLines="1"/>In summary and as specified in <xref <t>In summary and as specified in <xref target="RFC8365"
target="RFC8365"/>, each NVE tracks the IP address(es) of other format="default"/>, each NVE tracks the IP address(es) of other
NVEs with which it shares multihomed ESs. Upon receiving a BUM NVEs with which it shares multihomed ESs. Upon receiving a BUM
frame encapsulated in an IP tunnel, the egress NVE inspects the frame encapsulated in an IP tunnel, the egress NVE inspects the
source IP address in the tunnel header, which identifies the source IP address in the tunnel header, which identifies the
ingress NVE. The egress NVE then filters out the frame on all ingress NVE. The egress NVE then filters out the frame on all
local interfaces connected to ESs that are shared with the ingress local interfaces connected to ESs that are shared with the ingress
NVE. <vspace blankLines="1"/>Due to this behavior at the egress NVE.</t>
NVE, the ingress NVE is required to perform local replication to
all directly attached ESs, regardless of the Designated Forwarder
election state, for all BUM traffic ingressing from the access
Attachment Circuits (ACs). This local replication at the ingress
NVE is the basis for the term Local Bias. <vspace
blankLines="1"/>Local Bias is not suitable for Single-Active
multihoming, as the ingress NVE deactivates the ACs for which it
is not the Designated Forwarder. Consequently, local replication
to non-Designated Forwarder ACs cannot occur, leading to transient
in-flight BUM packets to be looped back to the originating site by
newly elected Designated Forwarder egress NVEs.</t>
</list></t>
<t><xref target="RFC8365"/> specifies that Local Bias is exclusively <t>Due to this behavior at the egress NVE, the ingress NVE is
utilized for IP tunnels, while ESI Label-based Split Horizon is required to perform local replication to all directly attached
employed for IP-based MPLS tunnels. However, IP-based MPLS tunnels, ESs, regardless of the DF election state, for all BUM traffic
such as MPLS over GRE (MPLSoGRE) or MPLS over UDP (MPLSoUDP), are also ingressing from the access ACs. This local replication at the
categorized as IP tunnels and have the potential to support both ingress NVE is the basis for the term "Local Bias".</t>
procedures. These tunnels are capable of carrying ESI labels and also
utilize a tunnel IP header in which the source IP address identifies
the ingress Network Virtualization Edge (NVE).</t>
<t>Similarly, certain IP tunnels - that include an identifier for the <t>Local Bias is not suitable for Single-Active multihoming, as
source Ethernet Segment (ES) in the tunnel header - may also the ingress NVE deactivates the ACs for which it is not the
potentially support either procedure. Examples of such tunnels include DF. Consequently, local replication to non-DF ACs cannot occur,
GENEVE and SRv6.:</t> leading to transient in-flight BUM packets being looped back to
the originating site by newly elected DF egress NVEs.</t>
</li>
</ol>
<t><list style="symbols"> <t><xref target="RFC8365" format="default"/> specifies that Local Bias
<t>In a GENEVE tunnel, the source IP address identifies the is exclusively utilized for IP tunnels, while ESI Label-based Split
ingress NVE therefore local bias is possible. Also, <xref Horizon is employed for IP-based MPLS tunnels. However, IP-based MPLS
target="I-D.ietf-bess-evpn-geneve"/> section 4.1 defines an tunnels such as MPLSoGRE or MPLSoUDP are also categorized as IP
Ethernet option TLV (Type Length Value) to encode an ESI label tunnels and have the potential to support both procedures. These
value.</t> tunnels are capable of carrying ESI labels and also utilize a tunnel
IP header in which the source IP address identifies the ingress
NVE.</t>
<t>Similarly, certain IP tunnels (those that include an identifier for
the source ES in the tunnel header) may also potentially support either
procedure. Examples of such tunnels include GENEVE and SRv6:</t>
<ul spacing="normal">
<li>
<t>In a GENEVE tunnel, the source IP address identifies the
ingress NVE; therefore, Local Bias is possible. Also, Section 4.1
of <xref target="I-D.ietf-bess-evpn-geneve" format="default"/>
defines an Ethernet option Type-Length-Value (TLV) to encode an
ESI label value.</t>
</li>
<li>
<t>In an SRv6 tunnel, the source IP address identifies the ingress <t>In an SRv6 tunnel, the source IP address identifies the ingress
NVE. By default, and as outlined in <xref target="RFC9252"/>, the NVE. By default, and as outlined in <xref target="RFC9252"
ingress PE adds specific information to the SRv6 packet to enable format="default"/>, the ingress PE adds specific information to
the egress PE to identify the source ES of the BUM packet. This the SRv6 packet to enable the egress PE to identify the source ES
information is the ESI filtering argument (Arg.FE2) <xref of the BUM packet. This information is the ESI filtering argument
target="RFC9252"/> (section 6.1.1) <xref target="RFC8986"/> (Arg.FE2) (see <xref target="RFC9252" sectionFormat="of"
(section 4.12) of the service Segment Identifier (SID) received on section="6.1.1"/> and <xref target="RFC8986" sectionFormat="of"
an A-D per ES route from the egress PE.</t> section="4.12"/>) of the service Segment Identifier (SID) received
</list></t> on an A-D per ES route from the egress PE.</t>
</li>
</ul>
<t><xref target="Tunnel"/> presents various tunnel encapsulations <t><xref target="Tunnel" format="default"/> presents various tunnel
along with their supported and default Split Horizon methods. For encapsulations along with their supported and default Split Horizon
GENEVE, the default Split Horizon Type (SHT) is contingent upon the methods. For GENEVE, the default SHT is contingent upon the
negotiation of the Ethernet Option with the Source ID TLV. In the case negotiation of the Ethernet Option with the Source ID TLV. In the case
of SRv6, the default SHT is specified as ESI Label filtering in the of SRv6, the default SHT is specified as ESI Label filtering in the
table, as its behavior is analogous to that of ESI Label filtering. In table, as its behavior is analogous to that of ESI Label filtering. In
this document, ESI Label filtering refers to the Split Horizon this document, "ESI Label filtering" refers to the Split Horizon
filtering based on the presence of a source Ethernet Segment (ES) filtering based on the presence of a source ES
identifier in the tunnel header.</t> identifier in the tunnel header.</t>
<t>This document classifies the tunnel encapsulations used by EVPN <t>This document classifies the tunnel encapsulations used by EVPN
into:<list style="numbers"> into:</t>
<t>IP-based MPLS tunnels</t>
<t>(SR-)MPLS tunnels, that is, MPLS and Segment Routing with MPLS
data plane tunnels</t>
<t>IP tunnels</t>
<t>SRv6 tunnels</t>
</list></t>
<t><xref target="Tunnel"/> lists the encapsulations supported by this
document. Any tunnel encapsulation not listed in <xref
target="Tunnel"/>) is out of scope. Tunnel encapsulations used by EVPN
can be categorized into one of the four encapsulation groups mentioned
above and support Split Horizon filtering based on the following
rules:</t>
<t><list style="symbols">
<t>IP-based MPLS tunnels and SRv6 tunnels are capable of
supporting both Split Horizon filtering methods.</t>
<t>(SR-)MPLS tunnels only support ESI Label-based Split Horizon
filtering</t>
<t>IP tunnels support Local Bias Split Horizon filtering and may
also support ESI Label-based Split Horizon filtering, provided
they incorporate a mechanism to identify the source ESI in the
header.</t>
</list></t>
<texttable align="left" anchor="Tunnel" style="all"
title="Tunnel Encapsulations and Split Horizon Types">
<ttcol>Tunnel Encapsulation</ttcol>
<ttcol>Default Split Horizon Type (SHT)</ttcol>
<ttcol>Supports Local Bias</ttcol>
<ttcol>Supports ESI Label</ttcol>
<c>MPLSoGRE (IP-based MPLS)</c>
<c>ESI Label filtering</c>
<c>Yes</c>
<c>Yes</c>
<c>MPLSoUDP (IP-based MPLS)</c>
<c>ESI Label filtering</c>
<c>Yes</c>
<c>Yes</c>
<c>(SR-)MPLS</c>
<c>ESI Label filtering</c>
<c>No</c>
<c>Yes</c> <!-- [rfced] For clarity and consistency with other list items, may we
adjust the term "(SR-)MPLS" as seen below?
<c>VXLAN (IP tunnels)</c> Original:
<c>Local Bias</c> This document classifies the tunnel encapsulations used by EVPN into:
<c>Yes</c> 1. IP-based MPLS tunnels
<c>No</c> 2. (SR-)MPLS tunnels, that is, MPLS and Segment Routing with MPLS
data plane tunnels
<c>NVGRE (IP tunnels)</c> 3. IP tunnels
<c>Local Bias</c> 4. SRv6 tunnels
<c>Yes</c> Perhaps:
<c>No</c> This document classifies the tunnel encapsulations used by EVPN into:
<c>VXLAN-GPE (IP tunnels)</c> 1. IP-based MPLS tunnels
<c>Local Bias</c> 2. MPLS and SR-MPLS tunnels
<c>Yes</c> 3. IP tunnels
<c>No</c> 4. SRv6 tunnels
<c>GENEVE (IP tunnels)</c> b.) "(SR-)MPLS" also appears in the instances below. For ease of the reader, may
we update these instances similarly?
<c>Local Bias (no ESI Lb), ESI Label (if ESI lb)</c> Originals:
<c>Yes</c> * (SR-)MPLS tunnels only support ESI Label-based Split Horizon
filtering
<c>Yes</c> | (SR-)MPLS | ESI Label filtering | No | Yes |
<c>SRv6</c> -->
<c>ESI Label filtering</c> <ol spacing="normal" type="1"><li>
<t>IP-based MPLS tunnels</t>
</li>
<li>
<t>(SR-)MPLS tunnels, that is, MPLS and Segment Routing with MPLS
data plane tunnels</t>
</li>
<li>
<t>IP tunnels</t>
</li>
<li>
<t>SRv6 tunnels</t>
</li>
</ol>
<c>Yes</c> <t><xref target="Tunnel" format="default"/> lists the encapsulations
supported by this document. Any tunnel encapsulation not listed in
<xref target="Tunnel" format="default"/> is out of scope. Tunnel
encapsulations used by EVPN can be categorized into one of the four
encapsulation groups mentioned above and support Split Horizon
filtering based on the following rules:</t>
<c>Yes</c> <ul spacing="normal">
</texttable> <li>
<t>IP-based MPLS tunnels and SRv6 tunnels are capable of
supporting both Split Horizon filtering methods.</t>
</li>
<li>
<t>(SR-)MPLS tunnels only support ESI Label-based Split
Horizon filtering.</t>
</li>
<li>
<t>IP tunnels support Local Bias Split Horizon filtering and may
also support ESI Label-based Split Horizon filtering, provided
they incorporate a mechanism to identify the source ESI in the
header.</t>
</li>
</ul>
<table align="left" anchor="Tunnel">
<name>Tunnel Encapsulations and Split Horizon Types</name>
<thead>
<tr>
<th align="left">Tunnel Encapsulation</th>
<th align="left">Default Split Horizon Type (SHT)</th>
<th align="left">Supports Local Bias</th>
<th align="left">Supports ESI Label</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">MPLSoGRE (IP-based MPLS)</td>
<td align="left">ESI Label filtering</td>
<td align="left">Yes</td>
<td align="left">Yes</td>
</tr>
<tr>
<td align="left">MPLSoUDP (IP-based MPLS)</td>
<td align="left">ESI Label filtering</td>
<td align="left">Yes</td>
<td align="left">Yes</td>
</tr>
<tr>
<td align="left">(SR-)MPLS</td>
<td align="left">ESI Label filtering</td>
<td align="left">No</td>
<td align="left">Yes</td>
</tr>
<tr>
<td align="left">VXLAN (IP tunnels)</td>
<td align="left">Local Bias</td>
<td align="left">Yes</td>
<td align="left">No</td>
</tr>
<tr>
<td align="left">NVGRE (IP tunnels)</td>
<td align="left">Local Bias</td>
<td align="left">Yes</td>
<td align="left">No</td>
</tr>
<tr>
<td align="left">VXLAN-GPE (IP tunnels)</td>
<td align="left">Local Bias</td>
<td align="left">Yes</td>
<td align="left">No</td>
</tr>
<tr>
<td align="left">GENEVE (IP tunnels)</td>
<td align="left">Local Bias (if no ESI Lb), ESI Label (if ESI lb)<
/td>
<td align="left">Yes</td>
<td align="left">Yes</td>
</tr>
<tr>
<td align="left">SRv6</td>
<td align="left">ESI Label filtering</td>
<td align="left">Yes</td>
<td align="left">Yes</td>
</tr>
</tbody>
</table>
<t>The ESI Label method is applicable for both All-Active and <t>The ESI Label method is applicable for both All-Active and
Single-Active configurations, whereas the Local Bias method is Single-Active configurations, whereas the Local Bias method is
suitable only for All-Active configurations. Moreover, the ESI Label suitable only for All-Active configurations. Moreover, the ESI Label
method is effective across different network domains, while Local Bias method is effective across different network domains, while Local Bias
is constrained to networks where there is no change in the next hop is constrained to networks where there is no change in the next hop
between the NVEs attached to the same ES. Nonetheless, some operators between the NVEs attached to the same ES. Nonetheless, some operators
favor the Local Bias method due to its simplification of the 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 other fact that the ingress NVE always forwards traffic locally to other
interfaces, thereby decreasing the delay in reaching multihomed interfaces, thereby decreasing the delay in reaching multihomed
skipping to change at line 476 skipping to change at line 581
Single-Active configurations, whereas the Local Bias method is Single-Active configurations, whereas the Local Bias method is
suitable only for All-Active configurations. Moreover, the ESI Label suitable only for All-Active configurations. Moreover, the ESI Label
method is effective across different network domains, while Local Bias method is effective across different network domains, while Local Bias
is constrained to networks where there is no change in the next hop is constrained to networks where there is no change in the next hop
between the NVEs attached to the same ES. Nonetheless, some operators between the NVEs attached to the same ES. Nonetheless, some operators
favor the Local Bias method due to its simplification of the 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 other fact that the ingress NVE always forwards traffic locally to other
interfaces, thereby decreasing the delay in reaching multihomed interfaces, thereby decreasing the delay in reaching multihomed
hosts.</t> hosts.</t>
<t>This document extends the EVPN multihoming procedures to allow <t>This document extends the EVPN multihoming procedures to allow
operators to select the preferred Split Horizon method for a given NVO operators to select the preferred Split Horizon method for a given NVO
tunnel according to their specific requirements. The choice between tunnel according to their specific requirements. The choice between
Local Bias and ESI Label Split Horizon is now allowed (by Local Bias and ESI Label Split Horizon is now allowed (by
configuration) for tunnel encapsulations that support both methods, configuration) for tunnel encapsulations that support both methods,
and this selection is advertised along with the EVPN A-D per ES route. and this selection is advertised along with the EVPN A-D per ES route.
IP tunnels that do not support both methods, such as VXLAN or NVGRE, IP tunnels that do not support both methods, such as VXLAN or NVGRE,
will continue to adhere to the procedures specified in <xref will continue to adhere to the procedures specified in <xref
target="RFC8365"/>. Note that this document does not modify the Local target="RFC8365" format="default"/>. Note that this document does not
Bias or the ESI Label Split Horizon procedures themselves, just modify the Local Bias or the ESI Label Split Horizon procedures
focuses on the signaling and selection of the Split Horizon method to themselves, just focuses on the signaling and selection of the Split
apply by the multihomed NVEs. </t> Horizon method to apply by the multihomed NVEs. </t>
</section> </section>
</section> </section>
<section anchor="sect-2" numbered="true" toc="default">
<section anchor="sect-2" title="BGP EVPN Extensions"> <name>BGP EVPN Extensions</name>
<t>Extensions to EVPN are required to enable NVEs to advertise their <t>Extensions to EVPN are required to enable NVEs to advertise their
preferred Split Horizon method for a given ES. <xref preferred Split Horizon method for a given ES. <xref
target="esi-label-extended-community"/> illustrates the ESI Label target="esi-label-extended-community" format="default"/> illustrates the
extended community (<xref target="RFC7432"/> Section 7.5), which is ESI Label extended community (<xref target="RFC7432" sectionFormat="of"
consistently advertised alongside the EVPN A-D per ES route. All NVEs section="7.5"/>), which is consistently advertised alongside the EVPN
connected to an ES advertise an A-D per ES route for that ES, including A-D per ES route. All NVEs connected to an ES advertise an A-D per ES
the extended community, which communicates information regarding the route for that ES, including the extended community, which communicates
multihoming mode (either All-Active or Single-Active) and, if necessary, information regarding the multihoming mode (either All-Active or
specifies the ESI Label to be utilized.</t> Single-Active) and, if necessary, specifies the ESI Label to be
utilized.</t>
<figure anchor="esi-label-extended-community" <figure anchor="esi-label-extended-community">
title="ESI Label extended community"> <name>ESI Label Extended Community</name>
<artwork><![CDATA[ 1 2 <artwork name="" type="" align="left" alt=""><![CDATA[
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork> ]]></artwork>
</figure> </figure>
<t><xref target="RFC7432"/> defines the low-order bit of the Flags octet <t><xref target="RFC7432" format="default"/> defines the low-order bit
(bit 0) as the "Single-Active" bit:</t> of the Flags octet (bit 0) as the "Single-Active" bit:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>A value of 0 means that the multihomed ES is operating in <t>A value of 0 means that the multihomed ES is operating in
All-Active multihoming redundancy mode.</t> All-Active multihoming redundancy mode.</t>
</li>
<li>
<t>A value of 1 means that the multihomed ES is operating in <t>A value of 1 means that the multihomed ES is operating in
Single-Active multihoming redundancy mode.</t> Single-Active multihoming redundancy mode.</t>
</list><xref target="sect-5"/> establishes a registry for the Flags </li>
</ul>
<t><xref target="sect-5" format="default"/> establishes a registry for the
Flags
octet, designating the "Single-Active" bit as the low-order bit of the octet, designating the "Single-Active" bit as the low-order bit of the
newly defined multihoming redundancy mode field.</t> newly defined Multihoming Redundancy Mode field.</t>
<section anchor="sect-2.1" numbered="true" toc="default">
<section anchor="sect-2.1" title="The Split Horizon Type"> <name>The Split Horizon Type</name>
<t><xref target="RFC8365"/> does not include any explicit indication <t><xref target="RFC8365" format="default"/> does not include any
regarding the Split Horizon method in the A-D per Ethernet Segment explicit indication regarding the Split Horizon method in the A-D per
(ES) route. In this document, the Split Horizon procedure defined in ES route. In this document, the Split Horizon procedure defined in
<xref target="RFC8365"/> (section 8.3.1) is considered the default <xref target="RFC8365" sectionFormat="of" section="8.3.1"/> is
behavior, presuming that Local Bias is employed exclusively for IP considered the default behavior, presuming that Local Bias is employed
tunnels, while ESI Label-based Split Horizon is used for IP-based MPLS exclusively for IP tunnels, while ESI Label-based Split Horizon is
tunnels. This document specifies that the two high-order bits in the used for IP-based MPLS tunnels. This document specifies that the two
Flags octet (bits 6 and 7) constitute the "Split Horizon Type" (SHT) high-order bits in the Flags octet (bits 6 and 7) constitute the "Split
Horizon Type" or "SHT"
field, where:</t> field, where:</t>
<figure> <!-- [rfced] Please review the artwork in Section 2.1 and let us know what
<artwork><![CDATA[ 7 6 5 4 3 2 1 0 "Section 5" refers to and if any other updates are needed. Perhaps this refers t
o Table 3?
Original:
RED = "Multihoming Redundancy Mode" field (section 5)
-->
<!-- [rfced] The figure in Section 2.1 indicates that value 11 is "reserved for
future use". However, table 3 (and the IANA registry) indicates the value is un
assigned. "Reserved" and "Unassigned" have distinct meanings. Please review "W
ell-Known Registration Status Terminology" in RFC 8126 <https://www.rfc-editor.o
rg/rfc/rfc8126.html#section-6> and let us know which is correct.
Section 2.1 (double hyphen changed to single hyphen so this comment appears corr
ectly in the XML file:
1 1 -> reserved for future use
Table 3:
| 11 | Unassigned | |
-->
<artwork name="" type="" align="left" alt="">
<![CDATA[
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
]]></artwork> ]]></artwork>
</figure> <ul spacing="normal">
<li>
<t><list style="symbols"> <t>SHT = 00 is backwards compatible with <xref target="RFC8365" form
<t>SHT = 00 is backwards compatible with <xref target="RFC8365"/> at="default"/>
and <xref target="RFC7432"/>, and indicates that the advertising and <xref target="RFC7432" format="default"/>, and indicates that th
e advertising
NVE intends to use the default or built-in SHT. The default SHT is NVE intends to use the default or built-in SHT. The default SHT is
shown in <xref target="Tunnel"/> for each encapsulation. An egress shown in <xref target="Tunnel" format="default"/> for each encapsula
NVE that follows the <xref target="RFC8365"/> behavior and does tion. An egress
NVE that follows the <xref target="RFC8365" format="default"/> behav
ior and does
not support this specification will ignore the SHT bits (which is not support this specification will ignore the SHT bits (which is
equivalent to process them as value of 00).</t> equivalent to processing them as a value of 00).</t>
</li>
<li>
<t>SHT = 01 indicates that the advertising NVE intends to use <t>SHT = 01 indicates that the advertising NVE intends to use
Local Bias procedures in the ES for which the AD per-ES route is Local Bias procedures in the ES for which the AD per-ES route is
advertised.</t> advertised.</t>
</li>
<li>
<t>SHT = 10 indicates that the advertising NVE intends to use the <t>SHT = 10 indicates that the advertising NVE intends to use the
ESI Label based Split Horizon method procedures in the ES for ESI Label-based Split Horizon method procedures in the ES for
which the AD per-ES route is advertised.</t> which the AD per-ES route is advertised.</t>
</li>
<li>
<t>SHT = 11 is a reserved value, for future use.</t> <t>SHT = 11 is a reserved value, for future use.</t>
</list></t> </li>
</ul>
</section> </section>
<section anchor="sect-2.2" numbered="true" toc="default">
<section anchor="sect-2.2" <name>Use of the Split Horizon Type in A-D per ES Routes</name>
title="Use of the Split Horizon Type In A-D Per ES Routes">
<t>The following behavior is observed:</t> <t>The following behavior is observed:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>An SHT value of 01 or 10 MUST NOT be used with encapsulations <t>An SHT value of 01 or 10 <bcp14>MUST NOT</bcp14> be used with
that support only one SHT in <xref target="Tunnel"/>, and MAY be encapsulations that support only one SHT in <xref target="Tunnel"
used by encapsulations that support the two SHTs in <xref format="default"/>, and <bcp14>MAY</bcp14> be used by
target="Tunnel"/>.</t> encapsulations that support the two SHTs in <xref target="Tunnel"
format="default"/>.</t>
<t>An SHT value different from 00 expresses the intent to use a </li>
<li>
<t>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.</t> attached to the ES advertise the same SHT.</t>
</li>
<t>In case of inconsistency in the SHT value advertised by the <li>
NVEs attached to the same ES for a given EVI, all the NVEs MUST <t>In case of an inconsistency in the SHT value advertised by the
revert to the <xref target="RFC8365"/> behavior, and use the NVEs attached to the same ES for a given EVI, all the NVEs <bcp14>MU
default SHT in <xref target="Tunnel"/>, irrespective of the ST</bcp14>
revert to the behavior in <xref target="RFC8365" format="default"/>
and use the
default SHT in <xref target="Tunnel" format="default"/>, irrespectiv
e of the
advertised SHT.</t> advertised SHT.</t>
</li>
<t>An SHT different from 00 MUST NOT be set if the Single-Active <li>
bit is set. A received A-D per ES route where Single-Active and <t>An SHT different than 00 <bcp14>MUST NOT</bcp14> be set if the "S
SHT bits are different from zero MUST follow the treat-as-withdraw ingle-Active"
behavior <xref target="RFC7606"/>.</t> bit is set. A received A-D per ES route where the "Single-Active" an
d
<t>The SHT MUST have the same value in each Ethernet A-D per ES SHT bits are different than zero <bcp14>MUST</bcp14> follow the trea
t-as-withdraw
behavior in <xref target="RFC7606" format="default"/>.</t>
</li>
<li>
<t>The SHT <bcp14>MUST</bcp14> have the same value in each Ethernet
A-D per ES
route that an NVE advertises for a given ES and a given route that an NVE advertises for a given ES and a given
encapsulation (see <xref target="sect-3"/> for NVEs supporting encapsulation (see <xref target="sect-3" format="default"/> for NVEs supporting
multiple encapsulations).</t> multiple encapsulations).</t>
</list></t> </li>
</ul>
<t>As an example, egress NVEs that support IP-based MPLS tunnels, such <t>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
<xref target="RFC9012"/>. This extended community indicates the <xref target="RFC9012" format="default"/>. This extended community indic
ates the
encapsulation type (MPLSoGRE or MPLSoUDP) and may use the SHT value of encapsulation type (MPLSoGRE or MPLSoUDP) and may use the SHT value of
01 or 10 to signify the intent to use Local Bias or ESI Label, 01 or 10 to signify the intent to use Local Bias or the ESI Label,
respectively.</t> respectively.</t>
<t>An egress NVE MUST NOT use an SHT value other than 00 when <!-- [rfced] How may we adjust the text below to avoid using an RFC as an
advertising an A-D per ES route with <xref target="RFC9012"/> Tunnel adjective?
Original:
An egress NVE MUST NOT use an SHT value other than 00 when
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
tunnel encapsulation extended community at all.
Perhaps:
An egress NVE MUST NOT use an SHT value other than 00 when
advertising an A-D per ES route with the following tunnel encapsulation
types from [RFC9012]: VXLAN (type 8), NVGRE (type 9), MPLS (type 10), or no B
GP
Tunnel Encapsulation Extended Community at all.
-->
<t>An egress NVE <bcp14>MUST NOT</bcp14> use an SHT value other than 00
when
advertising an A-D per ES route with <xref target="RFC9012" format="defa
ult"/> Tunnel
encapsulation types of VXLAN (type 8), NVGRE (type 9), MPLS (type 10), encapsulation types of VXLAN (type 8), NVGRE (type 9), MPLS (type 10),
or no BGP tunnel encapsulation extended community at all. In all these or no BGP Tunnel Encapsulation Extended Community at all. In all these
cases, it is presumed that there is no choice for the Split Horizon cases, 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 method; therefore, the SHT value <bcp14>MUST</bcp14> be set to 00. If a route with
any of the mentioned encapsulation options is received and has an SHT any of the mentioned encapsulation options is received and has an SHT
value different from 00, it SHOULD apply the treat-as-withdraw value different than 00, it <bcp14>SHOULD</bcp14> apply the treat-as-wit
behavior, per <xref target="RFC7606"/>.</t> hdraw
behavior, per <xref target="RFC7606" format="default"/>.</t>
<t>An egress NVE advertising A-D per ES route(s) for an ES with GENEVE <!-- [rfced] How may we update the citations in the text below? We were unable
encapsulation (<xref target="RFC9012"/>, Tunnel encapsulation type 19, to find either "Tunnel encapsulation type 19" or "GENEVE" encapsulation in
<xref target="I-D.ietf-bess-evpn-geneve"/>) MAY use an SHT value of 01 [RFC9012]. We note that the IANA entry refers to RFC 8926 (19 Geneve En
or 10. A value of 01 indicates the intent to use Local Bias, capsulation).
regardless of the presence of an Ethernet option TLV with a non-zero
Source-ID, as described in <xref target="I-D.ietf-bess-evpn-geneve"/>.
A value of 10 indicates the intent to use ESI Label-based Split
Horizon, and it is only valid if an Ethernet option TLV with non-zero
Source-ID is present. A value of 00 indicates the default behavior
outlined in <xref target="Tunnel"/>, which 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 ESI Label Split Horizon method
is applied.</t>
Original:
An egress NVE advertising A-D per ES route(s) for an ES with GENEVE
encapsulation ([RFC9012], Tunnel encapsulation type 19,
[I-D.ietf-bess-evpn-geneve]) MAY use an SHT value of 01 or 10.
Perhaps:
An egress NVE advertising A-D per ES route(s) for an ES with GENEVE
encapsulation [RFC9012] (and tunnel encapsulation type 19 [EVPN-GENEVE]) MAY
use an SHT value of 01 or 10.
-->
<t>An egress NVE advertising A-D per ES route(s) for an ES with GENEVE
encapsulation (<xref target="RFC9012" format="default"/>, Tunnel
encapsulation type 19, <xref target="I-D.ietf-bess-evpn-geneve"
format="default"/>) <bcp14>MAY</bcp14> use an SHT value of 01 or 10. A
value of 01 indicates the intent to use Local Bias, regardless of the
presence of an Ethernet option TLV with a non-zero Source-ID, as
described in <xref target="I-D.ietf-bess-evpn-geneve"
format="default"/>. A value of 10 indicates the intent to use ESI
Label-based Split Horizon, and it is only valid if an Ethernet option
TLV with a non-zero Source-ID is present. A value of 00 indicates the
default behavior outlined in <xref target="Tunnel" format="default"/>,
which is to use Local Bias if:</t>
<ol type="a">
<li>no ESI Label is present in the Ethernet option TLV, or </li>
<li>there is no Ethernet option TLV.</li>
</ol>
<t>Otherwise, the ESI Label Split Horizon method is applied.</t>
<t>These procedures assume a single encapsulation supported in the <t>These procedures assume a single encapsulation supported in the
egress NVE. <xref target="sect-3"/> describes additional procedures egress NVE. <xref target="sect-3" format="default"/> describes additiona l procedures
for NVEs supporting multiple encapsulations.</t> for NVEs supporting multiple encapsulations.</t>
</section> </section>
<section anchor="sect-2.3" numbered="true" toc="default">
<section anchor="sect-2.3" title="ESI Label Value In A-D Per ES Routes"> <name>The ESI Label Value in A-D per ES Routes</name>
<t>This document also updates <xref target="RFC8365"/> regarding the <t>This document also updates <xref target="RFC8365" format="default"/>
regarding the
value that is advertised in the ESI Label field of the ESI Label value that is advertised in the ESI Label field of the ESI Label
extended community, as follows:</t> extended community, as follows:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>The A-D per ES route(s) for an ES MAY have an ESI Label value <t>The A-D per ES route(s) for an ES <bcp14>MAY</bcp14> have an ESI
of zero if the SHT value is 01. <xref target="sect-2.2"/> Label value
of zero if the SHT value is 01. <xref target="sect-2.2" format="defa
ult"/>
specifies the scenarios where the SHT can be 01. An ESI Label specifies the scenarios where the SHT can be 01. An ESI Label
value of zero eliminates the need to allocate labels in cases value of zero eliminates the need to allocate labels in cases
where they are not utilized, such as in the Local Bias method.</t> where they are not utilized, such as in the Local Bias method.</t>
</li>
<t>The A-D per ES route(s) for an ES MAY have an ESI Label value <li>
<t>The A-D per ES route(s) for an ES <bcp14>MAY</bcp14> have an ESI
Label value
of zero for VXLAN or NVGRE encapsulations.</t> of zero for VXLAN or NVGRE encapsulations.</t>
</list></t> </li>
</ul>
</section> </section>
<section anchor="sect-2.4" <!-- [rfced] How may we rephrase the title of this section to avoid using an
title="Backwards Compatibility With RFC8365 NVEs"> RFC as an adjective?
<t>As discussed in <xref target="sect-2.2"/> this specification is
backwards compatible with the Split Horizon filtering behavior in
<xref target="RFC8365"/> and a non-upgraded NVE can be attached to the
same ES as other NVEs supporting this specification.</t>
<t>An NVE maintains an administrative SHT value for an Ethernet Original:
Segment (ES), which is advertised alongside the A-D per ES route, and
an operational SHT value, which is the one actually used regardless of
what the NVE has advertised. The administrative SHT matches the
operational SHT if all the NVEs attached to the ES have the same
administrative SHT.</t>
<t>This document assumes that an implementation of <xref 2.4. Backwards Compatibility With RFC8365 NVEs
target="RFC7432"/> or <xref target="RFC8365"/> that does not support
Perhaps (no RFC mentioned):
2.4. Backwards Compatibility with NVEs
Perhaps (RFC mentioned):
2.4. Backwards Compatibility with NVEs from RFC 8365
-->
<section anchor="sect-2.4" numbered="true" toc="default">
<name>Backwards Compatibility with RFC 8365 NVEs</name>
<t>As discussed in <xref target="sect-2.2" format="default"/>, this
specification is backwards compatible with the Split Horizon filtering
behavior in <xref target="RFC8365" format="default"/> and a
non-upgraded NVE can be attached to the same ES as other NVEs
supporting this specification.</t>
<t>An NVE maintains an administrative SHT value for an ES, which is
advertised alongside the A-D per ES route, and an operational SHT
value, which is the one actually used regardless of what the NVE has
advertised. The administrative SHT matches the operational SHT if all
the NVEs attached to the ES have the same administrative SHT.</t>
<t>This document assumes that an implementation of <xref target="RFC7432
" format="default"/> or <xref target="RFC8365" format="default"/> that does not
support
the specifications in this document will ignore the values of all the the specifications in this document will ignore the values of all the
Flags in the ESI Label extended community, except for the Flags in the ESI Label extended community, except for the
Single-Active bit. Based on this assumption, a non-upgraded NVE will "Single-Active" bit. Based on this assumption, a non-upgraded NVE will
disregard any SHT value other than 00. If an upgraded NVE receives at disregard any SHT value other 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 least one A-D per ES route for the ES with an SHT value of 00, it <bcp14 >MUST</bcp14>
revert its operational SHT to the default Split Horizon method, as revert its operational SHT to the default Split Horizon method, as
described in <xref target="Tunnel"/>, irrespective of its described in <xref target="Tunnel" format="default"/>, irrespective of i ts
administrative SHT.</t> administrative SHT.</t>
<t>For instance, consider an NVE attached to ES N that receives two <t>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 A-D 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 route 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 SHT value of 01, the NVE <bcp14>MUST</bcp14> use the default Split Horiz
specified in <xref target="Tunnel"/> as its operational SHT, on method
specified in <xref target="Tunnel" format="default"/> as its operational
SHT,
regardless of its administrative SHT.</t> regardless of its administrative SHT.</t>
<t>All NVEs attached to an ES with an operational SHT value of 10 <bcp14
<t>All NVEs attached to an ES with an operational SHT value of 10 MUST >MUST</bcp14>
advertise a valid, non-zero ESI Label. If the operational SHT value is advertise a valid, non-zero ESI Label. If the operational SHT value is
01, the ESI Label MAY be zero. If the operational SHT value is 00, the 01, the ESI Label <bcp14>MAY</bcp14> be zero. If the operational SHT val ue is 00, the
ESI Label may be zero only if the default encapsulation supports Local ESI Label may be zero only if the default encapsulation supports Local
Bias exclusively, and the NVEs do not require the presence of a valid, Bias exclusively, and the NVEs do not require the presence of a valid,
non-zero ESI Label.</t> non-zero ESI Label.</t>
<t>If an NVE changes its operational SHT value from 01 (Local Bias) to <t>If an NVE changes its operational SHT value from 01 (Local Bias) to
00 (Default SHT) due to the presence of a new non-upgraded NVE in the 00 (Default SHT) due to the presence of a new non-upgraded NVE in the
ES, and it previously advertised a zero ESI Label, it MUST send an ES, and it previously advertised a zero ESI Label, it <bcp14>MUST</bcp14 > send an
update with a valid, non-zero ESI Label, unless all the non-upgraded update with a valid, non-zero ESI Label, unless all the non-upgraded
NVEs in the ES support only Local Bias. For example, consider NVE1 and NVEs in the ES support only Local Bias. For example, consider NVE1 and
NVE2 using MPLSoUDP as encapsulation, attached to the same Ethernet NVE2 using MPLSoUDP as encapsulation, attached to the same Ethernet
Segment ES1, and advertising an SHT value of 01 (Local Bias) with a Segment ES1, and advertising an SHT value of 01 (Local Bias) with a
zero ESI Label value. Suppose NVE3, which does not support this zero ESI Label value. Suppose NVE3, which does not support this
specification, joins ES1 and advertises an SHT value of 00 (default). specification, joins ES1 and advertises an SHT value of 00 (default).
Upon receiving NVE3's A-D per ES route, NVE1 and NVE2 MUST update Upon receiving NVE3's A-D per ES route, NVE1 and NVE2 <bcp14>MUST</bcp14 > update
their A-D per ES routes for ES1 to include a valid, non-zero ESI Label their A-D per ES routes for ES1 to include a valid, non-zero ESI Label
value. The assumption here is that NVE3 only supports the default ESI value. The assumption here is that NVE3 only supports the default ESI
Label-based Split Horizon filtering.</t> Label-based Split Horizon filtering.</t>
</section> </section>
</section> </section>
<section anchor="sect-3" numbered="true" toc="default">
<name>Procedures for NVEs Supporting Multiple Encapsulations</name>
<t>As specified in <xref target="RFC8365" format="default"/>, an NVE
that supports multiple data plane encapsulations (e.g., VXLAN, NVGRE,
MPLS, MPLSoUDP, GENEVE) must indicate all supported encapsulations using
BGP Encapsulation extended communities as defined in <xref
target="RFC9012" format="default"/> for all EVPN routes. This section
provides clarification on the multihoming Split Horizon behavior for
NVEs that advertise and receive multiple BGP Encapsulation extended
communities along with the A-D per ES routes. This section uses the
notation {x, y} (more than two encapsulations is possible too) to denote
the encapsulations advertised in BGP Encapsulation extended communities
(or the BGP Tunnel Encapsulation Attribute), where x and y represent
different encapsulation values. When GENEVE is one of the
encapsulations, the tunnel type is indicated in either a BGP
Encapsulation extended community or a BGP Tunnel Encapsulation
Attribute.</t>
<section anchor="sect-3" <t>It is important to note that an NVE <bcp14>MAY</bcp14> advertise multip
title="Procedures for NVEs Supporting Multiple Encapsulations"> le A-D per ES
<t>As specified in <xref target="RFC8365"/>, an NVE that supports
multiple data plane encapsulations (e.g., VXLAN, NVGRE, MPLS, MPLSoUDP,
GENEVE) must indicate all supported encapsulations using BGP
Encapsulation extended communities as defined in <xref
target="RFC9012"/> for all EVPN routes. This section provides
clarification on the multihoming Split Horizon behavior for NVEs that
advertise and receive multiple BGP Encapsulation extended communities
along with the A-D per ES routes. This section uses the notation {x, y}
(more than two encapsulations is possible too) to denote the
encapsulations advertised in BGP Encapsulation extended communities (or
BGP Tunnel Encapsulation Attribute), where x and y represent different
encapsulation values. When GENEVE is one of the encapsulations, the
tunnel type is indicated in either a BGP Encapsulation extended
community or a BGP Tunnel Encapsulation Attribute. </t>
<t>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 Targets conveying a set of Route Targets (RTs). The total set of RTs
associated with a given ES is referred to as the RT-set for that ES. associated with a given ES is referred to as the RT-set for that ES.
Each of the EVIs represented in the RT-set will have its RT included in Each of the EVIs represented in the RT-set will have its RT included in
one, and only one, A-D per ES route for the ES. When multiple A-D per ES one, and only one, A-D per ES route for the ES. When multiple A-D per ES
routes are advertised for the same ES, each route must have a distinct routes are advertised for the same ES, each route must have a distinct
Route Distinguisher.</t> Route Distinguisher.</t>
<t>As per <xref target="RFC8365"/>, an NVE that advertises multiple <t>As per <xref target="RFC8365" format="default"/>, an NVE that advertise
encapsulations in the A-D per ES route(s) for an ES MUST advertise s multiple
encapsulations in the A-D per ES route(s) for an ES <bcp14>MUST</bcp14> ad
vertise
encapsulations that use the same Split Horizon filtering method in the encapsulations that use the same Split Horizon filtering method in the
same route. For example:</t> same route. For example:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>An A-D per ES route for ES-x may be advertised with {VXLAN, <t>An A-D per ES route for ES-x may be advertised with {VXLAN,
NVGRE} encapsulations.</t> NVGRE} encapsulations.</t>
</li>
<li>
<t>An A-D per ES route for ES-y may be advertised with {MPLS, <t>An A-D per ES route for ES-y may be advertised with {MPLS,
MPLSoUDP, MPLSoGRE} encapsulations (or a subset).</t> MPLSoUDP, MPLSoGRE} encapsulations (or a subset).</t>
</li>
<t>But an A-D per ES route for ES-z MUST NOT be advertised with <li>
<t>However, an A-D per ES route for ES-z <bcp14>MUST NOT</bcp14> be ad
vertised with
{MPLS, VXLAN} encapsulations.</t> {MPLS, VXLAN} encapsulations.</t>
</list></t> </li>
</ul>
<t>This document extends the described behavior as follows:</t> <t>This document extends the described behavior as follows:</t>
<ol spacing="normal" type="a"><li>
<t><list style="letters">
<t>An A-D per ES route for ES-x may be advertised with multiple <t>An A-D per ES route for ES-x may be advertised with multiple
encapsulations, some of which support a single Split Horizon method. encapsulations, some of which support a single Split Horizon method.
In this case, the Split Horizon Type (SHT) value MUST be 00. For In this case, the SHT value <bcp14>MUST</bcp14> be 00. For instance,
instance, encapsulations such as {VXLAN, NVGRE}, {VXLAN, GENEVE}, or encapsulations such as {VXLAN, NVGRE}, {VXLAN, GENEVE}, or {MPLS,
{MPLS, MPLSoGRE, MPLSoUDP} can be advertised in an A-D per ES route. MPLSoGRE, MPLSoUDP} can be advertised in an A-D per ES route. In
In all these cases, the SHT value MUST be 00 and the behavior all these cases, the SHT value <bcp14>MUST</bcp14> be 00 and the
treat-as-withdraw <xref target="RFC7606"/> is applied in case of any treat-as-withdraw behavior <xref target="RFC7606" format="default"/>
other value.</t> is applied in case of any other value.</t>
</li>
<li>
<t>An A-D per ES route for ES-y may be advertised with multiple <t>An A-D per ES route for ES-y may be advertised with multiple
encapsulations that all support both Split Horizon methods. In this encapsulations that all support both Split Horizon methods. In this
case, the SHT value MAY be 01 if the preferred method is Local Bias, case, the SHT value <bcp14>MAY</bcp14> be 01 if the preferred method i s Local Bias,
or 10 if the ESI Label-based method is desired. For example, or 10 if the ESI Label-based method is desired. For example,
encapsulations such as {MPLSoGRE, MPLSoUDP, GENEVE} (or a subset) encapsulations such as {MPLSoGRE, MPLSoUDP, GENEVE} (or a subset)
MAY be advertised in an A-D per ES route with an SHT value of 01. <bcp14>MAY</bcp14> be advertised in an A-D per ES route with an SHT va
The ESI Label value in this case MAY be zero.</t> lue of 01.
The ESI Label value in this case <bcp14>MAY</bcp14> be zero.</t>
<t>If ES-z with RT-set composed of (RT1, RT2, RT3.. RTn) supports </li>
<li>
<t>If ES-z with an RT-set composed of (RT1, RT2, RT3.. RTn) supports
multiple encapsulations requiring different Split Horizon methods, a multiple encapsulations requiring different Split Horizon methods, a
distinct A-D per ES route (or group of routes) per Split Horizon distinct A-D per ES route (or group of routes) per Split Horizon
method MUST be advertised. For example, consider an ES-z with n method <bcp14>MUST</bcp14> be advertised. For example, consider an ES-
Route Targets (RTs) where:<list style="symbols"> z with n RTs, where:</t>
<ul spacing="normal">
<li>
<t>the EVIs corresponding to (RT1..RTi) support VXLAN,</t> <t>the EVIs corresponding to (RT1..RTi) support VXLAN,</t>
</li>
<li>
<t>the ones for (RTi+1..RTm) (with i&lt;m) support MPLSoUDP with <t>the ones for (RTi+1..RTm) (with i&lt;m) support MPLSoUDP with
Local Bias,</t> Local Bias, and</t>
</li>
<t>and the ones for (RTm+1..RTn) (with m&lt;n) support GENEVE <li>
with ESI Label based Split Horizon.</t> <t>the ones for (RTm+1..RTn) (with m&lt;n) support GENEVE
</list>In this scenario, three groups of A-D per ES routes MUST be with ESI Label-based Split Horizon.</t>
advertised for ES-z:<list style="symbols"> </li>
<t>A-D per ES route group 1, including (RT1..RTi), with </ul>
encapsulation {VXLAN}, and an SHT value of 00. The ESI Label MAY <t>In this scenario, three groups of A-D per ES routes <bcp14>MUST</bc
p14> be
advertised for ES-z:</t>
<ul spacing="normal">
<li>
<t>A-D per ES route group 1, including (RT1..RTi) with
encapsulation {VXLAN} and an SHT value of 00. The ESI Label <bcp14
>MAY</bcp14>
be zero.</t> be zero.</t>
</li>
<t>A-D per ES route group 2, including (RTi+1..RTm), with <li>
encapsulation {MPLSoUDP}, and an SHT value of 01. The ESI Label <t>A-D per ES route group 2, including (RTi+1..RTm) with
MAY be zero.</t> encapsulation {MPLSoUDP} and an SHT value of 01. The ESI Label
<bcp14>MAY</bcp14> be zero.</t>
<t>A-D per ES route group 3, including (RTm+1..RTn), with </li>
encapsulation {GENEVE}, and an SHT value of 10. The ESI Label <li>
MUST have a valid, non-zero value, and the Ethernet option as <t>A-D per ES route group 3, including (RTm+1..RTn) with
defined in <xref target="RFC8926"/> MUST be advertised.</t> encapsulation {GENEVE} and an SHT value of 10. The ESI Label
</list></t> <bcp14>MUST</bcp14> have a valid, non-zero value, and the Ethernet
</list></t> option as
defined in <xref target="RFC8926" format="default"/> <bcp14>MUST</
<t>As per <xref target="RFC8365"/>, it is the responsibility of the bcp14> be advertised.</t>
</li>
</ul>
</li>
</ol>
<t>As per <xref target="RFC8365" format="default"/>, it is the responsibil
ity of the
operator of a given EVI to ensure that all of the NVEs within that EVI operator of a given EVI to ensure that all of the NVEs within that EVI
support a common encapsulation. Failure to meet this condition may support a common encapsulation. Failure to meet this condition may
result in service disruption or failure.</t> result in service disruption or failure.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Security Considerations"> <name>Security Considerations</name>
<t>All the security considerations described in <xref target="RFC7432"/> <t>All the security considerations described in <xref target="RFC7432" for
mat="default"/>
are applicable to this document.</t> are applicable to this document.</t>
<t>Additionally, this document modifies the procedures for Split Horizon <t>Additionally, this document modifies the procedures for Split Horizon
filtering as outlined in <xref target="RFC8365"/>, offering operators a filtering as outlined in <xref target="RFC8365" format="default"/>,
choice between Local Bias and ESI Label-based filtering for tunnels that offering operators a choice between Local Bias and ESI Label-based
support both methods. Misconfiguration of the desired Split Horizon Type filtering for tunnels that support both methods. Misconfiguration of the
(SHT) could lead to forwarding behaviors that differ from the intended desired SHT could lead to forwarding behaviors that differ from the
configuration. Apart from this risk, this document describes procedures intended configuration. Apart from this risk, this document describes
to ensure that all Provider Edge (PE) devices or Network Virtualization procedures to ensure that all PE devices or NVEs connected to the same
Edges (NVEs) connected to the same Ethernet Segment (ES) agree on a ES agree on a common SHT method, with a fallback to a default behavior
common SHT method, with a fallback to a default behavior in case of a in case of a mismatch in the SHT bits being advertised by any two PEs or
mismatch in the SHT bits being advertised by any two PEs or NVEs in the NVEs in the ES. Consequently, unauthorized changes to the SHT
Ethernet Segment. Consequently, unauthorized changes to the SHT configuration by an attacker on a single PE or NVE of the ES should not
configuration by an attacker on a single PE or NVE of the Ethernet cause traffic disruption (as long as the SHT value is valid as per this
Segment should not cause traffic disruption (as long as the SHT value is document) but may result in alterations to forwarding behavior.</t>
valid as per this document) but may result in alterations to forwarding
behavior.</t>
</section> </section>
<section anchor="sect-5" numbered="true" toc="default">
<name>IANA Considerations</name>
<section anchor="sect-5" title="IANA Considerations"> <t>Per this document, IANA has created the "EVPN ESI Label Extended Commun
<t>This document creates a registry called "EVPN ESI Label Extended ity Flags" registry for the 1-octet Flags field in the ESI Label Extended
Community Flags" for the 1-octet Flags field in the ESI Label Extended Community <xref target="RFC7432" format="default"/>, as follows:</t>
Community <xref target="RFC7432"/>, as follows:</t> <table align="center">
<thead>
<texttable> <tr>
<ttcol>Bit Position</ttcol> <th align="left">Bit Position</th>
<th align="left">Name</th>
<ttcol>Name</ttcol> <th align="left">Reference</th>
</tr>
<ttcol>Reference</ttcol> </thead>
<tbody>
<c>0-1</c> <tr>
<td align="left">0-1</td>
<c>Multihoming Redundancy Mode</c> <td align="left">Multihoming Redundancy Mode</td>
<td align="left">
<c><xref target="RFC7432"/></c> <xref target="RFC7432" format="default"/></td>
</tr>
<c>2-5</c> <tr>
<td align="left">2-5</td>
<c>Unassigned</c> <td align="left">Unassigned</td>
<td align="left"/>
<c/> </tr>
<tr>
<c>6-7</c> <td align="left">6-7</td>
<td align="left">Split Horizon Type</td>
<c>Split Horizon Type</c> <td align="left">RFC 9746</td>
</tr>
<c>This Document</c> </tbody>
</texttable> </table>
<!-- [rfced] May we make these registry titles plural?
<t>This document also creates a registry for the "Multihoming Redundancy
Mode" field of the EVPN ESI Label Extended Community Flags. This
registry is called "Multihoming Redundancy Mode" and is initialized as
follows:</t>
<texttable>
<ttcol>Value</ttcol>
<ttcol>Multihoming redundancy mode</ttcol>
<ttcol>Reference</ttcol>
<c>00</c>
<c>All-Active mode</c>
<c><xref target="RFC7432"/></c>
<c>01</c>
<c>Single-Active mode</c>
<c><xref target="RFC7432"/></c>
<c>10</c>
<c>Unassigned</c>
<c/>
<c>11</c>
<c>Unassigned</c>
<c/>
</texttable>
<t>Finally, a third registry for the "Split Horizon Type" field of the
EVPN ESI Label Extended Community Flags is created by this document too.
This registry is called "Split Horizon Type" and is initialized as
follows:</t>
<texttable>
<ttcol>Value</ttcol>
<ttcol>Split Horizon Type value</ttcol>
<ttcol>Reference</ttcol>
<c>00</c>
<c>Default SHT</c>
<c>This document</c>
<c>01</c>
<c>Local Bias</c>
<c>This document</c>
<c>10</c>
<c>ESI Label based filtering</c>
<c>This document</c> Multihoming Redundancy Mode -> Multihoming Redundancy Modes
Split Horizon Type -> Split Horizon Types
-->
<c>11</c> <!-- [rfced] Because "mode" is part of the registry and column titles, does "mod e" need to appear in description?
<c>Unassigned</c> From Table 3 and the IANA registry [1]:
+=======+=============================+===========+
| Value | Multihoming redundancy mode | Reference |
+=======+=============================+===========+
| 00 | All-Active mode | [RFC7432] |
| 01 | Single-Active mode | [RFC7432] |
<c/> [1] https://www.iana.org/assignments/bgp-extended-communities/bgp-extended-commu
</texttable> nities.xhtml#multihoming-redundancy-mode
-->
<t>IANA has also created the "Multihoming Redundancy
Mode" registry for the related field of the "EVPN ESI Label Extended Commu
nity Flags". The registry has been populated with the following initial values:
</t>
<table align="center">
<thead>
<tr>
<th align="left">Value</th>
<th align="left">Multihoming Redundancy Mode</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">00</td>
<td align="left">All-Active mode</td>
<td align="left">
<xref target="RFC7432" format="default"/></td>
</tr>
<tr>
<td align="left">01</td>
<td align="left">Single-Active mode</td>
<td align="left">
<xref target="RFC7432" format="default"/></td>
</tr>
<tr>
<td align="left">10</td>
<td align="left">Unassigned</td>
<td align="left"/>
</tr>
<tr>
<td align="left">11</td>
<td align="left">Unassigned</td>
<td align="left"/>
</tr>
</tbody>
</table>
<t>Finally, IANA has created the "Split Horizon Type" registry for the rel
ated field of the
"EVPN ESI Label Extended Community Flags". The registry has been populated
with the following initial values:</t>
<table align="center">
<thead>
<tr>
<th align="left">Value</th>
<th align="left">Split Horizon Type Value</th>
<th align="left">Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">00</td>
<td align="left">Default SHT</td>
<td align="left">RFC 9746</td>
</tr>
<tr>
<td align="left">01</td>
<td align="left">Local Bias</td>
<td align="left">RFC 9746</td>
</tr>
<tr>
<td align="left">10</td>
<td align="left">ESI Label-based filtering</td>
<td align="left">RFC 9746</td>
</tr>
<tr>
<td align="left">11</td>
<td align="left">Unassigned</td>
<td align="left"/>
</tr>
</tbody>
</table>
<t>New registrations in the "EVPN ESI Label Extended Community Flags", <t>New registrations in the "EVPN ESI Label Extended Community Flags",
"Multihoming Redundancy Mode", and "Split Horizon Type" registries will "Multihoming Redundancy Mode", and "Split Horizon Type" registries will
be made through the "IETF Review" procedure defined in <xref be made through the "IETF Review" procedure defined in <xref
target="RFC8126"/>. These registries are located in the "Border Gateway target="RFC8126" format="default"/>. These registries are located in the
Protocol (BGP) Extended Communities" registry group.</t> "Border Gateway Protocol (BGP) Extended Communities" registry group.</t>
</section> </section>
<section anchor="sect-6" title="Acknowledgments">
<t>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.</t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References"> <displayreference target="I-D.ietf-bess-evpn-geneve" to="EVPN-GENEVE"/>
&RFC2119; <displayreference target="I-D.ietf-nvo3-vxlan-gpe" to="VXLAN-GPE"/>
<references>
&RFC8174; <name>References</name>
<references>
<name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
126.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
432.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
365.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
252.xml"/>
</references>
<references>
<name>Informative References</name>
&RFC8126; <!-- [I-D.ietf-bess-evpn-geneve] IESG state: I-D Exists as of 09/05/24-->
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D
.ietf-bess-evpn-geneve.xml"/>
&RFC7432; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
348.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
023.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
637.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
510.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
926.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
012.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
606.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
660.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
986.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
402.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
754.xml"/>
&RFC8365; <!-- [I-D.ietf-nvo3-vxlan-gpe] IESG state: Expired as of 09/05/24 -->
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-nv
o3-vxlan-gpe.xml"/>
&RFC9252; <!-- [IANA-BGP-TUNNEL-ENCAP] -->
<reference anchor="TUNNEL-ENCAP" target="https://www.iana.org/assignment
s/bgp-tunnel-encapsulation">
<front>
<title>Border Gateway Protocol (BGP) Tunnel Encapsulation</title>
<author>
<organization>IANA</organization>
</author>
<date/>
</front>
</reference>
</references>
</references> </references>
<section anchor="Acknowledgments" numbered="false" toc="default">
<name>Acknowledgments</name>
<t>The authors would like to thank <contact fullname="Anoop Ghanwani"/>,
<contact fullname="Gyan Mishra"/>, and <contact fullname="Jeffrey
Zhang"/> for their review and useful comments. Thanks to <contact
fullname="Gunter Van de Velde"/> and <contact fullname="Sue Hares"/> as
well, for their thorough review.</t>
</section>
<references title="Informative References"> <!-- [rfced] Please review the following questions and changes regarding the
&I-D.ietf-bess-evpn-geneve; terminology used in this document:
&RFC7348;
&RFC4023;
&RFC7637;
&RFC7510; a.) We note that the term "MPLSoX" does not appear in this document after it
is introduced in Section 1. May we remove this term from the terminology list?
&RFC8926; Original:
* MPLSoX: refers to MPLS over any IP encapsulation. Examples are
MPLS-over-UDP or MPLS-over-GRE.
&RFC9012; b.) FYI - For consistency with RFCs 8402, 8986, and 9252, we have updated the te rms below as follows. Please review and let us know any objections.
&RFC7606; Original:
&RFC8660; Segment Routing with MPLS data plane (SR-MPLS)
Segment Routing with IPv6 data plane (SRv6)
&RFC8986; Current:
&RFC8402; SR over MPLS (SR-MPLS)
Segment Routing over IPv6 (SRv6)
&RFC8754; -->;
&I-D.ietf-nvo3-vxlan-gpe; <!-- [rfced] The references in this document do not appear to be sorted.
Would you like to order them alphanumerically? -->
<reference anchor="IANA-BGP-TUNNEL-ENCAP" <!-- [rfced] Please review the "Inclusive Language" portion of the online Style
target="https://www.iana.org/assignments/bgp-tunnel-encapsulati Guide
on/bgp-tunnel-encapsulation.xhtml#tunnel-types"> <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> and let
<front> us know if any changes are needed. Updates of this nature typically
<title>Border Gateway Protocol (BGP) Tunnel Encapsulation</title> result in more precise language, which is helpful for readers.
<author fullname="IANA"> Note that our script did not flag any words in particular, but this should
<organization/> still be reviewed as a best practice. -->
</author>
<date/>
</front>
</reference>
</references>
</back> </back>
</rfc> </rfc>
 End of changes. 193 change blocks. 
709 lines changed or deleted 1012 lines changed or added

This html diff was produced by rfcdiff 1.48.