PCE Working Group JP Vasseur Cisco System Inc. IETF Internet Draft JL Le Roux France Telecom Arthi Ayyangar Juniper Networks Eiji Oki NTT Alia Atlas Avici Systems, Inc Proposed Status: Standard Expires: November 2005 May 2005 Path Computation Element (PCE) Communication Protocol (PCEP) - Version 1 - draft-vasseur-pce-pcep-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2005). All Rights Reserved. Abstract Vasseur et al. [Page 1]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 This document specifies a communication protocol named PCEP (Path Computation Element (PCE) Communication Protocol) for supporting the interactions between a Path Computation Client (PCC) and a PCE or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of MPLS Traffic Engineering. The PCEP protocol is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119. Table of Contents 1. Terminology...........................................3 2. Introduction..........................................4 3. Assumptions...........................................4 4. Transport protocol....................................5 5. PCEP overview.........................................5 6. PCEP Finite State Machine (FSM).......................6 7. PCEP messages.........................................6 7.1. Common header.......................................6 7.2. Path Computation Request (PCReq) message............7 7.3. Path Computation Reply (PCRep) message..............8 7.4. Notification (PCNtf) message........................10 7.5. Error (PCErr) message...............................10 8. Object Formats........................................11 8.1. Common object header................................11 8.2. REQUEST-ID Object...................................12 8.3. END-POINTS object...................................14 8.4. BANDWIDTH object....................................15 8.5. DELAY Object........................................16 8.6. IRO Object..........................................16 8.7. CVEC Object.........................................17 8.8. NOTIFICATION object.................................18 8.9. PCEP-ERROR object...................................21 8.10. Reuse of existing RSVP objects.....................23 9. Path computation requests bundling....................24 9.1. Motivations.........................................25 9.1.1. Independent requests..............................25 9.1.2. Correlated request................................25 9.2. CVEC object.........................................26 9.3. Bundling of response within a PCRep message.........26 10. Elements of procedure................................26 10.1. REQUEST-ID message.................................26 10.2. BANDWITH Object....................................27 10.3. DELAY Object.......................................27 10.4. XRO Object.........................................27 Vasseur et al. [Page 2]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 10.5. IRO Object........................................27 10.6. CVEC object.......................................28 10.7. SESSION-ATTRIBUTE object..........................28 11. Manageability.......................................28 12. IANA considerations.................................28 12.1. TCP port..........................................28 12.2. PCEP Objects......................................28 12.3. Notification......................................30 12.4. PCEP Error........................................30 13. Security Considerations.............................31 14. Intellectual Property Statement.....................31 15. Acknowledgment......................................32 16. References..........................................32 16.1. Normative references..............................32 16.2. Informative References............................32 17. AuthorsÆ Address....................................33 1. Terminology Terminology used in this document CSPF: Constraint-based Shortest Path First. IGP Area: OSPF Area or IS-IS level Intra-domain TE LSP: TE LSP whose path does not transit across domains where a domain can either be an IGP area, an Autonomous System or a sub-AS (BGP confederations). Inter-domain TE LSP: A TE LSP whose path transits across at least two different IGP domains where a domain can either be an IGP area, an Autonomous System or a sub-AS (BGP confederations). Link State Advertisement: An OSPF LSA or IS-IS LSP LSDB: Link State Database. LSP: Label Switched Path. LSR: Label Switch Router. PCC: Path Computation Client: any client application requesting a path computation to be performed by the Path Computation Element. PCE: Path Computation Element: an entity (component, application or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints (see further description in section 3). Vasseur et al. [Page 3]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 PCEP: PCE Communication Protocol. TED: Traffic Engineering Database which contains the topology and resource information of the domain. The TED may be fed by IGP extensions or potentially by other means. TE LSP: Traffic Engineering Label Switched Path. TE LSP head-end: Head/source of the TE LSP. TE LSP tail-end: Tail/destination of the TE LSP. 2. Introduction There are several motivations for the adoption of a PCE based architecture to perform TE LSP path computation: (1) Limitation of the PCC: - Partial visibility (e.g. in the case of inter-domain TE LSPs), - Absence of the TED or use of Non-TE-Enabled IGP, - Network element lacks control plane or routing capability, (2) Requirement for sophisticated path computation not available on the PCC: - CPU-intensive path computation, - Backup path computation for bandwidth protection where more sophisticated backup tunnel path computations are required to minimize the required amount of backup capacity, - Multi-Layer traffic engineering. A more detailed description of the motivations listed above can be found in [PCE-ARCH] and this list does not mean to be exhaustive. Further, [PCE-ARCH] defines the building blocks for the PCE architecture (not repeated in this document), an element of which is the PCC-PCE/PCE-PCE communication protocol. The aim of this document is to specify such communication protocol with the objective to be compliant with the set of generic requirements specified in [PCE-COM- GEN-REQ] produced by the PCE Working Group. 3. Assumptions [PCE-ARCH] describes various types of PCE: it is important to note that no assumption is made on the nature of the PCE in this document. Moreover, it is assumed that the PCE gets the required information so as to perform TE LSP path computation which usually requires network topology and resource information that can be gathered by routing protocols or by some other means. The retrieval of such information is out of the scope of this document. Vasseur et al. [Page 4]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Similarly no assumption is made on the discovery method used by a PCC to discover a set of PCEs (e.g. via static configuration or dynamic discovery) and select a PCE to send it(s) request(s) to. For the sake of reference [PCE-DISC-REQ] defines a list of requirements for dynamic PCE discovery. 4. Transport protocol Reliable messaging and flow control are two key requirements specified in [PCE-COM-GEN-REQ] for PCEP. Consequently, TCP has been chosen as the transport protocol of choice and meet such requirements. The PCEP protocol will use a well-known TCP port to be assigned by IANA. An implementation may either decide to keep the TCP session alive for a unlimited time, should it have to send a new request later on (in which case the TCP session will already be in place); conversely, in some other circumstances, it may be desirable to systematically open and close the TCP session for each PCEP request (this is for instance the case if the sending of PCEP message is a rare event). Since there are circumstances where the TCP connection state is used to detect the PCC/PCE liveness (e.g case of a stateful PCE detecting a PCC failure thanks to the TCP state), the desired mode MUST be notified by the PCE when advertising its capability or manually configured on the PCE/PCC. Furthermore, another option would consist of negotiating the desired mode upon PCEP connection set up. Such aspect will be detailed in further revision of this document based on Working Group comments. 5. PCEP overview The PCE Working Group has produced a set of requirements for the PCE communication protocols ([PCE-COM-GEN-REQ]) which served as input to the design of the PCEP protocol and will not be repeated here in their entirety. A set of chief objectives of the PCEP protocol are: - To rely on a transport protocol that provides reliable data delivery, flow control and security, - To design a flexible protocol that could easily be extended to meet further requirements, - To ensure that the same protocol could be used between a PCC and a PCE as well as between two PCEs, - When appropriate, try to re-use objects already defined to encode TE LSP constraints (e.g. some RSVP ([RSVP]), RSVP-TE ([RSVP-TE] and [G-RSVP]) objects), - To design a scalable protocol capable of coping with situations which may require extensive protocol exchanges. Vasseur et al. [Page 5]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Note on terminology: in the rest of this document we use the PCC terminology to refer to an entity that sends a request to a PCE, should it be a regular PCC or a PCE itself acting as a PCC. 6. PCEP Finite State Machine (FSM) PCE Working Group feed-backs will be requested on the following items: - Is there a need for "open" and "close" messages? - Is there a requirement for PCEP hello message that could be used for faster PCC/PCE liveness detection? (If yes, the hello frequency could be negotiated upon PCEP connection setup (via open messages) - Is there a requirement for detailed capability discovery upon PCEP connection set up? Based on Working Groups feed-backs, the appropriate sections and the detailed FSM will be added. 7. PCEP messages A PCEP message consists of a common header followed by a variable length body made of a set of objects which can either be mandatory or optional. For each PCEP message type a set of rules is defined which specifies the set of possible objects that it can carry. We use the Backus-Naur Form (BNF) to specify such rules. Square brackets refer to optional sub-sequences. Note that although BNF implies a specific object order, a specific order is recommended but not imposed by PCEP. In other words, an implementation SHOULD form the PCEP messages using the recommended order but SHOULD accept a message with an arbitrary order. Conversely, if a mandatory object is missing in a PCEP message as defined in this document, this MUST trigger a protocol error condition. 7.1. Common header 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ver | Flags | Message-Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message-Type | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ver (Version): 4 bits PCEP protocol version number. The current version is version 1 Flags: 12 bits No Flag is currently defined Vasseur et al. [Page 6]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Message Length: 16 bits Total length of the PCEP message expressed in bytes including the common header. Message-Type: 8 bits The following message types are currently defined: 1: Path Computation Request 2: Path Computation Reply 3: Notification 4: Error 7.2. Path Computation Request (PCReq) message A Path Computation Request message (also referred to as a PCReq message) is sent by a PCC to a PCE so as to request a TE LSP path computation. The Message-Type field of the PCEP common header is set to 1. There are several mandatory objects that MUST be included within a PCReq message: the REQUEST-ID, the END-POINTS and the SESSION- ATTRIBUTE objects (see section 7). If one of these objects is missing, the receiving PCE MUST return an error message to the sender as specified in section 9. Other objects are optional. The IP source address of the PCReq message is any IP address of the sending PCC and MUST not be changed for a specific path computation request, should multiple PCReq messages be sent that all relate to same request. Furthermore, the requesting PCC MUST ensure that such IP address is reachable and present in the Routing Information Based (RIB). It is RECOMMENDED for the sending PCC to make use of the same IP address for all of its requests (unless such IP address becomes unreachable) in order to ease statistic computations on the PCE: for instance, if the PCC sends multiple path computation requests during a specific period of time, it is RECOMMENDED to systematically use the same source IP address. This way, some statistics can be maintained by the PCE to track the number of received path computation requests per PCC. If the PCCÆs address becomes unreachable, the PCE MUST not conclude of a PCC failure. The state of the TCP Connection dictates the PCC liveness. The format of a PCReq message is as follows: <PCReq Message>::= <Common Header> <REQUEST-ID> <END-POINTS> <SESSION-ATTRIBUTE> [<GENERALIZED LABEL REQUEST>] [<BANDWIDTH>] [<CLASSTYPE>] Vasseur et al. [Page 7]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 [<DELAY>] [<ERO>] [<XRO>] [<IRO>] [<PROTECTION>] When used with the CVEC object (see section 7) the PCReq message has the following form: <PCReq Message>::= <Common Header> <CVEC> <request-list> <request-list>::= <REQUEST-ID> <END-POINTS> <SESSION-ATTRIBUTE> [<GENERALIZED LABEL REQUEST>] [<BANDWIDTH>] [<CLASSTYPE>] [<DELAY>] [<ERO>] [<XRO>] [<IRO>] [<PROTECTION>] Definition of the objects listed above: Objects name Reference <REQUEST-ID> <END-POINTS> <BANDWIDTH> <CVEC> <DELAY> <IRO> Section 7 of this document <SESSION-ATTRIBUTE> <ERO> [RSVP-TE] <GENERALIZED LABEL REQUEST> [G-RSVP] <PROTECTION> [G-RECV-E2E-SIG]. <CLASSTYPE> [DS-TE-PROTO] <XRO> [XRO] 7.3. Path Computation Reply (PCRep) message The PCEP Path Computation reply message (also referred to as a PCRep message) is sent by a PCE to a requesting PCC in response to a Vasseur et al. [Page 8]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 previously received PCReq message. The Message-Type field of the PCEP common header is set to 2. The PCRep message MUST comprise a REQUEST-ID object with a Request- ID-number identical to the one received in the REQUEST-ID object carried in the corresponding PCReq message (see section 7 for the definition of the REQUEST-ID object). The IP destination address of the PCRep message MUST be equal to the IP source address present in the corresponding PCReq message. If the path computation request can be successfully satisfied (the PCE manages to compute a set of path(s) that obey the requested constraint(s)), the set of computed path(s) specified by means of ERO object(s) is inserted in the PCReq message. Such a situation where multiple computed paths are provided in a PCRep message is discussed in detail in section 8. In some circumstances (further discussed in section 7), the requesting PCC has the ability to specify in its path computation requests its interest in less-constrained path, should no path fully satisfying the set of requested constraints be found. If the path computation request cannot be (fully) satisfied and if the requesting PCC notified its interest to receive less-constrained paths then the PCE may insert in its reply a less-constrained computed path along with the corresponding attributes. The format of a PCRep message is as follows: <PCRep Message> ::= <Common Header> <REQUEST-ID> <ERO> [<ERO> à <ERO>] [<SESSION-ATTRIBUTE>] [<GENERALIZED LABEL REQUEST>] [<BANDWIDTH>] [<DELAY>] [<XRO>] [<IRO>] [<PROTECTION>] When used with the CVEC object, the PCRep message has the following form: <PCRep Message> ::= <Common Header> <CVEC> <path-list> path-list:== <REQUEST-ID> <ERO> [<ERO> à <ERO>] [<SESSION-ATTRIBUTE>] [<GENERALIZED LABEL REQUEST>] [<BANDWIDTH>] [<DELAY>] Vasseur et al. [Page 9]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 [<XRO>] [<IRO>] [<PROTECTION>] 7.4. Notification (PCNtf) message The PCEP Notification message (also referred to as the PCNtf message) can either be sent by a PCE to a PCC or by a PCC to a PCE so as to notify of a specific event. The Message-Type field of the PCEP common header is set to 3. The PCNtf message MUST carry at least one NOTIFICATION object and may comprise several NOTIFICATION objects, should the PCE or the PCC intent to notify of multiple events. The NOTIFICATION object is defined in section 7. The PCNtf message may also comprise a REQUEST- ID object when the notification refers to a particular path computation request. The PCNtf message may be sent by a PCC or a PCE in response to a request or in an unsolicited manner. The format of a PCNtf message is as follows: <PCNtf Message> ::= <Common Header> [<REQUEST-ID> à <REQUEST-ID>] <NOTIFICATION> [<NOTIFICATION> à <NOTIFICATION>] The expected procedure upon the reception of a PCNtf message is defined in section 9. 7.5. Error (PCErr) message The PCEP Error message (also referred to as a PCErr message) is sent when a protocol error condition is met. The Message-Type field of the PCEP common header is set to 4. The PCErr message may be sent by a PCC or a PCE in response to a request or in an unsolicited manner. In the former case, the PCErr message MUST include the set of REQUEST-ID objects related to the pending path computation request(s) which triggered the protocol error condition. In the later case (unsolicited), no REQUEST-ID is inserted within the PCErr message. A PCErr message MUST comprise a PCEP-ERROR object specifying the PCEP error condition. The PCEP-ERROR object is defined in section 7. The format of a PCErr message is as follows: <PCErr Message> ::= <Common Header> [<REQUEST-ID> à <REQUEST-ID>] <PCEP-ERROR> Vasseur et al. [Page 10]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 The expected procedure upon the reception of a PCErr message is defined in section 9. 8. Object Formats 8.1. Common object header A PCEP object carried within a PCEP message consists of one or more 32-bit words with a common header which has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Object-Class | Object-Type | Object Length (bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OS|PR| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // (Object contents) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1 - Common PCEP object header Object-Class (to be managed by IANA) 8-bit field that identifies the PCEP object class Object-Type (to be managed by IANA) 8-bit field that identifies the PCEP object type Object Length 16-bit field containing the total object length in bytes. Must always be a multiple of 4, and at least 8. OS (Object-Semantic) 2-bit flag that specifies the nature of the object carried within the object body. When set to 0, the object body carries a native PCEP object. When set to 1, the object body carries an RSVP object. PR (Processing-Rule) 2-bit flag which specifies whether the object is mandatory or optional. When set to 0, the object is mandatory. When set to 1, the object is optional. The maximum object content length is 65528 bytes. The Object-Class and Object-Type fields uniquely identify each PCEP object. Vasseur et al. [Page 11]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 The PR flag is used to determine what action a node should take if it does not recognize the Object-Class of a PCEP object: there are two possible ways that a PCEP implementation can react to a received PCEP object with an unknown Object-Class. This choice is determined by the PR flag, as follows. If PR flag=0 (Mandatory object) The entire PCEP message should be rejected and an "Unknown Object- Class" error returned in a PCErr message. If PR flag=1 (Optional object) The node should ignore the object and process the PCEP message if possible. In that case, the PCE should send a PCNtf message prior to sending its PCRep message containing the computed path(s) so as to notify the requesting PCC of the list of objects that were ignored during path computation because not recognized (see section XX). If not possible, a PCErr message must be sent to the requesting entity with a "Unknown Object-Class" error. 8.2. REQUEST-ID Object The REQUEST-ID object MUST be carried within every PCReq and PCRep messages and MAY be carried within PCNtf and PCErr messages. REQUEST-ID Object-Class is to be assigned by IANA REQUEST-ID Object-Type is to be assigned by IANA (recommended value=1) The PR flag of the REQUEST-ID object MUST be set to 0. Consequently, as described in section 7.1, a PCE receiving a PCEP message that does not support the REQUEST-ID object MUST trigger a protocol error and return a PCErr message to the requesting PCC. The format of the REQUEST-ID object body is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |P|C|B|R|N|L| Pri | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Request-ID-number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2 - REQUEST-ID object body format The REQUEST-ID object has a variable length and may contain additional TLVs. No TLV is currently defined. Vasseur et al. [Page 12]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Flags: 18 bits - The following flags are currently defined: Pri (Priority) field (3 bits) This field may be used by the requesting PCC to specify to the PCE the requestÆs priority. The decision of which priority should be used for a specific request is of a local matter and MUST be set to 0 when unused. In particular, the priority may or may not be correlated to the TE LSP priority used for setup. For example, a path computation request related to the computation of a TE LSP path of priority n which is in a down state may have a higher priority than the path computation request for the reoptimization of a TE LSP of priority n-1. Furthermore, the use of the path computation request priority by the PCE by its requests scheduler is implementation specific and out of the scope of this document. Note that it is not required for a PCE to support the priority field: in that case, the priority field SHOULD be set to 0 by the PCC in the REQUEST-ID object. If the PCE does not take into account the request priority, it is RECOMMENDED to set the priority field to 0 in the REQUEST-ID object carried within the corresponding PCRep message, regardless of the priority value contained in the REQUEST-ID object carried within the corresponding PCReq message. A higher numerical value of the priority field reflects a higher priority. Note that it is the responsibility of the network administrator to make use of the Priority values in a consistent way across the various PCC(s). The ability of a PCE to support requests prioritization may be dynamically discovered by the PCC(s) by means of PCE capability discovery. Conversely, if not advertised by the PCE, a PCC may decide to set the request priority and will learn the ability of the PCE the support request prioritization by observing the Priority field of the REQUEST-ID object received in the PCRep message. L (Less-constrained path) bit: when set in the PCReq message, the requesting PCC indicates to the PCE that a less-constrained path is of interest, should no path satisfying the full set of constraints be found by the PCE. If set in a PCRep message, this indicates that the requesting PCC has expressed an interest in less-constrained path and that the PCE was capable of computing less-constrained path(s) provided in the PCRep message. Note that further extensions of the PCEP protocol may allow for the support of hierarchical constraints relaxation policy whereby the requesting PCC may be able to indicate a preference order in which constraints may be relaxed in its path computation request. N (No path) bit: The N bit is exclusively used in PCRep message to indicate the status of the path computation response for a specific path computation request identified by the REQUEST-ID object. When cleared, the path computation request has been Vasseur et al. [Page 13]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 (fully or partially) satisfied and the corresponding path(s) is/are provided in the PCRep message. When set, that means that no path could be found by the PCE (thus no path is provided in the PCRep message). R (Reoptimization) bit: when set, the requesting PCC specifies that the PCReq message relates to the reoptimization of an existing TE LSP in which case the path of the existing TE LSP to be reoptimized MUST be provided in the PCReq message. B (Bi-directional) bit: when set, the PCC specifies that the path computation request relates to a bidirectional TE LSP. When cleared, the TE LSP is unidirectional. C (Cost) bit: when set, the PCE MUST provide the cost of the computed path in the PCRep message. P (Partial): When cleared in a PCReq message this indicates to the PCE that a path exclusively made of strict hops (set of directly connected LSRs) is required, and otherwise (the P bit is set to 1), a path with strict or loose route, or a mix of the two, is acceptable. In a PCRep message, when the P bit is cleared this indicates that the returned path is a strict route, otherwise (the P bit is set to 1), the returned path is partial (comprises loose hops). Request-ID-number: 32 bits This value (combined with the source IP address of the PCC) uniquely identifies the Path Computation Request context and is incremented each time a new request is sent to the PCE. If no path computation reply is received from the PCE, and the PCC wishes to resend its request, the same Request-ID-number MUST be used. Conversely, different Request-ID-number MUST be used for different requests sent to a PCE. The same Request-ID-number may be sent to different PCEs. The path computation reply is unambiguously identified by the IP source address of the replying PCE. 8.3. END-POINTS object The END-POINTS object is used in a PCReq message to specify the source IP address and the destination IP address of the TE LSP for which a path computation is requested. Two END-POINTS objects (for IPv4 and IPv6) are defined. END-POINTS Object-Class is to be assigned by IANA END-POINTS Object-Type is to be assigned by IANA (recommended value=1) The PR flag of the END-POINTS object MUST be set to 0. Consequently, as described in section 7.1, a PCE receiving a PCEP message that does Vasseur et al. [Page 14]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 not support the END-POINTS object MUST trigger a protocol error and return a PCErr message to the requesting PCC. The format of the END-POINTS object body for IPv4 is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination IPv4 address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3 - END-POINTS object body format for IPv4 The format of the END-POINTS object for IPv6 is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source IPv6 address (16 bytes) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination IPv6 address (16 bytes) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4 - END-POINTS object body format for IPv6 8.4. BANDWIDTH object The BANDWIDTH object is optional and can be used to specify the requested bandwidth and may be carried within PCReq and PCRep messages. The absence of the BANDWIDTH object MUST be interpreted by the PCE as a path computation request related to a 0 bandwidth TE LSP. BANDWIDTH Object-Class is to be assigned by IANA BANDWIDTH Object-Type is to be assigned by IANA (recommended value=1) The PR flag of the BANDWIDTH object MUST be set to 1. The format of the BANDWIDTH object body is as follows: 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 Vasseur et al. [Page 15]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BANDWIDTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5 - - BANDWIDTH object body format Bandwidth: 32 bits. The requested bandwidth is encoded in 32 bits in IEEE floating point format, expressed in bytes per second. 8.5. DELAY Object The DELAY object is optional and can be used to specify a strict delay constraint for the TE LSP. Note that the mechanism used by the PCE to retrieve the delays of each link is outside of the scope of this document (for the sake of illustration the link delay could be the IGP metric or a Service Provider may choose to use the TE metric to represent link delays). The requested delay may be carried within PCReq and PCRep messages. The absence of the DELAY object MUST be interpreted by the PCE as a path computation request without delay constraint. When carried within a PCReq message, the DELAY object specifies a delay constraint that must be satisfied by the computed path(s). In a PCRep message, the DELAY object indicates the delays of the computed path(s). DELAY Object-Class is to be assigned by IANA DELAY Object-Type is to be assigned by IANA (recommended value=1) The PR flag of the DELAY object MUST be set to 1. The format of the DELAY object body is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6 - - DELAY object body format Delay: 32 bits. The requested delay constraint is encoded in 32 bits in IEEE floating point format, expressed in milliseconds. 8.6. IRO Object The IRO (Include Route Object) object is optional and can be used to specify that the computed path must traverse a set of specified network element (abstract node). The IRO object may be carried within PCReq and PCRep messages. IRO Object-Class is to be assigned by IANA Vasseur et al. [Page 16]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 IRO Object-Type is to be assigned by IANA (recommended value=1) The PR flag of the IRO object MUST be set to 1. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // (Subobjects) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 7 Ï IRO object body format Subobjects The IRO object is made of sub-object identical to the ones defined in [RSVP-TE] and [G-RSVP] for use in EROs. The following subobject types are supported. Type Subobject 1 IPv4 prefix 2 IPv6 prefix 4 Unnumbered Interface ID 32 Autonomous system number Note that the L bit of such sub-object has no meaning within an IRO object. Note also that the ERO object carried within a PCReq message is exclusively used in the context of a reoptimization path computation request, thus the need to define a new object (IRO) to specify the inclusion of specified network element(s) in a TE LSP path. 8.7. CVEC Object Section 8 details the circumstances where it may be desirable and/or required to correlate several path computation requests. This leads to the specification of a new PCEP object named the CVEC object (Correlation VECtor). The CVEC object is optional. The aim of the CVEC object carried within a PCReq message is to specify the correlation of M path computation requests. The CVEC object is a variable length object that lists the set of M requests the computation of which MUST be correlated. Each path computation request is uniquely identified by the Request-ID-number carried within the respective REQUEST-ID object. The CVEC object also contains a set of flags that specify the correlation type. The CVEC object is carried within PCReq messages. CVEC Object-Class is to be assigned by IANA Vasseur et al. [Page 17]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 CVEC Object-Type is to be assigned by IANA The PR flag of the CVEC object MUST be set to 0. One Object-Type is defined for this object to be assigned by IANA with a recommended value of 1. The format of the CVEC object body is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Flags |S|N|L| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | REQUEST-ID Object #1 | | | // // | REQUEST-ID Object #M | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 8 - - CVEC body object format Flags Defines the correlation type between multiple path computation requests. L (Link diverse) bit: when set, this indicates that the computed paths corresponding to the requests specified by the following REQUEST-ID objects MUST not have any link in common. N (Node diverse) bit: when set, this indicates that the computed paths corresponding to the requests specified by the following REQUEST-ID objects MUST not have any node in common. S (SRLG diverse) bit: when set, this indicates that the computed paths corresponding to the requests specified by the following REQUEST-ID objects MUST not share any SRLG (Shared Risk Link Group). The flags defined above are not exclusive. 8.8. NOTIFICATION object The NOTIFICATION object is exclusively carried within a PCNtf message and can either be used in a message sent by a PCC to a PCE or by a PCE to a PCC so as to notify of an event. NOTIFICATION Object-Class is to be assigned by IANA NOTIFICATION Object-Type is to be assigned by IANA (recommended value=1) Vasseur et al. [Page 18]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 The PR flag of the NOTIFICATION object MUST be set to 1. One Object- Type is defined for this object to be assigned by IANA with a recommended value of 1. The format of the NOTIFICATION body object is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Flags | Notification- | Notification- | | | | type | value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Optional TLV(s) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 9 - - NOTIFICATION body object format Length The Length contains the total length of the object in bytes and includes the Type and Length fields. This length must be a multiple of 4 and must be at least 12. Flags No flag is currently defined A NOTIFICATION object is characterized by a Notification-type that specifies the class of notification and the Notification-value that provides additional information related to the nature of the notification. Both the Notification-type and Notification-value should be managed by IANA (see IANA section). The following Notification-type and Notification-value values are currently defined: Notification-type=1: Pending Request cancelled Notification-value=1: PCC cancels a set of pending request(s) A Notification-type=1, Notification-value=1 indicates that the PCC wants to inform a PCE of its desire to cancel a set of pending request(s). Such event could be triggered because of external conditions such as the receipt of a positive reply from another PCE (should the PCC have sent multiple requests to a set of PCEs for the same path computation request), a network event such as a network failure rendering the request obsolete or any other event(s) local to the PCE. A NOTIFICATION object with Notification-type=1, Notification-value=1 is exclusively carried within a PCNtf message sent from the PCC to the PCE. In that Vasseur et al. [Page 19]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 case, the REQUEST-ID object MUST also be present in the PCNtf message. Note that multiple REQUEST-ID objects may be carried within the PCNtf message in which case the notification applies to all of them. Notification-value=2: PCE cancels a set of pending request(s) A Notification-type=1, Notification-value=2 indicates that the PCE wants to inform a PCC of its desire to cancel a set of pending request(s). Such event could be triggered because of some PCE congested state or because of some path computation requests that are part the set of correlated path computation requests are missing. A NOTIFICATION object with Notification- type=1, Notification-value=2 is exclusively carried within a PCNtf message sent by a PCE. In that case, the REQUEST-ID object MUST also be present in the PCNtf message. Note that multiple REQUEST-ID objects may be comprised within the PCNtf message in which case the notification applies to all of them. Notification-type=2: PCE congestion Notification-value=1 A Notification-type=2, Notification-value=1 indicates to the PCC(s) that the PCE is currently in a congested state. If no REQUEST-ID objects are comprised in the PCNtf message, this indicates that no other requests should be sent to that PCE until the congested state is cleared: the pending requests are not affected and will be served. If some pending requests cannot be served due to the congested state, the PCE MUST also include a set of REQUEST-ID object(s) that identifies the set of pending requests which will not be honored and which will be cancelled by the PCE. In this case, the PCE does not have to send an additional PCNtf message with Notification-type=1 and Notification-value=2 since the list of cancelled requests is specified by including the corresponding set of REQUEST-ID object(s). Optionally, a TLV named CONGESTION-DURATION may be included in the NOTIFICATION object that specifies the duration during which no further request should be sent to the PCE. Once this period has expired the PCE can be considered as no longer in congested state. The CONGESTION-DURATION TLV is composed of 1 octet for the type, 1 octet specifying the number of bytes in the value field followed by a fix length value field of 4 octets specifying the estimated PCE congestion duration in seconds. TYPE: To be assigned by IANA LENGTH: 4 VALUE: estimated congestion duration in seconds Vasseur et al. [Page 20]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Notification-value=2 A Notification-type=2, Notification-value=2 indicates that the PCE is no longer in congested state and is available to process new path computation requests. An implementation MUST make sure that a PCE sends such notification to every PCC to which a Notification message (with Notification-type=2, Notification- value=1) has been sent unless a CONGESTION-DURATION TLV had been included in the corresponding message and the PCE wishes to wait for the expiration of that time before receiving new requests. If the PCE detects that a PCC to which such notification has been sent is in down state (TCP connection released), the PCE should delay the sending of such PCNtf message with Notification-type=2 and Notification-value=2 until the connection is re-established. An implementation may decide to cancel such notification if the PCC is in down state for a specific period. A RECOMMENDED value for such delay is 1 hour. It is RECOMMENDED to support some dampening notification procedure on the PCE so as to avoid too frequent congestion notifications and releases. For example, an implementation could make use of a dual- thresholds mechanism triggering the sending of congestion notifications and releases. Further, in case of high instabilities of the PCE resources, an additional dampening mechanism SHOULD be used (linear or exponential) to pace the notification frequency and avoid path computation requests oscillation. Notification-type=3: Reception by the PCE of a PCEP object with an unrecognized ææObject-Class ÆÆ Notification-value=1 A Notification-type=3, Notification-value=1 indicates to the PCC(s) that the PCE has received a path computation request comprising an optional PCEP object (PR flag set to 1) with an unrecognized Object- Class but that the PCE managed to compute a set of path(s) by ignoring the object. In that case, the PCE should send a PCNtf message prior to sending its PCRep message containing the computed path(s) so as to notify the requesting PCC of the list of objects that were ignored during path computation because they were not recognized. In such situation, the PCNtf message MUST comprise the list of ignored PCEP objects. 8.9. PCEP-ERROR object The PCEP-ERROR object is exclusively carried within a PCErr message and can either be used in a message sent by a PCC to a PCE or by a PCE to a PCC to notify of a PCEP protocol error. Vasseur et al. [Page 21]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 PCEP-ERROR Object-Class is to be assigned by IANA PCEP-ERROR Object-Type is to be assigned by IANA The PR flag of the PCEP-ERROR object MUST be set to 0. One Object- Type is defined for this object to be assigned by IANA with a recommended value of 1. The format of the PCEP-ERROR object body is as follows: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Flags | Error-Type | Error-Value | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Optional TLV(s) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 10 - PCEP-ERROR object body format A PCEP-ERROR object is used to report a PCEP protocol error and is characterized by an Error-Type which specifies the type of error and an Error-value that provides additional information about the error type. Both the Error-Type and the Error-Value should be managed by IANA (see the IANA section). Length (8 bits) The Length contains the total length of the object in bytes and includes the Type and Length fields. This length must be a multiple of 4 and must be at least 8. Flags (8 bits) No flag is currently defined. Error-type (8 bits) The Error-type defines the class of error. Error-value (8 bits) Provides additional details about the error. Note that optionally the PCErr message may contain additional TLV so as to provide further information about the encountered error. No TLV is currently defined. Furthermore, a single PCErr message may contain multiple PCEP-ERROR objects. Vasseur et al. [Page 22]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 For each PCEP protocol error, an Error type and value is defined. Error-Type Meaning 1 Capability not supported 2 Unknown Object-Class 3 Not supported object 4 Policy violation 5 Required Object missing 6 Correlated path computation request missing 7 Unknown request reference In case of the Error-Type 2, the PCE indicates that the path computation request cannot be completed because it does not support one or more required capability. The corresponding path computation request MUST then be cancelled. If a PCEP message is received that carries a mandatory PCEP object not recognized by the PCE (PR flag=0) or not supported, then the PCE MUST send a PCErr message with a PCEP-ERROR object (Error-Type=2 and 3 respectively). The corresponding path computation MUST be cancelled. If a PCEP message is received that relates to a request not compliant with an agreed policy between the PCC and the PCE, the PCE MUST send a PCErr message with a PCEP-ERROR object (Error-Type=4). The corresponding path computation MUST be cancelled. If a PCEP path computation request is received that does not comprise a required object, the PCE MUST send a PCErr message with a PCEP- ERROR object (Error-Type=5). The corresponding path computation MUST be cancelled. If a PCC sends a correlated path computation request to a PCE and the PCE does not receive all the correlated path computation requests listed within the corresponding CVEC object, the PCE MUST send a PCErr message with a PCEP-ERROR object (Error-Type=6). The corresponding correlated path computation MUST be cancelled. If a PCC receives a PCRep message related to an unknown path computation request, the PCC MUST send a PCErr message with a PCEP- ERROR object (Error-Type=6). 8.10. Reuse of existing RSVP objects Several RSVP objects have been defined in [RSVP], [RSVP-TE], [G-RSVP] and [DS-TE-PROTO] that specify TE LSP constraints which are used during TE LSP signaling. Although the PCEP protocol is not used for the purpose of signaling a TE LSP, there are several constraints which are provided by a requesting PCC to a PCE to perform path computation. Hence, when appropriate, objects already in the Vasseur et al. [Page 23]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 documents referenced above can be reused to pass constraint(s) or results to the computing PCE or provide results to the requesting PCC. A non-exhaustive list of such objects follows: 1) Explicit Route Object (ERO): The ERO object is defined in [RSVP- TE] and is used to specify an explicit route. An explicit route is described as a list of groups of nodes along the explicit route. In addition to the ability to identify specific nodes along the path, an explicit route can identify a group of nodes that must be traversed along the path. See [RSVP-TE] for the detailed object format description. 2) SESSION-ATTRIBUTE object: The SESSION-ATTRIBUTE object is defined in [RSVP-TE]. The Session Attribute Class is 207. Two C-Types are defined, LSP_TUNNEL, C-Type = 7 and LSP_TUNNEL_RA, C-Type = 1. The SESSION-ATTRIBUTE object with C-Type = 1 includes several TE LSP constraints: the set up and holding priorities, a set of flags used for various purposes which characterise TE LSP properties related for instance to protection (and in particular various attributes used by MPLS Traffic Engineering Fast Reroute (see [FRR])), the SE style, session name and so on. The SESSION-ATTRIBUTE object with C-Type =1 includes the same set of fields and additionally carries resource affinity information. 3) GENERALIZED LABEL REQUEST The GENERALIZED LABEL REQUEST object is defined in [G-RSVP] and is used to specify GMPLS TEP LSP constraints: LSP Encoding type, switching type, and G-PID parameter. See [G-RSVP] for the detailed object format. 4) PROTECTION The PROTECTION object is defined in [G-RECV-E2E-SIG]. LSP (Protection Type) Flags indicates the desired end-to-end LSP recovery type. Link Flags indicates the desired link protection type. The Notification (N) bit and Operational (O) bit has no meaning within an PROTECTION Object. See [G-RECV-E2E-SIG] for the detailed object format. When LSP When an LSP recovery type indicates "1+1 Bi-directional Protection", "1:N Protection with Extra-Traffic","1:N Protection with Extra- Traffic" or "Re-routing without Extra-Traffic", the CVEC Object is used to correlate more than one request in PCReq. When a LSP indicates "(Full) Re-routing" or "Unprotected", a correlated request is not necessary. An RSVP object may be carried within a PCEP object. In this case, the OS flag of the PCP common header MUST be set to 1. 9. Path computation requests bundling Vasseur et al. [Page 24]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 There are various circumstances where bundling multiple path computation requests is desirable or required. 9.1. Motivations 9.1.1. Independent requests When an LSR has to signal a set of N TE LSPs for which it needs to send path computation requests to a PCE so as to obtain their respective paths, the first solution consists of sending N independent PCReq messages to the selected PCE. Note that the PCC may chose to distribute the set of N requests across K PCEs for load balancing reasons. Considering that M (with M<N) requests are sent to a particular PCEi, as described above such M requests can be sent in the form of successive PCReq messages destined to PCEi. This is of course a viable solution if and only if such requests are independent. That said, even if such M request are independent, it can be desirable to request from the PCE the computation of their paths in a correlated fashion which is likely to lead to more optimal path computations and/or reduced blocking probability if the PCE is a stateless PCE. For example, trying to simultaneously compute the paths of M TE LSPs may allow the PCE to improve the likelihood to meet multiple constraints. Consider the case of two TE LSPs requesting N1 MBits/s and N2 MBits/s respectively and a maximum tolerable end to end delay for each TE LSP of X ms. There may be circumstances where the computation of the first TE LSP path irrespectively of the second TE LSP may lead to the impossibility to meet the delay criteria for the second TE LSP. A second example is related to the bandwidth constraint. It is quite straightforward to provide examples where a serialized independent path computation approach would lead to the impossibility to satisfy both requests (due to bandwidth fragmentation) while a correlated path computation would successfully satisfy both requests. A last example relies to the ability to avoid the allocation of the same resource to multiple requests thus helping to reduce the call set up failure probability compared to the computation of independent requests. Furthermore, if the PCC has to send a large number of path computation requests, it may also be desirable to pack multiple requests within a single PCReq object so as to minimize the control plane overhead. Note that the algorithm used by the PCC to ææpack ÆÆ a set of requests introduces some unavoidable trade-off between control plane load and delays and is outside of the scope of this document. The considerations listed above highlight one of the benefits of requesting the PCE to correlate the computation of M independent requests. 9.1.2. Correlated request Vasseur et al. [Page 25]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 There are other cases where the computation of M requests must be correlated an obvious example of which being the computation of M diverse paths. If such paths are computed in a non-correlated fashion this seriously increases the probability of not being able to satisfy all requests (sometimes also referred to as the well-know "trapping problem" and would not allow a PCE to implement objective functions such as trying to minimize the sum of the TE LSP costs. In such a case, the path computation requests are correlated, they cannot be computed independently of each others (in contrast with the previous cases discussed in section 8.1.1 where a set of requests are independent but would benefit from being computed in a correlated fashion). 9.2. CVEC object For the reasons explained in sections 8.1, path computation requests may be correlated. This is achieved by using the CVEC object that specifies the list of correlated requests along with the nature of the correlation. 9.3. Bundling of response within a PCRep message The bundling of multiple responses within a single PCRep message is permitted by the PCEP protocol. If a PCE receives non correlated path computation requests by means of one or more PCReq messages from a requesting PCC it may decide to bundle the computed paths within a single PCRep message so as to reduce the control plane load. Note that the counter side of such approach is the introduction of additional delays for some path computation requests of the set. 10. Elements of procedure 10.1. REQUEST-ID message The absence of a REQUEST-ID object in the PCReq message MUST trigger the sending of a PCErr message with Error-type=5 and Error-value=1. If the C bit of the REQUEST-ID message carried within a PCReq message is set and some local policy has been configured on the PCE not to provide such cost, then a PCErr message MUST be sent by the PCE to the requesting PCC and the pending path computation request MUST be discarded. The Error-type and Error-value of the PCEP-ERROR object MUST be set to 4 and 1 respectively. If the P bit of the REQUEST-ID message carried within a PCReq message is set and some local policy has been configured on the PCE not to provide path made of strict hops (for instance, for confidentiality reasons), then a PCErr message MUST be sent by the PCE to the requesting PCC and the pending path computation request MUST be discarded. The Error-type and Error-value of the PCEP-ERROR object MUST be set to 4 and 2 respectively. Vasseur et al. [Page 26]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 R bit: when the R bit of the REQUEST-ID object is set in a PCReq message, this indicates that the path computation request relates to the reoptimization of an existing TE LSP. In this case, the PCC MUST provide the complete or partial path by including an ERO object in the PCReq message so as to avoid double bandwidth counting. The ERO must be formed of strict hops only. If the PCC has previously requested a Partial ERO (P bit cleared), a reoptimization can still be requested by the PCC but this implies for the PCE to be either statefull (keep a trace of the previously computed path with the associated list of strict hops) or to have the ability to retrieve the complete required path segment, or for PCC to inform PCE of the working path with associated list of strict hops in PCReq. The absence of an ERO in the PCReq message when the R bit of the REQUEST- ID object is set MUST trigger the sending of a PCErr message with Error-type=5 and Error-value=2. If the PCC receives a PCReq message which contains a REQUEST-ID object referring to an unknown Request-ID-Number, it MUST trigger the sending of a PCErr message with Error-Type=7 and Error-value=1. 10.2. BANDWIDTH Object If the PCE cannot find a path that fully satisfies the bandwidth constraint and if the L bit of the REQUEST-ID is set and the PCE can find a less-constrained path, the PCE MUST return the less- constrained path in the form of an ERO along with a BANDWIDHT object that indicates the bandwidth for the computed TE LSP path. 10.3. DELAY Object If the PCE cannot find a path that fully satisfies the delay constraint and if the L bit of the REQUEST-ID is set and the PCE can find a less-constrained path, the PCE MUST return the less- constrained path in the form of an ERO along with a DELAY object that indicates the delay for the computed TE LSP path. 10.4. XRO Object If the PCE cannot find a path that fully satisfies the XRO constraint and if the L bit of the REQUEST-ID is set and the PCE can find a less-constrained path, the PCE MUST return the less-constrained path in the form of an ERO object along with a XRO object that specifies the list of network elements that the returned path does not comprise. Note that the inclusion of such XRO object in the PCReq message is required, should a partial path (path containing a set of loose hops/abstract nodes(s)) be returned to the PCC. 10.5. IRO Object If the PCE cannot find a path that fully satisfies the IRO constraint and if the L bit of the REQUEST-ID is set and the PCE can find a less-constrained path, the PCE MUST return the less-constrained path Vasseur et al. [Page 27]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 in the form of an ERO object along with a IRO object that specifies the list of network elements that the returned path comprises. Note that the inclusion of such IRO object in the PCReq message is required, should a partial path (path containing a set of loose hops/abstract nodes(s)) be returned to the PCC. 10.6. CVEC object When a requesting PCC desires to send multiple correlated path computation requests, as explained in section 8, it MUST send all the path computation requests within a single PCReq message that contains all the correlated path computation requests: in that case, the PCReq message MUST also comprise a CVEC object listing all the correlated path computation requests. Note that such PCReq message may also comprise non-correlated path computation requests. For example, the PCReq message may comprise N correlated path computation requests related to REQUEST-ID 1, à , REQUEST-ID N which will also be present in the CVEC object along with any other path computation requests. 10.7. SESSION-ATTRIBUTE object If the PCE cannot find a path that fully satisfies some of the constraints specified in the SESSION-ATTRIBUTE object carried within the PCReq message and if the L bit of the REQUEST-ID is set and the PCE can find a less-constrained path, then the PCE MUST return the less-constrained path in the form of an ERO along with a SESSION- ATTRIBUTE object that indicates the constraints that the returned computed TE LSP path has satisfied. 11. Manageability To be detailed in further revision of this document. 12. IANA considerations 12.1. TCP port The PCEP protocol will use a well-known TCP port to be assigned by IANA. 12.2. PCEP Objects Several new PCEP objects are defined in this document which have a Object-Class and an Object-Type. The new Object-Class and Object-Type should be assigned by IANA. - REQUEST-ID Object The Object-Class of the REQUEST-ID object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. Vasseur et al. [Page 28]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 - END-POINTS Object The Object-Class of the END-POINTS object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - BANDWIDTH Object The Object-Class of the BANDWIDTH object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - DELAY Object The Object-Class of the DELAY object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - IRO Object The Object-Class of the IRO object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - NOTIFICATION Object The Object-Class of the NOTIFICATION object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - PCEP-ERROR Object The Object-Class of the PCEP-ERROR object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. - CVEC Object The Object-Class of the CVEC object is to be assigned by IANA. One Object-Type is defined for this object and should be assigned by IANA with a recommended value of 1. Vasseur et al. [Page 29]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 12.3. Notification A NOTIFICATION object is characterized by a Notification-type that specifies the class of notification and a Notification-value that provides additional information related to the nature of the notification. Both the Notification-type and Notification-value should be managed by IANA (see IANA section). The following Notification-type and Notification-value values are currently defined: Notification-type=1: Pending Request cancelled Notification-value=1: PCC cancels a set of pending request(s) Notification-value=2: PCE cancels a set of pending request(s) Notification-type=2: PCE congestion Notification-value=1: PCE in congested state Notification-value=2: PCE no longer in congested state Notification-type=3: Reception by the PCE of a PCEP object with an unrecognized ææObject-Class ÆÆ Notification-value=1: indicates to the PCC(s) that the PCE has received a path computation request comprising an optional PCEP object (PR flag set to 1) with an unrecognized Object-Class but that the PCE managed to compute a set of path(s) by ignoring the object. 12.4. PCEP Error A PCEP-ERROR object is used to report a PCEP protocol error and is characterized by an Error-Type which specifies the type of error and an Error-value that provides additional information about the error type. Both the Error-Type and the Error-Value should be managed by IANA. Error-Type Meaning Error-Value 1 Capability not supported 2 Unknown Object-Class 3 Not supported object 4 Policy violation 1: Cost requested and not authorized 2: Complete path requested and not Vasseur et al. [Page 30]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 authorized 5 Required Object missing 1: REQUEST-ID object missing 2: ERO missing in a path computation reoptimization request 6 Correlated path computation request missing 1: Path computation requests listed in the CVEC object not received: resend requested 7 Unknown request reference 13. Security Considerations To be detailed in a further revision of this document. 14. Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress. Vasseur et al. [Page 31]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 15. Acknowledgment We would like to thank Dave Oran and Dean Cheng for their very valuable input. 16. References 16.1. Normative references [RFC] Bradner, S., "Key words for use in RFCs to indicate requirements levels", RFC 2119, March 1997. [RFC3667] Bradner, S., "IETF Rights in Contributions", BCP 78, RFC 3667, February 2004. [RFC3668] Bradner, S., Ed., "Intellectual Property Rights in IETF Technology", BCP 79, RFC 3668, February 2004. [RSVP] R. Braden et al., "Resource ReSerVation Protocol (RSVP) - Version 1 Functional Specification", RFC 2205, September 1997. [RSVP-TE] Awduche, D., et. al., "RSVP-TE: Extensions to RSVP for LSP tunnels", RFC 3209, December 2001. [G-RSVP] Berger, L, et. al., "GMPLS Signaling RSVP-TE extensions", Formatted: RFC 3473, January 2003. [SCTP] Stewart et al., "Stream Control Transmission Protocol", RFC2960, October 2000. [TCP] J. Postel, "Transmission Control Protocol", RFC 793, September 1981. [DS-TE-PROTO] Le Faucheur et al, "Protocol extensions for support of Differentiated-Service-aware MPLS Traffic Engineering", draft-ietf- tewg-diff-te-proto, (Work in progress). [G-RECV-E2E-SIG] J. P. Lang et al, "RSVP-TE Extensions in support of End-to-End Generalized Multi-Protocol Label Switching (GMPLS)-based Recovery", draft-ietf-ccamp-gmpls-recovery-e2e-signaling-03.txt (working in progress). 16.2. Informative References [PCE-ARCH] A. Farrel, JP. Vasseur and J. Ash, "Path Computation Element (PCE) Architecture", draft-ietf-pce-architecture (work in progress). [PCE-GEN-COM-REQ] J. Ash, J.L Le Roux et al., "PCE Communication Protocol Generic Requirements", draft-ietf-pce-comm-protocol-gen- reqs, (Work Progress). Vasseur et al. [Page 32]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 [GMPLS-RTG] Kompella, K., Rekhter, Y., "Routing Extensions in Support of Generalized Multi-Protocol Label Switching", draft-ietf-ccamp- gmpls-routing-09.txt (work in progress) [INT-AREA-REQ] Le Roux, J.L., Vasseur, J.P., Boyle, J. et al, "Requirements for inter-area MPLS Traffic Engineering", draft-ietf- tewg-interarea-mpls-te-req-03.txt, work in progress. [INT-AS-REQ] Zhang, R., Vasseur, J.P. et al, "MPLS Inter-AS Traffic Engineering Requirements", draft-ietf-tewg-interas-mpls-te-req- 09.txt, work in progress. [INT-DOMAIN-FRWK] Farrel, A., Vasseur, J.P., Ayyangar, A., "A Framework for Inter-Domain MPLS Traffic Engineering", draft-ietf- ccamp-inter-domain-framework-00.txt, work in progress. [MGT] A. Farrel et al. "Requirements for Manageability Sections in Routing Area Drafts", draft-farrel-rtg-manageability-requirements- 00.txt, work in progress. [XRO] Lee et al, "Exclude Routes - Extension to RSVP-TE", draft-ietf- ccamp-rsvp-te-exclude-route-03.txt, work in progress. [PCE-DISC-REQ] JL Le Roux et al., "Requirements for Path Computation Element (PCE) Discovery", draft-leroux-pce-discovery-reqs-00.txt, work in progress. 17. Authors Address Jean-Philippe Vasseur Cisco Systems, Inc. 300 Beaver Brook Road Boxborough , MA - 01719 USA Email: jpv@cisco.com Jean-Louis Le Roux France Telecom 2, avenue Pierre-Marzin 22307 Lannion Cedex FRANCE Email: jeanlouis.leroux@francetelecom.com Arthi Ayyangar Juniper Networks, Inc. 1194 N.Mathilda Ave Sunnyvale, CA 94089 USA E-mail: arthi@juniper.net Vasseur et al. [Page 33]
Internet Draft draft-vasseur-pce-pcep-00 May 2005 Eiji Oki NTT Midori 3-9-11 Musashino, Tokyo 180-8585 JAPAN Email: oki.eiji@lab.ntt.co.jp Alia K. Atlas Avici Systems, Inc. 101 Billerica Avenue N. Billerica, MA 01862 USA Phone: +1 978 964 2070 EMail: aatlas@avici.com Full Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights." This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Vasseur et al. [Page 34]