rfc9252v3.txt   rfc9252.txt 
skipping to change at line 14 skipping to change at line 14
Category: Standards Track K. Talaulikar, Ed. Category: Standards Track K. Talaulikar, Ed.
ISSN: 2070-1721 Cisco Systems ISSN: 2070-1721 Cisco Systems
R. Raszuk R. Raszuk
NTT Network Innovations NTT Network Innovations
B. Decraene B. Decraene
Orange Orange
S. Zhuang S. Zhuang
Huawei Technologies Huawei Technologies
J. Rabadan J. Rabadan
Nokia Nokia
June 2022 July 2022
BGP Overlay Services Based on Segment Routing over IPv6 (SRv6) BGP Overlay Services Based on Segment Routing over IPv6 (SRv6)
Abstract Abstract
This document defines procedures and messages for SRv6-based BGP This document defines procedures and messages for SRv6-based BGP
services, including Layer 3 Virtual Private Network (L3VPN), Ethernet services, including Layer 3 Virtual Private Network (L3VPN), Ethernet
VPN (EVPN), and Internet services. It builds on "BGP/MPLS IP Virtual VPN (EVPN), and Internet services. It builds on "BGP/MPLS IP Virtual
Private Networks (VPNs)" (RFC 4364) and "BGP MPLS-Based Ethernet VPN" Private Networks (VPNs)" (RFC 4364) and "BGP MPLS-Based Ethernet VPN"
(RFC 7432). (RFC 7432).
skipping to change at line 120 skipping to change at line 120
plane. This document defines procedures and messages for SRv6-based plane. This document defines procedures and messages for SRv6-based
BGP services, including L3VPN, EVPN, and Internet services. It BGP services, including L3VPN, EVPN, and Internet services. It
builds on "BGP/MPLS IP Virtual Private Networks (VPNs)" [RFC4364] and builds on "BGP/MPLS IP Virtual Private Networks (VPNs)" [RFC4364] and
"BGP MPLS-Based Ethernet VPN" [RFC7432]. "BGP MPLS-Based Ethernet VPN" [RFC7432].
SRv6 SID refers to an SRv6 Segment Identifier, as defined in SRv6 SID refers to an SRv6 Segment Identifier, as defined in
[RFC8402]. [RFC8402].
SRv6 Service SID refers to an SRv6 SID associated with one of the SRv6 Service SID refers to an SRv6 SID associated with one of the
service-specific SRv6 Endpoint Behaviors on the advertising PE service-specific SRv6 Endpoint Behaviors on the advertising PE
router, such as (but not limited to) End.DT (table look up in VPN router, such as (but not limited to) End.DT (look up in the Virtual
Routing and Forwarding (VRF)) or End.DX (cross-connect to a next hop) Routing and Forwarding (VRF) table) or End.DX (cross-connect to a
behaviors in the case of L3VPN service, as defined in [RFC8986]. next hop) behaviors in the case of L3VPN service, as defined in
This document describes how existing BGP messages between PEs may [RFC8986]. This document describes how existing BGP messages between
carry SRv6 Service SIDs to interconnect PEs and form VPNs. PEs may carry SRv6 Service SIDs to interconnect PEs and form VPNs.
To provide SRv6 service with best-effort connectivity, the egress PE To provide SRv6 service with best-effort connectivity, the egress PE
signals an SRv6 Service SID with the BGP overlay service route. The signals an SRv6 Service SID with the BGP overlay service route. The
ingress PE encapsulates the payload in an outer IPv6 header where the ingress PE encapsulates the payload in an outer IPv6 header where the
destination address is the SRv6 Service SID provided by the egress destination address is the SRv6 Service SID provided by the egress
PE. The underlay between the PEs only needs to support plain IPv6 PE. The underlay between the PEs only needs to support plain IPv6
forwarding [RFC8200]. forwarding [RFC8200].
To provide SRv6 service in conjunction with an underlay Service Level To provide SRv6 service in conjunction with an underlay Service Level
Agreement (SLA) from the ingress PE to the egress PE, the egress PE Agreement (SLA) from the ingress PE to the egress PE, the egress PE
colors the overlay service route with a Color Extended Community colors the overlay service route with a Color Extended Community
[BGP-SR-POLICY] for steering flows for those routes, as specified in [RFC9012] for steering flows for those routes, as specified in
Section 8 of [SEGMENT-ROUTING-POLICY]. The ingress PE encapsulates Section 8 of [SEGMENT-ROUTING-POLICY]. The ingress PE encapsulates
the payload packet in an outer IPv6 header with the SR Policy segment the payload packet in an outer IPv6 header with the SR Policy segment
list associated with the related SLA along with the SRv6 Service SID list associated with the related SLA along with the SRv6 Service SID
associated with the route using the Segment Routing Header (SRH) associated with the route using the Segment Routing Header (SRH)
[RFC8754]. The underlay nodes whose SRv6 SIDs are part of the SRH [RFC8754]. The underlay nodes whose SRv6 SIDs are part of the SRH
segment list MUST support the SRv6 data plane. segment list MUST support the SRv6 data plane.
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
skipping to change at line 165 skipping to change at line 165
[RFC8669] to carry SRv6 SIDs and their associated information with [RFC8669] to carry SRv6 SIDs and their associated information with
the BGP address families that are listed further in this section. the BGP address families that are listed further in this section.
The SRv6 Service TLVs are defined as two new TLVs of the BGP Prefix- The SRv6 Service TLVs are defined as two new TLVs of the BGP Prefix-
SID attribute to achieve signaling of SRv6 SIDs for L3 and L2 SID attribute to achieve signaling of SRv6 SIDs for L3 and L2
services. services.
SRv6 L3 Service TLV: SRv6 L3 Service TLV:
This TLV encodes Service SID information for SRv6-based L3 This TLV encodes Service SID information for SRv6-based L3
services. It corresponds to the equivalent functionality provided services. It corresponds to the equivalent functionality provided
by an MPLS Label when received with a Layer 3 service route, as by an MPLS label when received with a Layer 3 service route, as
defined in [RFC4364], [RFC4659], [RFC8950], and [RFC9136]. Some defined in [RFC4364], [RFC4659], [RFC8950], and [RFC9136]. Some
SRv6 Endpoint Behaviors that may be encoded, but not limited to, SRv6 Endpoint Behaviors that may be encoded are, but not limited
are End.DX4, End.DT4, End.DX6, End.DT6, and End.DT46. to, End.DX4, End.DT4, End.DX6, End.DT6, and End.DT46.
SRv6 L2 Service TLV: SRv6 L2 Service TLV:
This TLV encodes Service SID information for SRv6-based L2 This TLV encodes Service SID information for SRv6-based L2
services. It corresponds to the equivalent functionality provided services. It corresponds to the equivalent functionality provided
by an MPLS Label1 for Ethernet VPN (EVPN) Route Types, as defined by an MPLS label for Ethernet VPN (EVPN) Route Types for Layer 2
in [RFC7432]. Some SRv6 Endpoint Behaviors that may be encoded services, as defined in [RFC7432]. Some SRv6 Endpoint Behaviors
are, but not limited to, End.DX2, End.DX2V, End.DT2U, and that may be encoded are, but not limited to, End.DX2, End.DX2V,
End.DT2M. End.DT2U, and End.DT2M.
When an egress PE is enabled for BGP Services over the SRv6 data When an egress PE is enabled for BGP Services over the SRv6 data
plane, it signals one or more SRv6 Service SIDs enclosed in an SRv6 plane, it signals one or more SRv6 Service SIDs enclosed in an SRv6
Service TLV(s) within the BGP Prefix-SID attribute attached to Service TLV(s) within the BGP Prefix-SID attribute attached to
Multiprotocol BGP (MP-BGP) Network Layer Reachability Information Multiprotocol BGP (MP-BGP) Network Layer Reachability Information
(NLRI) defined in [RFC4760], [RFC4659], [RFC8950], [RFC7432], (NLRI) defined in [RFC4760], [RFC4659], [RFC8950], [RFC7432],
[RFC4364], and [RFC9136], where applicable, as described in Sections [RFC4364], and [RFC9136], where applicable, as described in Sections
5 and 6. 5 and 6.
The support for BGP Multicast VPN (MVPN) Services [RFC6513] with SRv6 The support for BGP Multicast VPN (MVPN) Services [RFC6513] with SRv6
skipping to change at line 224 skipping to change at line 224
SRv6 Service Sub-TLVs (variable): SRv6 Service Sub-TLVs (variable):
This field contains SRv6 service-related information and is This field contains SRv6 service-related information and is
encoded as an unordered list of Sub-TLVs whose format is described encoded as an unordered list of Sub-TLVs whose format is described
below. below.
A BGP speaker receiving a route containing the BGP Prefix-SID A BGP speaker receiving a route containing the BGP Prefix-SID
attribute with one or more SRv6 Service TLVs observes the following attribute with one or more SRv6 Service TLVs observes the following
rules when advertising the received route to other peers: rules when advertising the received route to other peers:
* If the next hop is unchanged during the advertisement, the SRv6 * If the BGP next hop is unchanged during the advertisement, the
Service TLVs, including any unrecognized Types of Sub-TLV and Sub- SRv6 Service TLVs, including any unrecognized Types of Sub-TLV and
Sub-TLV, SHOULD be propagated further. In addition, all Reserved Sub-Sub-TLV, SHOULD be propagated further. In addition, all
fields in the TLV, Sub-TLV, or Sub-Sub-TLV MUST be propagated Reserved fields in the TLV, Sub-TLV, or Sub-Sub-TLV MUST be
unchanged. propagated unchanged.
* If the next hop is changed, the TLVs, Sub-TLVs, and Sub-Sub-TLVs * If the BGP next hop is changed, the TLVs, Sub-TLVs, and Sub-Sub-
SHOULD be updated with the locally allocated SRv6 SID information. TLVs SHOULD be updated with the locally allocated SRv6 SID
Any unrecognized and received Sub-TLVs and Sub-Sub-TLVs MUST be information. Any received Sub-TLVs and Sub-Sub-TLVs that are
removed. unrecognized MUST be removed.
3. SRv6 Service Sub-TLVs 3. SRv6 Service Sub-TLVs
The format of a single SRv6 Service Sub-TLV is depicted below: The format of a single SRv6 Service Sub-TLV is depicted below:
0 1 2 3 0 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SRv6 Service | SRv6 Service | SRv6 Service // | SRv6 Service | SRv6 Service | SRv6 Service //
| Sub-TLV | Sub-TLV | Sub-TLV // | Sub-TLV | Sub-TLV | Sub-TLV //
skipping to change at line 311 skipping to change at line 311
SRv6 Service SID Flags (1 octet): SRv6 Service SID Flags (1 octet):
This field encodes SRv6 Service SID Flags -- none are currently This field encodes SRv6 Service SID Flags -- none are currently
defined. It MUST be set to 0 by the sender and any unknown flags defined. It MUST be set to 0 by the sender and any unknown flags
MUST be ignored by the receiver. MUST be ignored by the receiver.
SRv6 Endpoint Behavior (2 octets): SRv6 Endpoint Behavior (2 octets):
This field encodes the SRv6 Endpoint Behavior codepoint value that This field encodes the SRv6 Endpoint Behavior codepoint value that
is associated with the SRv6 SID. The codepoints used are from is associated with the SRv6 SID. The codepoints used are from
IANA's "SRv6 Endpoint Behaviors" subregistry under the "Segment IANA's "SRv6 Endpoint Behaviors" subregistry under the "Segment
Routing" registry that was introduced by [RFC8986]. The opaque Routing" registry that was introduced by [RFC8986]. The opaque
Endpoint Behavior (i.e., value 0xFFFF) MAY be used when the SRv6 Endpoint Behavior (i.e., value 0xFFFF) MAY be used when the
advertising router wishes to abstract the actual behavior of its advertising router wishes to abstract the actual behavior of its
locally instantiated SRv6 SID. locally instantiated SRv6 SID.
RESERVED2 (1 octet): RESERVED2 (1 octet):
This field MUST be set to 0 by the sender and ignored by the This field MUST be set to 0 by the sender and ignored by the
receiver. receiver.
SRv6 Service Data Sub-Sub-TLV Value (variable): SRv6 Service Data Sub-Sub-TLV Value (variable):
This field is used to advertise properties of the SRv6 SID. It is This field is used to advertise properties of the SRv6 SID. It is
encoded as a set of SRv6 Service Data Sub-Sub-TLVs. encoded as a set of SRv6 Service Data Sub-Sub-TLVs.
The choice of SRv6 Endpoint Behavior of the SRv6 SID is entirely up The choice of SRv6 Endpoint Behavior of the SRv6 SID is entirely up
to the originator of the advertisement. While Sections 5 and 6 list to the originator of the advertisement. While Sections 5 and 6 list
the SRv6 Endpoint Behaviors that are normally expected to be used by the SRv6 Endpoint Behaviors that are normally expected to be used by
the specific route advertisements, the reception of other SRv6 the specific route advertisements, the reception of other SRv6
Endpoint Behaviors (e.g., new behaviors that may be introduced in the Endpoint Behaviors (e.g., new behaviors that may be introduced in the
future) is not considered an error. An unrecognized Endpoint future) is not considered an error. An unrecognized SRv6 Endpoint
Behavior MUST NOT be considered invalid by the receiver, except for Behavior MUST NOT be considered invalid by the receiver, except for
behaviors that involve the use of arguments (refer to Section 3.2.1 behaviors that involve the use of arguments (refer to Section 3.2.1
for details on argument validation). An implementation MAY log a for details on argument validation). An implementation MAY log a
rate-limited warning when it receives an unexpected behavior. rate-limited warning when it receives an unexpected behavior.
When multiple SRv6 SID Information Sub-TLVs are present, the ingress When multiple SRv6 SID Information Sub-TLVs are present, the ingress
PE SHOULD use the SRv6 SID from the first instance of the Sub-TLV. PE SHOULD use the SRv6 SID from the first instance of the Sub-TLV.
An implementation MAY provide a local policy to override this An implementation MAY provide a local policy to override this
selection. selection.
skipping to change at line 430 skipping to change at line 430
Section 4 describes mechanisms for the signaling of the SRv6 Service Section 4 describes mechanisms for the signaling of the SRv6 Service
SID by transposing a variable part of the SRv6 SID value and carrying SID by transposing a variable part of the SRv6 SID value and carrying
this variable part in existing MPLS Label fields to achieve more this variable part in existing MPLS Label fields to achieve more
efficient packing of those service prefix NLRIs in BGP update efficient packing of those service prefix NLRIs in BGP update
messages. The SRv6 SID Structure Sub-Sub-TLV contains appropriate messages. The SRv6 SID Structure Sub-Sub-TLV contains appropriate
length fields when the SRv6 Service SID is signaled in split parts to length fields when the SRv6 Service SID is signaled in split parts to
enable the receiver to put together the SID accurately. enable the receiver to put together the SID accurately.
Transposition Offset indicates the bit position, and Transposition Transposition Offset indicates the bit position, and Transposition
Length indicates the number of bits that are being taken out of the Length indicates the number of bits that are being taken out of the
SRv6 SID value and put into high order bits of the MPLS Label field. SRv6 SID value and encoded in the MPLS Label field. The bits that
The bits that have been shifted out MUST be set to 0 in the SID have been shifted out MUST be set to 0 in the SID value.
value.
A Transposition Length of 0 indicates nothing is transposed and that A Transposition Length of 0 indicates nothing is transposed and that
the entire SRv6 SID value is encoded in the SID Information Sub-TLV. the entire SRv6 SID value is encoded in the SID Information Sub-TLV.
In this case, the Transposition Offset MUST be set to 0. In this case, the Transposition Offset MUST be set to 0.
The size of the MPLS Label field limits the bits transposed from the The size of the MPLS Label field limits the bits transposed from the
SRv6 SID value into it. For example, the size of the MPLS Label SRv6 SID value into it. For example, the size of the MPLS Label
field is 20 bits in [RFC4364] and [RFC8277] and 24 bits in [RFC7432]. field is 20 bits in [RFC4364] and [RFC8277], and the size is 24 bits
in [RFC7432].
As defined in [RFC8986], the sum of the Locator Block Length (LBL), As defined in [RFC8986], the sum of the Locator Block Length (LBL),
Locator Node Length (LNL), Function Length (FL), and Argument Length Locator Node Length (LNL), Function Length (FL), and Argument Length
(AL) fields MUST be less than or equal to 128 and greater than the (AL) fields MUST be less than or equal to 128 and greater than the
sum of Transposition Offset and Transposition Length. sum of Transposition Offset and Transposition Length.
As an example, consider that the sum of the Locator Block and the As an example, consider that the sum of the Locator Block and the
Locator Node parts is 64. For an SRv6 SID where the entire Function Locator Node parts is 64. For an SRv6 SID where the entire Function
part of size 16 bits is transposed, the transposition offset is set part of size 16 bits is transposed, the transposition offset is set
to 64 and the transposition length is set to 16. While for an SRv6 to 64 and the transposition length is set to 16. While for an SRv6
skipping to change at line 470 skipping to change at line 470
specification MUST provide a mechanism to control the advertisement specification MUST provide a mechanism to control the advertisement
of SRv6-based BGP service routes on a per-neighbor and per-service of SRv6-based BGP service routes on a per-neighbor and per-service
basis. The details of deployment designs and implementation options basis. The details of deployment designs and implementation options
are outside the scope of this document. are outside the scope of this document.
Arguments may be generally applicable for SIDs of only specific SRv6 Arguments may be generally applicable for SIDs of only specific SRv6
Endpoint Behaviors (e.g., End.DT2M); therefore, the AL MUST be set to Endpoint Behaviors (e.g., End.DT2M); therefore, the AL MUST be set to
0 for SIDs where the Argument is not applicable. A receiver is 0 for SIDs where the Argument is not applicable. A receiver is
unable to validate the applicability of arguments for SRv6 Endpoint unable to validate the applicability of arguments for SRv6 Endpoint
Behaviors that are unknown to it and hence MUST ignore SRv6 SIDs with Behaviors that are unknown to it and hence MUST ignore SRv6 SIDs with
arguments (indicated by a non-zero AL) with unknown Endpoint arguments (indicated by a non-zero AL) with unknown SRv6 Endpoint
Behaviors. For SIDs corresponding to an Endpoint Behavior that is Behaviors. For SIDs corresponding to an SRv6 Endpoint Behavior that
known, a receiver MUST validate that the consistency of the AL with is known, a receiver MUST validate that the consistency of the AL
the specific Endpoint Behavior definition. with the specific SRv6 Endpoint Behavior definition.
4. Encoding SRv6 SID Information 4. Encoding SRv6 SID Information
The SRv6 Service SID(s) for a BGP service prefix is carried in the The SRv6 Service SID(s) for a BGP service prefix is carried in the
SRv6 Services TLVs of the BGP Prefix-SID attribute. SRv6 Services TLVs of the BGP Prefix-SID attribute.
For certain types of BGP Services, like L3VPN where a per-VRF SID For certain types of BGP Services, like L3VPN where a per-VRF SID
allocation is used (i.e., End.DT4 or End.DT6 behaviors), the same SID allocation is used (i.e., End.DT4 or End.DT6 behaviors), the same SID
is shared across multiple NLRIs, thus providing efficient packing. is shared across multiple NLRIs, thus providing efficient packing.
However, for certain other types of BGP Services, like EVPN Virtual However, for certain other types of BGP Services, like EVPN Virtual
Private Wire Service (VPWS) where a per-PW SID allocation is required Private Wire Service (VPWS) where a per-PW SID allocation is required
(i.e., End.DX2 behavior), each NLRI would have its own unique SID, (i.e., End.DX2 behavior), each NLRI would have its own unique SID,
thereby resulting in inefficient packing. thereby resulting in inefficient packing.
To achieve efficient packing, this document allows 1) the encoding of To achieve efficient packing, this document allows either 1) the
the SRv6 Service SID as a whole in either the SRv6 Services TLVs or encoding of the SRv6 Service SID as a whole in the SRv6 Services TLVs
2) the encoding of only the common part of the SRv6 SID (e.g., or 2) the encoding of only the common part of the SRv6 SID (e.g.,
Locator) in the SRv6 Services TLVs and the encoding of the variable Locator) in the SRv6 Services TLVs and the encoding of the variable
(e.g., Function or Argument parts) in the existing label fields (e.g., Function or Argument parts) in the existing label fields
specific to that service encoding. This later form of encoding is specific to that service encoding. This later form of encoding is
referred to as the Transposition Scheme, where the SRv6 SID Structure referred to as the Transposition Scheme, where the SRv6 SID Structure
Sub-Sub-TLV describes the sizes of the parts of the SRv6 SID and also Sub-Sub-TLV describes the sizes of the parts of the SRv6 SID and also
indicates the offset of the variable part along with its length in indicates the offset of the variable part along with its length in
the SRv6 SID value. The use of the Transposition Scheme is the SRv6 SID value. The use of the Transposition Scheme is
RECOMMENDED for the specific service encodings that allow it, as RECOMMENDED for the specific service encodings that allow it, as
described further in Sections 5 and 6. described further in Sections 5 and 6.
skipping to change at line 565 skipping to change at line 565
and egress PE while also encoding the SRv6 Endpoint Behavior. and egress PE while also encoding the SRv6 Endpoint Behavior.
When steering for SRv6 services is based on shortest path forwarding When steering for SRv6 services is based on shortest path forwarding
(e.g., best effort or IGP Flexible Algorithm [IGP-FLEX-ALGO]) to the (e.g., best effort or IGP Flexible Algorithm [IGP-FLEX-ALGO]) to the
egress PE, the ingress PE encapsulates the IPv4 or IPv6 customer egress PE, the ingress PE encapsulates the IPv4 or IPv6 customer
packet in an outer IPv6 header (using H.Encaps or H.Encaps.Red packet in an outer IPv6 header (using H.Encaps or H.Encaps.Red
flavors specified in [RFC8986]), where the destination address is the flavors specified in [RFC8986]), where the destination address is the
SRv6 Service SID associated with the related BGP route update. SRv6 Service SID associated with the related BGP route update.
Therefore, the ingress PE MUST perform a resolvability check for the Therefore, the ingress PE MUST perform a resolvability check for the
SRv6 Service SID before considering the received prefix for the BGP SRv6 Service SID before considering the received prefix for the BGP
best path computation. The resolvability is evaluated, as per best path computation. The resolvability is evaluated as per
[RFC4271]. If the SRv6 SID is reachable via more than one forwarding [RFC4271]. If the SRv6 SID is reachable via more than one forwarding
table, local policy is used to determine which table to use. The table, local policy is used to determine which table to use. The
result of an SRv6 Service SID resolvability (e.g., when provided via result of an SRv6 Service SID resolvability (e.g., when provided via
IGP Flexible Algorithm) can be ignored if the ingress PE has a local IGP Flexible Algorithm) can be ignored if the ingress PE has a local
policy that allows an alternate steering mechanism to reach the policy that allows an alternate steering mechanism to reach the
egress PE. The details of such steering mechanisms are outside the egress PE. The details of such steering mechanisms are outside the
scope of this document. scope of this document.
For service over SRv6 core, the egress PE sets the BGP next hop to For service over SRv6 core, the egress PE sets the BGP next hop to
one of its IPv6 addresses. Such an address MAY be covered by the one of its IPv6 addresses. Such an address MAY be covered by the
SRv6 Locator from which the SRv6 Service SID is allocated. The next SRv6 Locator from which the SRv6 Service SID is allocated. The BGP
hop is used for tracking the reachability of the egress PE based on next hop is used for tracking the reachability of the egress PE based
existing BGP procedures. on existing BGP procedures.
When the BGP route received at an ingress PE is colored with a Color When the BGP route received at an ingress PE is colored with a Color
Extended Community and a valid SRv6 Policy is available, the steering Extended Community and a valid SRv6 Policy is available, the steering
for service flows is performed as described in Section 8 of for service flows is performed as described in Section 8 of
[SEGMENT-ROUTING-POLICY]. When the ingress PE determines (with the [SEGMENT-ROUTING-POLICY]. When the ingress PE determines (with the
help of the SRv6 SID Structure) that the Service SID belongs to the help of the SRv6 SID Structure) that the Service SID belongs to the
same SRv6 Locator as the last SRv6 SID (of the egress PE) in the SR same SRv6 Locator as the last SRv6 SID (of the egress PE) in the SR
Policy segment list, it MAY exclude that last SRv6 SID when steering Policy segment list, it MAY exclude that last SRv6 SID when steering
the service flow. For example, the effective segment list of the the service flow. For example, the effective segment list of the
SRv6 Policy associated with SID list <S1, S2, S3> would be <S1, S2, SRv6 Policy associated with SID list <S1, S2, S3> would be <S1, S2,
skipping to change at line 702 skipping to change at line 702
SRv6 Service SID before considering the received prefix for the BGP SRv6 Service SID before considering the received prefix for the BGP
best path computation. The resolvability is evaluated as per best path computation. The resolvability is evaluated as per
[RFC4271]. If the SRv6 SID is reachable via more than one forwarding [RFC4271]. If the SRv6 SID is reachable via more than one forwarding
table, local policy is used to determine which table to use. The table, local policy is used to determine which table to use. The
result of an SRv6 Service SID resolvability (e.g., when provided via result of an SRv6 Service SID resolvability (e.g., when provided via
IGP Flexible Algorithm) can be ignored if the ingress PE has a local IGP Flexible Algorithm) can be ignored if the ingress PE has a local
policy that allows an alternate steering mechanism to reach the policy that allows an alternate steering mechanism to reach the
egress PE. The details of such steering mechanisms are outside the egress PE. The details of such steering mechanisms are outside the
scope of this document. scope of this document.
For service over SRv6 core, the egress PE sets the next hop to one of For service over SRv6 core, the egress PE sets the BGP next hop to
its IPv6 addresses. Such an address MAY be covered by the SRv6 one of its IPv6 addresses. Such an address MAY be covered by the
Locator from which the SRv6 Service SID is allocated. The next hop SRv6 Locator from which the SRv6 Service SID is allocated. The BGP
is used for tracking the reachability of the egress PE based on next hop is used for tracking the reachability of the egress PE based
existing BGP procedures. on existing BGP procedures.
When the BGP route received at an ingress PE is colored with a Color When the BGP route received at an ingress PE is colored with a Color
Extended Community and a valid SRv6 Policy is available, the steering Extended Community and a valid SRv6 Policy is available, the steering
for service flows is performed as described in Section 8 of for service flows is performed as described in Section 8 of
[SEGMENT-ROUTING-POLICY]. When the ingress PE determines (with the [SEGMENT-ROUTING-POLICY]. When the ingress PE determines (with the
help of the SRv6 SID Structure) that the Service SID belongs to the help of the SRv6 SID Structure) that the Service SID belongs to the
same SRv6 Locator as the last SRv6 SID (of the egress PE) in the SR same SRv6 Locator as the last SRv6 SID (of the egress PE) in the SR
Policy segment list, it MAY exclude that last SRv6 SID when steering Policy segment list, it MAY exclude that last SRv6 SID when steering
the service flow. For example, the effective segment list of the the service flow. For example, the effective segment list of the
SRv6 Policy associated with SID list <S1, S2, S3> would be <S1, S2, SRv6 Policy associated with SID list <S1, S2, S3> would be <S1, S2,
skipping to change at line 749 skipping to change at line 749
Figure 6: EVPN Route Type 1 Figure 6: EVPN Route Type 1
6.1.1. Ethernet A-D per ES Route 6.1.1. Ethernet A-D per ES Route
Ethernet A-D per ES route NLRI encoding over SRv6 core is as per Ethernet A-D per ES route NLRI encoding over SRv6 core is as per
[RFC7432]. [RFC7432].
The 24-bit ESI Label field of the ESI Label extended community The 24-bit ESI Label field of the ESI Label extended community
carries the whole or a portion of the Argument part of the SRv6 SID carries the whole or a portion of the Argument part of the SRv6 SID
when the ESI filtering approach is used along with the Transposition when the ESI filtering approach is used along with the Transposition
Scheme of encoding (Section 4); otherwise, it is set to the Implicit Scheme of encoding (Section 4); otherwise, it is set to Implicit NULL
NULL value. In either case, the value is set in the 24 bits (e.g., in the higher-order 20 bits (i.e., as 0x000030). In either case, the
as 0x000030 in the case of Implicit NULL). When using the value is set in the 24 bits. When using the Transposition Scheme,
Transposition Scheme, the Transposition Length MUST be less than or the Transposition Length MUST be less than or equal to 24 and less
equal to 24 and less than or equal to the AL. than or equal to the AL.
A Service SID enclosed in an SRv6 L2 Service TLV within the BGP A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
Prefix-SID attribute is advertised along with the A-D route. The Prefix-SID attribute is advertised along with the A-D route. The
SRv6 Endpoint Behavior SHOULD be End.DT2M. When the ESI filtering SRv6 Endpoint Behavior SHOULD be End.DT2M. When the ESI filtering
approach is used, the Service SID is used to signal the Arg.FE2 SID approach is used, the Service SID is used to signal the Arg.FE2 SID
Argument for applicable End.DT2M behavior [RFC8986]. When the local- Argument for applicable End.DT2M behavior [RFC8986]. When the local-
bias approach [RFC8365] is used, the Service SID MAY be of value 0. bias approach [RFC8365] is used, the Service SID MAY be of value 0.
6.1.2. Ethernet A-D per EVI Route 6.1.2. Ethernet A-D per EVI Route
Ethernet A-D per EVPN Instance (EVI) route NLRI encoding over SRv6 Ethernet A-D per EVPN Instance (EVI) route NLRI encoding over SRv6
core is similar to what is described in [RFC7432] and [RFC8214] with core is similar to what is described in [RFC7432] and [RFC8214] with
the following change: the following change:
MPLS Label: MPLS Label:
The 24-bit field carries the whole or a portion of the Function The 24-bit field carries the whole or a portion of the Function
part of the SRv6 SID when the Transposition Scheme of encoding part of the SRv6 SID when the Transposition Scheme of encoding
(Section 4) is used; otherwise, it is set to the Implicit NULL (Section 4) is used; otherwise, it is set to Implicit NULL in the
value. In either case, the value is set in the 24 bits (e.g., as higher-order 20 bits (i.e., as 0x000030). In either case, the
0x000030 in the case of Implicit NULL). When using the value is set in the 24 bits. When using the Transposition Scheme,
Transposition Scheme, the Transposition Length MUST be less than the Transposition Length MUST be less than or equal to 24 and less
or equal to 24 and less than or equal to the FL. than or equal to the FL.
A Service SID enclosed in an SRv6 L2 Service TLV within the BGP A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
Prefix-SID attribute is advertised along with the A-D route. The Prefix-SID attribute is advertised along with the A-D route. The
SRv6 Endpoint Behavior SHOULD be one of these: End.DX2, End.DX2V, or SRv6 Endpoint Behavior SHOULD be one of these: End.DX2, End.DX2V, or
End.DT2U. End.DT2U.
6.2. MAC/IP Advertisement Route over SRv6 Core 6.2. MAC/IP Advertisement Route over SRv6 Core
EVPN Route Type 2 is used to advertise unicast traffic Media Access EVPN Route Type 2 is used to advertise unicast traffic Media Access
Control (MAC) + IP address reachability through MP-BGP to all other Control (MAC) + IP address reachability through MP-BGP to all other
skipping to change at line 819 skipping to change at line 819
Figure 7: EVPN Route Type 2 Figure 7: EVPN Route Type 2
NLRI encoding over SRv6 core is similar to what is described in NLRI encoding over SRv6 core is similar to what is described in
[RFC7432] with the following changes: [RFC7432] with the following changes:
MPLS Label1: MPLS Label1:
This is associated with the SRv6 L2 Service TLV. This 24-bit This is associated with the SRv6 L2 Service TLV. This 24-bit
field carries the whole or a portion of the Function part of the field carries the whole or a portion of the Function part of the
SRv6 SID when the Transposition Scheme of encoding (Section 4) is SRv6 SID when the Transposition Scheme of encoding (Section 4) is
used; otherwise, it is set to the Implicit NULL value. In either used; otherwise, it is set to Implicit NULL in the higher-order 20
case, the value is set in the 24 bits (e.g., as 0x000030 in the bits (i.e., as 0x000030). In either case, the value is set in the
case of Implicit NULL). When using the Transposition Scheme, the 24 bits. When using the Transposition Scheme, the Transposition
Transposition Length MUST be less than or equal to 24 and less Length MUST be less than or equal to 24 and less than or equal to
than or equal to the FL. the FL.
MPLS Label2: MPLS Label2:
This is associated with the SRv6 L3 Service TLV. This 24-bit This is associated with the SRv6 L3 Service TLV. This 24-bit
field carries the whole or a portion of the Function part of the field carries the whole or a portion of the Function part of the
SRv6 SID when the Transposition Scheme of encoding (Section 4) is SRv6 SID when the Transposition Scheme of encoding (Section 4) is
used; otherwise, it is set to the Implicit NULL value. In either used; otherwise, it is set to Implicit NULL in the higher-order 20
case, the value is set in the 24 bits (e.g., as 0x000030 in the bits (i.e., as 0x000030). In either case, the value is set in the
case of Implicit NULL). When using the Transposition Scheme, the 24 bits. When using the Transposition Scheme, the Transposition
Transposition Length MUST be less than or equal to 24 and less Length MUST be less than or equal to 24 and less than or equal to
than or equal to the FL. the FL.
Service SIDs enclosed in the SRv6 L2 Service TLV and optionally in Service SIDs enclosed in the SRv6 L2 Service TLV and optionally in
the SRv6 L3 Service TLV within the BGP Prefix-SID attribute are the SRv6 L3 Service TLV within the BGP Prefix-SID attribute are
advertised along with the MAC/IP Advertisement route. advertised along with the MAC/IP Advertisement route.
Described below are different types of Route Type 2 advertisements. Described below are different types of Route Type 2 advertisements.
6.2.1. MAC/IP Advertisement Route with MAC Only 6.2.1. MAC/IP Advertisement Route with MAC Only
MPLS Label1: MPLS Label1:
This is associated with the SRv6 L2 Service TLV. This 24-bit This is associated with the SRv6 L2 Service TLV. This 24-bit
field carries the whole or a portion of the Function part of the field carries the whole or a portion of the Function part of the
SRv6 SID when the Transposition Scheme of encoding (Section 4) is SRv6 SID when the Transposition Scheme of encoding (Section 4) is
used; otherwise, it is set to the Implicit NULL value. In either used; otherwise, it is set to Implicit NULL in the higher-order 20
case, the value is set in the 24 bits (e.g., as 0x000030 in the bits (i.e., as 0x000030). In either case, the value is set in the
case of Implicit NULL). When using the Transposition Scheme, the 24 bits. When using the Transposition Scheme, the Transposition
Transposition Length MUST be less than or equal to 24 and less Length MUST be less than or equal to 24 and less than or equal to
than or equal to the FL. the FL.
A Service SID enclosed in an SRv6 L2 Service TLV within the BGP A Service SID enclosed in an SRv6 L2 Service TLV within the BGP
Prefix-SID attribute is advertised along with the route. The SRv6 Prefix-SID attribute is advertised along with the route. The SRv6
Endpoint Behavior SHOULD be one of these: End.DX2 or End.DT2U. Endpoint Behavior SHOULD be one of these: End.DX2 or End.DT2U.
6.2.2. MAC/IP Advertisement Route with MAC+IP 6.2.2. MAC/IP Advertisement Route with MAC+IP
MPLS Label1: MPLS Label1:
This is associated with the SRv6 L2 Service TLV. This 24-bit This is associated with the SRv6 L2 Service TLV. This 24-bit
field carries the whole or a portion of the Function part of the field carries the whole or a portion of the Function part of the
SRv6 SID when the Transposition Scheme of encoding (Section 4) is SRv6 SID when the Transposition Scheme of encoding (Section 4) is
used; otherwise, it is set to the Implicit NULL value. In either used; otherwise, it is set to Implicit NULL in the higher-order 20
case, the value is set in the 24 bits (e.g., as 0x000030 in the bits (i.e., as 0x000030). In either case, the value is set in the
case of Implicit NULL). When using the Transposition Scheme, the 24 bits. When using the Transposition Scheme, the Transposition
Transposition Length MUST be less than or equal to 24 and less Length MUST be less than or equal to 24 and less than or equal to
than or equal to the FL. the FL.
MPLS Label2: MPLS Label2:
This is associated with the SRv6 L3 Service TLV. This 24-bit This is associated with the SRv6 L3 Service TLV. This 24-bit
field carries the whole or a portion of the Function part of the field carries the whole or a portion of the Function part of the
SRv6 SID when the Transposition Scheme of encoding (Section 4) is SRv6 SID when the Transposition Scheme of encoding (Section 4) is
used; otherwise, it is set to the Implicit NULL value. In either used; otherwise, it is set to Implicit NULL in the higher-order 20
case, the value is set in the 24 bits (e.g., as 0x000030 in the bits (i.e., as 0x000030). In either case, the value is set in the
case of Implicit NULL). When using the Transposition Scheme, the 24 bits. When using the Transposition Scheme, the Transposition
Transposition Length MUST be less than or equal to 24 and less Length MUST be less than or equal to 24 and less than or equal to
than or equal to the FL. the FL.
An L2 Service SID enclosed in an SRv6 L2 Service TLV within the BGP An L2 Service SID enclosed in an SRv6 L2 Service TLV within the BGP
Prefix-SID attribute is advertised along with the route. In Prefix-SID attribute is advertised along with the route. In
addition, an L3 Service SID enclosed in an SRv6 L3 Service TLV within addition, an L3 Service SID enclosed in an SRv6 L3 Service TLV within
the BGP Prefix-SID attribute MAY also be advertised along with the the BGP Prefix-SID attribute MAY also be advertised along with the
route. The SRv6 Endpoint Behavior SHOULD be one of these: for the L2 route. The SRv6 Endpoint Behavior SHOULD be one of these: for the L2
Service SID, End.DX2 or End.DT2U and for the L3 Service SID, Service SID, End.DX2 or End.DT2U and for the L3 Service SID,
End.DT46, End.DT4, End.DT6, End.DX4, or End.DX6. End.DT46, End.DT4, End.DT6, End.DX4, or End.DX6.
6.3. Inclusive Multicast Ethernet Tag Route over SRv6 Core 6.3. Inclusive Multicast Ethernet Tag Route over SRv6 Core
skipping to change at line 1024 skipping to change at line 1024
+-----------------------------------------+ +-----------------------------------------+
Figure 11: EVPN Route Type 5 Figure 11: EVPN Route Type 5
NLRI encoding over SRv6 core is similar to what is described in NLRI encoding over SRv6 core is similar to what is described in
[RFC9136] with the following change: [RFC9136] with the following change:
MPLS Label: MPLS Label:
This 24-bit field carries the whole or a portion of the Function This 24-bit field carries the whole or a portion of the Function
part of the SRv6 SID when the Transposition Scheme of encoding part of the SRv6 SID when the Transposition Scheme of encoding
(Section 4) is used; otherwise, it is set to the Implicit NULL (Section 4) is used; otherwise, it is set to Implicit NULL in the
value. In either case, the value is set in the 24 bits (e.g., as higher-order 20 bits (i.e., as 0x000030). In either case, the
0x000030 in the case of Implicit NULL). When using the value is set in the 24 bits. When using the Transposition Scheme,
Transposition Scheme, the Transposition Length MUST be less than the Transposition Length MUST be less than or equal to 24 and less
or equal to 24 and less than or equal to the FL. than or equal to the FL.
The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV. The SRv6 Service SID is encoded as part of the SRv6 L3 Service TLV.
The SRv6 Endpoint Behavior SHOULD be one of these: End.DT4, End.DT6, The SRv6 Endpoint Behavior SHOULD be one of these: End.DT4, End.DT6,
End.DT46, End.DX4, or End.DX6. End.DT46, End.DX4, or End.DX6.
6.6. EVPN Multicast Routes (Route Types 6, 7, and 8) over SRv6 Core 6.6. EVPN Multicast Routes (Route Types 6, 7, and 8) over SRv6 Core
These routes do not require the advertisement of SRv6 Service TLVs These routes do not require the advertisement of SRv6 Service TLVs
along with them. Similar to EVPN Route Type 4, the BGP next hop is along with them. Similar to EVPN Route Type 4, the BGP next hop is
equal to the IPv6 address of egress PE. equal to the IPv6 address of egress PE.
skipping to change at line 1139 skipping to change at line 1139
replaced by the SRv6 L3 Service and SRv6 L2 Service TLVs. replaced by the SRv6 L3 Service and SRv6 L2 Service TLVs.
8.2. SRv6 Service Sub-TLV Types Registry 8.2. SRv6 Service Sub-TLV Types Registry
IANA has created and now maintains a new subregistry called "SRv6 IANA has created and now maintains a new subregistry called "SRv6
Service Sub-TLV Types" under the "Border Gateway Protocol (BGP) Service Sub-TLV Types" under the "Border Gateway Protocol (BGP)
Parameters" registry. The registration procedures, per [RFC8126], Parameters" registry. The registration procedures, per [RFC8126],
for this subregistry are according to Table 2. for this subregistry are according to Table 2.
+=========+=========================+ +=========+=========================+
| Range | Registration Procedure | | Range | Registration Procedures |
+=========+=========================+ +=========+=========================+
| 1-127 | IETF Review | | 1-127 | IETF Review |
+---------+-------------------------+ +---------+-------------------------+
| 128-254 | First Come First Served | | 128-254 | First Come First Served |
+---------+-------------------------+ +---------+-------------------------+
| 255 | IETF Review | | 255 | IETF Review |
+---------+-------------------------+ +---------+-------------------------+
Table 2: SRv6 Service Sub-TLV Table 2: SRv6 Service Sub-TLV
Types Subregistry Registration Types Subregistry Registration
skipping to change at line 1435 skipping to change at line 1435
<https://www.rfc-editor.org/info/rfc8986>. <https://www.rfc-editor.org/info/rfc8986>.
[RFC9136] Rabadan, J., Ed., Henderickx, W., Drake, J., Lin, W., and [RFC9136] Rabadan, J., Ed., Henderickx, W., Drake, J., Lin, W., and
A. Sajassi, "IP Prefix Advertisement in Ethernet VPN A. Sajassi, "IP Prefix Advertisement in Ethernet VPN
(EVPN)", RFC 9136, DOI 10.17487/RFC9136, October 2021, (EVPN)", RFC 9136, DOI 10.17487/RFC9136, October 2021,
<https://www.rfc-editor.org/info/rfc9136>. <https://www.rfc-editor.org/info/rfc9136>.
[RFC9251] Sajassi, A., Thoria, S., Mishra, M., Patel, K., Drake, J., [RFC9251] Sajassi, A., Thoria, S., Mishra, M., Patel, K., Drake, J.,
and W. Lin, "Internet Group Management Protocol (IGMP) and and W. Lin, "Internet Group Management Protocol (IGMP) and
Multicast Listener Discovery (MLD) Proxies for Ethernet Multicast Listener Discovery (MLD) Proxies for Ethernet
VPN (EVPN)", RFC RFC9251, DOI 10.17487/RFC9251, June 2022, VPN (EVPN)", RFC 9251, DOI 10.17487/RFC9251, June 2022,
<https://www.rfc-editor.org/info/rfc9251>. <https://www.rfc-editor.org/info/rfc9251>.
10.2. Informative References 10.2. Informative References
[BGP-SR-POLICY]
Previdi, S., Filsfils, C., Talaulikar, K., Ed., Mattes,
P., Jain, D., and S. Lin, "Advertising Segment Routing
Policies in BGP", Work in Progress, Internet-Draft, draft-
ietf-idr-segment-routing-te-policy-17, 14 April 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-
segment-routing-te-policy-17>.
[IGP-FLEX-ALGO] [IGP-FLEX-ALGO]
Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
and A. Gulko, "IGP Flexible Algorithm", Work in Progress, and A. Gulko, "IGP Flexible Algorithm", Work in Progress,
Internet-Draft, draft-ietf-lsr-flex-algo-20, 18 May 2022, Internet-Draft, draft-ietf-lsr-flex-algo-20, 18 May 2022,
<https://datatracker.ietf.org/doc/html/draft-ietf-lsr- <https://datatracker.ietf.org/doc/html/draft-ietf-lsr-
flex-algo-20>. flex-algo-20>.
[RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering:
Defeating Denial of Service Attacks which employ IP Source Defeating Denial of Service Attacks which employ IP Source
Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827, Address Spoofing", BCP 38, RFC 2827, DOI 10.17487/RFC2827,
 End of changes. 28 change blocks. 
95 lines changed or deleted 87 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/