< draft-ietf-pce-segment-routing-ipv6-12.txt   draft-ietf-pce-segment-routing-ipv6-13.txt >
PCE Working Group C. Li PCE Working Group C. Li
Internet-Draft Huawei Technologies Internet-Draft Huawei Technologies
Intended status: Standards Track M. Negi Intended status: Standards Track M. Negi
Expires: 5 September 2022 RtBrick Inc Expires: 3 October 2022 RtBrick Inc
S. Sivabalan S. Sivabalan
Ciena Corporation Ciena Corporation
M. Koldychev M. Koldychev
Cisco Systems, Inc. Cisco Systems, Inc.
P. Kaladharan P. Kaladharan
RtBrick Inc RtBrick Inc
Y. Zhu Y. Zhu
China Telecom China Telecom
4 March 2022 1 April 2022
PCEP Extensions for Segment Routing leveraging the IPv6 data plane PCEP Extensions for Segment Routing leveraging the IPv6 data plane
draft-ietf-pce-segment-routing-ipv6-12 draft-ietf-pce-segment-routing-ipv6-13
Abstract Abstract
The Source Packet Routing in Networking (SPRING) architecture The Source Packet Routing in Networking (SPRING) architecture
describes how Segment Routing (SR) can be used to steer packets describes how Segment Routing (SR) can be used to steer packets
through an IPv6 or MPLS network using the source routing paradigm. through an IPv6 or MPLS network using the source routing paradigm.
SR enables any head-end node to select any path without relying on a SR enables any head-end node to select any path without relying on a
hop-by-hop signaling technique (e.g., LDP or RSVP-TE). hop-by-hop signaling technique (e.g., LDP or RSVP-TE).
It depends only on "segments" that are advertised by Link-State IGPs. It depends only on "segments" that are advertised by Link-State IGPs.
skipping to change at page 2, line 20 skipping to change at page 2, line 20
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 5 September 2022. This Internet-Draft will expire on 3 October 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 3, line 11 skipping to change at page 3, line 11
4.3.1.2. Order of the Optional fields . . . . . . . . . . 13 4.3.1.2. Order of the Optional fields . . . . . . . . . . 13
4.4. RRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.4. RRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.4.1. SRv6-RRO Subobject . . . . . . . . . . . . . . . . . 13 4.4.1. SRv6-RRO Subobject . . . . . . . . . . . . . . . . . 13
5. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 14 5. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1. Exchanging the SRv6 Capability . . . . . . . . . . . . . 14 5.1. Exchanging the SRv6 Capability . . . . . . . . . . . . . 14
5.2. ERO Processing . . . . . . . . . . . . . . . . . . . . . 16 5.2. ERO Processing . . . . . . . . . . . . . . . . . . . . . 16
5.2.1. SRv6 ERO Validation . . . . . . . . . . . . . . . . . 16 5.2.1. SRv6 ERO Validation . . . . . . . . . . . . . . . . . 16
5.2.2. Interpreting the SRv6-ERO . . . . . . . . . . . . . . 17 5.2.2. Interpreting the SRv6-ERO . . . . . . . . . . . . . . 17
5.3. RRO Processing . . . . . . . . . . . . . . . . . . . . . 17 5.3. RRO Processing . . . . . . . . . . . . . . . . . . . . . 17
6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17
7. Manageability Considerations . . . . . . . . . . . . . . . . 18 7. Manageability Considerations . . . . . . . . . . . . . . . . 18
7.1. Control of Function and Policy . . . . . . . . . . . . . 18 7.1. Control of Function and Policy . . . . . . . . . . . . . 18
7.2. Information and Data Models . . . . . . . . . . . . . . . 18 7.2. Information and Data Models . . . . . . . . . . . . . . . 18
7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 18 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 18
7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 18 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 18
7.5. Requirements On Other Protocols . . . . . . . . . . . . . 19 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 18
7.6. Impact On Network Operations . . . . . . . . . . . . . . 19 7.6. Impact On Network Operations . . . . . . . . . . . . . . 18
8. Implementation Status . . . . . . . . . . . . . . . . . . . . 19 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 18
8.1. Cisco's Commercial Delivery . . . . . . . . . . . . . . . 19 8.1. Cisco's Commercial Delivery . . . . . . . . . . . . . . . 19
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
9.1. PCEP ERO and RRO subobjects . . . . . . . . . . . . . . . 20 9.1. PCEP ERO and RRO subobjects . . . . . . . . . . . . . . . 19
9.2. New SRv6-ERO Flag Registry . . . . . . . . . . . . . . . 20 9.2. New SRv6-ERO Flag Registry . . . . . . . . . . . . . . . 20
9.3. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators . . . 21 9.3. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators . . . 20
9.4. SRv6 PCE Capability Flags . . . . . . . . . . . . . . . . 21 9.4. SRv6 PCE Capability Flags . . . . . . . . . . . . . . . . 21
9.5. New Path Setup Type . . . . . . . . . . . . . . . . . . . 21 9.5. New Path Setup Type . . . . . . . . . . . . . . . . . . . 21
9.6. ERROR Objects . . . . . . . . . . . . . . . . . . . . . . 22 9.6. ERROR Objects . . . . . . . . . . . . . . . . . . . . . . 21
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 22
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 22
11.1. Normative References . . . . . . . . . . . . . . . . . . 22 11.1. Normative References . . . . . . . . . . . . . . . . . . 22
11.2. Informative References . . . . . . . . . . . . . . . . . 24 11.2. Informative References . . . . . . . . . . . . . . . . . 24
Appendix A. Contributor . . . . . . . . . . . . . . . . . . . . 25 Appendix A. Contributor . . . . . . . . . . . . . . . . . . . . 25
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
As per [RFC8402], with Segment Routing (SR), a node steers a packet As per [RFC8402], with Segment Routing (SR), a node steers a packet
skipping to change at page 7, line 25 skipping to change at page 7, line 25
4. Object Formats 4. Object Formats
4.1. The OPEN Object 4.1. The OPEN Object
4.1.1. The SRv6 PCE Capability sub-TLV 4.1.1. The SRv6 PCE Capability sub-TLV
This document defines a new Path Setup Type (PST) [RFC8408] for SRv6, This document defines a new Path Setup Type (PST) [RFC8408] for SRv6,
as follows: as follows:
* PST = TBD2: Path is setup using SRv6. * PST = 3 (early allocated by IANA): Path is setup using SRv6.
A PCEP speaker MUST indicate its support of the function described in A PCEP speaker MUST indicate its support of the function described in
this document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN this document by sending a PATH-SETUP-TYPE-CAPABILITY TLV in the OPEN
object with this new PST included in the PST list. object with this new PST included in the PST list.
This document also defines the SRv6-PCE-CAPABILITY sub-TLV. PCEP This document also defines the SRv6-PCE-CAPABILITY sub-TLV. PCEP
speakers use this sub-TLV to exchange information about their SRv6 speakers use this sub-TLV to exchange information about their SRv6
capability. If a PCEP speaker includes PST=TBD2 in the PST List of capability. If a PCEP speaker includes PST=3 (early allocated by
the PATH-SETUP-TYPE-CAPABILITY TLV then it MUST also include the IANA) in the PST List of the PATH-SETUP-TYPE-CAPABILITY TLV then it
SRv6-PCE-CAPABILITY sub-TLV inside the PATH-SETUP-TYPE-CAPABILITY MUST also include the SRv6-PCE-CAPABILITY sub-TLV inside the PATH-
TLV. SETUP-TYPE-CAPABILITY TLV.
The format of the SRv6-PCE-CAPABILITY sub-TLV is shown in the The format of the SRv6-PCE-CAPABILITY sub-TLV is shown in the
following figure: following figure:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=TBD1 | Length | | Type=27 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Flags |N|X| | Reserved | Flags |N|X|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MSD-Type | MSD-Value | MSD-Type | MSD-Value | | MSD-Type | MSD-Value | MSD-Type | MSD-Value |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// ... // // ... //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MSD-Type | MSD-Value | Padding | | MSD-Type | MSD-Value | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: SRv6-PCE-CAPABILITY sub-TLV format Figure 1: SRv6-PCE-CAPABILITY sub-TLV format
The code point for the TLV type (TBD1) is to be defined by IANA. The The code point for the TLV type (27)(early allocated by IANA) is to
TLV length is variable. be defined by IANA. The TLV length is variable.
The value comprises of - The value comprises of -
Reserved: 2 octet, this field MUST be set to 0 on transmission, Reserved: 2 octet, this field MUST be set to 0 on transmission,
and ignored on receipt. and ignored on receipt.
Flags: 2 octet, two bits are currently assigned in this document. Flags: 2 octet, two bits are currently assigned in this document.
- N bit: A PCC sets this flag bit to 1 to indicate that it is - N bit: A PCC sets this flag bit to 1 to indicate that it is
capable of resolving a Node or Adjacency Identifier (NAI) to a capable of resolving a Node or Adjacency Identifier (NAI) to a
skipping to change at page 9, line 8 skipping to change at page 8, line 48
- Unassigned bits MUST be set to 0 and ignored on receipt. - Unassigned bits MUST be set to 0 and ignored on receipt.
A pair of (MSD-Type, MSD-Value): Where MSD-Type (1 octet) is as A pair of (MSD-Type, MSD-Value): Where MSD-Type (1 octet) is as
per the IGP MSD Type registry created by [RFC8491] and populated per the IGP MSD Type registry created by [RFC8491] and populated
with SRv6 MSD types as per [I-D.ietf-lsr-isis-srv6-extensions]; with SRv6 MSD types as per [I-D.ietf-lsr-isis-srv6-extensions];
MSD-Value (1 octet) is as per [RFC8491]. MSD-Value (1 octet) is as per [RFC8491].
This sub-TLV format is compliant with the PCEP TLV format defined in This sub-TLV format is compliant with the PCEP TLV format defined in
[RFC5440]. That is, the sub-TLV is composed of 2 octets for the [RFC5440]. That is, the sub-TLV is composed of 2 octets for the
type, 2 octets specifying the length, and a Value field. The Type type, 2 octets specifying the length, and a Value field. The Type
field when set to TBD1 identifies the SRv6-PCE-CAPABILITY sub-TLV and field when set to 27 (early allocated by IANA) identifies the SRv6-
the presence of the sub-TLV indicates the support for the SRv6 paths PCE-CAPABILITY sub-TLV and the presence of the sub-TLV indicates the
in PCEP. The Length field defines the length of the value portion in support for the SRv6 paths in PCEP. The Length field defines the
octets. The TLV is padded to 4-octet alignment, and padding is not length of the value portion in octets. The TLV is padded to 4-octet
included in the Length field. The number of (MSD-Type,MSD-Value) alignment, and padding is not included in the Length field. The
pairs can be determined from the Length field of the TLV. number of (MSD-Type,MSD-Value) pairs can be determined from the
Length field of the TLV.
4.2. The RP/SRP Object 4.2. The RP/SRP Object
In order to indicate the SRv6 path, RP or SRP object MUST include the In order to indicate the SRv6 path, RP or SRP object MUST include the
PATH-SETUP-TYPE TLV specified in [RFC8408]. This document defines a PATH-SETUP-TYPE TLV specified in [RFC8408]. This document defines a
new Path Setup Type (PST=TBD2) for SRv6. new Path Setup Type (PST=3(early allocated by IANA)) for SRv6.
The LSP-IDENTIFIERS TLV MAY be present for the above PST type. The LSP-IDENTIFIERS TLV MAY be present for the above PST type.
4.3. ERO 4.3. ERO
In order to support SRv6, new subobject "SRv6-ERO" is defined in ERO. In order to support SRv6, new subobject "SRv6-ERO" is defined in ERO.
4.3.1. SRv6-ERO Subobject 4.3.1. SRv6-ERO Subobject
An SRv6-ERO subobject is formatted as shown in the following figure. An SRv6-ERO subobject is formatted as shown in the following figure.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type=TBD3 | Length | NT | Flags |V|T|F|S| |L| Type=40 | Length | NT | Flags |V|T|F|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Endpoint Behavior | | Reserved | Endpoint Behavior |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| SRv6 SID (optional) | | SRv6 SID (optional) |
| (128-bit) | | (128-bit) |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// NAI (variable, optional) // // NAI (variable, optional) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 10, line 12 skipping to change at page 10, line 6
The fields in the SRv6-ERO Subobject are as follows: The fields in the SRv6-ERO Subobject are as follows:
The 'L' Flag: Indicates whether the subobject represents a loose-hop The 'L' Flag: Indicates whether the subobject represents a loose-hop
(see [RFC3209]). If this flag is set to zero, a PCC MUST NOT (see [RFC3209]). If this flag is set to zero, a PCC MUST NOT
overwrite the SID value present in the SRv6-ERO subobject. overwrite the SID value present in the SRv6-ERO subobject.
Otherwise, a PCC MAY expand or replace one or more SID values in the Otherwise, a PCC MAY expand or replace one or more SID values in the
received SRv6-ERO based on its local policy. received SRv6-ERO based on its local policy.
Type: indicates the content of the subobject, i.e. when the field is Type: indicates the content of the subobject, i.e. when the field is
set to TBD3, the suboject is a SRv6-ERO subobject representing a SRv6 set to 40 (early allocated by IANA), the suboject is a SRv6-ERO
SID. subobject representing a SRv6 SID.
Length: Contains the total length of the subobject in octets. The Length: Contains the total length of the subobject in octets. The
Length MUST be at least 24, and MUST be a multiple of 4. An SRv6-ERO Length MUST be at least 24, and MUST be a multiple of 4. An SRv6-ERO
subobject MUST contain at least one of a SRv6-SID or an NAI. The S subobject MUST contain at least one of a SRv6-SID or an NAI. The S
and F bit in the Flags field indicates whether the SRv6-SID or NAI and F bit in the Flags field indicates whether the SRv6-SID or NAI
fields are absent. fields are absent.
NAI Type (NT): Indicates the type and format of the NAI contained in NAI Type (NT): Indicates the type and format of the NAI contained in
the object body, if any is present. If the F bit is set to one (see the object body, if any is present. If the F bit is set to one (see
below) then the NT field has no meaning and MUST be ignored by the below) then the NT field has no meaning and MUST be ignored by the
skipping to change at page 12, line 34 skipping to change at page 12, line 29
LN Length: 1 octet. SRv6 SID Locator Node length in bits. LN Length: 1 octet. SRv6 SID Locator Node length in bits.
Fun. Length: 1 octet. SRv6 SID Function length in bits. Fun. Length: 1 octet. SRv6 SID Function length in bits.
Arg. Length: 1 octet. SRv6 SID Arguments length in bits. Arg. Length: 1 octet. SRv6 SID Arguments length in bits.
The sum of all four sizes in the SID Structure must be lower or equal The sum of all four sizes in the SID Structure must be lower or equal
to 128 bits. If the sum of all four sizes advertised in the SID to 128 bits. If the sum of all four sizes advertised in the SID
Structure is larger than 128 bits, the corresponding SRv6 SID MUST be Structure is larger than 128 bits, the corresponding SRv6 SID MUST be
considered invalid and a PCErr message with Error-Type = 10 considered invalid and a PCErr message with Error-Type = 10
("Reception of an invalid object") and Error-Value = TBD ("Invalid ("Reception of an invalid object") and Error-Value = 37 (early
SRv6 SID Structure") is returned. allocated by IANA) ("Invalid SRv6 SID Structure") is returned.
Reserved: MUST be set to zero while sending and ignored on receipt. Reserved: MUST be set to zero while sending and ignored on receipt.
Flags: Currently no flags are defined. Unassigned bits must be set Flags: Currently no flags are defined. Unassigned bits must be set
to zero while sending and ignored on receipt. to zero while sending and ignored on receipt.
The SRv6 SID Structure provides the detailed encoding information of The SRv6 SID Structure provides the detailed encoding information of
an SRv6 SID, which is useful in the use cases that require to know an SRv6 SID, which is useful in the use cases that require to know
the SRv6 SID structure. When a PCEP speaker receives the SRv6 SID the SRv6 SID structure. When a PCEP speaker receives the SRv6 SID
and its structure information, the SRv6 SID can be parsed based on and its structure information, the SRv6 SID can be parsed based on
skipping to change at page 14, line 8 skipping to change at page 13, line 35
applied by the PCC, that is, the actual path taken. The procedures applied by the PCC, that is, the actual path taken. The procedures
of [RFC8664] with respect to the RRO apply equally to this of [RFC8664] with respect to the RRO apply equally to this
specification without change. specification without change.
An RRO contains one or more subobjects called "SRv6-RRO subobjects" An RRO contains one or more subobjects called "SRv6-RRO subobjects"
whose format is shown below: whose format is shown 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=TBD4 | Length | NT | Flags |V|T|F|S| | Type=40 | Length | NT | Flags |V|T|F|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Endpoint Behavior | | Reserved | Endpoint Behavior |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| SRv6 SID | | SRv6 SID |
| (128-bit) | | (128-bit) |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// NAI (variable) // // NAI (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 15, line 6 skipping to change at page 14, line 28
5.1. Exchanging the SRv6 Capability 5.1. Exchanging the SRv6 Capability
A PCC indicates that it is capable of supporting the head-end A PCC indicates that it is capable of supporting the head-end
functions for SRv6 by including the SRv6-PCE-CAPABILITY sub-TLV in functions for SRv6 by including the SRv6-PCE-CAPABILITY sub-TLV in
the Open message that it sends to a PCE. A PCE indicates that it is the Open message that it sends to a PCE. A PCE indicates that it is
capable of computing SRv6 paths by including the SRv6-PCE-CAPABILITY capable of computing SRv6 paths by including the SRv6-PCE-CAPABILITY
sub-TLV in the Open message that it sends to a PCC. sub-TLV in the Open message that it sends to a PCC.
If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV with a If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV with a
PST list containing PST=TBD2, but the SRv6-PCE-CAPABILITY sub-TLV is PST list containing PST=3 (early allocated by IANA), but the SRv6-
absent, then the PCEP speaker MUST send a PCErr message with Error- PCE-CAPABILITY sub-TLV is absent, then the PCEP speaker MUST send a
Type 10 (Reception of an invalid object) and Error-Value TBD5 (to be PCErr message with Error- Type 10 (Reception of an invalid object)
assigned by IANA) (Missing PCE-SRv6-CAPABILITY sub-TLV) and MUST then and Error-Value 34 (early allocated by IANA) (Missing PCE-
close the PCEP session. If a PCEP speaker receives a PATH-SETUP- SRv6-CAPABILITY sub-TLV) and MUST then close the PCEP session. If a
TYPE-CAPABILITY TLV with a SRv6-PCE-CAPABILITY sub-TLV, but the PST PCEP speaker receives a PATH-SETUP- TYPE-CAPABILITY TLV with a SRv6-
list does not contain PST=TBD2, then the PCEP speaker MUST ignore the PCE-CAPABILITY sub-TLV, but the PST list does not contain PST=3
(early allocated by IANA), then the PCEP speaker MUST ignore the
SRv6-PCE-CAPABILITY sub-TLV. SRv6-PCE-CAPABILITY sub-TLV.
The number of SRv6 SIDs that can be imposed on a packet depends on The number of SRv6 SIDs that can be imposed on a packet depends on
the PCC's IPv6 data plane's capability. If a PCC sets the X flag to the PCC's IPv6 data plane's capability. If a PCC sets the X flag to
1 then the MSD is not used and MUST NOT be included. If a PCE 1 then the MSD is not used and MUST NOT be included. If a PCE
receives an SRv6-PCE-CAPABILITY sub-TLV with the X flag set to 1 then receives an SRv6-PCE-CAPABILITY sub-TLV with the X flag set to 1 then
it MUST ignore any MSD-Type, MSD-Value fields and MUST assume that it MUST ignore any MSD-Type, MSD-Value fields and MUST assume that
the sender can impose any length of SRH. If a PCC sets the X flag to the sender can impose any length of SRH. If a PCC sets the X flag to
zero, then it sets the SRv6 MSD-Type, MSD-Value fields that it can zero, then it sets the SRv6 MSD-Type, MSD-Value fields that it can
impose on a packet. If a PCE receives an SRv6-PCE-CAPABILITY sub-TLV impose on a packet. If a PCE receives an SRv6-PCE-CAPABILITY sub-TLV
skipping to change at page 17, line 14 skipping to change at page 16, line 48
If a PCC finds that the NT field, Length field, S bit, F bit, and T If a PCC finds that the NT field, Length field, S bit, F bit, and T
bit are not consistent, it MUST consider the entire ERO invalid and bit are not consistent, it MUST consider the entire ERO invalid and
MUST send a PCErr message with Error-Type = 10 ("Reception of an MUST send a PCErr message with Error-Type = 10 ("Reception of an
invalid object") and Error-Value = 11 ("Malformed object"). invalid object") and Error-Value = 11 ("Malformed object").
If a PCEP speaker that does not recognize the NT value received in If a PCEP speaker that does not recognize the NT value received in
SRv6-ERO subobject, it would behave as per [RFC8664]. SRv6-ERO subobject, it would behave as per [RFC8664].
In case a PCEP speaker receives the SRv6-ERO subobject, when the PST In case a PCEP speaker receives the SRv6-ERO subobject, when the PST
is not set to TBD2 or SRv6-PCE-CAPABILITY sub-TLV was not exchanged, is not set to 3 (early allocated by IANA) or SRv6-PCE-CAPABILITY sub-
it MUST send a PCErr message with Error-Type = 19 ("Invalid TLV was not exchanged, it MUST send a PCErr message with Error-Type =
Operation") and Error-Value = TBD9 ("Attempted SRv6 when the 19 ("Invalid Operation") and Error-Value = 19 (early allocated by
capability was not advertised"). IANA) ("Attempted SRv6 when the capability was not advertised").
If a PCC receives a list of SRv6 segments, and the number of SRv6 If a PCC receives a list of SRv6 segments, and the number of SRv6
segments exceeds the SRv6 MSD that the PCC can impose on the packet segments exceeds the SRv6 MSD that the PCC can impose on the packet
(SRH), it MUST send a PCErr message with Error-Type = 10 ("Reception (SRH), it MUST send a PCErr message with Error-Type = 10 ("Reception
of an invalid object") and Error-Value = TBD ("Unsupported number of of an invalid object") and Error-Value = 3 ("Unsupported number of
Segment ERO subobjects") as per [RFC8664]. SR-ERO subobjects") as per [RFC8664].
When a PCEP speaker detects that all subobjects of ERO are not of When a PCEP speaker detects that all subobjects of ERO are not of
type TBD3, and if it does not handle such ERO, it MUST send a PCErr type 40 (early allocated by IANA), and if it does not handle such
message with Error-Type = 10 ("Reception of an invalid object") and ERO, it MUST send a PCErr message with Error-Type = 10 ("Reception of
Error-Value = TBD ("Non-identical ERO subobjects")as per [RFC8664]. an invalid object") and Error-Value = 20 ("Inconsistent SIDs in SR-
ERO / SR-RRO subobjects") as per [RFC8664].
5.2.2. Interpreting the SRv6-ERO 5.2.2. Interpreting the SRv6-ERO
The SRv6-ERO contains a sequence of subobjects. According to The SRv6-ERO contains a sequence of subobjects. According to
[I-D.ietf-spring-segment-routing-policy], each SRv6-ERO subobject in [I-D.ietf-spring-segment-routing-policy], each SRv6-ERO subobject in
the sequence identifies a segment that the traffic will be directed the sequence identifies a segment that the traffic will be directed
to, in the order given. That is, the first subobject identifies the to, in the order given. That is, the first subobject identifies the
first segment the traffic will be directed to, the second SRv6-ERO first segment the traffic will be directed to, the second SRv6-ERO
subobject represents the second segment, and so on. subobject represents the second segment, and so on.
skipping to change at page 18, line 8 skipping to change at page 17, line 39
modified packet to the next hop. modified packet to the next hop.
5.3. RRO Processing 5.3. RRO Processing
The syntax checking rules that apply to the SRv6-RRO subobject are The syntax checking rules that apply to the SRv6-RRO subobject are
identical to those of the SRv6-ERO subobject, except as noted below. identical to those of the SRv6-ERO subobject, except as noted below.
If a PCEP speaker receives an SRv6-RRO subobject in which both SRv6 If a PCEP speaker receives an SRv6-RRO subobject in which both SRv6
SID and NAI are absent, it MUST consider the entire RRO invalid and SID and NAI are absent, it MUST consider the entire RRO invalid and
send a PCErr message with Error-Type = 10 ("Reception of an invalid send a PCErr message with Error-Type = 10 ("Reception of an invalid
object") and Error-Value = TBD6 ("Both SID and NAI are absent in object") and Error-Value = 35 (early allocated by IANA) ("Both SID
SRv6-RRO subobject"). and NAI are absent in SRv6-RRO subobject").
If a PCE detects that the subobjects of an RRO are a mixture of If a PCE detects that the subobjects of an RRO are a mixture of
SRv6-RRO subobjects and subobjects of other types, then it MUST send SRv6-RRO subobjects and subobjects of other types, then it MUST send
a PCErr message with Error-Type = 10 ("Reception of an invalid a PCErr message with Error-Type = 10 ("Reception of an invalid
object") and Error-Value = TBD7 ("RRO mixes SRv6-RRO subobjects with object") and Error-Value = 36 (early allocated by IANA) ("RRO mixes
other subobject types"). SRv6-RRO subobjects with other subobject types").
6. Security Considerations 6. Security Considerations
The security considerations described in [RFC5440], [RFC8231] and The security considerations described in [RFC5440], [RFC8231] and
[RFC8281], [RFC8664], are applicable to this specification. No [RFC8281], [RFC8664], are applicable to this specification. No
additional security measure is required. additional security measure is required.
7. Manageability Considerations 7. Manageability Considerations
All manageability requirements and considerations listed in All manageability requirements and considerations listed in
skipping to change at page 20, line 4 skipping to change at page 19, line 36
* Organization: Cisco Systems, Inc. * Organization: Cisco Systems, Inc.
* Implementation: IOS-XR PCE and PCC. * Implementation: IOS-XR PCE and PCC.
* Description: Implementation with experimental codepoints. * Description: Implementation with experimental codepoints.
* Maturity Level: Production * Maturity Level: Production
* Coverage: Partial * Coverage: Partial
* Contact: ssidor@cisco.com * Contact: ssidor@cisco.com
9. IANA Considerations 9. IANA Considerations
9.1. PCEP ERO and RRO subobjects 9.1. PCEP ERO and RRO subobjects
This document defines a new subobject type for the PCEP explicit This document defines a new subobject type for the PCEP explicit
route object (ERO), and a new subobject type for the PCEP record route object (ERO), and a new subobject type for the PCEP record
route object (RRO). The code points for subobject types of these route object (RRO). The code points for subobject types of these
objects is maintained in the RSVP parameters registry, under the objects is maintained in the RSVP parameters registry, under the
EXPLICIT_ROUTE and ROUTE_RECORD objects. IANA is requested to EXPLICIT_ROUTE and ROUTE_RECORD objects. IANA is requested to
allocate code-points in the RSVP Parameters registry for each of the confirm the following early allocations in the RSVP Parameters
new subobject types defined in this document. registry for each of the new subobject types defined in this
document.
Object Subobject Subobject Type Object Subobject Subobject Type
--------------------- -------------------------- ------------------ --------------------- -------------------------- ------------------
EXPLICIT_ROUTE SRv6-ERO (PCEP-specific) TBD3 EXPLICIT_ROUTE SRv6-ERO (PCEP-specific) 40
ROUTE_RECORD SRv6-RRO (PCEP-specific) TBD4 ROUTE_RECORD SRv6-RRO (PCEP-specific) 40
9.2. New SRv6-ERO Flag Registry 9.2. New SRv6-ERO Flag Registry
IANA is requested to create a new sub-registry, named "SRv6-ERO Flag IANA is requested to create a new sub-registry, named "SRv6-ERO Flag
Field", within the "Path Computation Element Protocol (PCEP) Numbers" Field", within the "Path Computation Element Protocol (PCEP) Numbers"
registry to manage the Flag field of the SRv6-ERO subobject. New registry to manage the Flag field of the SRv6-ERO subobject. New
values are to be assigned by Standards Action [RFC8126]. Each bit values are to be assigned by Standards Action [RFC8126]. Each bit
should be tracked with the following qualities: should be tracked with the following qualities:
* Bit number (counting from bit 0 as the most significant bit) * Bit number (counting from bit 0 as the most significant bit)
skipping to change at page 21, line 11 skipping to change at page 20, line 41
present (T) present (T)
10 NAI is absent (F) This document 10 NAI is absent (F) This document
11 SID is absent (S) This document 11 SID is absent (S) This document
9.3. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators 9.3. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators
IANA maintains a sub-registry, named "PATH-SETUP-TYPE-CAPABILITY Sub- IANA maintains a sub-registry, named "PATH-SETUP-TYPE-CAPABILITY Sub-
TLV Type Indicators", within the "Path Computation Element Protocol TLV Type Indicators", within the "Path Computation Element Protocol
(PCEP) Numbers" registry to manage the type indicator space for sub- (PCEP) Numbers" registry to manage the type indicator space for sub-
TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV. IANA is requested to TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV. IANA is requested to
make the following assignment: confirm the following early allocations in the sub-registry:
Value Meaning Reference Value Meaning Reference
----- ------- --------- ----- ------- ---------
TBD1 SRv6-PCE-CAPABILITY This Document 27 SRv6-PCE-CAPABILITY This Document
9.4. SRv6 PCE Capability Flags 9.4. SRv6 PCE Capability Flags
IANA is requested to create a new sub-registry, named "SRv6 IANA is requested to create a new sub-registry, named "SRv6
Capability Flag Field", within the "Path Computation Element Protocol Capability Flag Field", within the "Path Computation Element Protocol
(PCEP) Numbers" registry to manage the Flag field of the SRv6-PCE- (PCEP) Numbers" registry to manage the Flag field of the SRv6-PCE-
CAPABILITY sub-TLV. New values are to be assigned by Standards CAPABILITY sub-TLV. New values are to be assigned by Standards
Action [RFC8126]. Each bit should be tracked with the following Action [RFC8126]. Each bit should be tracked with the following
qualities: qualities:
skipping to change at page 21, line 47 skipping to change at page 21, line 35
14 Node or Adjacency This document 14 Node or Adjacency This document
Identifier (NAI) is Identifier (NAI) is
supported (N) supported (N)
15 Unlimited Maximum SID This document 15 Unlimited Maximum SID This document
Depth (X) Depth (X)
9.5. New Path Setup Type 9.5. New Path Setup Type
[RFC8408] created a sub-registry within the "Path Computation Element [RFC8408] created a sub-registry within the "Path Computation Element
Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types".
IANA is requested to allocate a new code point within this registry, IANA is requested to confirm the following early allocations in the
as follows: sub-registry:
Value Description Reference Value Description Reference
----- ----------- --------- ----- ----------- ---------
TBD2 Traffic engineering path is This Document 3 Traffic engineering path is This Document
setup using SRv6. setup using SRv6.
9.6. ERROR Objects 9.6. ERROR Objects
IANA is requested to allocate code-points in the PCEP-ERROR Object IANA is requested to confirm the following early allocations in the
Error Types and Values registry for the following new error-values: PCEP-ERROR Object Error Types and Values registry for the following
new error-values:
Error-Type Meaning Error-Type Meaning
---------- ------- ---------- -------
10 Reception of an invalid object 10 Reception of an invalid object
Error-value = TBD5 (Missing Error-value = 34 (Missing
PCE-SRv6-CAPABILITY sub-TLV) PCE-SRv6-CAPABILITY sub-TLV)
Error-value = TBD6 (Both SID and NAI are absent Error-value = 35 (Both SID and NAI are absent
in SRv6-RRO subobject) in SRv6-RRO subobject)
Error-value = TBD7 (RRO mixes SRv6-RRO subobjects Error-value = 36 (RRO mixes SRv6-RRO subobjects
with other subobject types) with other subobject types)
Error-value = TBD8 (Invalid SRv6 SID Structure) Error-value = 37 (Invalid SRv6 SID Structure)
19 Invalid Operation 19 Invalid Operation
Error-value = TBD9 (Attempted SRv6 when the Error-value = 19 (Attempted SRv6 when the
capability was not advertised) capability was not advertised)
10. Acknowledgements 10. Acknowledgements
The authors would like to thank Jeff Tantsura, Adrian Farrel, Aijun The authors would like to thank Jeff Tantsura, Adrian Farrel, Aijun
Wang and Khasanov Boris for valuable suggestions. Wang, Khasanov Boris, and Robert Varga for valuable suggestions.
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 25, line 20 skipping to change at page 25, line 14
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
<https://www.rfc-editor.org/info/rfc8754>. <https://www.rfc-editor.org/info/rfc8754>.
[I-D.ietf-spring-segment-routing-policy] [I-D.ietf-spring-segment-routing-policy]
Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and Filsfils, C., Talaulikar, K., Voyer, D., Bogdanov, A., and
P. Mattes, "Segment Routing Policy Architecture", Work in P. Mattes, "Segment Routing Policy Architecture", Work in
Progress, Internet-Draft, draft-ietf-spring-segment- Progress, Internet-Draft, draft-ietf-spring-segment-
routing-policy-18, 17 February 2022, routing-policy-22, 22 March 2022,
<https://www.ietf.org/archive/id/draft-ietf-spring- <https://www.ietf.org/archive/id/draft-ietf-spring-
segment-routing-policy-18.txt>. segment-routing-policy-22.txt>.
[I-D.ietf-lsr-ospfv3-srv6-extensions] [I-D.ietf-lsr-ospfv3-srv6-extensions]
Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak,
"OSPFv3 Extensions for SRv6", Work in Progress, Internet- "OSPFv3 Extensions for SRv6", Work in Progress, Internet-
Draft, draft-ietf-lsr-ospfv3-srv6-extensions-03, 19 Draft, draft-ietf-lsr-ospfv3-srv6-extensions-03, 19
November 2021, <https://www.ietf.org/archive/id/draft- November 2021, <https://www.ietf.org/archive/id/draft-
ietf-lsr-ospfv3-srv6-extensions-03.txt>. ietf-lsr-ospfv3-srv6-extensions-03.txt>.
[I-D.ietf-idr-bgpls-srv6-ext] [I-D.ietf-idr-bgpls-srv6-ext]
Dawra, G., Filsfils, C., Talaulikar, K., Chen, M., Dawra, G., Filsfils, C., Talaulikar, K., Chen, M.,
 End of changes. 41 change blocks. 
72 lines changed or deleted 78 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/