| rfc9603.original | rfc9603.txt | |||
|---|---|---|---|---|
| PCE Working Group C. Li | Internet Engineering Task Force (IETF) 李呈 (C. Li), Ed. | |||
| Internet-Draft Huawei Technologies | Request for Comments: 9603 华为技术有限公司 (Huawei Technologies) | |||
| Intended status: Standards Track P. Kaladharan | Category: Standards Track P. Kaladharan | |||
| Expires: 6 October 2024 RtBrick Inc | ISSN: 2070-1721 RtBrick Inc | |||
| S. Sivabalan | S. Sivabalan | |||
| Ciena Corporation | ||||
| M. Koldychev | M. Koldychev | |||
| Cisco Systems, Inc. | Ciena Corporation | |||
| Y. Zhu | Y. Zhu | |||
| China Telecom | China Telecom | |||
| 4 April 2024 | July 2024 | |||
| Path Computation Element Communication Protocol (PCEP) Extensions for | Path Computation Element Communication Protocol (PCEP) Extensions for | |||
| IPv6 Segment Routing | IPv6 Segment Routing | |||
| draft-ietf-pce-segment-routing-ipv6-25 | ||||
| Abstract | Abstract | |||
| Segment Routing (SR) can be used to steer packets through a network | Segment Routing (SR) can be used to steer packets through a network | |||
| using the IPv6 or MPLS data plane, employing the source routing | using the IPv6 or MPLS data plane, employing the source routing | |||
| paradigm. | paradigm. | |||
| A Segment Routed Path can be derived from a variety of mechanisms, | An SR Path can be derived from a variety of mechanisms, including an | |||
| including an IGP Shortest Path Tree (SPT), explicit configuration, or | IGP Shortest Path Tree (SPT), explicit configuration, or a Path | |||
| a Path Computation Element(PCE). | Computation Element (PCE). | |||
| Since SR can be applied to both MPLS and IPv6 data-planes, a PCE | Since SR can be applied to both MPLS and IPv6 data planes, a PCE | |||
| should be able to compute an SR Path for both MPLS and IPv6 data- | should be able to compute an SR Path for both MPLS and IPv6 data | |||
| planes. The Path Computation Element communication Protocol (PCEP) | planes. The Path Computation Element Communication Protocol (PCEP) | |||
| extension and mechanisms to support SR-MPLS have been defined. This | extension and mechanisms to support SR-MPLS have been defined. This | |||
| document outlines the necessary extensions to support SR for the IPv6 | document outlines the necessary extensions to support SR for the IPv6 | |||
| data-plane within PCEP. | data plane within PCEP. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | This document is a product of the Internet Engineering Task Force | |||
| Task Force (IETF). Note that other groups may also distribute | (IETF). It represents the consensus of the IETF community. It has | |||
| working documents as Internet-Drafts. The list of current Internet- | received public review and has been approved for publication by the | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | Information about the current status of this document, any errata, | |||
| and may be updated, replaced, or obsoleted by other documents at any | and how to provide feedback on it may be obtained at | |||
| time. It is inappropriate to use Internet-Drafts as reference | https://www.rfc-editor.org/info/rfc9603. | |||
| material or to cite them other than as "work in progress." | ||||
| This Internet-Draft will expire on 6 October 2024. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2024 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 | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.1. Requirements Language | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology | |||
| 3. Overview of PCEP Operation in SRv6 Networks . . . . . . . . . 5 | 3. Overview of PCEP Operation in SRv6 Networks | |||
| 3.1. Operation Overview . . . . . . . . . . . . . . . . . . . 6 | 3.1. Operation Overview | |||
| 3.2. SRv6-Specific PCEP Message Extensions . . . . . . . . . . 6 | 3.2. SRv6-Specific PCEP Message Extensions | |||
| 4. Object Formats . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Object Formats | |||
| 4.1. The OPEN Object . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. The OPEN Object | |||
| 4.1.1. The SRv6 PCE Capability sub-TLV . . . . . . . . . . . 6 | 4.1.1. The SRv6 PCE Capability sub-TLV | |||
| 4.2. The RP/SRP Object . . . . . . . . . . . . . . . . . . . . 8 | 4.2. The RP/SRP Object | |||
| 4.3. ERO . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. ERO | |||
| 4.3.1. SRv6-ERO Subobject . . . . . . . . . . . . . . . . . 8 | 4.3.1. SRv6-ERO Subobject | |||
| 4.3.1.1. SID Structure . . . . . . . . . . . . . . . . . . 11 | 4.3.1.1. SID Structure | |||
| 4.3.1.2. Order of the Optional fields . . . . . . . . . . 12 | 4.3.1.2. Order of the Optional Fields | |||
| 4.4. RRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 4.4. RRO | |||
| 4.4.1. SRv6-RRO Subobject . . . . . . . . . . . . . . . . . 13 | 4.4.1. SRv6-RRO Subobject | |||
| 5. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 5. Procedures | |||
| 5.1. Exchanging the SRv6 Capability . . . . . . . . . . . . . 14 | 5.1. Exchanging the SRv6 Capability | |||
| 5.2. ERO Processing . . . . . . . . . . . . . . . . . . . . . 15 | 5.2. ERO Processing | |||
| 5.2.1. SRv6 ERO Validation . . . . . . . . . . . . . . . . . 15 | 5.2.1. SRv6 ERO Validation | |||
| 5.2.2. Interpreting the SRv6-ERO . . . . . . . . . . . . . . 16 | 5.2.2. Interpreting the SRv6-ERO | |||
| 5.3. RRO Processing . . . . . . . . . . . . . . . . . . . . . 16 | 5.3. RRO Processing | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 6. Security Considerations | |||
| 7. Manageability Considerations . . . . . . . . . . . . . . . . 17 | 7. Manageability Considerations | |||
| 7.1. Control of Function and Policy . . . . . . . . . . . . . 17 | 7.1. Control of Function and Policy | |||
| 7.2. Information and Data Models . . . . . . . . . . . . . . . 18 | 7.2. Information and Data Models | |||
| 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 18 | 7.3. Liveness Detection and Monitoring | |||
| 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 18 | 7.4. Verify Correct Operations | |||
| 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 18 | 7.5. Requirements on Other Protocols | |||
| 7.6. Impact On Network Operations . . . . . . . . . . . . . . 18 | 7.6. Impact on Network Operations | |||
| 8. IANA Considerations | ||||
| 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 18 | 8.1. PCEP ERO and RRO Subobjects | |||
| 8.1. Cisco's Commercial Delivery . . . . . . . . . . . . . . . 19 | 8.2. New SRv6-ERO NAI Type Registry | |||
| 8.2. Huawei's Commercial Delivery . . . . . . . . . . . . . . 19 | 8.3. New SRv6-ERO Flag Registry | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 8.4. LSP-ERROR-CODE TLV | |||
| 9.1. PCEP ERO and RRO subobjects . . . . . . . . . . . . . . . 19 | 8.5. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | |||
| 9.2. New SRv6-ERO NAI Type Registry . . . . . . . . . . . . . 20 | 8.6. SRv6 PCE Capability Flags | |||
| 9.3. New SRv6-ERO Flag Registry . . . . . . . . . . . . . . . 20 | 8.7. New Path Setup Type | |||
| 9.4. LSP-ERROR-CODE TLV . . . . . . . . . . . . . . . . . . . 21 | 8.8. ERROR Objects | |||
| 9.5. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators . . . 21 | 9. References | |||
| 9.6. SRv6 PCE Capability Flags . . . . . . . . . . . . . . . . 21 | 9.1. Normative References | |||
| 9.7. New Path Setup Type . . . . . . . . . . . . . . . . . . . 22 | 9.2. Informative References | |||
| 9.8. ERROR Objects . . . . . . . . . . . . . . . . . . . . . . 22 | Acknowledgements | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | Contributors | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 23 | Authors' Addresses | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 24 | ||||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | ||||
| 1. Introduction | 1. Introduction | |||
| As defined in [RFC8402], Segment Routing (SR) architecture allows the | As defined in [RFC8402], Segment Routing (SR) architecture allows the | |||
| source node to steer a packet through a path indicated by an ordered | source node to steer a packet through a path indicated by an ordered | |||
| list of instructions, called segments. A segment can represent any | list of instructions, called "segments". A segment can represent any | |||
| instruction, topological or service-based, and it can have a semantic | instruction, topological or service based, and it can have a semantic | |||
| local to an SR node or global within an SR domain. | local to an SR node or global within an SR domain. | |||
| [RFC5440] describes Path Computation Element communication Protocol | [RFC5440] describes Path Computation Element Communication Protocol | |||
| (PCEP) for communication between a Path Computation Client (PCC) and | (PCEP) for communication between a Path Computation Client (PCC) and | |||
| a PCE or between a pair of PCEs. A PCE or a PCC operating as a PCE | a PCE or between a pair of PCEs. A PCE or a PCC operating as a PCE | |||
| (in a hierarchical PCE environment) computes paths for MPLS Traffic | (in a hierarchical PCE environment) computes paths for MPLS Traffic | |||
| Engineering LSPs (MPLS-TE LSPs) based on various constraints and | Engineering Label Switched Paths (MPLS-TE LSPs) based on various | |||
| optimization criteria. | constraints and optimization criteria. | |||
| [RFC8231] specifies extensions to PCEP that allow a stateful PCE to | [RFC8231] specifies extensions to PCEP that allow a stateful PCE to | |||
| compute and recommend network paths in compliance with [RFC4657] and | compute and recommend network paths in compliance with [RFC4657] and | |||
| defines objects and TLVs for MPLS-TE LSPs. Stateful PCEP extensions | defines objects and TLVs for MPLS-TE LSPs. Stateful PCEP extensions | |||
| provide synchronization of LSP state between a PCC and a PCE or | provide synchronization of LSP state between a PCC and a PCE or | |||
| between a pair of PCEs, delegation of LSP control, reporting of LSP | between a pair of PCEs, delegation of LSP control, reporting of LSP | |||
| state from a PCC to a PCE, controlling the setup and path routing of | state from a PCC to a PCE, and controlling the setup and path routing | |||
| an LSP from a PCE to a PCC. Stateful PCEP extensions are intended | of an LSP from a PCE to a PCC. Stateful PCEP extensions are intended | |||
| for an operational model in which LSPs are configured on the PCC, and | for an operational model in which LSPs are configured on the PCC, and | |||
| control over them is delegated to the PCE. | control over them is delegated to the PCE. | |||
| A mechanism to dynamically initiate LSPs on a PCC based on the | A mechanism to dynamically initiate LSPs on a PCC based on the | |||
| requests from a stateful PCE or a controller using stateful PCE is | requests from a stateful PCE or a controller using stateful PCE is | |||
| specified in [RFC8281]. As per [RFC8664], it is possible to use a | specified in [RFC8281]. As per [RFC8664], it is possible to use a | |||
| stateful PCE for computing one or more SR-TE paths taking into | stateful PCE for computing one or more SR-TE paths taking into | |||
| account various constraints and objective functions. Once a path is | account various constraints and objective functions. Once a path is | |||
| computed, the stateful PCE can initiate an SR-TE path on a PCC using | computed, the stateful PCE can initiate an SR-TE path on a PCC using | |||
| PCEP extensions specified in [RFC8281] and the SR-specific PCEP | PCEP extensions specified in [RFC8281] and the SR-specific PCEP | |||
| extensions specified in [RFC8664]. | extensions specified in [RFC8664]. | |||
| [RFC8664] specifies PCEP extensions for supporting a SR-TE LSP for | [RFC8664] specifies PCEP extensions for supporting an SR-TE LSP for | |||
| the MPLS data-plane. This document extends [RFC8664] to support SR | the MPLS data plane. This document extends [RFC8664] to support SR | |||
| for the IPv6 data-plane. Additionally, using procedures described in | for the IPv6 data plane. Additionally, using procedures described in | |||
| this document, a PCC can request an SRv6 path from either a stateful | this document, a PCC can request an SRv6 path from either a stateful | |||
| or stateless PCE. This specification relies on the PATH-SETUP-TYPE | or stateless PCE. This specification relies on the PATH-SETUP-TYPE | |||
| TLV and procedures specified in [RFC8408]. | TLV and procedures specified in [RFC8408]. | |||
| This specification provides a mechanism for a network controller | This specification provides a mechanism for a network controller | |||
| (acting as a PCE) to instantiate candidate paths for an SR Policy | (acting as a PCE) to instantiate candidate paths for an SR Policy | |||
| onto a head-end node (acting as a PCC) using PCEP. For more | onto a head-end node (acting as a PCC) using PCEP. For more | |||
| information on the SR Policy Architecture, see [RFC9256] which | information on the SR Policy architecture, see [RFC9256], which | |||
| applies to both SR-MPLS and SRv6. | applies to both SR-MPLS and SRv6. | |||
| 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", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2. Terminology | 2. Terminology | |||
| This document uses the following terms defined in [RFC5440]: PCC, | This document uses the following terms defined in [RFC5440]: PCC, | |||
| PCE, PCEP, PCEP Peer. | PCE, PCEP, PCEP Peer. | |||
| This document uses the following terms defined in [RFC8051]: Stateful | This document uses the following terms defined in [RFC8051]: Stateful | |||
| PCE, Delegation. | PCE, Delegation. | |||
| Further, the following terms are used in the document, | Further, the following terms are used in the document: | |||
| MSD: Maximum SID Depth. | MSD: Maximum SID Depth | |||
| PST: Path Setup Type. | PST: Path Setup Type | |||
| SR: Segment Routing. | SR: Segment Routing | |||
| SID: Segment Identifier. | SID: Segment Identifier | |||
| SRv6: Segment Routing over IPv6 data-plane. | SRv6: Segment Routing over IPv6 data plane | |||
| SRH: IPv6 Segment Routing Header [RFC8754]. | SRH: IPv6 Segment Routing Header [RFC8754] | |||
| SRv6 Path: IPv6 Segment List (List of IPv6 SIDs representing a path | SRv6 path: IPv6 Segment List (A list of IPv6 SIDs representing a | |||
| in IPv6 SR domain in the context of this document) | path in IPv6 SR domain in the context of this document.) | |||
| Further, note that the term LSP used in the PCEP specifications, | Further, note that the term "LSP" used in the PCEP specifications | |||
| would be equivalent to an SRv6 Path (represented as a list of SRv6 | would be equivalent to an SRv6 path (represented as a list of SRv6 | |||
| segments) in the context of supporting SRv6 in PCEP. | segments) in the context of supporting SRv6 in PCEP. | |||
| 3. Overview of PCEP Operation in SRv6 Networks | 3. Overview of PCEP Operation in SRv6 Networks | |||
| Basic operations for PCEP speakers are built on [RFC8664]. | Basic operations for PCEP speakers are built on [RFC8664]. | |||
| In PCEP messages, route information is carried in the Explicit Route | In PCEP messages, route information is carried in the Explicit Route | |||
| Object (ERO), which consists of a sequence of subobjects. [RFC8664] | Object (ERO), which consists of a sequence of subobjects. [RFC8664] | |||
| defined a new Explicit Route Object (ERO) subobject denoted by "SR- | defined a new ERO subobject denoted by "SR-ERO subobject" that is | |||
| ERO subobject" capable of carrying a SID as well as the identity of | capable of carrying a SID as well as the identity of the node/ | |||
| the node/adjacency represented by the SID for SR-MPLS. SR-capable | adjacency represented by the SID for SR-MPLS. SR-capable PCEP | |||
| PCEP speakers can generate and/or process such an ERO subobject. An | speakers can generate and/or process such an ERO subobject. An ERO | |||
| ERO containing SR-ERO subobjects can be included in the PCEP Path | containing SR-ERO subobjects can be included in the PCEP Path | |||
| Computation Reply (PCRep) message defined in [RFC5440], the PCEP LSP | Computation Reply (PCRep) message defined in [RFC5440], the PCEP LSP | |||
| Initiate Request message (PCInitiate) defined in [RFC8281], as well | Initiate Request message (PCInitiate) defined in [RFC8281], as well | |||
| as in the PCEP LSP Update Request (PCUpd) and PCEP LSP State Report | as in the PCEP LSP Update Request (PCUpd) and PCEP LSP State Report | |||
| (PCRpt) messages defined in [RFC8231]. [RFC8664] also defines a new | (PCRpt) messages defined in [RFC8231]. [RFC8664] also defines a new | |||
| Reported Route Object(RRO) called SR-RRO to represent the SID list | Reported Route Object (RRO), called "SR-RRO", to represent the SID | |||
| that was applied by the PCC, that is, the actual path taken by the | list that was applied by the PCC, which is the actual path taken by | |||
| LSP in SR-MPLS network. | the LSP in SR-MPLS network. | |||
| The SRv6 Paths computed by a PCE can be represented as an ordered | The SRv6 paths computed by a PCE can be represented as an ordered | |||
| list of SRv6 segments. This document defines new subobjects | list of SRv6 segments. This document defines new subobjects | |||
| "SRv6-ERO" and "SRv6-RRO" in the ERO and the RRO respectively to | "SRv6-ERO" and "SRv6-RRO" in the ERO and the RRO, respectively, to | |||
| carry the SRv6 SID. SRv6-capable PCEP speakers MUST be able to | carry the SRv6 SID. SRv6-capable PCEP speakers MUST be able to | |||
| generate and/or process these subobjects. | generate and/or process these subobjects. | |||
| When a PCEP session between a PCC and a PCE is established, both PCEP | When a PCEP session between a PCC and a PCE is established, both PCEP | |||
| speakers exchange their capabilities to indicate their ability to | speakers exchange their capabilities to indicate their ability to | |||
| support SRv6 specific functionality as described in Section 4.1.1. | support SRv6-specific functionality as described in Section 4.1.1. | |||
| In summary, this document, | In summary, this document defines: | |||
| * Defines a new PCEP capability for SRv6. | * a new PCEP capability for SRv6, | |||
| * Defines a new subobject SRv6-ERO in ERO. | * a new subobject SRv6-ERO in ERO, | |||
| * Defines a new subobject SRv6-RRO in RRO. | * a new subobject SRv6-RRO in RRO, and | |||
| * Defines a new path setup type (PST) [RFC8408] carried in the PATH- | * a new Path Setup type (PST) [RFC8408], carried in the PATH-SETUP- | |||
| SETUP-TYPE TLV and the PATH-SETUP-TYPE-CAPABILITY TLV. | TYPE and PATH-SETUP-TYPE-CAPABILITY TLVs. | |||
| 3.1. Operation Overview | 3.1. Operation Overview | |||
| In SR networks, an SR source node [RFC8754] steers a packet into an | In SR networks, an SR source node [RFC8754] steers a packet into an | |||
| SR Policy resulting in a segment list. | SR Policy resulting in a segment list. | |||
| When SR leverages the IPv6 data-plane (i.e. SRv6), the PCEP | When SR leverages the IPv6 data plane (i.e., SRv6), the PCEP | |||
| procedures and mechanisms are extended in this document. | procedures and mechanisms are extended in this document. | |||
| This document describes the extension to support SRv6 in PCEP. A PCC | This document describes the extension to support SRv6 in PCEP. A PCC | |||
| or PCE indicates its ability to support SRv6 during the PCEP session | or PCE indicates its ability to support SRv6 during the PCEP session | |||
| Initialization Phase via a new SRv6-PCE-CAPABILITY sub-TLV (see | initialization phase via a new SRv6-PCE-CAPABILITY sub-TLV (see | |||
| details in Section 4.1.1). | details in Section 4.1.1). | |||
| 3.2. SRv6-Specific PCEP Message Extensions | 3.2. SRv6-Specific PCEP Message Extensions | |||
| As defined in [RFC5440], a PCEP message consists of a common header | As defined in [RFC5440], a PCEP message consists of a common header | |||
| followed by a variable length body made up of mandatory and/or | followed by a variable-length body made up of mandatory and/or | |||
| optional objects. This document does not require any changes in the | optional objects. This document does not require any changes in the | |||
| format of PCReq and PCRep messages specified in [RFC5440], PCInitiate | format of PCReq and PCRep messages specified in [RFC5440], the | |||
| message specified in [RFC8281], and PCRpt and PCUpd messages | PCInitiate message specified in [RFC8281], or PCRpt and PCUpd | |||
| specified in [RFC8231]. However, PCEP messages pertaining to SRv6 | messages specified in [RFC8231]. However, PCEP messages pertaining | |||
| MUST include PATH-SETUP-TYPE TLV in the RP (Request Parameters) or | to SRv6 MUST include PATH-SETUP-TYPE TLV in the Request Parameters | |||
| SRP (Stateful PCE Request Parameters) object to clearly identify that | (RP) or Stateful PCE Request Parameters (SRP) object to clearly | |||
| SRv6 is intended. | identify that SRv6 is intended. | |||
| 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 = 3 : Path is setup using SRv6. | PST=3: Path is set up using SRv6. | |||
| A PCEP speaker indicates its support of the function described in | A PCEP speaker indicates 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 "3" included in the PST list. | object with this new PST (value 3) 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=3 in the PST List of the | capability. If a PCEP speaker includes PST=3 in the PST list of the | |||
| PATH-SETUP-TYPE-CAPABILITY TLV then it MUST also include the SRv6- | PATH-SETUP-TYPE-CAPABILITY TLV, then it MUST also include the SRv6- | |||
| PCE-CAPABILITY sub-TLV inside the PATH-SETUP-TYPE-CAPABILITY TLV. | PCE-CAPABILITY sub-TLV inside the PATH-SETUP-TYPE-CAPABILITY TLV. | |||
| For further error handling, please see Section 5. | For further error handling, please see Section 5. | |||
| 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 Figure 1. | |||
| 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=27 | Length | | | Type=27 | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | Flags |N| | | | Reserved | Flags |N| | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 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 is 27 and the format is compliant | The code point for the TLV type is 27, and the format is compliant | |||
| with the PCEP TLV format defined in [RFC5440]. That is, the sub-TLV | with the PCEP TLV format defined in [RFC5440]. That is, the sub-TLV | |||
| is composed of 2 octets for the type, 2 octets specifying the length, | is composed of 2 octets for the type, 2 octets specifying the length, | |||
| and a Value field. The Type field when set to 27 identifies the | and a Value field. When set to 27, the Type field identifies the | |||
| SRv6-PCE-CAPABILITY sub-TLV and the presence of the sub-TLV indicates | SRv6-PCE-CAPABILITY sub-TLV, and the presence of the sub-TLV | |||
| the support for the SRv6 paths in PCEP. The Length field defines the | indicates the support for the SRv6 paths in PCEP. The Length field | |||
| length of the value portion in octets. The sub-TLV is padded to | defines the length of the value portion in octets. The sub-TLV is | |||
| 4-octet alignment, and padding is not included in the Length field. | padded to 4-octet alignment, and padding is not included in the | |||
| The (MSD-Type,MSD-Value) pairs are OPTIONAL. The number of (MSD- | Length field. The (MSD-Type,MSD-Value) pairs are OPTIONAL. The | |||
| Type,MSD-Value) pairs can be determined from the Length field of the | number of (MSD-Type,MSD-Value) pairs can be determined by the Length | |||
| TLV. | field of the TLV. | |||
| The value comprises of - | The value is comprised of: | |||
| Reserved: 2 octet, this field MUST be set to 0 on transmission, | * Reserved: 2 octets; this field MUST be set to 0 on transmission | |||
| and ignored on receipt. | and ignored on receipt. | |||
| Flags: 2 octet, one bit is currently assigned in this document. | * Flags: 2 octets; one bit is currently assigned in Section 8.6 | |||
| Section 9.6 | ||||
| - N bit (bit position 14): A PCC sets this flag bit to 1 to | - N bit (bit position 14): A PCC sets this flag bit to 1 to | |||
| indicate that it is capable of resolving a Node or Adjacency | indicate that it is capable of resolving a Node or Adjacency | |||
| Identifier (NAI) to an SRv6-SID. | Identifier (NAI) to an SRv6-SID. | |||
| - Unassigned bits MUST be set to 0 on transmission and ignored on | - Unassigned bits MUST be set to 0 on transmission and ignored on | |||
| receipt | 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 | |||
| per the IGP MSD Type registry created by [RFC8491] and populated | the IGP MSD Type registry created by [RFC8491] and populated with | |||
| with SRv6 MSD types as per [RFC9352]; MSD-Value (1 octet) is as | SRv6 MSD types as per [RFC9352], and where MSD-Value (1 octet) is | |||
| per [RFC8491]. | as per [RFC8491]. | |||
| The SRv6 MSD information advertised via SRv6-PCE-Capability sub-TLV | The SRv6 MSD information advertised via SRv6-PCE-Capability sub-TLV | |||
| conveys the SRv6 capabilities of the PCEP speaker alone. However, | conveys the SRv6 capabilities of the PCEP speaker alone. However, | |||
| when it comes to the computation of an SR Policy for the SRv6 data- | when it comes to the computation of an SR Policy for the SRv6 data | |||
| plane, the SRv6 MSD capabilities of all the intermediate SRv6 | plane, the SRv6 MSD capabilities of the intermediate SRv6 Endpoint | |||
| Endpoint node as well as the tail-end node also need to be considered | node and the tail-end node also need to be considered to ensure those | |||
| to ensure those midpoints are able to correctly process their | midpoints are able to correctly process their segments and for the | |||
| segments and for the tail-end to dispose of the SRv6 encapsulation. | tail-end to dispose of the SRv6 encapsulation. The SRv6 MSD | |||
| The SRv6 MSD capabilities of other nodes might be learned as part of | capabilities of other nodes might be learned as part of the topology | |||
| the topology information via BGP-LS[RFC9514] or via PCEP if the PCE | information via the Border Gateway Protocol - Link State (BGP-LS) | |||
| also happens to have PCEP sessions to those nodes. | [RFC9514] or via PCEP if the PCE also happens to have PCEP sessions | |||
| with those nodes. | ||||
| It is recommended that the SRv6 MSD information be not included in | It is recommended that the SRv6 MSD information not be included in | |||
| the SRv6-PCE-Capability sub-TLV in deployments where the PCE is able | the SRv6-PCE-Capability sub-TLV in deployments where the PCE is able | |||
| to obtain this via IGP/BGP-LS as part of the topology information. | to obtain this via IGP/BGP-LS as part of the topology information. | |||
| 4.2. The RP/SRP Object | 4.2. The RP/SRP Object | |||
| This document defines a new Path Setup Type (PST=3) for SRv6. In | This document defines a new Path Setup Type (PST=3) for SRv6. In | |||
| order to indicate that the path is for SRv6, any RP or SRP object | order to indicate that the path is for SRv6, any RP or SRP object | |||
| MUST include the PATH-SETUP-TYPE TLV as specified in [RFC8408], where | MUST include the PATH-SETUP-TYPE TLV as specified in [RFC8408], where | |||
| PST is set to 3. | PST is set to 3. | |||
| 4.3. ERO | 4.3. ERO | |||
| In order to support SRv6, a new "SRv6-ERO" subobject is defined for | In order to support SRv6, a new "SRv6-ERO" subobject is defined for | |||
| inclusion in the ERO. | inclusion in the 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 Figure 2. | |||
| 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=40 | 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 (conditional) | | | SRv6 SID (conditional) | | |||
| | (128-bit) | | | (128-bit) | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // NAI (variable, conditional) // | // NAI (variable, conditional) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | SID Structure (conditional) | | | SID Structure (conditional) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: SRv6-ERO Subobject Format | Figure 2: SRv6-ERO Subobject Format | |||
| 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 | |||
| (see [RFC3209]). If this flag is set to zero, a PCC MUST NOT | hop (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 | |||
| received SRv6-ERO based on its local policy. | the 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 | |||
| set to 40, the suboject is an SRv6-ERO subobject representing an SRv6 | is set to 40, the subobject is an SRv6-ERO subobject representing | |||
| SID. | an 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 | |||
| subobject MUST contain at least one of an SRv6-SID or an NAI. The S | SRv6-ERO subobject MUST contain at least one of an SRv6-SID or an | |||
| and F bit in the Flags field indicates whether the SRv6-SID or NAI | NAI. The S and F bits in the Flags field indicates whether the | |||
| fields are absent. | SRv6-SID or NAI 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 | |||
| the object body, if any is present. If the F bit is set to one (see | in the object body, if any are present. If the F bit is set to | |||
| below) then the NT field has no meaning and MUST be ignored by the | one (see below), then the NT field has no meaning and MUST be | |||
| receiver. This document creates a new PCEP SRv6-ERO NAI Types | ignored by the receiver. This document creates a new PCEP | |||
| registry in Section 9.2 and allocates the following values. | SRv6-ERO NAI Types registry in Section 8.2 and allocates the | |||
| following values: | ||||
| If NT value is 0, the NAI MUST NOT be included. | - If NT value is 0, the NAI MUST NOT be included. | |||
| When NT value is 2, the NAI is as per the 'IPv6 Node ID' format | - When NT value is 2, the NAI is as per the "IPv6 node ID" format | |||
| defined in [RFC8664], which specifies an IPv6 address. This is | defined in [RFC8664], which specifies an IPv6 address. This is | |||
| used to identify the owner of the SRv6 Identifier. This is | used to identify the owner of the SRv6 Identifier. This is | |||
| optional, as the LOC (the locator portion) of the SRv6 SID serves | optional, as the LOC (the locator portion) of the SRv6 SID | |||
| a similar purpose (when present). | serves a similar purpose (when present). | |||
| When NT value is 4, the NAI is as per the 'IPv6 Adjacency' format | - When NT value is 4, the NAI is as per the "IPv6 adjacency" | |||
| defined in [RFC8664], which specify a pair of IPv6 addresses. | format defined in [RFC8664], which specify a pair of IPv6 | |||
| This is used to identify the IPv6 Adjacency and used with the SRv6 | addresses. This is used to identify the IPv6 adjacency and | |||
| Adj-SID. | used with the SRv6 Adj-SID. | |||
| When NT value is 6, the NAI is as per the 'link-local IPv6 | - When NT value is 6, the NAI is as per the "link-local IPv6 | |||
| addresses' format defined in [RFC8664], which specify a pair of | addresses" format defined in [RFC8664], which specify a pair of | |||
| (global IPv6 address, interface ID) tuples. It is used to | (global IPv6 address, interface ID) tuples. It is used to | |||
| identify the IPv6 Adjacency and used with the SRv6 Adj-SID. | identify the IPv6 adjacency and used with the SRv6 Adj-SID. | |||
| Flags: Used to carry additional information pertaining to the | * Flags: Used to carry additional information pertaining to the | |||
| SRv6-SID. This document defines the following flag bits. The other | SRv6-SID. This document defines the following flag bits. The | |||
| bits MUST be set to zero by the sender and MUST be ignored by the | other bits MUST be set to zero by the sender and MUST be ignored | |||
| receiver. This document creates a new registry SRv6-ERO Flag Field | by the receiver. This document creates a new registry SRv6-ERO | |||
| registry in Section 9.3 and allocates the following values. | Flag Field registry in Section 8.3 and allocates the following | |||
| values. | ||||
| * S: When this bit is set to 1, the SRv6-SID value in the subobject | - S: When this bit is set to 1, the SRv6-SID value in the | |||
| body is absent. In this case, the PCC is responsible for choosing | subobject body is absent. In this case, the PCC is responsible | |||
| the SRv6-SID value, e.g., by looking up in the SR-DB using the NAI | for choosing the SRv6-SID value, e.g., by looking up in the SR- | |||
| which, in this case, MUST be present in the subobject. If the S | DB using the NAI that, in this case, MUST be present in the | |||
| bit is set to 1 then F bit MUST be set to zero. | subobject. If the S bit is set to 1, then the F bit MUST be | |||
| set to zero. | ||||
| * F: When this bit is set to 1, the NAI value in the subobject body | - F: When this bit is set to 1, the NAI value in the subobject | |||
| is absent. The F bit MUST be set to 1 if NT=0, and otherwise MUST | body is absent. The F bit MUST be set to 1 if NT=0; otherwise, | |||
| be set to zero. The S and F bits MUST NOT both be set to 1. | it MUST be set to zero. The S and F bits MUST NOT both be set | |||
| to 1. | ||||
| * T: When this bit is set to 1, the SID Structure value in the | - T: When this bit is set to 1, the SID Structure value in the | |||
| subobject body is present. The T bit MUST be set to 0 when S bit | subobject body is present. The T bit MUST be set to 0 when the | |||
| is set to 1. If the T bit is set when the S bit is set, the T bit | S bit is set to 1. If the T bit is set when the S bit is set, | |||
| MUST be ignored. Thus, the T bit indicates the presence of an | the T bit MUST be ignored. Thus, the T bit indicates the | |||
| optional 8-byte SID Structure when SRv6 SID is included. The SID | presence of an optional 8-byte SID Structure when SRv6 SID is | |||
| Structure is defined in Section 4.3.1.1. | included. The SID Structure is defined in Section 4.3.1.1. | |||
| * V: The "SID verification" bit usage is as per Section 5.1 of | - V: The "SID verification" bit usage is as per Section 5.1 of | |||
| [RFC9256]. If a PCC "Verification fails" for a SID, it MUST | [RFC9256]. If a PCC "Verification fails" for a SID, it MUST | |||
| report this error by including the LSP-ERROR-CODE TLV with LSP | report this error by including the LSP-ERROR-CODE TLV with LSP | |||
| error-value "SID Verification fails" in the LSP object in the | Error-value "SID Verification fails" in the LSP object in the | |||
| PCRpt message to the PCE. | PCRpt message to the PCE. | |||
| Reserved: MUST be set to zero while sending and ignored on receipt. | * Reserved: MUST be set to zero while sending and ignored on | |||
| receipt. | ||||
| Endpoint Behavior: A 16-bit field representing the behavior | * Endpoint Behavior: A 16-bit field representing the behavior | |||
| associated with the SRv6 SIDs. This information is optional, but it | associated with the SRv6 SIDs. This information is optional, but | |||
| is recommended to signal it always if possible. It could be used for | providing it is recommended whenever possible. It could be used | |||
| maintainability and diagnostic purpose. If behavior is not known, | for maintainability and diagnostic purposes. If behavior is not | |||
| value '0xFFFF' defined in the registry "SRv6 Endpoint Behaviors" is | known, value "0xFFFF" as defined in the "SRv6 Endpoint Behaviors" | |||
| used [RFC8986]. | registry is used [RFC8986]. | |||
| SRv6 SID: SRv6 Identifier is an 128-bit value representing the SRv6 | * SRv6 SID: SRv6 Identifier is a 128-bit value representing the SRv6 | |||
| segment. | segment. | |||
| NAI: The NAI associated with the SRv6-SID. The NAI's format depends | * NAI: The NAI associated with the SRv6-SID. The NAI's format | |||
| on the value in the NT field, and is described in [RFC8664]. | depends on the value in the NT field and is described in | |||
| [RFC8664]. | ||||
| At least one SRv6-SID or the NAI MUST be included in the SRv6-ERO | At least one SRv6-SID or the NAI MUST be included in the SRv6-ERO | |||
| subobject, and both MAY be included. | subobject, and both MAY be included. | |||
| 4.3.1.1. SID Structure | 4.3.1.1. SID Structure | |||
| The SID Structure is an optional part of the SR-ERO subobject, as | The SID Structure is an optional part of the SR-ERO subobject, as | |||
| described in Section 4.3.1. | described in Section 4.3.1. | |||
| [RFC8986] defines an SRv6 SID as consisting of LOC:FUNCT:ARG, where a | [RFC8986] defines an SRv6 SID as consisting of LOC:FUNCT:ARG, where a | |||
| locator (LOC) is encoded in the L most significant bits of the SID, | locator (LOC) is encoded in the L most significant bits of the SID, | |||
| followed by F bits of function (FUNCT) and A bits of arguments (ARG). | followed by F bits of function (FUNCT) and A bits of arguments (ARG). | |||
| A locator may be represented as B:N where B is the SRv6 SID locator | A locator may be represented as B:N where B is the SRv6 SID locator | |||
| block (IPv6 prefix allocated for SRv6 SIDs by the operator) and N is | block (IPv6 prefix allocated for SRv6 SIDs by the operator) and N is | |||
| the identifier of the parent node instantiating the SID called | the identifier of the parent node instantiating the SID called | |||
| locator node. | "locator node". | |||
| It is formatted as shown in the following figure. | The SID Structure is formatted as shown in Figure 3. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | LB Length | LN Length | Fun. Length | Arg. Length | | | LB Length | LN Length | Fun. Length | Arg. Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | Flags | | | Reserved | Flags | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: SID Structure Format | Figure 3: SID Structure Format | |||
| where: | Where: | |||
| LB Length: 1 octet. SRv6 SID Locator Block length in bits. | * LB Length: 1 octet; SRv6 SID Locator Block length in bits | |||
| 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 less than or | |||
| to 128 bits. If the sum of all four sizes advertised in the SID | equal to 128 bits. If the sum of all four sizes advertised in the | |||
| Structure is larger than 128 bits, the corresponding SRv6 SID MUST be | SID Structure is larger than 128 bits, the corresponding SRv6 SID | |||
| considered invalid and a PCErr message with Error-Type = 10 | MUST be considered invalid and a PCErr message with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = 37 ("Invalid | ("Reception of an invalid object") and Error-value = 37 ("Invalid | |||
| SRv6 SID Structure") is returned. | 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. | |||
| to zero while sending and ignored on receipt. | ||||
| * Unassigned bits must be set 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 helpful in the use cases that require the SRv6 | |||
| the SRv6 SID structure. When a PCEP speaker receives the SRv6 SID | SID structure to be known. 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 | |||
| the SRv6 SID Structure and/or possible local policies. The SRv6 SID | the SRv6 SID Structure and/or possible local policies. The SRv6 SID | |||
| Structure could be used by the PCE for ease of operations and | Structure could be used by the PCE for ease of operations and | |||
| monitoring. For example, this information could be used for | monitoring. For example, this information could be used for | |||
| validation of SRv6 SIDs being instantiated in the network and checked | validation of SRv6 SIDs being instantiated in the network and checked | |||
| for conformance to the SRv6 SID allocation scheme chosen by the | for conformance with the SRv6 SID allocation scheme chosen by the | |||
| operator as described in Section 3.2 of [RFC8986]. In the future, | operator as described in Section 3.2 of [RFC8986]. In the future, | |||
| PCE might also be utilized to verify and automate the security of the | PCE might also be utilized to verify and automate the security of the | |||
| SRv6 domain by provisioning filtering rules at the domain boundaries | SRv6 domain by provisioning filtering rules at the domain boundaries | |||
| as described in Section 5 of [RFC8754]. The details of these | as described in Section 5 of [RFC8754]. The details of these | |||
| potential applications are outside the scope of this document. | potential applications are outside the scope of this document. | |||
| 4.3.1.2. Order of the Optional fields | 4.3.1.2. Order of the Optional Fields | |||
| The optional elements in the SRv6-ERO subobject i.e. SRv6 SID, NAI | The optional elements in the SRv6-ERO subobject, i.e., SRv6 SID, NAI, | |||
| and the SID Structure MUST be encoded in the order as depicted in | and the SID Structure, MUST be encoded in the order as depicted in | |||
| Figure 2. The presence or absence of each of them is indicated by | Figure 2. The presence or absence of each of them is indicated by | |||
| the respective flags i.e. S flag, F flag and T flag. | the respective flags, i.e., S flag, F flag, and T flag. | |||
| In order to ensure future compatibility, any optional elements added | In order to ensure future compatibility, any optional elements added | |||
| to the SRv6-ERO subobject in the future must specify their order and | to the SRv6-ERO subobject in the future must specify their order and | |||
| request the Internet Assigned Numbers Authority (IANA) to allocate a | request that the Internet Assigned Numbers Authority (IANA) allocate | |||
| flag to indicate their presence from the subregistry created in | a flag to indicate their presence from the subregistry created in | |||
| Section 9.3. | Section 8.3. | |||
| 4.4. RRO | 4.4. RRO | |||
| In order to support SRv6, a new "SRv6-RRO" subobject is defined for | In order to support SRv6, a new "SRv6-RRO" subobject is defined for | |||
| inclusion in the RRO. | inclusion in the RRO. | |||
| 4.4.1. SRv6-RRO Subobject | 4.4.1. SRv6-RRO Subobject | |||
| A PCC reports an SRv6 path to a PCE by sending a PCRpt message, per | A PCC reports an SRv6 path to a PCE by sending a PCRpt message, per | |||
| [RFC8231]. The RRO on this message represents the SID list that was | [RFC8231]. The RRO on this message represents the SID list that was | |||
| 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 in Figure 4. | |||
| 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=40 | Length | NT | Flags |V|T|F|S| | | 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) // | // NAI (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | SID Structure (optional) | | | SID Structure (optional) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: SRv6-RRO Subobject Format | Figure 4: SRv6-RRO Subobject Format | |||
| The format of the SRv6-RRO subobject is the same as that of the | The format of the SRv6-RRO subobject is the same as that of the | |||
| SRv6-ERO subobject, but without the L flag. | SRv6-ERO subobject but without the L flag. | |||
| The V flag has no meaning in the SRv6-RRO and is ignored on receipt | The V flag has no meaning in the SRv6-RRO and is ignored on receipt | |||
| at the PCE. | at the PCE. | |||
| Ordering of SRv6-RRO subobjects by PCC in PCRpt message remains as | The ordering of SRv6-RRO subobjects by PCC in PCRpt message remains | |||
| per [RFC8664]. | as per [RFC8664]. | |||
| The ordering of optional elements in the SRv6-RRO subobject is the | The ordering of optional elements in the SRv6-RRO subobject is the | |||
| same as described in Section 4.3.1.2. | same as described in Section 4.3.1.2. | |||
| 5. Procedures | 5. Procedures | |||
| 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=3, but the SRv6-PCE-CAPABILITY sub-TLV is | PST list containing PST=3, but the SRv6-PCE-CAPABILITY sub-TLV is | |||
| absent, then the PCEP speaker MUST send a PCErr message with Error- | absent, then the PCEP speaker MUST send a PCErr message with Error- | |||
| Type = 10 (Reception of an invalid object) and Error-Value = 34 | Type = 10 ("Reception of an invalid object") and Error-Value = 34 | |||
| (Missing PCE-SRv6-CAPABILITY sub-TLV) and MUST then close the PCEP | ("Missing PCE-SRv6-CAPABILITY sub-TLV") and MUST then close the PCEP | |||
| session. If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV | session. If a PCEP speaker receives a PATH-SETUP-TYPE-CAPABILITY TLV | |||
| with an SRv6-PCE-CAPABILITY sub-TLV, but the PST list does not | with an SRv6-PCE-CAPABILITY sub-TLV, but the PST list does not | |||
| contain PST=3, then the PCEP speaker MUST ignore the SRv6-PCE- | contain PST=3, then the PCEP speaker MUST ignore the SRv6-PCE- | |||
| CAPABILITY sub-TLV. | CAPABILITY sub-TLV. | |||
| In case the MSD-Type in SRv6-PCE-CAPABILITY sub-TLV received by the | In case the MSD-Type in the SRv6-PCE-CAPABILITY sub-TLV received by | |||
| PCE does not correspond to one of the SRv6 MSD types, the PCE MUST | the PCE does not correspond to one of the SRv6 MSD types, the PCE | |||
| respond with a PCErr message (Error-Type = 1 "PCEP session | MUST respond with a PCErr message (Error-Type = 1 ("PCEP session | |||
| establishment failure" and Error-Value = 1 "reception of an invalid | establishment failure") and Error-Value = 1 ("reception of an invalid | |||
| Open message or a non Open message."). | Open message or a non Open message.")). | |||
| Note that the MSD-Type, MSD-Value exchanged via the SRv6-PCE- | Note that the (MSD-Type,MSD-Value) pair exchanged via the SRv6-PCE- | |||
| CAPABILITY sub-TLV indicates the SRv6 SID imposition limit for the | CAPABILITY sub-TLV indicates the SRv6 SID imposition limit for the | |||
| sender PCC node only. However, if a PCE learns these via alternate | sender PCC node only. However, if a PCE learns these via alternate | |||
| mechanisms, e.g. routing protocols [RFC9352], then it ignores the | mechanisms, e.g., routing protocols [RFC9352], then it ignores the | |||
| values in the SRv6-PCE-CAPABILITY sub-TLV. Furthermore, whenever a | values in the SRv6-PCE-CAPABILITY sub-TLV. Furthermore, whenever a | |||
| PCE learns any other SRv6 MSD types that may be defined in the future | PCE learns any other SRv6 MSD types that may be defined in the future | |||
| via alternate mechanisms, it MUST use those values regardless of the | via alternate mechanisms, it MUST use those values regardless of the | |||
| values exchanged in the SRv6-PCE-CAPABILITY sub-TLV. | values exchanged in the SRv6-PCE-CAPABILITY sub-TLV. | |||
| During path computation, PCE must consider the MSD information of all | During path computation, a PCE must consider the MSD information of | |||
| the nodes along the path instead of only the MSD information of the | all the nodes along the path instead of only the MSD information of | |||
| ingress PCC since a packet may be dropped on any node in a forwarding | the ingress PCC since a packet may be dropped on any node in a | |||
| path because of MSD exceeding. The MSD capabilities of all SR nodes | forwarding path because of the SID depth exceeding the MSD of the | |||
| along the path can be learned as part of the topology information via | node. The MSD capabilities of all SR nodes along the path can be | |||
| IGP/BGP-LS or via PCEP if the PCE also happens to have PCEP sessions | learned as part of the topology information via IGP/BGP-LS or via | |||
| to those nodes. | PCEP if the PCE also happens to have PCEP sessions with those nodes. | |||
| A PCE MUST NOT send SRv6 paths exceeding the SRv6 MSD capabilities of | A PCE MUST NOT send SRv6 paths that exceed the SRv6 MSD capabilities | |||
| the PCC. If a PCC needs to modify the SRv6 MSD value signaled via | of the PCC. If a PCC needs to modify the SRv6 MSD value signaled via | |||
| the Open message, it MUST close the PCEP session and re-establish it | the Open message, it MUST close the PCEP session and re-establish it | |||
| with the new value. If the PCC receives an SRv6 path that exceed its | with the new value. If the PCC receives an SRv6 path that exceeds | |||
| SRv6 MSD capabilities, the PCC MUST send a PCErr message with Error- | its SRv6 MSD capabilities, the PCC MUST send a PCErr message with | |||
| Type = 10 (Reception of an invalid object) and Error-Value = 39 | Error-Type = 10 ("Reception of an invalid object") and Error-value = | |||
| (Unsupported number of SRv6-ERO subobjects). | 40 ("Unsupported number of SRv6-ERO subobjects"). | |||
| The N flag and (MSD-Type,MSD-Value) pair inside the SRv6-PCE- | The N flag and (MSD-Type,MSD-Value) pair inside the SRv6-PCE- | |||
| CAPABILITY sub-TLV are meaningful only in the Open message sent to a | CAPABILITY sub-TLV are meaningful only in the Open message sent to a | |||
| PCE. As such, the flags MUST be set to zero and a (MSD-Type,MSD- | PCE. As such, the flags MUST be set to zero and a (MSD-Type,MSD- | |||
| Value) pair MUST NOT be present in the SRv6-PCE-CAPABILITY sub-TLV in | Value) pair MUST NOT be present in the SRv6-PCE-CAPABILITY sub-TLV in | |||
| an Open message sent to a PCC. Similarly, a PCC MUST ignore flags | an Open message sent to a PCC. Similarly, a PCC MUST ignore flags | |||
| and any (MSD-Type,MSD-Value) pair in a received Open message. If a | and any (MSD-Type,MSD-Value) pair in a received Open message. If a | |||
| PCE receives multiple SRv6-PCE-CAPABILITY sub-TLVs in an Open | PCE receives multiple SRv6-PCE-CAPABILITY sub-TLVs in an Open | |||
| message, it processes only the first sub-TLV received. | message, it processes only the first sub-TLV received. | |||
| skipping to change at page 15, line 28 ¶ | skipping to change at line 677 ¶ | |||
| 5.2.1. SRv6 ERO Validation | 5.2.1. SRv6 ERO Validation | |||
| If a PCC does not support the SRv6 PCE Capability and thus cannot | If a PCC does not support the SRv6 PCE Capability and thus cannot | |||
| recognize the SRv6-ERO or SRv6-RRO subobjects, it should respond | recognize the SRv6-ERO or SRv6-RRO subobjects, it should respond | |||
| according to the rules for a malformed object as described in | according to the rules for a malformed object as described in | |||
| [RFC5440]. | [RFC5440]. | |||
| On receiving an SRv6-ERO, a PCC MUST validate that the Length field, | On receiving an SRv6-ERO, a PCC MUST validate that the Length field, | |||
| the S bit, the F bit, the T bit, and the NT field are consistent, as | the S bit, the F bit, the T bit, and the NT field are consistent, as | |||
| follows. | follows: | |||
| * If NT=0, the F bit MUST be 1, the S bit MUST be zero and the | * If NT=0, the F bit MUST be 1, the S bit MUST be zero, and the | |||
| Length MUST be 24. | Length MUST be 24. | |||
| * If NT=2, the F bit MUST be zero. If the S bit is 1, the Length | * If NT=2, the F bit MUST be zero. If the S bit is 1, the Length | |||
| MUST be 24, otherwise the Length MUST be 40. | MUST be 24; otherwise, the Length MUST be 40. | |||
| * If NT=4, the F bit MUST be zero. If the S bit is 1, the Length | * If NT=4, the F bit MUST be zero. If the S bit is 1, the Length | |||
| MUST be 40, otherwise the Length MUST be 56. | MUST be 40; otherwise, the Length MUST be 56. | |||
| * If NT=6, the F bit MUST be zero. If the S bit is 1, the Length | * If NT=6, the F bit MUST be zero. If the S bit is 1, the Length | |||
| MUST be 48, otherwise the Length MUST be 64. | MUST be 48; otherwise, the Length MUST be 64. | |||
| * If T bit is 1, then S bit MUST be zero. | * If the T bit is 1, then the S bit MUST be zero. | |||
| 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 PCC does not recognize or support the value in the NT field, it | If a PCC does not recognize or support the value in the NT field, it | |||
| MUST consider the entire ERO invalid and send a PCErr message with | MUST consider the entire ERO invalid and send a PCErr message with | |||
| Error-Type = 10 ("Reception of an invalid object") and Error- value = | Error-Type = 10 ("Reception of an invalid object") and Error-value = | |||
| 40 ("Unsupported NAI Type in the SRv6-ERO/SRv6-RRO subobject"). | 41 ("Unsupported NAI Type in the SRv6-ERO/SRv6-RRO subobject"). | |||
| If a PCC receives an SRv6-ERO subobject in which the S and F bits are | If a PCC receives an SRv6-ERO subobject in which the S and F bits are | |||
| both set to 1 (that is, both the SID and NAI are absent), it MUST | both set to 1 (that is, both the SID and NAI are absent), it MUST | |||
| consider the entire ERO invalid and send a PCErr message with Error- | consider the entire ERO invalid and send a PCErr message with Error- | |||
| Type = 10 ("Reception of an invalid object") and Error-value = 41 | Type = 10 ("Reception of an invalid object") and Error-value = 42 | |||
| ("Both SID and NAI are absent in the SRv6-ERO subobject"). | ("Both SID and NAI are absent in the SRv6-ERO subobject"). | |||
| If a PCC receives an SRv6-ERO subobject in which the S bit is set to | If a PCC receives an SRv6-ERO subobject in which the S bit is set to | |||
| 1 and the F bit is set to zero (that is, the SID is absent and the | 1 and the F bit is set to zero (that is, the SID is absent and the | |||
| NAI is present), but the PCC does not support NAI resolution, it MUST | NAI is present), but the PCC does not support NAI resolution, it MUST | |||
| consider the entire ERO invalid and send a PCErr message with Error- | consider the entire ERO invalid and send a PCErr message with Error- | |||
| Type = 4 ("Not supported object") and Error-value = 4 ("Unsupported | Type = 4 ("Not supported object") and Error-value = 4 ("Unsupported | |||
| parameter"). | parameter"). | |||
| If a PCC detects that the subobjects of an ERO are a mixture of SRv6- | If a PCC detects that the subobjects of an ERO are a mixture of | |||
| ERO subobjects and subobjects of other types, then it MUST send a | SRv6-ERO subobjects and subobjects of other types, then it MUST send | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid object") | a PCErr message with Error-Type = 10 ("Reception of an invalid | |||
| and Error-value = 42 ("ERO mixes SRv6-ERO subobjects with other | object") and Error-value = 43 ("ERO mixes SRv6-ERO subobjects with | |||
| subobject types"). | other subobject types"). | |||
| In case a PCEP speaker receives an SRv6-ERO subobject, when the PST | In case a PCEP speaker receives an SRv6-ERO subobject, when the PST | |||
| is not set to 3 or SRv6-PCE-CAPABILITY sub-TLV was not exchanged, it | is not set to 3 or SRv6-PCE-CAPABILITY sub-TLV was not exchanged, it | |||
| MUST send a PCErr message with Error-Type = 19 ("Invalid Operation") | MUST send a PCErr message with Error-Type = 19 ("Invalid Operation") | |||
| and Error-Value = 19 ("Attempted SRv6 when the capability was not | and Error-value = 19 ("Attempted SRv6 when the capability was not | |||
| advertised"). | advertised"). | |||
| If a PCC receives an SRv6 path that exceeds the SRv6 MSD | If a PCC receives an SRv6 path that exceeds the SRv6 MSD | |||
| capabilities, it MUST send a PCErr message with Error-Type = 10 | capabilities, it MUST send a PCErr message with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = 43 ("Unsupported | ("Reception of an invalid object") and Error-value = 40 ("Unsupported | |||
| number of SRv6-ERO subobjects") as per [RFC8664]. | number of SRv6-ERO 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 | |||
| [RFC9256], each SRv6-ERO subobject in the sequence identifies a | [RFC9256], each SRv6-ERO subobject in the sequence identifies a | |||
| segment that the traffic will be directed to, in the order given. | segment that the traffic will be directed to, in the order given. | |||
| That is, the first subobject identifies the first segment the traffic | That is, the first subobject identifies the first segment the traffic | |||
| will be directed to, the second SRv6-ERO subobject represents the | will be directed to, the second SRv6-ERO subobject represents the | |||
| second segment, and so on. | second segment, and so on. | |||
| 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 = 35 ("Both SID and NAI are absent in | object") and Error-value = 35 ("Both SID and NAI are absent in | |||
| SRv6-RRO subobject"). | 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 = 36 ("RRO mixes SRv6-RRO subobjects with | object") and Error-value = 36 ("RRO mixes SRv6-RRO subobjects with | |||
| other subobject types"). | other subobject types"). | |||
| The mechanism by which the PCC learns the path is outside the scope | The mechanism by which the PCC learns the path is outside the scope | |||
| of this document. | of this document. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security considerations described in [RFC5440], section 2.5 of | The Security Considerations described in [RFC5440], Section 2.5 of | |||
| [RFC6952], [RFC8231], [RFC8281], [RFC8253] and [RFC8664] are | [RFC6952], [RFC8231], [RFC8281], [RFC8253], and [RFC8664] are | |||
| applicable to this specification. | applicable to this specification. | |||
| Note that this specification enables a network controller to | Note that this specification enables a network controller to | |||
| instantiate an SRv6 path in the network. This creates an additional | instantiate an SRv6 path in the network. This creates an additional | |||
| vulnerability if the security mechanisms of [RFC5440], [RFC8231], and | vulnerability if the security mechanisms of [RFC5440], [RFC8231], and | |||
| [RFC8281] are not used. If there is no integrity protection on the | [RFC8281] are not used. If there is no integrity protection on the | |||
| session, then an attacker could create an SRv6 path that may not | session, then an attacker could create an SRv6 path that may not be | |||
| subjected to the further verification checks. Further, the MSD field | subjected to the further verification checks. Further, the MSD field | |||
| in the Open message could disclose node forwarding capabilities if | in the Open message could disclose node forwarding capabilities if | |||
| suitable security mechanisms are not in place. Hence, securing the | suitable security mechanisms are not in place. Hence, securing the | |||
| PCEP session using Transport Layer Security (TLS) [RFC8253] is | PCEP session using Transport Layer Security (TLS) [RFC8253] is | |||
| RECOMMENDED. | RECOMMENDED. | |||
| 7. Manageability Considerations | 7. Manageability Considerations | |||
| All manageability requirements and considerations listed in | All manageability requirements and considerations listed in | |||
| [RFC5440], [RFC8231], [RFC8281], and [RFC8664] apply to PCEP protocol | [RFC5440], [RFC8231], [RFC8281], and [RFC8664] apply to PCEP protocol | |||
| extensions defined in this document. In addition, requirements and | extensions defined in this document. In addition, requirements and | |||
| considerations listed in this section apply. | considerations listed in this section apply. | |||
| 7.1. Control of Function and Policy | 7.1. Control of Function and Policy | |||
| A PCEP implementation SHOULD allow the operator to configure the SRv6 | A PCEP implementation SHOULD allow the operator to configure the SRv6 | |||
| capability. Further a policy to accept NAI only for the SRv6 SHOULD | capability. Further, a policy to accept NAI only for the SRv6 SHOULD | |||
| be allowed to be set. | be allowed to be set. | |||
| 7.2. Information and Data Models | 7.2. Information and Data Models | |||
| The PCEP YANG module is out of the scope of this document and defined | The PCEP YANG module is out of the scope of this document; it is | |||
| in other documents, for example, [I-D.ietf-pce-pcep-yang]. An | defined in other documents, for example, [PCEP-YANG]. An augmented | |||
| augmented YANG module for SRv6 is also specified in another document | YANG module for SRv6 is also specified in [PCEP-SRv6-YANG] that | |||
| [I-D.ietf-pce-pcep-srv6-yang] that allows for SRv6 capability and MSD | allows for SRv6 capability and MSD configurations as well as to | |||
| configurations as well as to monitor the SRv6 paths set in the | monitor the SRv6 paths set in the network. | |||
| network. | ||||
| 7.3. Liveness Detection and Monitoring | 7.3. Liveness Detection and Monitoring | |||
| Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
| detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
| listed in [RFC5440]. | listed in [RFC5440]. | |||
| 7.4. Verify Correct Operations | 7.4. Verify Correct Operations | |||
| Verification of the mechanisms defined in this document can be built | Verification of the mechanisms defined in this document can be built | |||
| on those already listed in [RFC5440], [RFC8231], and [RFC8664]. | on those already listed in [RFC5440], [RFC8231], and [RFC8664]. | |||
| 7.5. Requirements On Other Protocols | 7.5. Requirements on Other Protocols | |||
| Mechanisms defined in this document do not imply any new requirements | Mechanisms defined in this document do not imply any new requirements | |||
| on other protocols. | on other protocols. | |||
| 7.6. Impact On Network Operations | 7.6. Impact on Network Operations | |||
| Mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also apply | Mechanisms defined in [RFC5440], [RFC8231], and [RFC8664] also apply | |||
| to PCEP extensions defined in this document. | to PCEP extensions defined in this document. | |||
| 8. Implementation Status | 8. IANA Considerations | |||
| [Note to the RFC Editor - remove this section before publication, as | ||||
| well as remove the reference to [RFC7942]. | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in [RFC7942]. | ||||
| The description of implementations in this section is intended to | ||||
| assist the IETF in its decision processes in progressing drafts to | ||||
| RFCs. Please note that the listing of any individual implementation | ||||
| here does not imply endorsement by the IETF. Furthermore, no effort | ||||
| has been spent to verify the information presented here that was | ||||
| supplied by IETF contributors. This is not intended as, and must not | ||||
| be construed to be, a catalog of available implementations or their | ||||
| features. Readers are advised to note that other implementations may | ||||
| exist. | ||||
| According to [RFC7942], "this will allow reviewers and working groups | ||||
| to assign due consideration to documents that have the benefit of | ||||
| running code, which may serve as evidence of valuable experimentation | ||||
| and feedback that have made the implemented protocols more mature. | ||||
| It is up to the individual working groups to use this information as | ||||
| they see fit". | ||||
| 8.1. Cisco's Commercial Delivery | ||||
| * Organization: Cisco Systems, Inc. | ||||
| * Implementation: IOS-XR PCE and PCC. | ||||
| * Description: Implementation with experimental codepoints. | ||||
| * Maturity Level: Production | ||||
| * Coverage: Partial | ||||
| * Contact: ssidor@cisco.com | ||||
| 8.2. Huawei's Commercial Delivery | ||||
| * Organization: Huawei Technologies Co.,Ltd. | ||||
| * Implementation: Huawei Routers and NCE Controller | ||||
| * Description: Huawei has Implemented this draft to support PCE- | 8.1. PCEP ERO and RRO Subobjects | |||
| Initiated SRv6 Policy. | ||||
| * Maturity Level: Production | This document defines a new subobject type for the PCEP Explicit | |||
| Route Object (ERO) and a new subobject type for the PCEP Reported | ||||
| Route Object (RRO). These have been registered in the "Resource | ||||
| Reservation Protocol (RSVP) Parameters" registry group as shown | ||||
| below. | ||||
| * Coverage: Partial | IANA has allocated the following new subobject in the "Subobject type | |||
| - 20 EXPLICIT_ROUTE - Type 1 Explicit Route" registry: | ||||
| * Contact: yuwei.yuwei@huawei.com | +=======+==========================+ | |||
| | Value | Description | | ||||
| +=======+==========================+ | ||||
| | 40 | SRv6-ERO (PCEP-specific) | | ||||
| +-------+--------------------------+ | ||||
| 9. IANA Considerations | Table 1 | |||
| 9.1. PCEP ERO and RRO subobjects | IANA has allocated the following new subobject in the "Subobject type | |||
| - 21 ROUTE_RECORD - Type 1 Route Record" registry: | ||||
| This document defines a new subobject type for the PCEP explicit | +=======+==========================+ | |||
| route object (ERO), and a new subobject type for the PCEP reported | | Value | Description | | |||
| route object (RRO). The code points for subobject types of these | +=======+==========================+ | |||
| objects is maintained in the RSVP parameters registry, under the | | 40 | SRv6-RRO (PCEP-specific) | | |||
| EXPLICIT_ROUTE and REPORTED_ROUTE objects. IANA is requested to | +-------+--------------------------+ | |||
| confirm the following allocations in the RSVP Parameters registry for | ||||
| each of the new subobject types defined in this document. | ||||
| Object Subobject Subobject Type | Table 2 | |||
| --------------------- -------------------------- ------------------ | ||||
| EXPLICIT_ROUTE SRv6-ERO (PCEP-specific) 40 | ||||
| ROUTE_RECORD SRv6-RRO (PCEP-specific) 40 | ||||
| 9.2. New SRv6-ERO NAI Type Registry | 8.2. New SRv6-ERO NAI Type Registry | |||
| IANA is requested to create a new sub-registry, named "PCEP SRv6-ERO | IANA has created the "PCEP SRv6-ERO NAI Types" registry within the | |||
| NAI Types", within the "Path Computation Element Protocol (PCEP) | "Path Computation Element Protocol (PCEP) Numbers" registry group to | |||
| Numbers" registry to manage the 4-bit NT field in SRv6-ERO subobject. | manage the 4-bit NT field in the SRv6-ERO subobject. The | |||
| The allocation policy for this new registry is by IETF | registration policy is IETF Review [RFC8126]. IANA has registered | |||
| Review[RFC8126].The new registry contains the following values. | the values in Table 3. | |||
| Value Description Reference | +=======+===============================+===========+ | |||
| ----- ----------- --------- | | Value | Description | Reference | | |||
| 0 NAI is absent. This document | +=======+===============================+===========+ | |||
| 1 Unassigned | | 0 | NAI is absent. | RFC 9603 | | |||
| 2 NAI is an IPv6 node ID. This document | +-------+-------------------------------+-----------+ | |||
| 3 Unassigned | | 2 | NAI is an IPv6 node ID. | RFC 9603 | | |||
| 4 NAI is an IPv6 adjacency This document | +-------+-------------------------------+-----------+ | |||
| with global IPv6 addresses. | | 4 | NAI is an IPv6 adjacency with | RFC 9603 | | |||
| | | global IPv6 addresses. | | | ||||
| +-------+-------------------------------+-----------+ | ||||
| | 6 | NAI is an IPv6 adjacency with | RFC 9603 | | ||||
| | | link-local IPv6 addresses. | | | ||||
| +-------+-------------------------------+-----------+ | ||||
| 5 Unassigned | Table 3 | |||
| 6 NAI is an IPv6 adjacency This document | ||||
| with link-local IPv6 addresses. | ||||
| 7-15 Unassigned | ||||
| 9.3. New SRv6-ERO Flag Registry | 8.3. New SRv6-ERO Flag Registry | |||
| IANA is requested to create a new sub-registry, named "SRv6-ERO Flag | IANA has created the "SRv6-ERO Flag Field" registry within the "Path | |||
| Field", within the "Path Computation Element Protocol (PCEP) Numbers" | Computation Element Protocol (PCEP) Numbers" registry group to manage | |||
| registry to manage the 12-bit Flag field of the SRv6-ERO subobject. | the 12-bit Flag field of the SRv6-ERO subobject. New values are to | |||
| New values are to be assigned by Standards Action [RFC8126]. Each | be assigned by Standards Action [RFC8126]. Each registration should | |||
| bit should be tracked with the following qualities. | include the following information: | |||
| * Bit (counting from bit 0 as the most significant bit) | * Bit (counting from bit 0 as the most significant bit) | |||
| * Description | * Description | |||
| * Reference | * Reference | |||
| The following values are defined in this document. | The following values are defined in this document: | |||
| Bit Description Reference | +=====+==============================+===========+ | |||
| ----- ------------------ -------------- | | Bit | Description | Reference | | |||
| 0-7 Unassigned | +=====+==============================+===========+ | |||
| 8 SID Verification (V) This document | | 8 | SID Verification (V) | RFC 9603 | | |||
| 9 SID Structure is This document | +-----+------------------------------+-----------+ | |||
| present (T) | | 9 | SID Structure is present (T) | RFC 9603 | | |||
| 10 NAI is absent (F) This document | +-----+------------------------------+-----------+ | |||
| 11 SID is absent (S) This document | | 10 | NAI is absent (F) | RFC 9603 | | |||
| +-----+------------------------------+-----------+ | ||||
| | 11 | SID is absent (S) | RFC 9603 | | ||||
| +-----+------------------------------+-----------+ | ||||
| 9.4. LSP-ERROR-CODE TLV | Table 4 | |||
| This document defines a new value in the sub-registry "LSP-ERROR-CODE | 8.4. LSP-ERROR-CODE TLV | |||
| TLV Error Code Field" in the "Path Computation Element Protocol(PCEP) | ||||
| Numbers" registry. | ||||
| Value Meaning Reference | This document defines a new value in "LSP-ERROR-CODE TLV Error Code | |||
| --- ----------------------- ----------- | Field" registry within the "Path Computation Element Protocol (PCEP) | |||
| TBD SID Verification fails This document | Numbers" registry group. | |||
| 9.5. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | +=======+========================+===========+ | |||
| | Value | Meaning | Reference | | ||||
| +=======+========================+===========+ | ||||
| | 10 | SID Verification fails | RFC 9603 | | ||||
| +-------+------------------------+-----------+ | ||||
| IANA maintains a sub-registry, named "PATH-SETUP-TYPE-CAPABILITY Sub- | Table 5 | |||
| TLV Type Indicators", within the "Path Computation Element Protocol | ||||
| (PCEP) Numbers" registry to manage the type indicator space for sub- | ||||
| TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV. IANA is requested to | ||||
| confirm the following allocations in the sub-registry. | ||||
| Value Meaning Reference | 8.5. PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type Indicators | |||
| ----- ------- --------- | ||||
| 27 SRv6-PCE-CAPABILITY This Document | ||||
| 9.6. SRv6 PCE Capability Flags | IANA maintains the "PATH-SETUP-TYPE-CAPABILITY Sub-TLV Type | |||
| Indicators" registry within the "Path Computation Element Protocol | ||||
| (PCEP) Numbers" registry group to manage the type indicator space for | ||||
| sub-TLVs of the PATH-SETUP-TYPE-CAPABILITY TLV. IANA has registered | ||||
| the following value: | ||||
| IANA is requested to create a new sub-registry, named "SRv6 | +=======+=====================+===========+ | |||
| Capability Flag Field", within the "Path Computation Element Protocol | | Value | Meaning | Reference | | |||
| (PCEP) Numbers" registry to manage the 16-bit Flag field of the SRv6- | +=======+=====================+===========+ | |||
| PCE-CAPABILITY sub-TLV. New values are to be assigned by Standards | | 27 | SRv6-PCE-CAPABILITY | RFC 9603 | | |||
| Action [RFC8126]. Each bit should be tracked with the following | +-------+---------------------+-----------+ | |||
| qualities. | ||||
| Table 6 | ||||
| 8.6. SRv6 PCE Capability Flags | ||||
| IANA has created the "SRv6 Capability Flag Field" registry within the | ||||
| "Path Computation Element Protocol (PCEP) Numbers" registry group to | ||||
| manage the 16-bit Flag field of the SRv6-PCE-CAPABILITY sub-TLV. New | ||||
| values are to be assigned by Standards Action [RFC8126]. Each | ||||
| registration should include the following information: | ||||
| * Bit (counting from bit 0 as the most significant bit) | * Bit (counting from bit 0 as the most significant bit) | |||
| * Description | * Description | |||
| * Reference | * Reference | |||
| The following values are defined in this document. | The following value is defined in this document. | |||
| Bit Description Reference | +=====+==============================+===========+ | |||
| ----- ------------------ -------------- | | Bit | Description | Reference | | |||
| 0-13 Unassigned | +=====+==============================+===========+ | |||
| 14 Node or Adjacency This document | | 14 | Node or Adjacency Identifier | RFC 9603 | | |||
| Identifier (NAI) is | | | (NAI) is supported (N) | | | |||
| supported (N) | +-----+------------------------------+-----------+ | |||
| 15 Unassigned | ||||
| 9.7. New Path Setup Type | Table 7 | |||
| [RFC8408] created a sub-registry within the "Path Computation Element | 8.7. New Path Setup Type | |||
| Protocol (PCEP) Numbers" registry called "PCEP Path Setup Types". | ||||
| IANA is requested to confirm the following allocations in the sub- | ||||
| registry. | ||||
| Value Description Reference | [RFC8408] created the "PCEP Path Setup Types" registry within the | |||
| ----- ----------- --------- | "Path Computation Element Protocol (PCEP) Numbers" registry group. | |||
| 3 Traffic engineering path is This Document | IANA has allocated the following value: | |||
| setup using SRv6. | ||||
| 9.8. ERROR Objects | +=======+==========================+===========+ | |||
| | Value | Description | Reference | | ||||
| +=======+==========================+===========+ | ||||
| | 3 | Traffic engineering path | RFC 9603 | | ||||
| | | is set up using SRv6. | | | ||||
| +-------+--------------------------+-----------+ | ||||
| IANA is requested to confirm the following allocations in the PCEP- | Table 8 | |||
| ERROR Object Error Types and Values registry for the following new | ||||
| error-values. | ||||
| Error-Type Meaning | 8.8. ERROR Objects | |||
| ---------- ------- | ||||
| 10 Reception of an invalid object | ||||
| Error-value = 34 (Missing | ||||
| PCE-SRv6-CAPABILITY sub-TLV) | ||||
| Error-value = 35 (Both SID and NAI are absent | ||||
| in SRv6-RRO subobject) | ||||
| Error-value = 36 (RRO mixes SRv6-RRO subobjects | ||||
| with other subobject types) | ||||
| Error-value = 37 (Invalid SRv6 SID Structure) | ||||
| 19 Invalid Operation | ||||
| Error-value = 19 (Attempted SRv6 when the | ||||
| capability was not advertised) | ||||
| IANA is requested to make new allocations in the PCEP-ERROR Object | IANA has allocated the following Error-values in the "PCEP-ERROR | |||
| Error Types and Values registry for the following new error-values. | Object Error Types and Values" registry within the "Path Computation | |||
| Element Protocol (PCEP) Numbers" registry group: | ||||
| Error-Type Meaning | +============+=================+===================================+ | |||
| ---------- ------- | | Error-Type | Meaning | Error-value | | |||
| 10 Reception of an invalid object | +============+=================+===================================+ | |||
| Error-value = TBD (Unsupported number of | | 10 | Reception of an | 34: Missing PCE-SRv6-CAPABILITY | | |||
| SRv6-ERO subobjects) | | | invalid object | sub-TLV | | |||
| Error-value = TBD (Unsupported NAI Type | | | +-----------------------------------+ | |||
| in the SRv6-ERO/SRv6-RRO subobject) | | | | 35: Both SID and NAI are absent | | |||
| Error-value = TBD (Both SID and NAI are | | | | in SRv6-RRO subobject | | |||
| absent in the SRv6-ERO subobject) | | | +-----------------------------------+ | |||
| Error-value = TBD (ERO mixes SRv6-ERO | | | | 36: RRO mixes SRv6-RRO subobjects | | |||
| subobjects with other subobject types) | | | | with other subobject types | | |||
| Error-value = TBD (Unsupported number | | | +-----------------------------------+ | |||
| of SRv6-ERO subobjects) | | | | 37: Invalid SRv6 SID Structure | | |||
| | | +-----------------------------------+ | ||||
| | | | 40: Unsupported number of | | ||||
| | | | SRv6-ERO subobjects | | ||||
| | | +-----------------------------------+ | ||||
| | | | 41: Unsupported NAI Type in the | | ||||
| | | | SRv6-ERO/SRv6-RRO subobject | | ||||
| | | +-----------------------------------+ | ||||
| | | | 42: Both SID and NAI are absent | | ||||
| | | | in the SRv6-ERO subobject | | ||||
| | | +-----------------------------------+ | ||||
| | | | 43: ERO mixes SRv6-ERO subobjects | | ||||
| | | | with other subobject types | | ||||
| +------------+-----------------+-----------------------------------+ | ||||
| | 19 | Invalid | 19: Attempted SRv6 when the | | ||||
| | | Operation | capability was not advertised | | ||||
| +------------+-----------------+-----------------------------------+ | ||||
| 10. References | Table 9 | |||
| 10.1. Normative References | 9. References | |||
| 9.1. Normative References | ||||
| [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., | |||
| and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP | |||
| Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, | |||
| <https://www.rfc-editor.org/rfc/rfc3209>. | <https://www.rfc-editor.org/info/rfc3209>. | |||
| [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation | |||
| Element (PCE) Communication Protocol (PCEP)", RFC 5440, | Element (PCE) Communication Protocol (PCEP)", RFC 5440, | |||
| DOI 10.17487/RFC5440, March 2009, | DOI 10.17487/RFC5440, March 2009, | |||
| <https://www.rfc-editor.org/rfc/rfc5440>. | <https://www.rfc-editor.org/info/rfc5440>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path | |||
| Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
| Extensions for Stateful PCE", RFC 8231, | Extensions for Stateful PCE", RFC 8231, | |||
| DOI 10.17487/RFC8231, September 2017, | DOI 10.17487/RFC8231, September 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8231>. | <https://www.rfc-editor.org/info/rfc8231>. | |||
| [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | [RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path | |||
| Computation Element Communication Protocol (PCEP) | Computation Element Communication Protocol (PCEP) | |||
| Extensions for PCE-Initiated LSP Setup in a Stateful PCE | Extensions for PCE-Initiated LSP Setup in a Stateful PCE | |||
| Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | Model", RFC 8281, DOI 10.17487/RFC8281, December 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
| [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | |||
| Hardwick, "Conveying Path Setup Type in PCE Communication | Hardwick, "Conveying Path Setup Type in PCE Communication | |||
| Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | |||
| July 2018, <https://www.rfc-editor.org/rfc/rfc8408>. | July 2018, <https://www.rfc-editor.org/info/rfc8408>. | |||
| [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | [RFC8491] Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | |||
| "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, | "Signaling Maximum SID Depth (MSD) Using IS-IS", RFC 8491, | |||
| DOI 10.17487/RFC8491, November 2018, | DOI 10.17487/RFC8491, November 2018, | |||
| <https://www.rfc-editor.org/rfc/rfc8491>. | <https://www.rfc-editor.org/info/rfc8491>. | |||
| [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, | |||
| "PCEPS: Usage of TLS to Provide a Secure Transport for the | "PCEPS: Usage of TLS to Provide a Secure Transport for the | |||
| Path Computation Element Communication Protocol (PCEP)", | Path Computation Element Communication Protocol (PCEP)", | |||
| RFC 8253, DOI 10.17487/RFC8253, October 2017, | RFC 8253, DOI 10.17487/RFC8253, October 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8253>. | <https://www.rfc-editor.org/info/rfc8253>. | |||
| [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., | |||
| and J. Hardwick, "Path Computation Element Communication | and J. Hardwick, "Path Computation Element Communication | |||
| Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | Protocol (PCEP) Extensions for Segment Routing", RFC 8664, | |||
| DOI 10.17487/RFC8664, December 2019, | DOI 10.17487/RFC8664, December 2019, | |||
| <https://www.rfc-editor.org/rfc/rfc8664>. | <https://www.rfc-editor.org/info/rfc8664>. | |||
| [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | [RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, | |||
| D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 | |||
| (SRv6) Network Programming", RFC 8986, | (SRv6) Network Programming", RFC 8986, | |||
| DOI 10.17487/RFC8986, February 2021, | DOI 10.17487/RFC8986, February 2021, | |||
| <https://www.rfc-editor.org/rfc/rfc8986>. | <https://www.rfc-editor.org/info/rfc8986>. | |||
| [RFC9514] Dawra, G., Filsfils, C., Talaulikar, K., Ed., Chen, M., | [RFC9514] Dawra, G., Filsfils, C., Talaulikar, K., Ed., Chen, M., | |||
| Bernier, D., and B. Decraene, "Border Gateway Protocol - | Bernier, D., and B. Decraene, "Border Gateway Protocol - | |||
| Link State (BGP-LS) Extensions for Segment Routing over | Link State (BGP-LS) Extensions for Segment Routing over | |||
| IPv6 (SRv6)", RFC 9514, DOI 10.17487/RFC9514, December | IPv6 (SRv6)", RFC 9514, DOI 10.17487/RFC9514, December | |||
| 2023, <https://www.rfc-editor.org/rfc/rfc9514>. | 2023, <https://www.rfc-editor.org/info/rfc9514>. | |||
| [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/rfc/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 10.2. Informative References | 9.2. Informative References | |||
| [RFC4657] Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation | [RFC4657] Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation | |||
| Element (PCE) Communication Protocol Generic | Element (PCE) Communication Protocol Generic | |||
| Requirements", RFC 4657, DOI 10.17487/RFC4657, September | Requirements", RFC 4657, DOI 10.17487/RFC4657, September | |||
| 2006, <https://www.rfc-editor.org/rfc/rfc4657>. | 2006, <https://www.rfc-editor.org/info/rfc4657>. | |||
| [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | [RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of | |||
| BGP, LDP, PCEP, and MSDP Issues According to the Keying | BGP, LDP, PCEP, and MSDP Issues According to the Keying | |||
| and Authentication for Routing Protocols (KARP) Design | and Authentication for Routing Protocols (KARP) Design | |||
| Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013, | |||
| <https://www.rfc-editor.org/rfc/rfc6952>. | <https://www.rfc-editor.org/info/rfc6952>. | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
| Code: The Implementation Status Section", BCP 205, | ||||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
| <https://www.rfc-editor.org/rfc/rfc7942>. | ||||
| [RFC8051] Zhang, X., Ed. and I. Minei, Ed., "Applicability of a | [RFC8051] Zhang, X., Ed. and I. Minei, Ed., "Applicability of a | |||
| Stateful Path Computation Element (PCE)", RFC 8051, | Stateful Path Computation Element (PCE)", RFC 8051, | |||
| DOI 10.17487/RFC8051, January 2017, | DOI 10.17487/RFC8051, January 2017, | |||
| <https://www.rfc-editor.org/rfc/rfc8051>. | <https://www.rfc-editor.org/info/rfc8051>. | |||
| [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | |||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
| Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | |||
| July 2018, <https://www.rfc-editor.org/rfc/rfc8402>. | July 2018, <https://www.rfc-editor.org/info/rfc8402>. | |||
| [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/rfc/rfc8754>. | <https://www.rfc-editor.org/info/rfc8754>. | |||
| [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, | [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, | |||
| A., and P. Mattes, "Segment Routing Policy Architecture", | A., and P. Mattes, "Segment Routing Policy Architecture", | |||
| RFC 9256, DOI 10.17487/RFC9256, July 2022, | RFC 9256, DOI 10.17487/RFC9256, July 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9256>. | <https://www.rfc-editor.org/info/rfc9256>. | |||
| [RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B., | [RFC9352] Psenak, P., Ed., Filsfils, C., Bashandy, A., Decraene, B., | |||
| and Z. Hu, "IS-IS Extensions to Support Segment Routing | and Z. Hu, "IS-IS Extensions to Support Segment Routing | |||
| over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352, | over the IPv6 Data Plane", RFC 9352, DOI 10.17487/RFC9352, | |||
| February 2023, <https://www.rfc-editor.org/rfc/rfc9352>. | February 2023, <https://www.rfc-editor.org/info/rfc9352>. | |||
| [I-D.ietf-pce-pcep-yang] | [PCEP-YANG] | |||
| Dhody, D., Beeram, V. P., Hardwick, J., and J. Tantsura, | Dhody, D., Ed., Beeram, V., Hardwick, J., and J. Tantsura, | |||
| "A YANG Data Model for Path Computation Element | "A YANG Data Model for Path Computation Element | |||
| Communications Protocol (PCEP)", Work in Progress, | Communications Protocol (PCEP)", Work in Progress, | |||
| Internet-Draft, draft-ietf-pce-pcep-yang-23, 18 March | Internet-Draft, draft-ietf-pce-pcep-yang-25, 21 May 2024, | |||
| 2024, <https://datatracker.ietf.org/doc/html/draft-ietf- | <https://datatracker.ietf.org/doc/html/draft-ietf-pce- | |||
| pce-pcep-yang-23>. | pcep-yang-25>. | |||
| [I-D.ietf-pce-pcep-srv6-yang] | [PCEP-SRv6-YANG] | |||
| Li, C., Sivabalan, S., Peng, S., Koldychev, M., and L. | Li, C., Sivabalan, S., Peng, S., Koldychev, M., and L. | |||
| Ndifor, "A YANG Data Model for Segment Routing (SR) Policy | Ndifor, "A YANG Data Model for Segment Routing (SR) Policy | |||
| and SR in IPv6 (SRv6) support in Path Computation Element | and SR in IPv6 (SRv6) support in Path Computation Element | |||
| Communications Protocol (PCEP)", Work in Progress, | Communications Protocol (PCEP)", Work in Progress, | |||
| Internet-Draft, draft-ietf-pce-pcep-srv6-yang-05, 18 March | Internet-Draft, draft-ietf-pce-pcep-srv6-yang-05, 18 March | |||
| 2024, <https://datatracker.ietf.org/doc/html/draft-ietf- | 2024, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| pce-pcep-srv6-yang-05>. | pce-pcep-srv6-yang-05>. | |||
| Acknowledgements | Acknowledgements | |||
| The authors would like to thank Jeff Tantsura, Adrian Farrel, Aijun | The authors would like to thank Jeff Tantsura, Adrian Farrel, Aijun | |||
| Wang, Khasanov Boris, Ketan Talaulikar, Martin Vigoureux, Hariharan | Wang, Khasanov Boris, Ketan Talaulikar, Martin Vigoureux, Hariharan | |||
| Ananthakrishnan, Xinyue Zhang, John Scudder, Julien Meuric and Robert | Ananthakrishnan, Xinyue Zhang, John Scudder, Julien Meuric, and | |||
| Varga for valuable suggestions. | Robert Varga for valuable suggestions. | |||
| Thanks to Gunter Van de Velde, Eric Vyncke, Jim Guichard, and Mahesh | Thanks to Gunter Van de Velde, Éric Vyncke, Jim Guichard, and Mahesh | |||
| Jethanandani for their comments during the IESG review. | Jethanandani for their comments during the IESG review. | |||
| Contributors | Contributors | |||
| Mahendra Singh Negi | Mahendra Singh Negi | |||
| RtBrick Inc | RtBrick Inc | |||
| Bangalore | Bangalore | |||
| Karnataka | Karnataka | |||
| India | India | |||
| Email: mahend.ietf@gmail.com | Email: mahend.ietf@gmail.com | |||
| skipping to change at page 27, line 4 ¶ | skipping to change at line 1175 ¶ | |||
| India | India | |||
| Email: dhruv.ietf@gmail.com | Email: dhruv.ietf@gmail.com | |||
| Huang Wumin | Huang Wumin | |||
| Huawei Technologies | Huawei Technologies | |||
| Huawei Building, No. 156 Beiqing Rd. | Huawei Building, No. 156 Beiqing Rd. | |||
| Beijing | Beijing | |||
| 100095 | 100095 | |||
| China | China | |||
| Email: huangwumin@huawei.com | Email: huangwumin@huawei.com | |||
| Shuping Peng | Shuping Peng | |||
| Huawei Technologies | Huawei Technologies | |||
| Huawei Building, No. 156 Beiqing Rd. | Huawei Building, No. 156 Beiqing Rd. | |||
| Beijing | Beijing | |||
| 100095 | 100095 | |||
| China | China | |||
| Email: pengshuping@huawei.com | Email: pengshuping@huawei.com | |||
| Ran Chen | Ran Chen | |||
| ZTE Corporation | ZTE Corporation | |||
| China | China | |||
| Email: chen.ran@zte.com.cn | Email: chen.ran@zte.com.cn | |||
| Authors' Addresses | Authors' Addresses | |||
| Cheng Li(Editor) | Cheng Li (editor) | |||
| Huawei Technologies | Huawei Technologies | |||
| Huawei Campus, No. 156 Beiqing Rd. | Huawei Campus, No. 156 Beiqing Rd. | |||
| Beijing | Beijing | |||
| 100095 | 100095 | |||
| China | China | |||
| Email: c.l@huawei.com | Email: c.l@huawei.com | |||
| Additional contact information: | ||||
| 李呈 (editor) | ||||
| 中国 | ||||
| 100095 | ||||
| 北京 | ||||
| 华为北研所 | ||||
| 华为技术有限公司 | ||||
| Prejeeth Kaladharan | Prejeeth Kaladharan | |||
| RtBrick Inc | RtBrick Inc | |||
| Bangalore | Bangalore | |||
| Karnataka | Karnataka | |||
| India | India | |||
| Email: prejeeth@rtbrick.com | Email: prejeeth@rtbrick.com | |||
| Siva Sivabalan | Siva Sivabalan | |||
| Ciena Corporation | Ciena Corporation | |||
| Email: msiva282@gmail.com | Email: msiva282@gmail.com | |||
| Mike Koldychev | Mike Koldychev | |||
| Cisco Systems, Inc. | Ciena Corporation | |||
| Canada | Canada | |||
| Email: mkoldych@cisco.com | Email: mkoldych@ciena.com | |||
| Yongqing Zhu | Yongqing Zhu | |||
| China Telecom | China Telecom | |||
| 109 West Zhongshan Ave, Tianhe District | 109 West Zhongshan Ave, Tianhe District | |||
| Bangalore | Bangalore | |||
| Guangzhou, | Guangzhou, | |||
| P.R. China | China | |||
| Email: zhuyq8@chinatelecom.cn | Email: zhuyq8@chinatelecom.cn | |||
| End of changes. 194 change blocks. | ||||
| 565 lines changed or deleted | 551 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||