| 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 for 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. | ||||