rfc9819v1.txt | rfc9819.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) K. Talaulikar | Internet Engineering Task Force (IETF) K. Talaulikar | |||
Request for Comments: 9819 K. Raza | Request for Comments: 9819 K. Raza | |||
Updates: 9252 Cisco Systems | Updates: 9252 Cisco Systems | |||
Category: Standards Track J. Rabadan | Category: Standards Track J. Rabadan | |||
ISSN: 2070-1721 Nokia | ISSN: 2070-1721 Nokia | |||
W. Lin | W. Lin | |||
Juniper Networks | Juniper Networks | |||
July 2025 | July 2025 | |||
Segment Routing over IPv6 Argument Signaling for BGP Services | Argument Signaling for BGP Services in Segment Routing over IPv6 (SRv6) | |||
Abstract | Abstract | |||
RFC 9252 defines procedures and messages for BGP Overlay Services for | RFC 9252 defines procedures and messages for BGP overlay services for | |||
Segment Routing over IPv6 (SRv6), including Layer 3 Virtual Private | Segment Routing over IPv6 (SRv6), including Layer 3 Virtual Private | |||
Network (L3VPN), Ethernet VPN (EVPN), and global Internet routing. | Network (L3VPN), Ethernet VPN (EVPN), and global Internet routing. | |||
This document updates RFC 9252 and provides more detailed | This document updates RFC 9252 and provides more detailed | |||
specifications for the signaling and processing of SRv6 Segment | specifications for the signaling and processing of SRv6 Segment | |||
Identifier advertisements for BGP Overlay Service routes associated | Identifier advertisements for BGP overlay service routes associated | |||
with SRv6 Endpoint Behaviors that support arguments. | with SRv6 Endpoint Behaviors that support arguments. | |||
Status of This Memo | Status of This Memo | |||
This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
(IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
skipping to change at line 79 ¶ | skipping to change at line 79 ¶ | |||
1. Introduction | 1. Introduction | |||
SRv6 refers to Segment Routing instantiated over the IPv6 data plane | SRv6 refers to Segment Routing instantiated over the IPv6 data plane | |||
[RFC8402]. An SRv6 Segment Identifier (SID) [RFC8402] can be | [RFC8402]. An SRv6 Segment Identifier (SID) [RFC8402] can be | |||
associated with one of the service-specific SRv6 Endpoint Behaviors | associated with one of the service-specific SRv6 Endpoint Behaviors | |||
on the advertising Provider Edge (PE) router for Layer 3 Virtual | on the advertising Provider Edge (PE) router for Layer 3 Virtual | |||
Private Network (L3VPN), global Internet routing, and Ethernet VPN | Private Network (L3VPN), global Internet routing, and Ethernet VPN | |||
(EVPN) services as defined in [RFC8986]. Such SRv6 SIDs are referred | (EVPN) services as defined in [RFC8986]. Such SRv6 SIDs are referred | |||
to as SRv6 Service SIDs. [RFC9252] defines the procedures and | to as SRv6 Service SIDs. [RFC9252] defines the procedures and | |||
messages for the signaling of BGP Overlay Services including L3VPN, | messages for the signaling of BGP overlay services including L3VPN, | |||
EVPN, and Internet services using SRv6. | EVPN, and Internet services using SRv6. | |||
For certain EVPN services, Section 4.12 of [RFC8986] introduced the | For certain EVPN services, Section 4.12 of [RFC8986] introduced the | |||
End.DT2M SRv6 Endpoint Behavior, which utilizes arguments (i.e., | End.DT2M SRv6 Endpoint Behavior, which utilizes arguments (i.e., | |||
Arg.FE2). [RFC9252] subsequently specified the encoding and | Arg.FE2). [RFC9252] subsequently specified the encoding and | |||
signaling procedures for the SRv6 SID and its associated argument via | signaling procedures for the SRv6 SID and its associated argument via | |||
EVPN Route Type 3 and EVPN Route Type 1, respectively. However, | the Inclusive Multicast Ethernet Tag route (EVPN Route Type 3) and | |||
during implementation and interoperability testing, it was observed | the Ethernet A-D (Auto-Discovery) per ES route (EVPN Route Type 1), | |||
that the specifications outlined in [RFC9252] lack sufficient detail, | respectively. However, during implementation and interoperability | |||
leading to ambiguities in interpretation and implementation. | testing, it was observed that the specifications outlined in | |||
[RFC9252] lack sufficient detail, leading to ambiguities in | ||||
interpretation and implementation. | ||||
This document updates [RFC9252] by providing additional details and | This document updates [RFC9252] by providing additional details and | |||
clarifications regarding the signaling of SRv6 Service SIDs | clarifications regarding the signaling of SRv6 Service SIDs | |||
associated with SRv6 Endpoint Behaviors that utilize arguments. | associated with SRv6 Endpoint Behaviors that utilize arguments. | |||
While the focus is primarily on the signaling of the End.DT2M SRv6 | While the focus is primarily on the signaling of the End.DT2M SRv6 | |||
Endpoint Behavior via EVPN Route Types 1 and 3, the procedures | Endpoint Behavior via the Ethernet A-D per ES route and Inclusive | |||
described herein are also applicable to other similar endpoint | Multicast Ethernet Tag route, the procedures described herein are | |||
behaviors with arguments that may be signaled using BGP. | also applicable to other similar SRv6 Endpoint Behaviors with | |||
arguments that may be signaled using BGP. | ||||
Section 6.3 of [RFC9252] specifies that the SRv6 Service SID used in | Section 6.3 of [RFC9252] specifies that the SRv6 Service SID used in | |||
the data plane is derived by applying a bitwise logical-OR operation | the data plane is derived by applying a bitwise logical-OR operation | |||
between the SID with an argument signaled via Route Type 1 and the | between the SID with an argument signaled via the Ethernet A-D per ES | |||
SID with the 'Locator + Function' components signaled via Route Type | route and the SID with the 'Locator + Function' components signaled | |||
3. However, this approach assumes a uniform SID structure across all | via the Inclusive Multicast Ethernet Tag route. However, this | |||
SIDs advertised via EVPN Route Types 1 and 3. This assumption is not | approach assumes a uniform SID structure across all SIDs advertised | |||
universally valid, and the procedures in this document remove this | via the Ethernet A-D per ES route and Inclusive Multicast Ethernet | |||
restriction, ensuring greater flexibility in SRv6 SID signaling. | Tag route. This assumption is not universally valid, and the | |||
procedures in this document remove this restriction, ensuring greater | ||||
flexibility in SRv6 SID signaling. | ||||
The descriptions and examples presented in this document do not | The descriptions and examples presented in this document do not | |||
utilize the Transposition Scheme (see Section 4 of [RFC9252]). | utilize the Transposition Scheme (see Section 4 of [RFC9252]). | |||
Consequently, the Transposition Offset (TPOS-O) and Transposition | Consequently, the Transposition Offset (TPOS-O) and Transposition | |||
Length (TPOS-L) are set to zero, and references to MPLS label fields | Length (TPOS-L) are set to zero, and references to MPLS label fields | |||
where the function or argument portions may be transposed are | where the function or argument portions may be transposed are | |||
omitted. However, the same examples could be applied with the | omitted. However, the same examples could be applied with the | |||
Transposition Scheme. This document does not introduce any | Transposition Scheme. This document does not introduce any | |||
modifications to the use of the Transposition Scheme in the signaling | modifications to the use of the Transposition Scheme in the signaling | |||
of EVPN routes. Implementations are expected to adhere to the | of EVPN routes. Implementations are expected to adhere to the | |||
skipping to change at line 140 ¶ | skipping to change at line 145 ¶ | |||
Section 3.1 of [RFC8986] defines the format of an SRv6 SID as | Section 3.1 of [RFC8986] defines the format of an SRv6 SID as | |||
consisting of three components: Locator (LOC), Function (FUNC), and | consisting of three components: Locator (LOC), Function (FUNC), and | |||
Argument (ARG). For SRv6 SIDs associated with SRv6 Endpoint | Argument (ARG). For SRv6 SIDs associated with SRv6 Endpoint | |||
Behaviors that do not support arguments, the ARG component is not | Behaviors that do not support arguments, the ARG component is not | |||
present. Consequently, all bits following the FUNC portion MUST be | present. Consequently, all bits following the FUNC portion MUST be | |||
set to zero, and the Argument Length (AL) MUST be zero. | set to zero, and the Argument Length (AL) MUST be zero. | |||
Certain SRv6 Endpoint Behaviors (e.g., End.DT2M) support arguments. | Certain SRv6 Endpoint Behaviors (e.g., End.DT2M) support arguments. | |||
As specified in Section 3.2.1 of [RFC9252], the SRv6 SID Structure | As specified in Section 3.2.1 of [RFC9252], the SRv6 SID Structure | |||
Sub-Sub-TLV MUST be included when signaling an SRv6 SID corresponding | Sub-Sub-TLV MUST be included when signaling an SRv6 SID corresponding | |||
to an endpoint behavior that supports argument. This ensures that | to an SRv6 Endpoint Behavior that supports argument. This ensures | |||
the receiving router can perform consistency verification of the | that the receiving router can perform consistency verification of the | |||
argument and correctly encode the ARG value within the SRv6 SID. | argument and correctly encode the ARG value within the SRv6 SID. | |||
In certain use cases, the SRv6 SID can be signaled as a complete | In certain use cases, the SRv6 SID can be signaled as a complete | |||
structure, with the LOC:FUNC:ARG components fully encoded within the | structure, with the LOC:FUNC:ARG components fully encoded within the | |||
SID. However, there are scenarios where the SRv6 SID, consisting | SID. However, there are scenarios where the SRv6 SID, consisting | |||
only of the LOC:FUNC portion, is signaled in one advertisement, while | only of the LOC:FUNC portion, is signaled in one advertisement, while | |||
the ARG value is either signaled through a separate advertisement or | the ARG value is either signaled through a separate advertisement or | |||
learned via an alternative mechanism. It is the responsibility of | learned via an alternative mechanism. It is the responsibility of | |||
the SRv6 source node to append the ARG component to the LOC:FUNC | the SRv6 source node to append the ARG component to the LOC:FUNC | |||
portion, thereby constructing the complete SRv6 SID (LOC:FUNC:ARG). | portion, thereby constructing the complete SRv6 SID (LOC:FUNC:ARG). | |||
skipping to change at line 178 ¶ | skipping to change at line 183 ¶ | |||
node that owns the SRv6 SID and is advertising the LOC:FUNC portion | node that owns the SRv6 SID and is advertising the LOC:FUNC portion | |||
of that SID or by another node/mechanism. The advertisement of the | of that SID or by another node/mechanism. The advertisement of the | |||
ARG value MUST specify the size of the argument, its value, and the | ARG value MUST specify the size of the argument, its value, and the | |||
associated SRv6 Endpoint Behavior of the SID. Additionally, the | associated SRv6 Endpoint Behavior of the SID. Additionally, the | |||
specification of the association of the ARG advertisement with the | specification of the association of the ARG advertisement with the | |||
corresponding SID(s) for which the argument applies is REQUIRED. | corresponding SID(s) for which the argument applies is REQUIRED. | |||
3. End.DT2M Signaling for EVPN ESI Filtering | 3. End.DT2M Signaling for EVPN ESI Filtering | |||
As specified in [RFC9252], the LOC:FUNC portion of the SRv6 SID with | As specified in [RFC9252], the LOC:FUNC portion of the SRv6 SID with | |||
End.DT2M behavior is signaled via EVPN Route Type 3 (Inclusive | End.DT2M behavior is signaled via the Inclusive Multicast Ethernet | |||
Multicast Ethernet Tag route), while the Ethernet Segment Identifier | Tag route, while the Ethernet Segment Identifier (ESI) Filtering ARG | |||
(ESI) Filtering ARG (denoted as Arg.FE2 in [RFC8986]) is signaled via | (denoted as Arg.FE2 in [RFC8986]) is signaled via the Ethernet A-D | |||
EVPN Route Type 1 (Ethernet Auto-Discovery per Ethernet Segment (A-D | per ES route. The following subsections provide a more detailed | |||
per ES) route). The following subsections provide a more detailed | ||||
specification of the signaling and processing mechanisms compared to | specification of the signaling and processing mechanisms compared to | |||
[RFC9252]. | [RFC9252]. | |||
ESI Filtering is a split-horizon mechanism used for multihoming | ESI Filtering is a split-horizon mechanism used for multihoming | |||
[RFC7432] or Ethernet-Tree (E-Tree) procedures [RFC8317]. ESI | [RFC7432] or Ethernet-Tree (E-Tree) procedures [RFC8317]. ESI | |||
Filtering is not applicable in scenarios where: | Filtering is not applicable in scenarios where: | |||
* No E-Tree leaf Broadcast, Unknown Unicast, or Multicast (BUM) | * No E-Tree leaf Broadcast, Unknown Unicast, or Multicast (BUM) | |||
traffic exists, | traffic exists, | |||
skipping to change at line 209 ¶ | skipping to change at line 213 ¶ | |||
In this document, "ESI Filtering" is used as a general reference to | In this document, "ESI Filtering" is used as a general reference to | |||
the procedure performed by the disposition Provider Edge (PE) router | the procedure performed by the disposition Provider Edge (PE) router | |||
to prevent forwarding of BUM traffic to local Ethernet Segments or | to prevent forwarding of BUM traffic to local Ethernet Segments or | |||
local leaf attachment circuits, based on the presence of the ESI | local leaf attachment circuits, based on the presence of the ESI | |||
Filtering ARG. | Filtering ARG. | |||
The signaling and processing descriptions outlined in the following | The signaling and processing descriptions outlined in the following | |||
sections also apply to End.DT2M behavior flavors designed for SRv6 | sections also apply to End.DT2M behavior flavors designed for SRv6 | |||
SID list compression [RFC9800]. In deployments where a mix of | SID list compression [RFC9800]. In deployments where a mix of | |||
compressed and uncompressed SIDs is present, the behaviors advertised | compressed and uncompressed SIDs is present, the behaviors advertised | |||
in the Ethernet Auto-Discovery (A-D) per ES routes (EVPN Route Type | in the Ethernet A-D per ES routes and Inclusive Multicast Ethernet | |||
1) and Inclusive Multicast Ethernet Tag routes (EVPN Route Type 3) | Tag routes MAY consist of a combination of compressed and | |||
MAY consist of a combination of compressed and uncompressed End.DT2M | uncompressed End.DT2M behavior flavors. The procedures in this | |||
behavior flavors. The procedures in this document remain valid for | document remain valid for such deployments provided that the AL | |||
such deployments provided that the AL consistency checks between EVPN | consistency checks between the Ethernet A-D per ES route and | |||
Route Type 1 and EVPN Route Type 3, as described in the following | Inclusive Multicast Ethernet Tag route, as described in the following | |||
subsections, are satisfied. | subsections, are satisfied. | |||
3.1. Advertisement of Ethernet A-D per ES Route | 3.1. Advertisement of Ethernet A-D per ES Route | |||
Ethernet Auto-Discovery (A-D) per ES routes (EVPN Route Type 1), as | Ethernet A-D per ES routes, as defined in [RFC7432], are utilized to | |||
defined in [RFC7432], are utilized to enable split-horizon filtering | enable split-horizon filtering and fast convergence in multihoming | |||
and fast convergence in multihoming scenarios. Additionally, A-D per | scenarios. Additionally, Ethernet A-D per ES routes facilitate | |||
ES routes facilitate egress filtering of BUM traffic originating from | egress filtering of BUM traffic originating from a leaf, as specified | |||
a Leaf, as specified in [RFC8317]. | in [RFC8317]. | |||
When ESI Filtering is not in use, no ESI Filtering ARG is required to | When ESI Filtering is not in use, no ESI Filtering ARG is required to | |||
be conveyed. However, for backward compatibility and consistency | be conveyed. However, for backward compatibility and consistency | |||
with [RFC9252], the advertisement of this route SHOULD include the | with [RFC9252], the advertisement of this route SHOULD include the | |||
BGP Prefix-SID Attribute with an SRv6 L2 Service TLV carrying an SRv6 | BGP Prefix-SID attribute with an SRv6 L2 Service TLV carrying an SRv6 | |||
Service SID set to ::0 in the SRv6 SID Information Sub-TLV, with the | Service SID set to ::0 in the SRv6 SID Information Sub-TLV, with the | |||
SRv6 Endpoint Behavior set to End.DT2M. Since the End.DT2M behavior | SRv6 Endpoint Behavior set to End.DT2M. Since the End.DT2M behavior | |||
supports the use of an ARG, an SRv6 SID Structure Sub-Sub-TLV MUST be | supports the use of an ARG, an SRv6 SID Structure Sub-Sub-TLV MUST be | |||
included. As no ARG value is required to be signaled in this case, | included. As no ARG value is required to be signaled in this case, | |||
the AL MUST be set to 0. | the AL MUST be set to 0. | |||
The following is an example representation of the BGP Prefix-SID | The following is an example representation of the BGP Prefix-SID | |||
Attribute encoding in this case: | attribute encoding in this case: | |||
BGP Prefix SID Attr: | BGP Prefix-SID attribute: | |||
SRv6 L2 Service TLV: | SRv6 L2 Service TLV: | |||
SRv6 SID Information Sub-TLV: | SRv6 SID Information Sub-TLV: | |||
SID: :: | SID: :: | |||
Behavior: End.DT2M | Behavior: End.DT2M | |||
SRv6 SID Structure Sub-Sub-TLV: | SRv6 SID Structure Sub-Sub-TLV: | |||
LBL: 32, LNL: 16, FL: 16, AL: 0, TPOS-L: 0, TPOS-O: 0 | LBL: 32, LNL: 16, FL: 16, AL: 0, TPOS-L: 0, TPOS-O: 0 | |||
Figure 1: EVPN Route Type 1 Without ARG for ESI Filtering | Figure 1: Ethernet A-D per ES Route Without ARG for ESI Filtering | |||
When ESI Filtering is in use, the advertisement of this route MUST | When ESI Filtering is in use, the advertisement of this route MUST | |||
include the BGP Prefix-SID Attribute with an SRv6 L2 Service TLV | include the BGP Prefix-SID attribute with an SRv6 L2 Service TLV | |||
carrying the SRv6 Service SID that contains the ESI Filtering ARG | carrying the SRv6 Service SID that contains the ESI Filtering ARG | |||
value within the SRv6 SID Information Sub-TLV (when not using the | value within the SRv6 SID Information Sub-TLV (when not using the | |||
Transposition Scheme), with the SRv6 Endpoint Behavior set to | Transposition Scheme), with the SRv6 Endpoint Behavior set to | |||
End.DT2M. Since the End.DT2M behavior supports the use of an ARG, an | End.DT2M. Since the End.DT2M behavior supports the use of an ARG, an | |||
SRv6 SID Structure Sub-Sub-TLV MUST be included. Additionally, as a | SRv6 SID Structure Sub-Sub-TLV MUST be included. Additionally, as a | |||
non-zero ARG value is being signaled, the AL MUST be set to the size | non-zero ARG value is being signaled, the AL MUST be set to the size | |||
of the ARG, and the size SHOULD be a multiple of 8 to ensure | of the ARG, and the size SHOULD be a multiple of 8 to ensure | |||
consistency across implementations for ease of operations. The SRv6 | consistency across implementations for ease of operations. The SRv6 | |||
SID Structure Sub-Sub-TLV MUST set the LBL, LNL, and FL fields with | SID Structure Sub-Sub-TLV MUST set the LBL, LNL, and FL fields with | |||
values that indicate the offset at which the ARG value is encoded | values that indicate the offset at which the ARG value is encoded | |||
within the 128-bit SRv6 SID. | within the 128-bit SRv6 SID. | |||
The following is an example representation of the BGP Prefix-SID | The following is an example representation of the BGP Prefix-SID | |||
Attribute encoding in this scenario for a 16-bit argument value of | attribute encoding in this scenario for a 16-bit argument value of | |||
'aaaa': | 'aaaa': | |||
BGP Prefix SID Attr: | BGP Prefix-SID attribute: | |||
SRv6 L2 Service TLV: | SRv6 L2 Service TLV: | |||
SRv6 SID Information Sub-TLV: | SRv6 SID Information Sub-TLV: | |||
SID: ::aaaa:0:0:0 | SID: ::aaaa:0:0:0 | |||
Behavior: End.DT2M | Behavior: End.DT2M | |||
SRv6 SID Structure Sub-Sub-TLV: | SRv6 SID Structure Sub-Sub-TLV: | |||
LBL: 32, LNL: 16, FL: 16, AL: 16, TPOS-L: 0, TPOS-O: 0 | LBL: 32, LNL: 16, FL: 16, AL: 16, TPOS-L: 0, TPOS-O: 0 | |||
Figure 2: EVPN Route Type 1 with ARG for ESI Filtering | Figure 2: Ethernet A-D per ES Route with ARG for ESI Filtering | |||
In the examples above, it would have been possible to set the LBL, | In the examples above, it would have been possible to set the LBL, | |||
LNL, and FL values to 0 and to encode the SRv6 SID as either ::0 or | LNL, and FL values to 0 and to encode the SRv6 SID as either ::0 or | |||
aaaa::. However, such an encoding would not be backward compatible | aaaa::. However, such an encoding would not be backward compatible | |||
with [RFC9252], as further detailed in Section 4. | with [RFC9252], as further detailed in Section 4. | |||
Therefore, it is REQUIRED that the LBL, LNL, and FL values be set in | Therefore, it is REQUIRED that the LBL, LNL, and FL values be set in | |||
accordance with the SID structure for End.DT2M SRv6 Service SIDs, | accordance with the SID structure for End.DT2M SRv6 Service SIDs, | |||
ensuring compliance with [RFC9252]. | ensuring compliance with [RFC9252]. | |||
3.2. Advertisement of Inclusive Multicast Ethernet Tag Route | 3.2. Advertisement of Inclusive Multicast Ethernet Tag Route | |||
The Inclusive Multicast Ethernet Tag route (EVPN Route Type 3), as | The Inclusive Multicast Ethernet Tag route, as defined in [RFC7432], | |||
defined in [RFC7432], is used to advertise multicast traffic | is used to advertise multicast traffic reachability information via | |||
reachability information via Multiprotocol BGP (MP-BGP) to all other | Multiprotocol BGP (MP-BGP) to all other PE routers within a given | |||
PE routers within a given EVPN instance. When utilizing SRv6 | EVPN instance. When utilizing SRv6 transport, the advertisement of | |||
transport, the advertisement of this route MUST include the BGP | this route MUST include the BGP Prefix-SID attribute with an SRv6 L2 | |||
Prefix-SID Attribute with an SRv6 L2 Service TLV to indicate the use | Service TLV to indicate the use of SRv6. | |||
of SRv6. | ||||
Regardless of whether ESI Filtering is in use, the SRv6 Service SID | Regardless of whether ESI Filtering is in use, the SRv6 Service SID | |||
MUST include only the LOC:FUNC portion within the SRv6 SID | MUST include only the LOC:FUNC portion within the SRv6 SID | |||
Information Sub-TLV (when not utilizing the Transposition Scheme), | Information Sub-TLV (when not utilizing the Transposition Scheme), | |||
with the SRv6 Endpoint Behavior set to End.DT2M. Since the End.DT2M | with the SRv6 Endpoint Behavior set to End.DT2M. Since the End.DT2M | |||
behavior supports the use of an ARG, an SRv6 SID Structure Sub-Sub- | behavior supports the use of an ARG, an SRv6 SID Structure Sub-Sub- | |||
TLV MUST be included. The LBL, LNL, and FL fields MUST be set to | TLV MUST be included. The LBL, LNL, and FL fields MUST be set to | |||
indicate the structure of the SRv6 Service SID being advertised. | indicate the structure of the SRv6 Service SID being advertised. | |||
When ESI Filtering is not in use, no ARG is expected to be received | When ESI Filtering is not in use, no ARG is expected to be received | |||
by the router along with the advertised SRv6 Service SID. Therefore, | by the router along with the advertised SRv6 Service SID. Therefore, | |||
the AL MUST be set to 0. | the AL MUST be set to 0. | |||
The following is an example representation of the BGP Prefix-SID | The following is an example representation of the BGP Prefix-SID | |||
Attribute encoding in this case: | attribute encoding in this case: | |||
BGP Prefix SID Attr: | BGP Prefix-SID attribute: | |||
SRv6 L2 Service TLV: | SRv6 L2 Service TLV: | |||
SRv6 SID Information Sub-TLV: | SRv6 SID Information Sub-TLV: | |||
SID: 2001:db8:1:fbd1:: | SID: 2001:db8:1:fbd1:: | |||
Behavior: End.DT2M | Behavior: End.DT2M | |||
SRv6 SID Structure Sub-Sub-TLV: | SRv6 SID Structure Sub-Sub-TLV: | |||
LBL: 32, LNL: 16, FL: 16, AL: 0, TPOS-L: 0, TPOS-O: 0 | LBL: 32, LNL: 16, FL: 16, AL: 0, TPOS-L: 0, TPOS-O: 0 | |||
Figure 3: EVPN Route Type 3 Without ESI Filtering | Figure 3: Inclusive Multicast Ethernet Tag Route Without ESI | |||
Filtering | ||||
When ESI Filtering is in use, the router expects to receive traffic | When ESI Filtering is in use, the router expects to receive traffic | |||
in the data path to the SRv6 Service SID that it has signaled along | in the data path to the SRv6 Service SID that it has signaled along | |||
with the ARG portion embedded in it. Consequently, the AL MUST be | with the ARG portion embedded in it. Consequently, the AL MUST be | |||
set to the size of the ARG supported by the advertising router for | set to the size of the ARG supported by the advertising router for | |||
the specific SRv6 Service SID. The AL value is unique per End.DT2M | the specific SRv6 Service SID. The AL value is unique per End.DT2M | |||
behavior signaled by the egress PE. Therefore, the egress PE MUST | behavior signaled by the egress PE. Therefore, the egress PE MUST | |||
use the same AL for all local Ethernet Segments with attachment | use the same AL for all local Ethernet Segments with attachment | |||
circuits within the same broadcast domain. | circuits within the same broadcast domain. | |||
The following is an example representation of the BGP Prefix-SID | The following is an example representation of the BGP Prefix-SID | |||
Attribute encoding for this scenario with a 16-bit argument: | attribute encoding for this scenario with a 16-bit argument: | |||
BGP Prefix SID Attr: | BGP Prefix-SID attribute: | |||
SRv6 L2 Service TLV: | SRv6 L2 Service TLV: | |||
SRv6 SID Information Sub-TLV: | SRv6 SID Information Sub-TLV: | |||
SID: 2001:db8:1:fbd1:: | SID: 2001:db8:1:fbd1:: | |||
Behavior: End.DT2M | Behavior: End.DT2M | |||
SRv6 SID Structure Sub-Sub-TLV: | SRv6 SID Structure Sub-Sub-TLV: | |||
LBL: 32, LNL: 16, FL: 16, AL: 16, TPOS-L: 0, TPOS-O: 0 | LBL: 32, LNL: 16, FL: 16, AL: 16, TPOS-L: 0, TPOS-O: 0 | |||
Figure 4: EVPN Route Type 3 with ESI Filtering | Figure 4: Inclusive Multicast Ethernet Tag Route with ESI Filtering | |||
When ESI Filtering is in use, the advertising router MUST ensure that | When ESI Filtering is in use, the advertising router MUST ensure that | |||
the AL signaled in the EVPN Route Type 3 is equal to the AL signaled | the AL signaled in the Inclusive Multicast Ethernet Tag route is | |||
in the corresponding EVPN Route Type 1. | equal to the AL signaled in the corresponding Ethernet A-D per ES | |||
route. | ||||
3.3. Processing at Ingress PE | 3.3. Processing at Ingress PE | |||
An ingress PE receives the LOC:FUNC portion of the SRv6 Service SID | An ingress PE receives the LOC:FUNC portion of the SRv6 Service SID | |||
to be used for BUM traffic through EVPN Route Type 3 advertisements. | to be used for BUM traffic through Inclusive Multicast Ethernet Tag | |||
route advertisements. | ||||
When ESI Filtering is not in use, the SRv6 Service SID to be used | When ESI Filtering is not in use, the SRv6 Service SID to be used | |||
consists solely of the LOC:FUNC portion received via EVPN Route Type | consists solely of the LOC:FUNC portion received via the Inclusive | |||
3. | Multicast Ethernet Tag route. | |||
When ESI Filtering is in use, the ESI Filtering ARG of the SRv6 | When ESI Filtering is in use, the ESI Filtering ARG of the SRv6 | |||
Service SID is signaled through EVPN Route Type 1 (Ethernet Auto- | Service SID is signaled through the Ethernet A-D per ES route. The | |||
Discovery per Ethernet Segment route). The ARG, in combination with | ARG, in combination with the LOC:FUNC portion received via the | |||
the LOC:FUNC portion received via EVPN Route Type 3, forms the SRv6 | Inclusive Multicast Ethernet Tag route, forms the SRv6 Service SID to | |||
Service SID to be used. | be used. | |||
Since the LOC:FUNC and ARG portions of the SRv6 Service SID are | Since the LOC:FUNC and ARG portions of the SRv6 Service SID are | |||
signaled via different route advertisements, there may be cases where | signaled via different route advertisements, there may be cases where | |||
the ingress PE receives inconsistent AL values from the two route | the ingress PE receives inconsistent AL values from the two route | |||
types. If the ingress PE expects ESI Filtering to be in use (i.e., | types. If the ingress PE expects ESI Filtering to be in use (i.e., | |||
when forwarding BUM traffic to other PEs attached to a shared | when forwarding BUM traffic to other PEs attached to a shared | |||
Ethernet Segment) but does not receive a usable ARG value during | Ethernet Segment) but does not receive a usable ARG value during | |||
processing, it SHOULD log a message to facilitate troubleshooting. | processing, it SHOULD log a message to facilitate troubleshooting. | |||
The ingress PE router MUST follow the processing steps outlined below | The ingress PE router MUST follow the processing steps outlined below | |||
when handling SRv6 Service SID advertisements: | when handling SRv6 Service SID advertisements: | |||
1. If AL=0 is signaled via EVPN Route Type 3, then the egress PE | 1. If AL=0 is signaled via the Inclusive Multicast Ethernet Tag | |||
either does not support ESI Filtering or does not require an ESI | route, then the egress PE either does not support ESI Filtering | |||
Filtering ARG for the specific SID. In this case, the SRv6 | or does not require an ESI Filtering ARG for the specific SID. | |||
Service SID is formed using only the LOC:FUNC portion, and all | In this case, the SRv6 Service SID is formed using only the | |||
bits after LBL + LNL + FL MUST be set to zero for encoding on the | LOC:FUNC portion, and all bits after LBL + LNL + FL MUST be set | |||
data path. Additionally, the router MUST ignore the SID value | to zero for encoding on the data path. Additionally, the router | |||
and its SID structure advertised in the corresponding EVPN Route | MUST ignore the SID value and its SID structure advertised in the | |||
Type 1. | corresponding Ethernet A-D per ES route. | |||
2. If a non-zero AL is signaled via EVPN Route Type 3, then the | 2. If a non-zero AL is signaled via the Inclusive Multicast Ethernet | |||
matching EVPN Route Type 1 for the Ethernet Segment is located | Tag route, then the matching Ethernet A-D per ES route for the | |||
and the presence of an SRv6 SID advertisement with the End.DT2M | Ethernet Segment is located and the presence of an SRv6 SID | |||
behavior is verified. | advertisement with the End.DT2M behavior is verified. | |||
a. If the presence of such a SRv6 SID is not verified, or if the | a. If the presence of such a SRv6 SID is not verified, or if the | |||
AL is zero in the EVPN Route Type 1, then no usable ARG value | AL is zero in the Ethernet A-D per ES route, then no usable | |||
is available. The SRv6 Service SID MUST be formed as | ARG value is available. The SRv6 Service SID MUST be formed | |||
described in (1) above. | as described in (1) above. | |||
b. If the AL values in EVPN Route Type 1 and EVPN Route Type 3 | b. If the AL values in the Ethernet A-D per ES route and | |||
are both non-zero but not equal, then no usable ARG value is | Inclusive Multicast Ethernet Tag route are both non-zero but | |||
available. This inconsistency in signaling from the egress | not equal, then no usable ARG value is available. This | |||
PE indicates a configuration error. To prevent potential | inconsistency in signaling from the egress PE indicates a | |||
looping, BUM traffic MUST NOT be forwarded for such routes | configuration error. To prevent potential looping, BUM | |||
from the specific Ethernet Segment. Implementations SHOULD | traffic MUST NOT be forwarded for such routes from the | |||
log an error message for troubleshooting this condition. | specific Ethernet Segment. Implementations SHOULD log an | |||
error message for troubleshooting this condition. | ||||
c. If the AL values in EVPN Route Type 1 and EVPN Route Type 3 | c. If the AL values in the Ethernet A-D per ES route and | |||
are both non-zero and equal, then the ARG value from EVPN | Inclusive Multicast Ethernet Tag route are both non-zero and | |||
Route Type 1 is considered valid. This ARG value MUST be | equal, then the ARG value from the Ethernet A-D per ES route | |||
encoded within the SRv6 SID (LOC:FUNC) at the ARG offset as | is considered valid. This ARG value MUST be encoded within | |||
specified in the SID structure (i.e., LBL + LNL + FL) in EVPN | the SRv6 SID (LOC:FUNC) at the ARG offset as specified in the | |||
Route Type 3. All bits beyond LBL + LNL + FL + AL MUST be | SID structure (i.e., LBL + LNL + FL) in the Inclusive | |||
set to zero. | Multicast Ethernet Tag route. All bits beyond LBL + LNL + FL | |||
+ AL MUST be set to zero. | ||||
Based on the above procedures, the SRv6 Service SID encoding for the | Using the procedures above with the examples in Figures 1 and 3, the | |||
data plane without an ESI Filtering ARG, based on the examples in | SRv6 Service SID encoding for the data plane without an ESI Filtering | |||
Figures 1 and 3, is as follows: | ARG is as follows: | |||
Route Type 3: | Inclusive Multicast Ethernet Tag route: | |||
SID: 2001:db8:1:fbd1:: | SID: 2001:db8:1:fbd1:: | |||
Structure: LBL: 32, LNL: 16, FL: 16, AL: 0 | Structure: LBL: 32, LNL: 16, FL: 16, AL: 0 | |||
SRv6 Service SID Encoded for Datapath: 2001:db8:1:fbd1:: | SRv6 Service SID Encoded for Datapath: 2001:db8:1:fbd1:: | |||
Figure 5: SRv6 Service SID Encoding for Data Plane Without ARG | Figure 5: SRv6 Service SID Encoding for Data Plane Without ARG | |||
Based on the above procedures, the SRv6 Service SID encoding for the | Using the procedures above with the examples in Figures 2 and 4, the | |||
data plane along with an ESI Filtering ARG, based on the examples in | SRv6 Service SID encoding for the data plane along with an ESI | |||
2 and 4, is as follows: | Filtering ARG is as follows: | |||
Route Type 1: | Ethernet A-D per ES route: | |||
SID: ::aaaa:0:0:0 | SID: ::aaaa:0:0:0 | |||
Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | |||
Route Type 3: | Inclusive Multicast Ethernet Tag route: | |||
SID: 2001:db8:1:fbd1:: | SID: 2001:db8:1:fbd1:: | |||
Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | |||
SRv6 Service SID Encoded for Datapath: 2001:db8:1:fbd1:aaaa:: | SRv6 Service SID Encoded for Datapath: 2001:db8:1:fbd1:aaaa:: | |||
Figure 6: SRv6 Service SID Encoding for Data Plane with ARG | Figure 6: SRv6 Service SID Encoding for Data Plane with ARG | |||
Figure 7 provides another example that illustrates the signaling and | Figure 7 provides another example that illustrates the signaling and | |||
processing of multiple bridge domains in a deployment design. | processing of multiple bridge domains in a deployment design. | |||
skipping to change at line 465 ¶ | skipping to change at line 473 ¶ | |||
| +-----+ | | FL:16 FL:32 | | | +-----+ | | FL:16 FL:32 | | |||
| +-----+ | RT1 | | | +-----+ | RT1 | | |||
| | BD2 | | ESI-1 | | | | BD2 | | ESI-1 | | |||
| +-----+ | AL:16 | | | +-----+ | AL:16 | | |||
+---------+ | | +---------+ | | |||
PE2 | | | PE2 | | | |||
| | | | | | |||
| | | | | | |||
+-------------------------------+ | +-------------------------------+ | |||
Route Type 1 ESI-1: | Ethernet A-D per ES route ESI-1: | |||
SID: ::aaaa:0:0:0 | SID: ::aaaa:0:0:0 | |||
Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | |||
Route Type 3 from BD1: | Inclusive Multicast Ethernet Tag route from BD1: | |||
SID: 2001:db8:1:fbd1:fbd1: | SID: 2001:db8:1:fbd1:fbd1: | |||
Structure: LBL: 32, LNL: 16, FL: 32, AL: 16 | Structure: LBL: 32, LNL: 16, FL: 32, AL: 16 | |||
Route Type 3 from BD2: | Inclusive Multicast Ethernet Tag route from BD2: | |||
SID: 2001:db8:1:fbd2:: | SID: 2001:db8:1:fbd2:: | |||
Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | Structure: LBL: 32, LNL: 16, FL: 16, AL: 16 | |||
SRv6 Service SID for datapath from ingress PE1 to egress PE2 on BD1: | SRv6 Service SID for datapath from ingress PE1 to egress PE2 on BD1: | |||
2001:db8:1:fbd1:fbd1:aaaa:: | 2001:db8:1:fbd1:fbd1:aaaa:: | |||
SRv6 Service SID for datapath from ingress PE1 to egress PE2 on BD2: | SRv6 Service SID for datapath from ingress PE1 to egress PE2 on BD2: | |||
2001:db8:1:fbd2:aaaa:: | 2001:db8:1:fbd2:aaaa:: | |||
Figure 7: Example with Multiple Bridge Domains | Figure 7: Example with Multiple Bridge Domains | |||
4. Backward Compatibility | 4. Backward Compatibility | |||
Existing implementations that rely on the bitwise logical-OR | Existing implementations that rely on the bitwise logical-OR | |||
operation, as specified in Section 6.3 of [RFC9252], function | operation, as specified in Section 6.3 of [RFC9252], function | |||
correctly only when the SID structures of the two EVPN route types | correctly only when the SID structures of the two EVPN route types | |||
are identical. | are identical. | |||
Backward compatibility with implementations performing the bitwise | Backward compatibility with implementations performing the bitwise | |||
logical-OR operation is maintained when EVPN Route Type 3 and its | logical-OR operation is maintained when the Inclusive Multicast | |||
corresponding EVPN Route Type 1 advertise SIDs with the same SID | Ethernet Tag route and its corresponding Ethernet A-D per ES route | |||
structure, as outlined in Sections 3.1 and 3.2. | advertise SIDs with the same SID structure, as outlined in Sections | |||
3.1 and 3.2. | ||||
However, when the SID structures of the two route types are not | However, when the SID structures of the two route types are not | |||
identical, the bitwise logical-OR operation specified in [RFC9252] | identical, the bitwise logical-OR operation specified in [RFC9252] | |||
cannot be applied. Instead, the alternative method specified in | cannot be applied. Instead, the alternative method specified in | |||
Section 3.3 MUST be used to correctly derive the SRv6 Service SID in | Section 3.3 MUST be used to correctly derive the SRv6 Service SID in | |||
such cases. | such cases. | |||
5. IANA Considerations | 5. IANA Considerations | |||
This document has no IANA actions. | This document has no IANA actions. | |||
End of changes. 44 change blocks. | ||||
109 lines changed or deleted | 118 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |