| < draft-ietf-pce-segment-routing-12.txt | draft-ietf-pce-segment-routing-13.txt > | |||
|---|---|---|---|---|
| PCE S. Sivabalan | PCE S. Sivabalan | |||
| Internet-Draft C. Filsfils | Internet-Draft C. Filsfils | |||
| Intended status: Standards Track Cisco Systems, Inc. | Intended status: Standards Track Cisco Systems, Inc. | |||
| Expires: December 31, 2018 J. Tantsura | Expires: April 15, 2019 J. Tantsura | |||
| Individual | Individual | |||
| W. Henderickx | W. Henderickx | |||
| Nokia | Nokia | |||
| J. Hardwick | J. Hardwick | |||
| Metaswitch Networks | Metaswitch Networks | |||
| June 29, 2018 | October 12, 2018 | |||
| PCEP Extensions for Segment Routing | PCEP Extensions for Segment Routing | |||
| draft-ietf-pce-segment-routing-12 | draft-ietf-pce-segment-routing-13 | |||
| Abstract | Abstract | |||
| Segment Routing (SR) enables any head-end node to select any path | Segment Routing (SR) enables any head-end node to select any path | |||
| without relying on a hop-by-hop signaling technique (e.g., LDP or | without relying on a hop-by-hop signaling technique (e.g., LDP or | |||
| RSVP-TE). It depends only on "segments" that are advertised by Link- | RSVP-TE). It depends only on "segments" that are advertised by Link- | |||
| State Interior Gateway Protocols (IGPs). A Segment Routed Path can | State Interior Gateway Protocols (IGPs). A Segment Routed Path can | |||
| be derived from a variety of mechanisms, including an IGP Shortest | be derived from a variety of mechanisms, including an IGP Shortest | |||
| Path Tree (SPT), explicit configuration, or a Path Computation | Path Tree (SPT), explicit configuration, or a Path Computation | |||
| Element (PCE). This document specifies extensions to the Path | Element (PCE). This document specifies extensions to the Path | |||
| Computation Element Protocol (PCEP) that allow a stateful PCE to | Computation Element Communication Protocol (PCEP) that allow a | |||
| compute and initiate Traffic Engineering (TE) paths, as well as a PCC | stateful PCE to compute and initiate Traffic Engineering (TE) paths, | |||
| to request a path subject to certain constraints and optimization | as well as a PCC to request a path subject to certain constraints and | |||
| criteria in SR networks. | optimization criteria in SR networks. | |||
| Requirements Language | 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 BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 31, 2018. | This Internet-Draft will expire on April 15, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Overview of PCEP Operation in SR Networks . . . . . . . . . . 5 | 3. Overview of PCEP Operation in SR Networks . . . . . . . . . . 5 | |||
| 4. SR-Specific PCEP Message Extensions . . . . . . . . . . . . . 7 | 4. SR-Specific PCEP Message Extensions . . . . . . . . . . . . . 7 | |||
| 5. Object Formats . . . . . . . . . . . . . . . . . . . . . . . 7 | 5. Object Formats . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1. The OPEN Object . . . . . . . . . . . . . . . . . . . . . 7 | 5.1. The OPEN Object . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1.1. The SR PCE Capability sub-TLV . . . . . . . . . . . . 7 | 5.1.1. The SR PCE Capability sub-TLV . . . . . . . . . . . . 7 | |||
| 5.2. The RP/SRP Object . . . . . . . . . . . . . . . . . . . . 8 | 5.2. The RP/SRP Object . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.3. ERO . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 5.3. ERO . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3.1. SR-ERO Subobject . . . . . . . . . . . . . . . . . . 9 | 5.3.1. SR-ERO Subobject . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3.2. NAI Associated with SID . . . . . . . . . . . . . . . 11 | 5.3.2. NAI Associated with SID . . . . . . . . . . . . . . . 11 | |||
| 5.4. RRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.4. RRO . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.5. METRIC Object . . . . . . . . . . . . . . . . . . . . . . 13 | 5.5. METRIC Object . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 6. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 6.1. Exchanging the SR PCE Capability . . . . . . . . . . . . 13 | 6.1. Exchanging the SR PCE Capability . . . . . . . . . . . . 14 | |||
| 6.2. ERO Processing . . . . . . . . . . . . . . . . . . . . . 15 | 6.2. ERO Processing . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.2.1. SR-ERO Validation . . . . . . . . . . . . . . . . . . 15 | 6.2.1. SR-ERO Validation . . . . . . . . . . . . . . . . . . 15 | |||
| 6.2.2. Interpreting the SR-ERO . . . . . . . . . . . . . . . 17 | 6.2.2. Interpreting the SR-ERO . . . . . . . . . . . . . . . 17 | |||
| 6.3. RRO Processing . . . . . . . . . . . . . . . . . . . . . 20 | 6.3. RRO Processing . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 20 | 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 19 | |||
| 8. Management Considerations . . . . . . . . . . . . . . . . . . 21 | 8. Management Considerations . . . . . . . . . . . . . . . . . . 20 | |||
| 8.1. Controlling the Path Setup Type . . . . . . . . . . . . . 21 | 8.1. Controlling the Path Setup Type . . . . . . . . . . . . . 20 | |||
| 8.2. Migrating a Network to Use PCEP Segment Routed Paths . . 22 | 8.2. Migrating a Network to Use PCEP Segment Routed Paths . . 21 | |||
| 8.3. Verification of Network Operation . . . . . . . . . . . . 23 | 8.3. Verification of Network Operation . . . . . . . . . . . . 22 | |||
| 8.4. Relationship to Existing Management Models . . . . . . . 24 | 8.4. Relationship to Existing Management Models . . . . . . . 23 | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 9. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 10.1. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 24 | 10.1. PCEP ERO and RRO subobjects . . . . . . . . . . . . . . 24 | |||
| 10.2. New NAI Type Registry . . . . . . . . . . . . . . . . . 24 | 10.2. New NAI Type Registry . . . . . . . . . . . . . . . . . 24 | |||
| 10.3. New SR-ERO Flag Registry . . . . . . . . . . . . . . . . 25 | 10.3. New SR-ERO Flag Registry . . . . . . . . . . . . . . . . 24 | |||
| 10.4. PCEP-Error Object . . . . . . . . . . . . . . . . . . . 25 | 10.4. PCEP-Error Object . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.5. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 27 | 10.5. PCEP TLV Type Indicators . . . . . . . . . . . . . . . . 26 | |||
| 10.6. New Path Setup Type . . . . . . . . . . . . . . . . . . 27 | 10.6. New Path Setup Type . . . . . . . . . . . . . . . . . . 26 | |||
| 10.7. New Metric Type . . . . . . . . . . . . . . . . . . . . 27 | 10.7. New Metric Type . . . . . . . . . . . . . . . . . . . . 27 | |||
| 10.8. SR PCE Capability Flags . . . . . . . . . . . . . . . . 27 | 10.8. SR PCE Capability Flags . . . . . . . . . . . . . . . . 27 | |||
| 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 28 | 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 13.1. Normative References . . . . . . . . . . . . . . . . . . 28 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 28 | |||
| 13.2. Informative References . . . . . . . . . . . . . . . . . 30 | 13.2. Informative References . . . . . . . . . . . . . . . . . 30 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 1. Introduction | 1. Introduction | |||
| Segment Routing (SR) technology leverages the source routing and | Segment Routing (SR) technology leverages the source routing and | |||
| tunneling paradigms. A source node can choose a path without relying | tunneling paradigms. A source node can choose a path without relying | |||
| on hop-by-hop signaling protocols such as LDP or RSVP-TE. Each path | on hop-by-hop signaling protocols such as LDP or RSVP-TE. Each path | |||
| is specified as a set of "segments" advertised by link-state routing | is specified as a set of "segments" advertised by link-state routing | |||
| protocols (IS-IS or OSPF). [I-D.ietf-spring-segment-routing] | protocols (IS-IS or OSPF). [RFC8402] provides an introduction to the | |||
| provides an introduction to the SR architecture. The corresponding | SR architecture. The corresponding IS-IS and OSPF extensions are | |||
| IS-IS and OSPF extensions are specified in | specified in [I-D.ietf-isis-segment-routing-extensions] and | |||
| [I-D.ietf-isis-segment-routing-extensions] and | ||||
| [I-D.ietf-ospf-segment-routing-extensions], respectively. The SR | [I-D.ietf-ospf-segment-routing-extensions], respectively. The SR | |||
| architecture defines a "segment" as a piece of information advertised | architecture defines a "segment" as a piece of information advertised | |||
| by a link-state routing protocols, e.g., an IGP prefix or an IGP | by a link-state routing protocols, e.g., an IGP prefix or an IGP | |||
| adjacency. Several types of segments are defined. A Node segment | adjacency. Several types of segments are defined. A Node segment | |||
| represents an ECMP-aware shortest-path computed by IGP to a specific | represents an ECMP-aware shortest-path computed by IGP to a specific | |||
| node, and is always identified uniquely within the SR/IGP domain. An | node, and is always identified uniquely within the SR/IGP domain. An | |||
| Adjacency Segment represents a unidirectional adjacency. An | Adjacency Segment represents a unidirectional adjacency. An | |||
| Adjacency Segment is local to the node which advertises it. Both | Adjacency Segment is local to the node which advertises it. Both | |||
| Node segments and Adjacency segments can be used for SR Traffic | Node segments and Adjacency segments can be used for SR Traffic | |||
| Engineering (SR-TE). | Engineering (SR-TE). | |||
| skipping to change at page 4, line 10 ¶ | skipping to change at page 4, line 10 ¶ | |||
| case an SR path corresponds to an MPLS Label Switching Path (LSP). | case an SR path corresponds to an MPLS Label Switching Path (LSP). | |||
| This document is relevant to the MPLS forwarding plane only. In this | This document is relevant to the MPLS forwarding plane only. In this | |||
| document, "Node-SID" and "Adjacency-SID" denote Node Segment | document, "Node-SID" and "Adjacency-SID" denote Node Segment | |||
| Identifier and Adjacency Segment Identifier respectively. | Identifier and Adjacency Segment Identifier respectively. | |||
| A Segment Routed path (SR path) can be derived from an IGP Shortest | A Segment Routed path (SR path) can be derived from an IGP Shortest | |||
| Path Tree (SPT). SR-TE paths may not follow an IGP SPT. Such paths | Path Tree (SPT). SR-TE paths may not follow an IGP SPT. Such paths | |||
| may be chosen by a suitable network planning tool and provisioned on | may be chosen by a suitable network planning tool and provisioned on | |||
| the ingress node of the SR-TE path. | the ingress node of the SR-TE path. | |||
| [RFC5440] describes the Path Computation Element Protocol (PCEP) for | [RFC5440] describes the Path Computation Element Communication | |||
| communication between a Path Computation Client (PCC) and a Path | Protocol (PCEP) for communication between a Path Computation Client | |||
| Computation Element (PCE) or between a pair of PCEs. A PCE computes | (PCC) and a Path Computation Element (PCE) or between a pair of PCEs. | |||
| paths for MPLS Traffic Engineering LSPs (MPLS-TE LSPs) based on | A PCE computes paths for MPLS Traffic Engineering LSPs (MPLS-TE LSPs) | |||
| various constraints and optimization criteria. [RFC8231] specifies | based on various constraints and optimization criteria. [RFC8231] | |||
| extensions to PCEP that allow a stateful PCE to compute and recommend | specifies extensions to PCEP that allow a stateful PCE to compute and | |||
| network paths in compliance with [RFC4657] and defines objects and | recommend network paths in compliance with [RFC4657] and defines | |||
| TLVs for MPLS-TE LSPs. Stateful PCEP extensions provide | objects and TLVs for MPLS-TE LSPs. Stateful PCEP extensions provide | |||
| synchronization of LSP state between a PCC and a PCE or between a | synchronization of LSP state between a PCC and a PCE or between a | |||
| pair of PCEs, delegation of LSP control, reporting of LSP state from | pair of PCEs, delegation of LSP control, reporting of LSP state from | |||
| a PCC to a PCE, controlling the setup and path routing of an LSP from | a PCC to a PCE, controlling the setup and path routing of an LSP from | |||
| a PCE to a PCC. Stateful PCEP extensions are intended for an | a PCE to a PCC. Stateful PCEP extensions are intended for an | |||
| operational model in which LSPs are configured on the PCC, and | 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]. This mechanism is useful in Software Defined | specified in [RFC8281]. This mechanism is useful in Software Defined | |||
| skipping to change at page 4, line 39 ¶ | skipping to change at page 4, line 39 ¶ | |||
| bandwidth calendaring. | bandwidth calendaring. | |||
| It is possible to use a stateful PCE for computing one or more SR-TE | It is possible to use a stateful PCE for computing one or more SR-TE | |||
| paths taking into account various constraints and objective | paths taking into account various constraints and objective | |||
| functions. Once a path is chosen, the stateful PCE can initiate an | functions. Once a path is chosen, the stateful PCE can initiate an | |||
| SR-TE path on a PCC using PCEP extensions specified in [RFC8281] | SR-TE path on a PCC using PCEP extensions specified in [RFC8281] | |||
| using the SR specific PCEP extensions specified in this document. | using the SR specific PCEP extensions specified in this document. | |||
| Additionally, using procedures described in this document, a PCC can | Additionally, using procedures described in this document, a PCC can | |||
| request an SR path from either a stateful or a stateless PCE. | request an SR path from either a stateful or a stateless PCE. | |||
| This specification relies on the procedures specified in | This specification relies on the procedures specified in [RFC8408] to | |||
| [I-D.ietf-pce-lsp-setup-type] to exchange the segment routing | exchange the segment routing capability and to specify that the path | |||
| capability and to specify that the path setup type of an LSP is | setup type of an LSP is segment routing. | |||
| segment routing. | ||||
| This specification provides a mechanism for a network controller | ||||
| (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 | ||||
| information on the SR Policy Architecture, see | ||||
| [I-D.ietf-spring-segment-routing-policy]. | ||||
| 2. Terminology | 2. Terminology | |||
| The following terminologies are used in this document: | The following terminologies are used in this document: | |||
| ERO: Explicit Route Object | ERO: Explicit Route Object | |||
| IGP: Interior Gateway Protocol | IGP: Interior Gateway Protocol | |||
| IS-IS: Intermediate System to Intermediate System | IS-IS: Intermediate System to Intermediate System | |||
| skipping to change at page 5, line 4 ¶ | skipping to change at page 5, line 14 ¶ | |||
| 2. Terminology | 2. Terminology | |||
| The following terminologies are used in this document: | The following terminologies are used in this document: | |||
| ERO: Explicit Route Object | ERO: Explicit Route Object | |||
| IGP: Interior Gateway Protocol | IGP: Interior Gateway Protocol | |||
| IS-IS: Intermediate System to Intermediate System | IS-IS: Intermediate System to Intermediate System | |||
| LSR: Label Switching Router | LSR: Label Switching Router | |||
| MSD: Maximum SID Depth | MSD: Maximum SID Depth | |||
| NAI: Node or Adjacency Identifier | NAI: Node or Adjacency Identifier | |||
| OSPF: Open Shortest Path First | OSPF: Open Shortest Path First | |||
| PCC: Path Computation Client | PCC: Path Computation Client | |||
| PCE: Path Computation Element | PCE: Path Computation Element | |||
| PCEP: Path Computation Element Protocol | PCEP: Path Computation Element Communication Protocol | |||
| RRO: Record Route Object | RRO: Record Route Object | |||
| SID: Segment Identifier | SID: Segment Identifier | |||
| SR: Segment Routing | SR: Segment Routing | |||
| SR-TE: Segment Routed Traffic Engineering | SR-DB: Segment Routing Database (as defined in | |||
| [I-D.ietf-spring-segment-routing-policy]) | ||||
| SR-TE: Segment Routing Traffic Engineering | ||||
| 3. Overview of PCEP Operation in SR Networks | 3. Overview of PCEP Operation in SR Networks | |||
| In an SR network, the ingress node of an SR path prepends an SR | In an SR network, the ingress node of an SR path prepends an SR | |||
| header to all outgoing packets. The SR header consists of a list of | header to all outgoing packets. The SR header consists of a list of | |||
| SIDs (or MPLS labels in the context of this document). The header | SIDs (or MPLS labels in the context of this document). The header | |||
| has all necessary information so that, in combination with the | has all necessary information so that, in combination with the | |||
| information distributed by the IGP, the packets can be guided from | information distributed by the IGP, the packets can be guided from | |||
| the ingress node to the egress node of the path; hence, there is no | the ingress node to the egress node of the path; hence, there is no | |||
| need for any signaling protocol. | need for any signaling protocol. | |||
| In PCEP messages, LSP route information is carried in the Explicit | In PCEP messages, LSP route information is carried in the Explicit | |||
| Route Object (ERO), which consists of a sequence of subobjects. In | Route Object (ERO), which consists of a sequence of subobjects. In | |||
| SR networks, an ingress node of an SR path prepends an SR header to | SR networks, an ingress node of an SR path prepends an SR header to | |||
| all outgoing packets. The SR header consists of a list of SIDs (or | all outgoing packets. The SR header consists of a list of SIDs (or | |||
| MPLS labels in the context of this document). SR-TE paths computed | MPLS labels in the context of this document). SR-TE paths computed | |||
| by a PCE can be represented in an ERO in one of the following forms: | by a PCE can be represented in an ERO in one of the following forms: | |||
| o An ordered set of IP addresses representing network nodes/links: | o An ordered set of IP addresses representing network nodes/links. | |||
| In this case, the PCC needs to convert the IP addresses into the | ||||
| corresponding MPLS labels by consulting its Link State Database | ||||
| (LSDB). | ||||
| o An ordered set of SIDs, with or without the corresponding IP | o An ordered set of SIDs, with or without the corresponding IP | |||
| addresses. | addresses. | |||
| o An ordered set of MPLS labels and IP addresses: In this case, the | o An ordered set of MPLS labels, with or without corresponding IP | |||
| PCC needs to convert the IP addresses into the corresponding SIDs | address. | |||
| by consulting its LSDB. | ||||
| The PCC converts these into an MPLS label stack and next hop, as | ||||
| described in Section 6.2.2. | ||||
| This document defines a new ERO subobject denoted by "SR-ERO | This document defines a new ERO subobject denoted by "SR-ERO | |||
| subobject" capable of carrying a SID as well as the identity of the | subobject" capable of carrying a SID as well as the identity of the | |||
| node/adjacency represented by the SID. SR-capable PCEP speakers | node/adjacency represented by the SID. SR-capable PCEP speakers | |||
| should be able to generate and/or process such ERO subobject. An ERO | should be able to generate and/or process such ERO subobject. An 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]. | (PCRpt) messages defined in [RFC8231]. | |||
| 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 capabilites to indicate their ability to | speakers exchange their capabilities to indicate their ability to | |||
| support SR-specific functionality. | support SR-specific functionality. | |||
| An PCE can update an LSP that is initially established via RSVP-TE | A PCE can update an LSP that is initially established via RSVP-TE | |||
| signaling to use an SR-TE path, by sending a PCUpd to the PCC that | signaling to use an SR-TE path, by sending a PCUpd to the PCC that | |||
| delegated the LSP to it ([RFC8231]). Similarly, an LSP initially | delegated the LSP to it ([RFC8231]). A PCC can update an undelegated | |||
| created with an SR-TE path can be updated to use RSVP-TE signaling, | LSP that is initially established via RSVP-TE signaling to use an SR- | |||
| if necessary. This capability is useful when a network is migrated | TE path as follows. First, it requests an SR-TE Path from a PCE by | |||
| from RSVP-TE to SR-TE technology. | sending a PCReq message. If it receives a suitable path, it | |||
| establishes the path in the data plane, and then tears down the | ||||
| original RSVP-TE path. If the PCE is stateful, then the PCC sends | ||||
| PCRpt messages indicating that the new path is set up and the old | ||||
| path is torn down, per [RFC8231]. | ||||
| Similarly, a PCE or PCC can update an LSP initially created with an | ||||
| SR-TE path to use RSVP-TE signaling, if necessary. This capability | ||||
| is useful for rolling back a change when a network is migrated from | ||||
| RSVP-TE to SR-TE technology. | ||||
| A PCC MAY include an RRO containing the recorded LSP in PCReq and | A PCC MAY include an RRO containing the recorded LSP in PCReq and | |||
| PCRpt messages as specified in [RFC5440] and [RFC8231], respectively. | PCRpt messages as specified in [RFC5440] and [RFC8231], respectively. | |||
| This document defines a new RRO subobject for SR networks. The | This document defines a new RRO subobject for SR networks. The | |||
| methods used by a PCC to record the SR-TE LSP are outside the scope | methods used by a PCC to record the SR-TE LSP are outside the scope | |||
| of this document. | of this document. | |||
| In summary, this document: | In summary, this document: | |||
| o Defines a new ERO subobject, a new RRO subobject and new PCEP | o Defines a new ERO subobject, a new RRO subobject and new PCEP | |||
| error codes. | error codes. | |||
| o Specifies how two PCEP speakers can establish a PCEP session that | o Specifies how two PCEP speakers can establish a PCEP session that | |||
| can carry information about SR-TE paths. | can carry information about SR-TE paths. | |||
| o Specifies processing rules for the ERO subobject. | o Specifies processing rules for the ERO subobject. | |||
| o Defines a new path setup type to be used in the PATH_SETUP_TYPE | o Defines a new path setup type to be used in the PATH-SETUP-TYPE | |||
| and PATH_SETUP_TYPE_CAPABILITY TLVs | and PATH-SETUP-TYPE-CAPABILITY TLVs ([RFC8408]). | |||
| ([I-D.ietf-pce-lsp-setup-type]). | ||||
| o Defines a new sub-TLV for the PATH_SETUP_TYPE_CAPABILITY TLV. | o Defines a new sub-TLV for the PATH-SETUP-TYPE-CAPABILITY TLV. | |||
| The extensions specified in this document complement the existing | The extensions specified in this document complement the existing | |||
| PCEP specifications to support SR-TE paths. As such, the PCEP | PCEP specifications to support SR-TE paths. As such, the PCEP | |||
| messages (e.g., Path Computation Request, Path Computation Reply, | messages (e.g., Path Computation Request, Path Computation Reply, | |||
| Path Computation Report, Path Computation Update, Path Computation | Path Computation Report, Path Computation Update, Path Computation | |||
| Initiate, etc.,) MUST be formatted according to [RFC5440], [RFC8231], | Initiate, etc.,) MUST be formatted according to [RFC5440], [RFC8231], | |||
| [RFC8281], and any other applicable PCEP specifications. | [RFC8281], and any other applicable PCEP specifications. | |||
| 4. SR-Specific PCEP Message Extensions | 4. SR-Specific PCEP Message Extensions | |||
| skipping to change at page 8, line 17 ¶ | skipping to change at page 8, line 26 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=26 | Length=4 | | | Type=26 | Length=4 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | Flags |N|L| MSD | | | Reserved | Flags |N|L| MSD | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: SR-PCE-CAPABILITY sub-TLV format | Figure 1: SR-PCE-CAPABILITY sub-TLV format | |||
| The code point for the TLV type is 26. The TLV length is 4 octets. | The code point for the TLV type is 26. The TLV length is 4 octets. | |||
| The 32-bit value is formatted as follows. The "Maximum SID Depth" (1 | The 32-bit value is formatted as follows. | |||
| octet) field (MSD) specifies the maximum number of SIDs (MPLS label | ||||
| stack depth in the context of this document) that a PCC is capable of | ||||
| imposing on a packet. The "Reserved" (2 octets) field is unused, and | ||||
| MUST be set to zero on transmission and ignored on reception. The | ||||
| "Flags" field is 1 octet long, and this document defines the | ||||
| following flags: | ||||
| o L flag: A PCC sets this flag to 1 to indicate that it does not | Reserved: MUST be set to zero by the sender and MUST be ignored by | |||
| impose any limit on the MSD. | the receiver. | |||
| o N flag: A PCC sets this flag to 1 to indicate that it is capable | Flags: This document defines the following flag bits. The other | |||
| of resolving a Node or Adjacency Identifier (NAI) to a SID. | bits MUST be set to zero by the sender and MUST be ignored by the | |||
| receiver. | ||||
| * N: A PCC sets this bit to 1 to indicate that it is capable of | ||||
| resolving a Node or Adjacency Identifier (NAI) to a SID. | ||||
| * L: A PCC sets this bit to 1 to indicate that it does not impose | ||||
| any limit on the MSD. | ||||
| Maximum SID Depth (MSD): specifies the maximum number of SIDs (MPLS | ||||
| label stack depth in the context of this document) that a PCC is | ||||
| capable of imposing on a packet. Section 6.1 explains the | ||||
| relationship between this field and the L bit. | ||||
| 5.2. The RP/SRP Object | 5.2. The RP/SRP Object | |||
| To set up an SR-TE LSP using SR, the RP or SRP object MUST include | To set up an SR-TE LSP using SR, the RP or SRP object MUST include | |||
| the PATH-SETUP-TYPE TLV, specified in [I-D.ietf-pce-lsp-setup-type], | the PATH-SETUP-TYPE TLV, specified in [RFC8408], with the PST set to | |||
| with the PST set to 1 (path setup using SR-TE). | 1 (path setup using SR-TE). | |||
| The LSP-IDENTIFIERS TLV MAY be present for the above PST type. | The LSP-IDENTIFIERS TLV MAY be present for the above PST type. | |||
| 5.3. ERO | 5.3. ERO | |||
| An SR-TE path consists of one or more SIDs where each SID MAY be | An SR-TE path consists of one or more SIDs where each SID MAY be | |||
| associated with the identifier that represents the node or adjacency | associated with the identifier that represents the node or adjacency | |||
| corresponding to the SID. This identifier is referred to as the | corresponding to the SID. This identifier is referred to as the | |||
| 'Node or Adjacency Identifier' (NAI). As described later, a NAI can | 'Node or Adjacency Identifier' (NAI). As described later, a NAI can | |||
| be represented in various formats (e.g., IPv4 address, IPv6 address, | be represented in various formats (e.g., IPv4 address, IPv6 address, | |||
| skipping to change at page 9, line 17 ¶ | skipping to change at page 9, line 33 ¶ | |||
| SID and NAI. However, at least one of them MUST be present. | SID and NAI. However, at least one of them MUST be present. | |||
| When building the MPLS label stack from ERO, a PCC MUST assume that | When building the MPLS label stack from ERO, a PCC MUST assume that | |||
| SR-ERO subobjects are organized as a last-in-first-out stack. The | SR-ERO subobjects are organized as a last-in-first-out stack. The | |||
| first subobject relative to the beginning of ERO contains the | first subobject relative to the beginning of ERO contains the | |||
| information about the topmost label. The last subobject contains | information about the topmost label. The last subobject contains | |||
| information about the bottommost label. | information about the bottommost label. | |||
| 5.3.1. SR-ERO Subobject | 5.3.1. SR-ERO Subobject | |||
| An SR-ERO subobject consists of a 32-bit header followed by the SID | An SR-ERO subobject is formatted as shown in the following diagram. | |||
| and/or the NAI associated with the SID. The SID is a 32-bit number. | ||||
| The size of the NAI depends on its respective type, as described in | ||||
| the following sections. At least one of the SID and the NAI MUST be | ||||
| included in the SR-ERO subobject, and both MAY be included. | ||||
| 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=36 | Length | NT | Flags |F|S|C|M| | |L| Type=36 | Length | NT | Flags |F|S|C|M| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID (optional) | | | SID (optional) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // NAI (variable, optional) // | // NAI (variable, optional) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: SR-ERO Subobject format | Figure 2: SR-ERO subobject format | |||
| The fields in the SR-ERO Subobject are as follows: | The fields in the SR-ERO Subobject are as follows: | |||
| The 'L' Flag indicates whether the subobject represents a loose-hop | The 'L' Flag: Indicates whether the subobject represents a loose-hop | |||
| in the LSP [RFC3209]. If this flag is set to zero, a PCC MUST NOT | in the LSP [RFC3209]. If this flag is set to zero, a PCC MUST NOT | |||
| overwrite the SID value present in the SR-ERO subobject. | overwrite the SID value present in the SR-ERO subobject. | |||
| Otherwise, a PCC MAY expand or replace one or more SID values in | Otherwise, a PCC MAY expand or replace one or more SID values in | |||
| the received SR-ERO based on its local policy. | the received SR-ERO based on its local policy. | |||
| Type is set to 36. | Type: Set to 36. | |||
| Length contains the total length of the subobject in octets, | Length: Contains the total length of the subobject in octets, | |||
| including the L, Type and Length fields. The Length MUST be at | including the L, Type and Length fields. The Length MUST be at | |||
| least 8, and MUST be a multiple of 4. As mentioned earlier, an | least 8, and MUST be a multiple of 4. An SR-ERO subobject MUST | |||
| SR-ERO subobject MUST contain at least one of a SID or an NAI. | contain at least one of a SID or an NAI. The length should | |||
| include the SID and NAI fields if and only if they are not absent. | ||||
| The length should include the SID and NAI fields if and only if | The flags described below indicate whether the SID or NAI fields | |||
| they are not absent. The flags described below indicate whether | are absent. | |||
| the SID or NAI fields are absent. | ||||
| NAI Type (NT) indicates the type and format of the NAI associated | NAI Type (NT): Indicates the type and format of the NAI contained in | |||
| with the SID contained in the object body. This document | the object body. This document describes the following NT values: | |||
| describes the following NT values: | ||||
| NT=0 The NAI is absent. | NT=0 The NAI is absent. | |||
| NT=1 The NAI is an IPv4 node ID. | NT=1 The NAI is an IPv4 node ID. | |||
| NT=2 The NAI is an IPv6 node ID. | NT=2 The NAI is an IPv6 node ID. | |||
| NT=3 The NAI is an IPv4 adjacency. | NT=3 The NAI is an IPv4 adjacency. | |||
| NT=4 The NAI is an IPv6 adjacency. | NT=4 The NAI is an IPv6 adjacency. | |||
| NT=5 The NAI is an unnumbered adjacency with IPv4 node IDs. | NT=5 The NAI is an unnumbered adjacency with IPv4 node IDs. | |||
| Flags is used to carry additional information pertaining to the SID. | Flags: Used to carry additional information pertaining to the SID. | |||
| This document defines the following flag bits. The other bits | This document defines the following flag bits. The other bits | |||
| MUST be set to zero by the sender and MUST be ignored by the | MUST be set to zero by the sender and MUST be ignored by the | |||
| receiver. | receiver. | |||
| * M: If this bit is set to 1, the SID value represents an MPLS | * M: If this bit is set to 1, the SID value represents an MPLS | |||
| label stack entry as specified in [RFC3032]. Otherwise, the | label stack entry as specified in [RFC3032]. Otherwise, the | |||
| SID value is an administratively configured value which acts as | SID value is an administratively configured value which | |||
| an index into an MPLS label space. | represents an index into an MPLS label space (either SRGB or | |||
| SRLB) per [RFC8402]. | ||||
| * C: If the M bit and the C bit are both set to 1, then the TC, | * C: If the M bit and the C bit are both set to 1, then the TC, | |||
| S, and TTL fields in the MPLS label stack entry are specified | S, and TTL fields in the MPLS label stack entry are specified | |||
| by the PCE. However, a PCC MAY choose to override these values | by the PCE. However, a PCC MAY choose to override these values | |||
| according its local policy and MPLS forwarding rules. If the M | according its local policy and MPLS forwarding rules. If the M | |||
| bit is set to 1 but the C bit is set to zero, then the TC, S, | bit is set to 1 but the C bit is set to zero, then the TC, S, | |||
| and TTL fields MUST be ignored by the PCC. The PCC MUST set | and TTL fields MUST be ignored by the PCC. The PCC MUST set | |||
| these fields according to its local policy and MPLS forwarding | these fields according to its local policy and MPLS forwarding | |||
| rules. If the M bit is set to zero then the C bit MUST be set | rules. If the M bit is set to zero then the C bit MUST be set | |||
| to zero. | to zero. | |||
| * S: When this bit is set to 1, the SID value in the subobject | * S: When this bit is set to 1, the SID value in the subobject | |||
| body is absent. In this case, the PCC is responsible for | body is absent. In this case, the PCC is responsible for | |||
| choosing the SID value, e.g., by looking up in its LSDB using | choosing the SID value, e.g., by looking up in the SR-DB using | |||
| the NAI which, in this case, MUST be present in the subobject. | the NAI which, in this case, MUST be present in the subobject. | |||
| If the S bit is set to 1 then the M and C bits MUST be set to | If the S bit is set to 1 then the M and C bits MUST be set to | |||
| zero. | zero. | |||
| * F: When this bit is set to 1, the NAI value in the subobject | * F: When this bit is set to 1, the NAI value in the subobject | |||
| body is absent. The F bit MUST be set to 1 if NT=0, and | body is absent. The F bit MUST be set to 1 if NT=0, and | |||
| otherwise MUST be set to zero. The S and F bits MUST NOT both | otherwise MUST be set to zero. The S and F bits MUST NOT both | |||
| be set to 1. | be set to 1. | |||
| SID is the Segment Identifier. | SID: The Segment Identifier. Depending on the M bit, it contains | |||
| either: | ||||
| NAI contains the NAI associated with the SID. The NAI's format | * A 4 octet index defining the offset into an MPLS label space | |||
| depends on the value in the NT field, and is described in the | per [RFC8402]. | |||
| following section. | ||||
| * A 4 octet MPLS label, where the 20 most significant bits encode | ||||
| the label value per [RFC3032]. | ||||
| NAI: The NAI associated with the SID. The NAI's format depends on | ||||
| the value in the NT field, and is described in the following | ||||
| section. | ||||
| At least one of the SID and the NAI MUST be included in the SR-ERO | ||||
| subobject, and both MAY be included. | ||||
| 5.3.2. NAI Associated with SID | 5.3.2. NAI Associated with SID | |||
| This document defines the following NAIs: | This document defines the following NAIs: | |||
| 'IPv4 Node ID' is specified as an IPv4 address. In this case, the | 'IPv4 Node ID' is specified as an IPv4 address. In this case, the | |||
| NT value is 1. | NT value is 1 and the NAI field length is 4 octets. | |||
| 'IPv6 Node ID' is specified as an IPv6 address. In this case, the | 'IPv6 Node ID' is specified as an IPv6 address. In this case, the | |||
| NT value is 2. | NT value is 2 and the NAI field length is 16 octets. | |||
| 'IPv4 Adjacency' is specified as a pair of IPv4 addresses. In this | 'IPv4 Adjacency' is specified as a pair of IPv4 addresses. In this | |||
| case, the NT value is 3. The format of the NAI is shown in the | case, the NT value is 3 and the NAI field length is 8 octets. The | |||
| following figure: | format of the NAI is shown in the following figure: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Local IPv4 address | | | Local IPv4 address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Remote IPv4 address | | | Remote IPv4 address | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: NAI for IPv4 adjacency | Figure 3: NAI for IPv4 adjacency | |||
| 'IPv6 Adjacency' is specified as a pair of IPv6 addresses. In this | 'IPv6 Adjacency' is specified as a pair of IPv6 addresses. In this | |||
| case, the NT value is 4. The format of the NAI is shown in the | case, the NT value is 4 and the NAI field length is 32 octets. | |||
| following figure: | The format of the NAI is shown in the following figure: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Local IPv6 address (16 bytes) // | // Local IPv6 address (16 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // Remote IPv6 address (16 bytes) // | // Remote IPv6 address (16 octets) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: NAI for IPv6 adjacency | Figure 4: NAI for IPv6 adjacency | |||
| 'Unnumbered Adjacency with IPv4 NodeIDs' is specified as a pair of | 'Unnumbered Adjacency with IPv4 NodeIDs' is specified as a pair of | |||
| Node ID / Interface ID tuples. In this case, the NT value is 5. | Node ID / Interface ID tuples. In this case, the NT value is 5 | |||
| The format of the NAI is shown in the following figure: | and the NAI field length is 16 octets. The format of the NAI is | |||
| shown in the following figure: | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Local Node-ID | | | Local Node-ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Local Interface ID | | | Local Interface ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Remote Node-ID | | | Remote Node-ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Remote Interface ID | | | Remote Interface ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: NAI for Unnumbered adjacency with IPv4 Node IDs | Figure 5: NAI for Unnumbered adjacency with IPv4 Node IDs | |||
| 5.4. RRO | 5.4. RRO | |||
| A PCC can record an SR-TE LSP and report the LSP to a PCE via the | A PCC reports an SR-TE LSP to a PCE by sending a PCRpt message, per | |||
| RRO. An RRO contains one or more subobjects called "SR-RRO | [RFC8231]. The RRO on this message represents the SID list that was | |||
| subobjects" whose format is shown below: | applied by the PCC, that is, the actual path taken by the LSP. The | |||
| procedures of [RFC8231] with respect to the RRO apply equally to this | ||||
| specification without change. | ||||
| An RRO contains one or more subobjects called "SR-RRO subobjects" | ||||
| whose format is shown below: | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=36 | Length | NT | Flags |F|S|C|M| | | Type=36 | Length | NT | Flags |F|S|C|M| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | SID | | | SID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| // NAI (variable) // | // NAI (variable) // | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 6: SR-RRO Subobject format | Figure 6: SR-RRO Subobject format | |||
| The format of the SR-RRO subobject is the same as that of the SR-ERO | The format of the SR-RRO subobject is the same as that of the SR-ERO | |||
| subobject, but without the L flag. | subobject, but without the L flag. | |||
| A PCC MUST assume that the SR-RRO subobjects are organized such that | A PCC MUST order the SR-RRO subobjects such that the first subobject | |||
| the first subobject relative to the beginning of the RRO contains the | relative to the beginning of the RRO identifies the first segment | |||
| information about the topmost label, and the last subobject contains | visited by the SR-TE LSP, and the last subobject identifies the final | |||
| information about the bottommost label of the SR-TE LSP. | segment of the SR-TE LSP, that is, its endpoint. | |||
| 5.5. METRIC Object | 5.5. METRIC Object | |||
| If a PCEP session is established with an MSD value of zero, then the | A PCC MAY request that PCE optimizes an individual path computation | |||
| PCC MAY specify the MSD for an individual path computation request | request to minimize the SID depth of the computed path by using the | |||
| using the METRIC object defined in [RFC5440]. This document defines | METRIC object defined in [RFC5440]. This document defines a new type | |||
| a new type for the METRIC object to be used for this purpose as | for the METRIC object to be used for this purpose, as follows: | |||
| follows: | ||||
| o T = 11: Maximum SID Depth of the requested path. | o T = 11: Maximum SID Depth of the requested path. | |||
| The PCC sets the metric-value to the MSD for this path. The PCC MUST | If the PCC includes a METRIC object of this type on a path | |||
| set the B (bound) bit to 1 in the METRIC object, which specifies that | computation request, then the PCE MUST minimize the SID depth of the | |||
| the SID depth for the computed path MUST NOT exceed the metric-value. | computed path. If the B (bound) bit is set to to 1 in the METRIC | |||
| object, then the PCE MUST NOT return a path whose SID depth exceeds | ||||
| the given metric-value. If the PCC did not set the L bit in its SR- | ||||
| PCE-CAPABILITY TLV, then it MUST set the B bit to 1. If the PCC set | ||||
| the L bit in its SR-PCE-CAPABILITY TLV, then it MAY set the B bit to | ||||
| 1 or zero. | ||||
| If a PCEP session is established with a non-zero MSD value, then the | If a PCEP session is established with a non-zero default MSD value, | |||
| PCC MUST NOT send an MSD METRIC object. If the PCE receives a path | then the PCC MUST NOT send an MSD METRIC object with an MSD greater | |||
| computation request with an MSD METRIC object on a session with a | than the session's default MSD. If the PCE receives a path | |||
| non-zero MSD value then it MUST consider the request invalid and send | computation request with an MSD METRIC object on such a session that | |||
| a PCErr with Error-Type = 10 ("Reception of an invalid object") and | is greater than the session's default MSD, then it MUST consider the | |||
| Error-Value 9 ("Default MSD is specified for the PCEP session"). | request invalid and send a PCErr with Error-Type = 10 ("Reception of | |||
| an invalid object") and Error-Value 9 ("MSD exceeds the default for | ||||
| the PCEP session"). | ||||
| 6. Procedures | 6. Procedures | |||
| 6.1. Exchanging the SR PCE Capability | 6.1. Exchanging the SR PCE 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 SR-TE LSP by including the SR-PCE-CAPABILITY sub-TLV in | functions for SR-TE LSP by including the SR-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 SR-TE paths by including the SR-PCE-CAPABILITY | capable of computing SR-TE paths by including the SR-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. | |||
| skipping to change at page 14, line 18 ¶ | skipping to change at page 14, line 30 ¶ | |||
| PST list containing PST=1, and supports that path setup type, then it | PST list containing PST=1, and supports that path setup type, then it | |||
| checks for the presence of the SR-PCE-CAPABILITY sub-TLV. If that | checks for the presence of the SR-PCE-CAPABILITY sub-TLV. If that | |||
| sub-TLV is absent, then the PCEP speaker MUST send a PCErr message | sub-TLV is absent, then the PCEP speaker MUST send a PCErr message | |||
| with Error-Type 10 (Reception of an invalid object) and Error-Value | with Error-Type 10 (Reception of an invalid object) and Error-Value | |||
| TBD1 (to be assigned by IANA) (Missing PCE-SR-CAPABILITY sub-TLV) and | TBD1 (to be assigned by IANA) (Missing PCE-SR-CAPABILITY sub-TLV) and | |||
| MUST then close the PCEP session. If a PCEP speaker receives a PATH- | MUST then close the PCEP session. If a PCEP speaker receives a PATH- | |||
| SETUP-TYPE-CAPABILITY TLV with a SR-PCE-CAPABILITY sub-TLV, but the | SETUP-TYPE-CAPABILITY TLV with a SR-PCE-CAPABILITY sub-TLV, but the | |||
| PST list does not contain PST=1, then the PCEP speaker MUST ignore | PST list does not contain PST=1, then the PCEP speaker MUST ignore | |||
| the SR-PCE-CAPABILITY sub-TLV. | the SR-PCE-CAPABILITY sub-TLV. | |||
| If a PCC sets the N flag to 1, then the PCE MAY send NAI to the PCC | If a PCC sets the N flag to 1, then the PCE MAY send an SR-ERO | |||
| within the SR-ERO subobject (see Section 6.2). Otherwise, the PCE | subobject containing NAI and no SID (see Section 6.2). Otherwise, | |||
| MUST NOT send NAI to the PCC. | the PCE MUST NOT send an SR-ERO subobject containing NAI and no SID. | |||
| The number of SIDs that can be imposed on a packet depends on the | The number of SIDs that can be imposed on a packet depends on the | |||
| PCC's data plane's capability. If a PCC sets the L flag to 1 then | PCC's data plane's capability. If a PCC sets the L flag to 1 then | |||
| the MSD is not used and MUST be set to zero. If a PCE receives an | the MSD is not used and MUST be set to zero. If a PCE receives an | |||
| SR-PCE-CAPABILITY sub-TLV with the L flag set to 1 then it MUST | SR-PCE-CAPABILITY sub-TLV with the L flag set to 1 then it MUST | |||
| ignore the MSD field and MUST assume that the sender can impose a SID | ignore the MSD field and MUST assume that the sender can impose a SID | |||
| stack of any depth. If a PCC sets the L flag to zero, then it sets | stack of any depth. If a PCC sets the L flag to zero, then it sets | |||
| the MSD field to the maximum number of SIDs that it can impose on a | the MSD field to the maximum number of SIDs that it can impose on a | |||
| packet. If a PCE receives an SR-PCE-CAPABILITY sub-TLV with the L | packet. If a PCE receives an SR-PCE-CAPABILITY sub-TLV with the L | |||
| flag and MSD both set to zero then it MUST assume that the PCC is not | flag and MSD both set to zero then it MUST assume that the PCC is not | |||
| skipping to change at page 16, line 32 ¶ | skipping to change at page 16, line 44 ¶ | |||
| 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 receives an SR-ERO subobject in which the S bit is set to 1 | If a PCC receives an SR-ERO subobject in which the S bit is set to 1 | |||
| and either or both of the M or C bits is set to 1, it MUST consider | and either or both of the M or C bits is set to 1, it MUST consider | |||
| the entire ERO invalid and send a PCErr message with Error-Type = 10 | the entire ERO invalid and send a PCErr message with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = 11 ("Malformed | ("Reception of an invalid object") and Error-Value = 11 ("Malformed | |||
| object"). | object"). | |||
| If a PCC receives an SR-ERO subobject in which the S bit is set to | If a PCC receives an SR-ERO subobject in which the S bit is set to | |||
| zero and the M bit is set to 1 (that is, it represents an MPLS label | zero and the M bit is set to 1, then the subobject contains an MPLS | |||
| value), its value (20 most significant bits) MUST be larger than 15, | label. The PCC MAY choose not to accept a label provided by the PCE, | |||
| unless it is a special purpose label, such as an Entropy Label | based on it local policy. The PCC MUST NOT accept MPLS label value 3 | |||
| Indicator (ELI). If a PCC receives an invalid MPLS label value, it | (Implicit NULL), but it MAY accept other special purpose MPLS label | |||
| values. If the PCC decides not to accept an MPLS label value, it | ||||
| 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 = 2 ("Bad label value"). | invalid object") and Error Value = 2 ("Bad label value"). | |||
| If both M and C bits of an SR-ERO subobject are set to 1, and if a | If both M and C bits of an SR-ERO subobject are set to 1, and if a | |||
| PCC finds erroneous setting in one or more of TC, S, and TTL fields, | PCC finds erroneous setting in one or more of TC, S, and TTL fields, | |||
| it MAY overwrite those fields with values chosen according to its own | it MAY overwrite those fields with values chosen according to its own | |||
| policy. If the PCC does not overwite them, it MUST send a PCErr | policy. If the PCC does not overwrite them, it MUST send a PCErr | |||
| message with Error-Type = 10 ("Reception of an invalid object") and | message with Error-Type = 10 ("Reception of an invalid object") and | |||
| Error-Value = 4 ("Bad label format"). | Error-Value = 4 ("Bad label format"). | |||
| If the M bit of an SR-ERO subobject is set to zero but the C bit is | If the M bit of an SR-ERO subobject is set to zero but the C bit is | |||
| set to 1, then the PCC MUST consider the entire ERO invalid and MUST | set to 1, then the PCC MUST consider the entire ERO invalid and MUST | |||
| 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 = 11 ("Malformed object"). | object") and Error-Value = 11 ("Malformed object"). | |||
| If the first SR-ERO represents an MPLS label value then the NAI field | ||||
| MUST NOT be absent (that is, the F bit MUST be zero). The PCC needs | ||||
| the NAI field to determine the first hop router in the segment routed | ||||
| path. If the NAI is not present then the PCC MUST send a PCErr | ||||
| message with Error-Type = 10 ("Reception of an invalid object") and | ||||
| Error Value = TBD9 ("Cannot derive a next hop from SR-ERO"). | ||||
| If a PCC receives an SR-ERO subobject in which the S bit is set to | If a PCC receives an SR-ERO subobject in which the S bit is set to | |||
| zero and the M bit is set to zero (that is, it represents an index | zero and the M bit is set to zero, then the subobject contains a SID | |||
| value), then the SID MUST be a node-SID, an adjacency-SID or a | index value. If the SID is an Adjacency-SID then the L flag MUST NOT | |||
| binding-SID. If the SID is not one of these types, the PCC MUST send | be set. If the L flag is set for an Adjacency-SID then the PCC MUST | |||
| 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 = TBD10 ("Bad SID type in SR-ERO"). If the | object") and Error-Value = 11 ("Malformed object"). | |||
| SID is an Adjacency-SID then the L flag MUST NOT be set. If the L | ||||
| flag is set for an Adjacency-SID then the PCC MUST send a PCErr | ||||
| message with Error-Type = 10 ("Reception of an invalid object") and | ||||
| Error-Value = 11 ("Malformed object"). | ||||
| If a PCC detects that the subobjects of an ERO are a mixture of SR- | If a PCC detects that the subobjects of an ERO are a mixture of SR- | |||
| ERO subobjects and subobjects of other types, then it MUST send a | ERO subobjects and subobjects of other types, then it MUST send a | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid object") | PCErr message with Error-Type = 10 ("Reception of an invalid object") | |||
| and Error-Value = 5 ("ERO mixes SR-ERO subobjects with other | and Error-Value = 5 ("ERO mixes SR-ERO subobjects with other | |||
| subobject types"). | subobject types"). | |||
| The SR-ERO subobjects can be classified according to whether they | The SR-ERO subobjects can be classified according to whether they | |||
| contain a SID representing an MPLS label value, a SID representing an | contain a SID representing an MPLS label value, a SID representing an | |||
| index value, or no SID. If a PCC detects that the SR-ERO subobjects | index value, or no SID. If a PCC detects that the SR-ERO subobjects | |||
| are a mixture of more than one of these types, then it MUST send a | are a mixture of more than one of these types, then it MUST send a | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid object") | PCErr message with Error-Type = 10 ("Reception of an invalid object") | |||
| and Error-Value = TBD11 ("Inconsistent SIDs in SR-ERO subobjects"). | and Error-Value = TBD9 ("Inconsistent SIDs in SR-ERO / SR-RRO | |||
| subobjects"). | ||||
| 6.2.2. Interpreting the SR-ERO | ||||
| The PCC creates a segment routed path by converting the sequence of | ||||
| SR-ERO subobjects into an MPLS label stack plus a next hop. The PCC | ||||
| sends packets along the segment routed path by prepending the MPLS | ||||
| label stack onto the packets and sending the resulting, modified | ||||
| packet to the next hop. The following subsections explain how the | ||||
| PCC converts the SR-ERO subobject sequence to an MPLS label stack and | ||||
| a next hop. | ||||
| 6.2.2.1. SR-ERO subobjects contain MPLS Labels | ||||
| If the SR-ERO subobjects contain SIDs with MPLS label values, then | ||||
| proceed as follows: | ||||
| (a) Initialize next_hop to null. Initialize label_stack to an empty | ||||
| label stack. | ||||
| (b) Get the first SR-ERO subobject from the ERO. Append its label | ||||
| value to label_stack, setting the TC, S and TTL fields according | ||||
| to the C bit and/or local policy. Set current_router and | ||||
| next_hop to the router identified by the NAI. If the NAI is | ||||
| absent from the first SR-ERO, then this is an error, and the ERO | ||||
| should have failed the validation checks of Section 6.2.1. | ||||
| (c) Loop through the remaining SR-ERO subobjects. For each SR-ERO | ||||
| subobject, append it to label_stack, setting the TC, S and TTL | ||||
| fields according to the C bit and/or local policy. | ||||
| 6.2.2.2. SR-ERO subobjects contain Index SIDs | ||||
| If the SR-ERO subobjects contain SIDs with index values, then proceed | ||||
| as follows: | ||||
| (a) Initialize current_router to the local router. Initialize | ||||
| next_hop to null. Initialize label_stack to an empty label | ||||
| stack. | ||||
| (b) Get the first SR-ERO subobject from the ERO and look the SID | ||||
| index up in the LSDB. | ||||
| * If the SID is a node-SID, set current_router to the node | ||||
| identified by the node-SID, compute the shortest path to that | ||||
| node and set next_hop to the next hop from the shortest path. | ||||
| If next_hop is the router identified by the node-SID, and | ||||
| that router advertised its node-SID with the P flag clear | ||||
| (indicating that PHP is allowed), then do not add a label to | ||||
| label_stack. Otherwise, look up the next_hop router's SRGB | ||||
| in the LSDB. Get the label that is at offset node-SID | ||||
| relative to the SRGB base label and append it to label_stack. | ||||
| * If the SID is an adjacency-SID, set next_hop to the | ||||
| corresponding routing adjacency. Do not add a label the | ||||
| label_stack. Set current_router to the adjacent router. | ||||
| * If the SID is a binding-SID, then append the binding SID's | ||||
| associated label stack to label_stack. Set next_hop to the | ||||
| first hop router in the binding SID tunnel. Set | ||||
| current_router to the router that is the endpoint of the | ||||
| binding-SID tunnel. | ||||
| * Any other type of SID is an error, and the SR-ERO should have | If an ERO specifies a new SR-TE path for an existing LSP and the PCC | |||
| failed the validation checks of Section 6.2.1. | determines that the ERO contains SR-ERO subobjects that are not | |||
| valid, then the PCC MUST NOT update the LSP. | ||||
| (c) Loop through the remaining SR-ERO subobjects. For each SR-ERO | 6.2.2. Interpreting the SR-ERO | |||
| subobject, look the SID index up in the LSDB. | ||||
| * If the SID is a node-SID, then look up the current_router's | The SR-ERO contains a sequence of subobjects. According to | |||
| SRGB in the LSDB. Get the label that is at offset node-SID | [I-D.ietf-spring-segment-routing-policy], each SR-ERO subobject in | |||
| relative to the SRGB base label and append it to label_stack. | the sequence identifies a segment that the traffic will be directed | |||
| to, in the order given. That is, the first subobject identifies the | ||||
| first segment the traffic will be directed to, the second SR-ERO | ||||
| subobject represents the second segment, and so on. | ||||
| * If the SID is an adjacency-SID, then look up the | The PCC interprets the SR-ERO by converting it to an MPLS label stack | |||
| current_router's SRLB in the LSDB. Get the label that is at | plus a next hop. The PCC sends packets along the segment routed path | |||
| offset adjacency-SID relative to the SRLB base label and | by prepending the MPLS label stack onto the packets and sending the | |||
| append it to label_stack. | resulting, modified packet to the next hop. | |||
| * If the SID is a binding-SID, then look up the | The PCC uses a different procedure to do this conversion, depending | |||
| current_router's SRGB in the LSDB. Get the label that is at | on the information that the PCE has provided in the subobjects. | |||
| offset binding-SID relative to the SRGB base label and append | ||||
| it to label_stack. | ||||
| * Any other type of SID is an error, and the SR-ERO should have | o If the subobjects contain SID index values, then the PCC converts | |||
| failed the validation checks of Section 6.2.1. | them into the corresponding MPLS labels by following the procedure | |||
| defined in [I-D.ietf-spring-segment-routing-mpls]. | ||||
| 6.2.2.3. SR-ERO subobjects contain NAI only | o If the subobjects contain NAI only, then the PCC first converts | |||
| each NAI into a SID index value by looking it up in its local | ||||
| database, and then proceeds as above. | ||||
| If the SR-ERO subobjects do not contain SIDs (that is, contain only | o If the subobjects contain MPLS labels, then the PCC looks up the | |||
| NAI), then look each NAI up in the LSDB to find the corresponding SID | offset of the first subobject's label in its SRGB or SRLB. This | |||
| index. Then proceed as described above for SID index values. | gives the first SID. The PCC pushes the labels in any remaining | |||
| subobjects onto the packet (with the final subobject specifying | ||||
| the bottom-of-stack label) and then directs the packet to the | ||||
| segment identified by the first SID. | ||||
| 6.2.2.4. Handling Errors During SR-ERO Conversion | 6.2.2.1. Handling Errors During SR-ERO Conversion | |||
| There are several errors that can occur during the process of | There are several errors that can occur during the process of | |||
| converting an SR-ERO sequence to an MPLS label stack and a next hop. | converting an SR-ERO sequence to an MPLS label stack and a next hop. | |||
| The PCC deals with them as follows. | The PCC deals with them as follows. | |||
| o If the PCC cannot find a SID index in the LSDB, it MUST send a | o If the PCC cannot find a SID index in the SR-DB, it MUST send a | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid | PCErr message with Error-Type = 10 ("Reception of an invalid | |||
| object") and Error-Value = TBD3 ("Unknown SID"). | object") and Error-Value = TBD3 ("Unknown SID"). | |||
| o If the PCC cannot find an NAI in the LSDB, it MUST send a PCErr | o If the PCC cannot find an NAI in the SR-DB, it MUST send a PCErr | |||
| message with Error-Type = 10 ("Reception of an invalid object") | message with Error-Type = 10 ("Reception of an invalid object") | |||
| and Error-Value = TBD4 ("NAI cannot be resolved to a SID"). | and Error-Value = TBD4 ("NAI cannot be resolved to a SID"). | |||
| o If the PCC cannot find an SRGB in the LSDB, it MUST send a PCErr | o If the PCC needs to convert a SID into an MPLS label value but | |||
| message with Error-Type = 10 ("Reception of an invalid object") | cannot find the corresponding router's SRGB in the SR-DB, it MUST | |||
| and Error-Value = TBD5 ("Could not find SRGB"). | send a PCErr message with Error-Type = 10 ("Reception of an | |||
| invalid object") and Error-Value = TBD5 ("Could not find SRGB"). | ||||
| o If the PCC finds that a router's SRGB is not large enough for a | o If the PCC finds that a router's SRGB is not large enough for a | |||
| SID index value, it MUST send a PCErr message with Error-Type = 10 | SID index value, it MUST send a PCErr message with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = TBD6 ("SID | ("Reception of an invalid object") and Error-Value = TBD6 ("SID | |||
| index exceeds SRGB size"). | index exceeds SRGB size"). | |||
| o If the PCC cannot find an SRLB in the LSDB, it MUST send a PCErr | o If the PCC needs to convert a SID into an MPLS label value but | |||
| message with Error-Type = 10 ("Reception of an invalid object") | cannot find the corresponding router's SRLB in the SR-DB, it MUST | |||
| and Error-Value = TBD7 ("Could not find SRLB"). | send a PCErr message with Error-Type = 10 ("Reception of an | |||
| invalid object") and Error-Value = TBD7 ("Could not find SRLB"). | ||||
| o If the PCC finds that a router's SRLB is not large enough for a | o If the PCC finds that a router's SRLB is not large enough for a | |||
| SID index value, it MUST send a PCErr message with Error-Type = 10 | SID index value, it MUST send a PCErr message with Error-Type = 10 | |||
| ("Reception of an invalid object") and Error-Value = TBD8 ("SID | ("Reception of an invalid object") and Error-Value = TBD8 ("SID | |||
| index exceeds SRLB size"). | index exceeds SRLB size"). | |||
| o If the number of labels in label_stack exceeds the maximum number | o If the number of labels in the computed label stack exceeds the | |||
| of SIDs that the PCC can impose on the packet, it MUST send a | maximum number of SIDs that the PCC can impose on the packet, it | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid | MUST send a PCErr message with Error-Type = 10 ("Reception of an | |||
| object") and Error-Value = 3 ("Unsupported number of Segment ERO | invalid object") and Error-Value = 3 ("Unsupported number of | |||
| subobjects"). | Segment ERO subobjects"). | |||
| If an ERO specifies a new SR-TE path for an existing LSP and the PCC | ||||
| encounters an error while processing the ERO, then the PCC MUST NOT | ||||
| update the LSP. | ||||
| 6.3. RRO Processing | 6.3. RRO Processing | |||
| The syntax checking rules that apply to the SR-RRO subobject are | The syntax checking rules that apply to the SR-RRO subobject are | |||
| identical to those of the SR-ERO subobject, except as noted below. | identical to those of the SR-ERO subobject, except as noted below. | |||
| If a PCEP speaker receives an SR-RRO subobject in which both SID and | If a PCEP speaker receives an SR-RRO subobject in which both SID and | |||
| NAI are absent, it MUST consider the entire RRO invalid and send a | NAI are absent, it MUST consider the entire RRO invalid and send a | |||
| PCErr message with Error-Type = 10 ("Reception of an invalid object") | PCErr message with Error-Type = 10 ("Reception of an invalid object") | |||
| and Error-Value = 7 ("Both SID and NAI are absent in SR-RRO | and Error-Value = 7 ("Both SID and NAI are absent in SR-RRO | |||
| subobject"). | subobject"). | |||
| If a PCE detects that all subobjects of the RRO are not identical, | If a PCE detects that the subobjects of an RRO are a mixture of SR- | |||
| and if it does not support such an RRO, it MUST send a PCErr message | RRO subobjects and subobjects of other types, then it MUST send a | |||
| with Error-Type = 10 ("Reception of an invalid object") and Error- | PCErr message with Error-Type = 10 ("Reception of an invalid object") | |||
| Value = 10 ("Non-identical RRO subobjects"). | and Error-Value = 10 ("RRO mixes SR-RRO subobjects with other | |||
| subobject types"). | ||||
| The SR-RRO subobjects can be classified according to whether they | ||||
| contain a SID representing an MPLS label value or a SID representing | ||||
| an index value, or no SID. If a PCE detects that the SR-RRO | ||||
| subobjects are a mixture of more than one of these types, then it | ||||
| MUST send a PCErr message with Error-Type = 10 ("Reception of an | ||||
| invalid object") and Error-Value = TBD9 ("Inconsistent SIDs in SR-ERO | ||||
| / SR-RRO subobjects"). | ||||
| 7. Backward Compatibility | 7. Backward Compatibility | |||
| A PCEP speaker that does not support the SR PCEP capability cannot | A PCEP speaker that does not support the SR PCEP capability cannot | |||
| recognize the SR-ERO or SR-RRO subobjects. As such, it responds | recognize the SR-ERO or SR-RRO subobjects. As such, it responds | |||
| according to the rules for a malformed object, per [RFC5440]. | according to the rules for a malformed object, per [RFC5440]. | |||
| Some implementations, which are compliant with an earlier version of | Some implementations, which are compliant with an earlier version of | |||
| this specification, do not send the PATH-SETUP-TYPE-CAPABILITY TLV in | this specification, do not send the PATH-SETUP-TYPE-CAPABILITY TLV in | |||
| their OPEN objects. Instead, to indicate that they support SR, these | their OPEN objects. Instead, to indicate that they support SR, these | |||
| skipping to change at page 21, line 39 ¶ | skipping to change at page 20, line 51 ¶ | |||
| o When a PCE initiates an LSP, it proposes which path setup type to | o When a PCE initiates an LSP, it proposes which path setup type to | |||
| use by including it in the PATH-SETUP-TYPE TLV in the SRP object | use by including it in the PATH-SETUP-TYPE TLV in the SRP object | |||
| of the PCInitiate message. The PCE chooses the path setup type | of the PCInitiate message. The PCE chooses the path setup type | |||
| based on the capabilities of the network nodes on the path and on | based on the capabilities of the network nodes on the path and on | |||
| its local policy. The PCC MAY choose to accept the proposed path | its local policy. The PCC MAY choose to accept the proposed path | |||
| setup type, or to reject the PCInitiate request, based on its | setup type, or to reject the PCInitiate request, based on its | |||
| local policy. | local policy. | |||
| o When a PCC requests a path for an LSP, it can nominate a preferred | o When a PCC requests a path for an LSP, it can nominate a preferred | |||
| path setup type by including it in the PATH-SETUP-TYPE TLV in the | path setup type by including it in the PATH-SETUP-TYPE TLV in the | |||
| RP object of the PCInitiate message. The PCE MAY choose to reply | RP object of the PCReq message. The PCE MAY choose to reply with | |||
| with a path of the requested type, or to reply with a path of a | a path of the requested type, or to reply with a path of a | |||
| different type, or to reject the request, based on the | different type, or to reject the request, based on the | |||
| capabilities of the network nodes on the path and on its local | capabilities of the network nodes on the path and on its local | |||
| policy. | policy. | |||
| The operator can influence the path setup type as follows. | The operator can influence the path setup type as follows. | |||
| o Implementations MUST allow the operator to enable and disable the | o Implementations MUST allow the operator to enable and disable the | |||
| segment routing path setup type on a PCEP-speaking device. | segment routing path setup type on a PCEP-speaking device. | |||
| Implementations MAY also allow the operator to enable and disable | Implementations MAY also allow the operator to enable and disable | |||
| the RSVP-TE path setup type. | the RSVP-TE path setup type. | |||
| skipping to change at page 23, line 10 ¶ | skipping to change at page 22, line 23 ¶ | |||
| operator reconfigures the PCEP speaker's capabilities. However, note | operator reconfigures the PCEP speaker's capabilities. However, note | |||
| that if the capabilities at both ends of the PCEP session are not | that if the capabilities at both ends of the PCEP session are not | |||
| reconfigured simultaneously, then the session could be reset twice, | reconfigured simultaneously, then the session could be reset twice, | |||
| which could lead to unnecessary network traffic. Therefore, such | which could lead to unnecessary network traffic. Therefore, such | |||
| implementations SHOULD allow the operator to override this behaviour | implementations SHOULD allow the operator to override this behaviour | |||
| and wait instead for a manual reset. | and wait instead for a manual reset. | |||
| Once segment routing is enabled on a PCEP session, it can be used as | Once segment routing is enabled on a PCEP session, it can be used as | |||
| the path setup type for future LSPs. | the path setup type for future LSPs. | |||
| User traffic is not automatically be migrated from existing LSPs onto | User traffic is not automatically migrated from existing LSPs onto | |||
| segment routed LSPs just by enabling the segment routing PST in PCEP. | segment routed LSPs just by enabling the segment routing PST in PCEP. | |||
| The migration of user traffic from existing LSPs onto segment routing | The migration of user traffic from existing LSPs onto segment routing | |||
| LSPs is beyond the scope of this document. | LSPs is beyond the scope of this document. | |||
| 8.3. Verification of Network Operation | 8.3. Verification of Network Operation | |||
| The operator needs the following information to verify that PCEP is | The operator needs the following information to verify that PCEP is | |||
| operating correctly with respect to the segment routing path setup | operating correctly with respect to the segment routing path setup | |||
| type. | type. | |||
| o An implementation SHOULD allow the operator to view whether the | o An implementation SHOULD allow the operator to view whether the | |||
| PCEP speaker sent the segment routing PST capability to its peer. | PCEP speaker sent the segment routing PST capability to its peer. | |||
| If the PCEP speaker is a PCC, then the implementation SHOULD also | If the PCEP speaker is a PCC, then the implementation SHOULD also | |||
| allow the operator to view the value of the L flag that was sent, | allow the operator to view the values of the L and N flags that | |||
| and the value of the MSD field that was sent. | were sent, and the value of the MSD field that was sent. | |||
| o An implementation SHOULD allow the operator to view whether the | o An implementation SHOULD allow the operator to view whether the | |||
| peer sent a the segment routing PST capability. If the peer is a | peer sent the segment routing PST capability. If the peer is a | |||
| PCC, then the implementation SHOULD also allow the operator to | PCC, then the implementation SHOULD also allow the operator to | |||
| view the values of the L flag and MSD fields that the peer sent | view the values of the L and N flags and MSD fields that the peer | |||
| sent. | sent. | |||
| o An implementation SHOULD allow the operator to view whether the | o An implementation SHOULD allow the operator to view whether the | |||
| segment routing PST is enabled on the PCEP session. | segment routing PST is enabled on the PCEP session. | |||
| o If one PCEP speaker advertises the segment routing PST capability, | o If one PCEP speaker advertises the segment routing PST capability, | |||
| but the other does not, then the implementation SHOULD create a | but the other does not, then the implementation SHOULD create a | |||
| log to inform the operator of the capability mismatch. | log to inform the operator of the capability mismatch. | |||
| o An implementation SHOULD allow the operator to view the PST that | o An implementation SHOULD allow the operator to view the PST that | |||
| was proposed, or requested, for an LSP, and the PST that was | was proposed, or requested, for an LSP, and the PST that was | |||
| actually used. | actually used. | |||
| o If a PCEP speaker decides to use a different PST to the one that | o If a PCEP speaker decides to use a different PST to the one that | |||
| was proposed, or requested, for an LSP, then the implementation | was proposed, or requested, for an LSP, then the implementation | |||
| SHOULD create a log to inform the operator that the expected PST | SHOULD create a log to inform the operator that the expected PST | |||
| has not been used. The log SHOULD give the reason for this choice | has not been used. The log SHOULD give the reason for this choice | |||
| (local policy, equipment capability etc.) | (local policy, equipment capability etc.) | |||
| o If a PCEP speaker rejects a segment routed path, then it SHOULD | o If a PCEP speaker rejects a segment routed path, then it SHOULD | |||
| create a log to inform the operator, giving the reson for the | create a log to inform the operator, giving the reason for the | |||
| decision (local policy, MSD exceeded etc.) | decision (local policy, MSD exceeded etc.) | |||
| 8.4. Relationship to Existing Management Models | 8.4. Relationship to Existing Management Models | |||
| The PCEP YANG module [I-D.ietf-pce-pcep-yang] should include: | The PCEP YANG module [I-D.ietf-pce-pcep-yang] should include: | |||
| o advertised PST capabilities and MSD per PCEP session. | o advertised PST capabilities and MSD per PCEP session. | |||
| o the PST configured for, and used by, each LSP. | o the PST configured for, and used by, each LSP. | |||
| The PCEP MIB [RFC7420] could also be updated to include this | The PCEP MIB [RFC7420] could also be updated to include this | |||
| information. | information. | |||
| 9. Security Considerations | 9. Security Considerations | |||
| The security considerations described in [RFC5440], [RFC8281] and | The security considerations described in [RFC5440], [RFC8281] and | |||
| [I-D.ietf-pce-lsp-setup-type] are applicable to this specification. | [RFC8408] are applicable to this specification. No additional | |||
| No additional security measure is required. | security measure is required. | |||
| Note that this specification enables a network controller to | ||||
| instantiate a path in the network without the use of a hop-by-hop | ||||
| signaling protocol (such as RSVP-TE). This creates an additional | ||||
| vulnerability if the security mechanisms of [RFC5440] and [RFC8281] | ||||
| are not used, because an attacker could create a path which is not | ||||
| subjected to the further verification checks that would be performed | ||||
| by the signaling protocol. | ||||
| Note that this specification adds the MSD field to the OPEN message | ||||
| (see Section 5.1.1) which discloses how many MPLS labels the sender | ||||
| can push onto packets that it forwards into the network. If the | ||||
| security mechanisms of [RFC5440] and [RFC8281] are not used then an | ||||
| attacker could use this new field to gain intelligence about the | ||||
| capabilities of the edge devices in the network. | ||||
| 10. IANA Considerations | 10. IANA Considerations | |||
| 10.1. PCEP Objects | 10.1. PCEP ERO and RRO subobjects | |||
| This document defines a new subobject type for the PCEP explicit | This document defines a new subobject type for the PCEP explicit | |||
| route object (ERO), and a new subobject type for the PCEP record | route object (ERO), and a new subobject type for the PCEP record | |||
| route object (RRO). The code points for subobject types of these | route object (RRO). The code points for subobject types of these | |||
| objects is maintained in the RSVP parameters registry, under the | objects is maintained in the RSVP parameters registry, under the | |||
| EXPLICIT_ROUTE and ROUTE_RECORD objects. IANA is requested to | EXPLICIT_ROUTE and ROUTE_RECORD objects. IANA is requested to | |||
| confirm the early allocation of the following code points in the RSVP | confirm the early allocation of the following code points in the RSVP | |||
| Parameters registry for each of the new subobject types defined in | Parameters registry for each of the new subobject types defined in | |||
| this document. | this document. | |||
| skipping to change at page 26, line 20 ¶ | skipping to change at page 25, line 44 ¶ | |||
| Error-value = 5: ERO mixes SR-ERO | Error-value = 5: ERO mixes SR-ERO | |||
| subobjects with | subobjects with | |||
| other subobject | other subobject | |||
| types | types | |||
| Error-value = 6: Both SID and NAI | Error-value = 6: Both SID and NAI | |||
| are absent in SR- | are absent in SR- | |||
| ERO subobject | ERO subobject | |||
| Error-value = 7: Both SID and NAI | Error-value = 7: Both SID and NAI | |||
| are absent in SR- | are absent in SR- | |||
| RRO subobject | RRO subobject | |||
| Error-value = 9: Default MSD is | Error-value = 9: MSD exceeds the | |||
| specified for the | default for the | |||
| PCEP session | PCEP session | |||
| Error-value = 10: RRO mixes SR-RRO | Error-value = 10: RRO mixes SR-RRO | |||
| subobjects with | subobjects with | |||
| other subobject | other subobject | |||
| types | types | |||
| Error-value = TBD1: Missing PCE-SR- | Error-value = TBD1: Missing PCE-SR- | |||
| CAPABILITY sub-TLV | CAPABILITY sub-TLV | |||
| Error-value = TBD2: Unsupported NAI | Error-value = TBD2: Unsupported NAI | |||
| Type in SR-ERO | Type in SR-ERO | |||
| subobject | subobject | |||
| Error-value = TBD3: Unknown SID | Error-value = TBD3: Unknown SID | |||
| Error-value = TBD4: NAI cannot be | Error-value = TBD4: NAI cannot be | |||
| resolved to a SID | resolved to a SID | |||
| Error-value = TBD5: Could not find SRGB | Error-value = TBD5: Could not find SRGB | |||
| Error-value = TBD6: SID index exceeds | Error-value = TBD6: SID index exceeds | |||
| SRGB size | SRGB size | |||
| Error-value = TBD7: Could not find SRLB | Error-value = TBD7: Could not find SRLB | |||
| Error-value = TBD8: SID index exceeds | Error-value = TBD8: SID index exceeds | |||
| SRLB size | SRLB size | |||
| Error-value = TBD9: Cannot derive a | Error-value = TBD9: Inconsistent SIDs | |||
| next hop from SR- | in SR-ERO / SR-RRO | |||
| ERO | ||||
| Error-value = TBD10: Bad SID type in SR- | ||||
| ERO | ||||
| Error-value = TBD11: Inconsistent SIDs | ||||
| in SR-ERO | ||||
| subobjects | subobjects | |||
| Note to IANA: this draft originally had an early allocation for | Note to IANA: this draft originally had an early allocation for | |||
| Error-value=11 (Malformed object) in the above list. However, we | Error-value=11 (Malformed object) in the above list. However, we | |||
| have since moved the definition of that code point to draft-ietf-pce- | have since moved the definition of that code point to RFC8408. | |||
| lsp-setup-type and we included an instruction in that draft for you | ||||
| to update the reference in the indicated registry. Please ensure | ||||
| that this has happened when you process the present draft. | ||||
| Note to IANA: some Error-values in the above list were defined after | Note to IANA: some Error-values in the above list were defined after | |||
| the early allocation took place, and so do not currently have a code | the early allocation took place, and so do not currently have a code | |||
| point assigned. Please assign code points from the indicated | point assigned. Please assign code points from the indicated | |||
| registry and replace each instance of "TBD1", "TBD2" etc. in this | registry and replace each instance of "TBD1", "TBD2" etc. in this | |||
| document with the respective code points. | document with the respective code points. | |||
| Note to IANA: some of the Error-value descriptive strings above have | Note to IANA: some of the Error-value descriptive strings above have | |||
| changed since the early allocation. Please refresh the registry. | changed since the early allocation. Please refresh the registry. | |||
| skipping to change at page 27, line 28 ¶ | skipping to change at page 26, line 47 ¶ | |||
| IANA is requested to confirm the early allocation of the following | IANA is requested to confirm the early allocation of the following | |||
| code point in the PCEP TLV Type Indicators registry. | code point in the PCEP TLV Type Indicators registry. | |||
| Value Meaning Reference | Value Meaning Reference | |||
| ------------------------- ---------------------------- -------------- | ------------------------- ---------------------------- -------------- | |||
| 26 SR-PCE-CAPABILITY This document | 26 SR-PCE-CAPABILITY This document | |||
| 10.6. New Path Setup Type | 10.6. New Path Setup Type | |||
| [I-D.ietf-pce-lsp-setup-type] requests that IANA creates a sub- | [RFC8408] requests that IANA creates a sub-registry within the "Path | |||
| registry within the "Path Computation Element Protocol (PCEP) | Computation Element Protocol (PCEP) Numbers" registry called "PCEP | |||
| Numbers" registry called "PCEP Path Setup Types". IANA is requested | Path Setup Types". IANA is requested to allocate a new code point | |||
| to allocate a new code point within this registry, as follows: | within this registry, as follows: | |||
| Value Description Reference | Value Description Reference | |||
| ------------------------- ---------------------------- -------------- | ------------------------- ---------------------------- -------------- | |||
| 1 Traffic engineering path is This document | 1 Traffic engineering path is This document | |||
| setup using Segment Routing. | setup using Segment Routing. | |||
| 10.7. New Metric Type | 10.7. New Metric Type | |||
| IANA is requested to confirm the early allocation of the following | IANA is requested to confirm the early allocation of the following | |||
| code point in the PCEP METRIC object T field registry: | code point in the PCEP METRIC object T field registry: | |||
| skipping to change at page 28, line 43 ¶ | skipping to change at page 28, line 16 ¶ | |||
| We thank Ina Minei, George Swallow, Marek Zavodsky, Dhruv Dhody, Ing- | We thank Ina Minei, George Swallow, Marek Zavodsky, Dhruv Dhody, Ing- | |||
| Wher Chen and Tomas Janciga for the valuable comments. | Wher Chen and Tomas Janciga for the valuable comments. | |||
| 13. References | 13. References | |||
| 13.1. Normative References | 13.1. Normative References | |||
| [I-D.ietf-idr-bgp-ls-segment-routing-msd] | [I-D.ietf-idr-bgp-ls-segment-routing-msd] | |||
| Tantsura, J., Chunduri, U., Mirsky, G., and S. Sivabalan, | Tantsura, J., Chunduri, U., Mirsky, G., and S. Sivabalan, | |||
| "Signaling Maximum SID Depth using Border Gateway Protocol | "Signaling MSD (Maximum SID Depth) using Border Gateway | |||
| Link-State", draft-ietf-idr-bgp-ls-segment-routing-msd-01 | Protocol Link-State", draft-ietf-idr-bgp-ls-segment- | |||
| (work in progress), October 2017. | routing-msd-02 (work in progress), August 2018. | |||
| [I-D.ietf-isis-segment-routing-extensions] | [I-D.ietf-isis-segment-routing-extensions] | |||
| Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | Previdi, S., Ginsberg, L., Filsfils, C., Bashandy, A., | |||
| Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, | Gredler, H., Litkowski, S., Decraene, B., and J. Tantsura, | |||
| "IS-IS Extensions for Segment Routing", draft-ietf-isis- | "IS-IS Extensions for Segment Routing", draft-ietf-isis- | |||
| segment-routing-extensions-18 (work in progress), June | segment-routing-extensions-19 (work in progress), July | |||
| 2018. | 2018. | |||
| [I-D.ietf-isis-segment-routing-msd] | [I-D.ietf-isis-segment-routing-msd] | |||
| Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | Tantsura, J., Chunduri, U., Aldrin, S., and L. Ginsberg, | |||
| "Signaling MSD (Maximum SID Depth) using IS-IS", draft- | "Signaling MSD (Maximum SID Depth) using IS-IS", draft- | |||
| ietf-isis-segment-routing-msd-12 (work in progress), May | ietf-isis-segment-routing-msd-16 (work in progress), | |||
| 2018. | September 2018. | |||
| [I-D.ietf-ospf-segment-routing-extensions] | [I-D.ietf-ospf-segment-routing-extensions] | |||
| Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | Psenak, P., Previdi, S., Filsfils, C., Gredler, H., | |||
| Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | Shakir, R., Henderickx, W., and J. Tantsura, "OSPF | |||
| Extensions for Segment Routing", draft-ietf-ospf-segment- | Extensions for Segment Routing", draft-ietf-ospf-segment- | |||
| routing-extensions-25 (work in progress), April 2018. | routing-extensions-25 (work in progress), April 2018. | |||
| [I-D.ietf-ospf-segment-routing-msd] | [I-D.ietf-ospf-segment-routing-msd] | |||
| Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | Tantsura, J., Chunduri, U., Aldrin, S., and P. Psenak, | |||
| "Signaling MSD (Maximum SID Depth) using OSPF", draft- | "Signaling MSD (Maximum SID Depth) using OSPF", draft- | |||
| ietf-ospf-segment-routing-msd-14 (work in progress), May | ietf-ospf-segment-routing-msd-20 (work in progress), | |||
| 2018. | August 2018. | |||
| [I-D.ietf-pce-lsp-setup-type] | ||||
| Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | ||||
| Hardwick, "Conveying path setup type in PCEP messages", | ||||
| draft-ietf-pce-lsp-setup-type-10 (work in progress), May | ||||
| 2018. | ||||
| [I-D.ietf-pce-pcep-yang] | [I-D.ietf-pce-pcep-yang] | |||
| Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | Dhody, D., Hardwick, J., Beeram, V., and J. Tantsura, "A | |||
| YANG Data Model for Path Computation Element | YANG Data Model for Path Computation Element | |||
| Communications Protocol (PCEP)", draft-ietf-pce-pcep- | Communications Protocol (PCEP)", draft-ietf-pce-pcep- | |||
| yang-08 (work in progress), June 2018. | yang-08 (work in progress), June 2018. | |||
| [I-D.ietf-spring-segment-routing] | ||||
| Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., | ||||
| Litkowski, S., and R. Shakir, "Segment Routing | ||||
| Architecture", draft-ietf-spring-segment-routing-15 (work | ||||
| in progress), January 2018. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., | |||
| Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack | |||
| Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, | |||
| <https://www.rfc-editor.org/info/rfc3032>. | <https://www.rfc-editor.org/info/rfc3032>. | |||
| skipping to change at page 30, line 37 ¶ | skipping to change at page 29, line 42 ¶ | |||
| 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/info/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/info/rfc8281>. | <https://www.rfc-editor.org/info/rfc8281>. | |||
| [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., | ||||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | ||||
| Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, | ||||
| July 2018, <https://www.rfc-editor.org/info/rfc8402>. | ||||
| [RFC8408] Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J. | ||||
| Hardwick, "Conveying Path Setup Type in PCE Communication | ||||
| Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408, | ||||
| July 2018, <https://www.rfc-editor.org/info/rfc8408>. | ||||
| 13.2. Informative References | 13.2. Informative References | |||
| [I-D.ietf-6man-segment-routing-header] | [I-D.ietf-6man-segment-routing-header] | |||
| Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and | Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and | |||
| d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header | |||
| (SRH)", draft-ietf-6man-segment-routing-header-13 (work in | (SRH)", draft-ietf-6man-segment-routing-header-14 (work in | |||
| progress), May 2018. | progress), June 2018. | |||
| [I-D.ietf-spring-segment-routing-mpls] | [I-D.ietf-spring-segment-routing-mpls] | |||
| Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., | Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., | |||
| Litkowski, S., and R. Shakir, "Segment Routing with MPLS | Litkowski, S., and R. Shakir, "Segment Routing with MPLS | |||
| data plane", draft-ietf-spring-segment-routing-mpls-14 | data plane", draft-ietf-spring-segment-routing-mpls-14 | |||
| (work in progress), June 2018. | (work in progress), June 2018. | |||
| [I-D.ietf-spring-segment-routing-policy] | ||||
| Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., | ||||
| bogdanov@google.com, b., and P. Mattes, "Segment Routing | ||||
| Policy Architecture", draft-ietf-spring-segment-routing- | ||||
| policy-01 (work in progress), June 2018. | ||||
| [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/info/rfc3209>. | <https://www.rfc-editor.org/info/rfc3209>. | |||
| [RFC4657] Ash, J., Ed. and J. Le Roux, Ed., "Path Computation | [RFC4657] Ash, J., Ed. and J. 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/info/rfc4657>. | 2006, <https://www.rfc-editor.org/info/rfc4657>. | |||
| End of changes. 99 change blocks. | ||||
| 307 lines changed or deleted | 310 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||