--- 1/draft-ietf-pce-pcep-domain-sequence-05.txt 2014-10-23 00:14:45.989898763 -0700 +++ 2/draft-ietf-pce-pcep-domain-sequence-06.txt 2014-10-23 00:14:46.049900222 -0700 @@ -1,20 +1,20 @@ PCE Working Group D. Dhody Internet-Draft U. Palle Intended status: Experimental Huawei Technologies -Expires: January 2, 2015 R. Casellas +Expires: April 25, 2015 R. Casellas CTTC - July 1, 2014 + October 22, 2014 Standard Representation Of Domain-Sequence - draft-ietf-pce-pcep-domain-sequence-05 + draft-ietf-pce-pcep-domain-sequence-06 Abstract The ability to compute shortest constrained Traffic Engineering Label Switched Paths (TE LSPs) in Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks across multiple domains has been identified as a key requirement. In this context, a domain is a collection of network elements within a common sphere of address management or path computational responsibility such as an Interior Gateway Protocol (IGP) area or an Autonomous Systems (AS). This @@ -34,21 +34,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." - This Internet-Draft will expire on January 2, 2015. + This Internet-Draft will expire on April 25, 2015. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -62,75 +62,73 @@ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Detail Description . . . . . . . . . . . . . . . . . . . . . 5 3.1. Domains . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Domain-Sequence . . . . . . . . . . . . . . . . . . . . . 5 3.3. Standard Representation . . . . . . . . . . . . . . . . . 6 3.4. Include Route Object (IRO) . . . . . . . . . . . . . . . 7 3.4.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 7 - 3.4.2. Option (A): New IRO Object Type . . . . . . . . . . . 9 - 3.4.2.1. Handling of the Domain-Sequence IRO object . . . 11 - 3.4.3. Option B: Existing IRO Object Type . . . . . . . . . 12 - 3.4.4. Comparison . . . . . . . . . . . . . . . . . . . . . 13 - 3.5. Exclude Route Object (XRO) . . . . . . . . . . . . . . . 14 - 3.5.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 14 - 3.5.1.1. Autonomous system . . . . . . . . . . . . . . . . 14 - 3.5.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 15 - 3.6. Explicit Exclusion Route Subobject (EXRS) . . . . . . . . 16 - 3.7. Explicit Route Object (ERO) . . . . . . . . . . . . . . . 17 - 4. Other Considerations . . . . . . . . . . . . . . . . . . . . 17 - 4.1. Inter-Area Path Computation . . . . . . . . . . . . . . . 18 - 4.2. Inter-AS Path Computation . . . . . . . . . . . . . . . . 20 - 4.2.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 20 - 4.2.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 22 - 4.3. Boundary Node and Inter-AS-Link . . . . . . . . . . . . . 24 - 4.4. PCE Serving multiple Domains . . . . . . . . . . . . . . 24 - 4.5. P2MP . . . . . . . . . . . . . . . . . . . . . . . . . . 25 - 4.6. Hierarchical PCE . . . . . . . . . . . . . . . . . . . . 25 - 4.7. Relationship to PCE Sequence . . . . . . . . . . . . . . 27 - 4.8. Relationship to RSVP-TE . . . . . . . . . . . . . . . . . 27 - 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 - 5.1. PCEP Objects . . . . . . . . . . . . . . . . . . . . . . 28 - 5.2. New Subobjects . . . . . . . . . . . . . . . . . . . . . 28 - 5.3. Error Object Field Values . . . . . . . . . . . . . . . . 28 - 6. Security Considerations . . . . . . . . . . . . . . . . . . . 29 - 7. Manageability Considerations . . . . . . . . . . . . . . . . 29 - 7.1. Control of Function and Policy . . . . . . . . . . . . . 29 - 7.2. Information and Data Models . . . . . . . . . . . . . . . 29 - 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 29 - 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 29 - 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 30 - 7.6. Impact On Network Operations . . . . . . . . . . . . . . 30 - 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 30 - 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 - 9.1. Normative References . . . . . . . . . . . . . . . . . . 30 - 9.2. Informative References . . . . . . . . . . . . . . . . . 30 - Appendix A. Sample Text for the IRO survey . . . . . . . . . . . 33 + 3.4.1.1. Autonomous system . . . . . . . . . . . . . . . . 8 + 3.4.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 8 + 3.4.2. Update in IRO specification . . . . . . . . . . . . . 9 + 3.4.3. IRO for domain-sequence . . . . . . . . . . . . . . . 10 + 3.5. Exclude Route Object (XRO) . . . . . . . . . . . . . . . 11 + 3.5.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 12 + 3.5.1.1. Autonomous system . . . . . . . . . . . . . . . . 12 + 3.5.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 13 + 3.6. Explicit Exclusion Route Subobject (EXRS) . . . . . . . . 14 + 3.7. Explicit Route Object (ERO) . . . . . . . . . . . . . . . 14 + 4. Other Considerations . . . . . . . . . . . . . . . . . . . . 15 + 4.1. Inter-Area Path Computation . . . . . . . . . . . . . . . 15 + 4.2. Inter-AS Path Computation . . . . . . . . . . . . . . . . 17 + 4.2.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 17 + 4.2.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 19 + 4.3. Boundary Node and Inter-AS-Link . . . . . . . . . . . . . 21 + 4.4. PCE Serving multiple Domains . . . . . . . . . . . . . . 21 + 4.5. P2MP . . . . . . . . . . . . . . . . . . . . . . . . . . 22 + 4.6. Hierarchical PCE . . . . . . . . . . . . . . . . . . . . 22 + 4.7. Relationship to PCE Sequence . . . . . . . . . . . . . . 24 + 4.8. Relationship to RSVP-TE . . . . . . . . . . . . . . . . . 24 + 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 + 5.1. New Subobjects . . . . . . . . . . . . . . . . . . . . . 25 + 5.2. Error Object Field Values . . . . . . . . . . . . . . . . 25 + 6. Security Considerations . . . . . . . . . . . . . . . . . . . 25 + 7. Manageability Considerations . . . . . . . . . . . . . . . . 26 + 7.1. Control of Function and Policy . . . . . . . . . . . . . 26 + 7.2. Information and Data Models . . . . . . . . . . . . . . . 26 + 7.3. Liveness Detection and Monitoring . . . . . . . . . . . . 26 + 7.4. Verify Correct Operations . . . . . . . . . . . . . . . . 26 + 7.5. Requirements On Other Protocols . . . . . . . . . . . . . 26 + 7.6. Impact On Network Operations . . . . . . . . . . . . . . 27 + 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 + 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 + 9.1. Normative References . . . . . . . . . . . . . . . . . . 27 + 9.2. Informative References . . . . . . . . . . . . . . . . . 27 1. Introduction A PCE may be used to compute end-to-end paths across multi-domain environments using a per-domain path computation technique [RFC5152]. The so called backward recursive path computation (BRPC) mechanism [RFC5441] defines a PCE-based path computation procedure to compute inter-domain constrained (G)MPLS TE LSPs. However, both per-domain and BRPC techniques assume that the sequence of domains to be crossed from source to destination is known, either fixed by the network operator or obtained by other means. Also for inter-domain point-to- - multi-point (P2MP) tree computation, [PCE-P2MP-PROCEDURES] assumes - the domain-tree is known in priori. + multi-point (P2MP) tree computation, [RFC7334] assumes the domain- + tree is known in priori. The list of domains (domain-sequence) in a point-to-point (P2P) path - or a point-to-multi-point (P2MP) tree is usually a constraint in the - path computation request. The PCE determines the next PCE to forward + or a point-to-multipoint (P2MP) tree is usually a constraint in the + path computation request. A PCE determines the next PCE to forward the request based on the domain-sequence. In a multi-domain path computation, a PCC MAY indicate the sequence of domains to be traversed using the Include Route Object (IRO) defined in [RFC5440]. When the sequence of domains is not known in advance, the Hierarchical PCE (H-PCE) [RFC6805] architecture and mechanisms can be used to determine the end-to-end Domain-Sequence. This document defines a standard way to represent and encode a Domain-Sequence in various deployment scenarios including P2P, P2MP @@ -179,22 +177,22 @@ Domain: As per [RFC4655], any collection of network elements within a common sphere of address management or path computational responsibility. Examples of domains include Interior Gateway Protocol (IGP) areas and Autonomous Systems (ASs). Domain-Sequence: An ordered sequence of domains traversed to reach the destination domain. ERO: Explicit Route Object - H-PCE: Hierarchical PCE + H-PCE: Hierarchical PCE IGP: Interior Gateway Protocol. Either of the two routing protocols, Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS). IRO: Include Route Object IS-IS: Intermediate System to Intermediate System. OSPF: Open Shortest Path First. @@ -207,20 +205,22 @@ constraints. P2MP: Point-to-Multipoint P2P: Point-to-Point RSVP: Resource Reservation Protocol TE LSP: Traffic Engineering Label Switched Path. + XRO: Exclude Route Object + 3. Detail Description 3.1. Domains [RFC4726] and [RFC4655] define domain as a separate administrative or geographic environment within the network. A domain may be further defined as a zone of routing or computational ability. Under these definitions a domain might be categorized as an AS or an IGP area. Each AS can be made of several IGP areas. In order to encode a Domain-Sequence, it is required to uniquely identify a domain in the @@ -231,24 +231,23 @@ A domain-sequence is an ordered sequence of domains traversed to reach the destination domain. A domain-sequence can be applied as a constraint and carried in path computation request to PCE(s). A domain-sequence can also be the result of a path computation. For example, in the case of H-PCE [RFC6805] Parent PCE MAY send the Domain-Sequence as a result in a path computation reply. - In this context, the ordered nature of a domain-sequence is - considered to be important. In a P2P path, the domains listed appear - in the order that they are crossed. In a P2MP path, the domain tree - is represented as list of domain sequences. + In a P2P path, the domains listed appear in the order that they are + crossed. In a P2MP path, the domain tree is represented as list of + domain sequences. A domain-sequence enables a PCE to select the next PCE to forward the path computation request based on the domain information. A PCC or PCE MAY add an additional constraints covering which Boundary Nodes (ABR or ASBR) or Border links (Inter-AS-link) MUST be traversed while defining a Domain-Sequence. Thus a Domain-Sequence MAY be made up of one or more of - @@ -272,27 +271,27 @@ computation, explicitly specifying which domains to be expanded; 4. by a PCE in per-domain path computation model [RFC5152] to identify the next domain(s); 3.3. Standard Representation Domain-Sequence MAY appear in PCEP Messages, notably in - o Include Route Object (IRO): As per [RFC5440], used to specify set - of network elements that MUST be traversed. These subobjects are - used to specify the domain-sequence that MUST be traversed to + of network elements that MUST be traversed. The subobjects in IRO + are used to specify the domain-sequence that MUST be traversed to reach the destination. o Exclude Route Object (XRO): As per [RFC5521], used to specify - certain abstract nodes that MUST be excluded from whole path. - These subobjects are used to specify certain domains that MUST be + certain abstract nodes that MUST be excluded from whole path. The + subobjects in XRO are used to specify certain domains that MUST be avoided to reach the destination. o Explicit Exclusion Route Subobject (EXRS): As per [RFC5521], used to specify exclusion of certain abstract nodes between a specific pair of nodes. EXRS are a subobject inside the IRO. These subobjects are used to specify the domains that must be excluded between two abstract nodes. o Explicit Route Object (ERO): As per [RFC5440], used to specify a computed path in the network. For example, in the case of H-PCE @@ -316,72 +315,72 @@ 1 IPv4 prefix 2 IPv6 prefix 4 Unnumbered Interface ID 32 Autonomous system number (2 Byte) 33 Explicit Exclusion (EXRS) This document extends the above list to support 4-Byte AS numbers and IGP Areas. Type Subobject - TBD Autonomous system number (4 Byte) - TBD OSPF Area id - TBD ISIS Area id + TBD1 Autonomous system number (4 Byte) + TBD2 OSPF Area id + TBD3 ISIS Area id - - Autonomous system +3.4.1.1. Autonomous system [RFC3209] already defines 2 byte AS number. To support 4 byte AS number as per [RFC4893] following subobject is defined: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AS-ID (4 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - L: The L bit is an attribute of the subobject as defined in - [RFC3209]. + L: The L bit is an attribute of the subobject as defined in [RFC3209] + and usage in IRO subobject updated in [IRO-UPDATE]. - Type: (TBA by IANA) indicating a 4-Byte AS Number. + Type: (TBD1 by IANA) indicating a 4-Byte AS Number. Length: 8 (Total length of the subobject in bytes). Reserved: Zero at transmission, ignored at receipt. AS-ID: The 4-Byte AS Number. Note that if 2-Byte AS numbers are in use, the low order bits (16 through 31) should be used and the high order bits (0 through 15) should be set to zero. - - IGP Area +3.4.1.2. IGP Area Since the length and format of Area-id is different for OSPF and ISIS, following two subobjects are defined: For OSPF, the area-id is a 32 bit number. The subobject is encoded 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OSPF Area Id (4 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - L: The L bit is an attribute of the subobject as defined in - [RFC3209]. + L: The L bit is an attribute of the subobject as defined in [RFC3209] + and usage in IRO subobject updated in [IRO-UPDATE]. - Type: (TBA by IANA) indicating a 4-Byte OSPF Area ID. + Type: (TBD2 by IANA) indicating a 4-Byte OSPF Area ID. Length: 8 (Total length of the subobject in bytes). Reserved: Zero at transmission, ignored at receipt. OSPF Area Id: The 4-Byte OSPF Area ID. For IS-IS, the area-id is of variable length and thus the length of the Subobject is variable. The Area-id is as described in IS-IS by ISO standard [ISO10589]. The subobject is encoded as follows: @@ -389,245 +388,134 @@ 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Type | Length | Area-Len | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // IS-IS Area ID // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - L: The L bit is an attribute of the subobject as defined in - [RFC3209]. + L: The L bit is an attribute of the subobject as defined in [RFC3209] + and usage in IRO subobject updated in [IRO-UPDATE]. - Type: (TBA by IANA) indicating IS-IS Area ID. + Type: (TBD3 by IANA) indicating IS-IS Area ID. Length: Variable. As per [RFC3209], the total length of the subobject in bytes, including the L, Type and Length fields. The Length MUST be at least 4, and MUST be a multiple of 4. Area-Len: Variable (Length of the actual (non-padded) IS-IS Area Identifier in octets; Valid values are from 2 to 11 inclusive). Reserved: Zero at transmission, ignored at receipt. IS-IS Area Id: The variable-length IS-IS area identifier. Padded with trailing zeroes to a four-byte boundary. -3.4.2. Option (A): New IRO Object Type - - [Editor's Note: Currently there is a discussion going on in the - working group (WG) to evaluate if the existing IRO as per [RFC5440] - can be considered to be ordered in nature. It has been suggested - that a poll could be issued to gather feedback from the current - implementations, based on which WG could decide to clarify the - position on IRO. The following section would be revaluated and - updated based on that decision. See Appendix A for the sample survey - text.] - - [RFC5440] in its description of IRO does not require the subobjects - to be in a given particular order. When considering a Domain- - Sequence, the domain relative ordering is a basic criterion and, as - such, this option suggest a new IRO object type. - - IRO Object-Class is 10. - IRO Object-Type is TBD. (2 suggested value to IANA) - - 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) // - | | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +3.4.2. Update in IRO specification - Subobjects: The IRO is made of subobjects identical to the ones - defined in [RFC3209], [RFC3473], and [RFC3477], where the IRO - subobject type is identical to the subobject type defined in the - related documents. Some new subobjects related to Domain-Sequence - are also added in this document as mentioned in Section 3.4. + [RFC5440] describes IRO as an optional object used to specify that + the computed path MUST traverse a set of specified network elements. + It further state that the L bit of such sub-object has no meaning + within an IRO. It did not mention if IRO is an ordered or un-ordered + list of sub-objects. - [RFC3209] defines subobjects for IPv4, IPv6 and unnumbered Interface - ID, which in the context of domain-sequence is used to specify - Boundary Node (ABR/ASBR) and Inter-AS-Links. The subobjects for AS - Number (2 or 4 Byte) and IGP Area is used to specify the domain - identifiers in the domain-sequence. + An update to IRO specification [IRO-UPDATE] makes IRO as an ordered + list as well as support for loose bit (L-bit). - The new IRO Object-Type used to define the domain-sequence would - handle the L bit (Loose / Strict) in the subobjects similar to - [RFC3209]. + The use IRO for domain-sequence assumes the updated specification for + IRO as per [IRO-UPDATE]. - Further we have following options: +3.4.3. IRO for domain-sequence - * Option (A.1): New IRO Object Type for Domain-Sequence object only. - A new IRO Object Type is used to specify the ordered sequence of - domains (Domain-Sequence) only. The PCReq message is modified to - allow encoding of both types of IRO; one with IRO Type 1 [RFC5440] - used to specify the intra-domain abstract nodes and resources and - the second IRO Type with the new subobjects as described in this - section to specify the domain-sequence. All other rules of PCEP - objects and message processing (ex. P bit handling of Common - Object Header) is as per [RFC5440]. + Some subobjects for IRO are defined in [RFC3209], [RFC3473], + [RFC3477] and [RFC4874], further some new subobjects related to + Domain-Sequence are also added in this document as mentioned in + Section 3.4. - * Option (A.2): New IRO Object Type for both intra and inter-domain - (domain-sequence). A new IRO Object Type is used to include both - intra nodes and inter-domains nodes but the sequence of domain is - strict. The intra-domain nodes can still be ordered. In case of - inter-domain path computation, only the new IRO type is used which - contains the specific intra domain network nodes as well as inter- - domain abstract nodes or domains. The inter-domain abstract nodes - are encoded in the sequence they must be traversed but the intra- - domain elements MAY be an unordered set. There is no need to - change the PCReq message format. + The subobjects for IPv4, IPv6 and unnumbered Interface ID can be used + to specify Boundary Node (ABR/ASBR) and Inter-AS-Links. The + subobjects for AS Number (2 or 4 Byte) and IGP Area is used to + specify the domain identifiers in the domain-sequence. -3.4.2.1. Handling of the Domain-Sequence IRO object + The IRO MAY have both intra-domain (from the context of the ingress + PCC) and inter-domain (domain-sequence) subobjects in a sequence in + which they must be traversed in the computed path. - An IRO object containing Domain-Sequence subobjects constraints or - defines the domains involved in a multi-domain path computation, - typically involving two or more collaborative PCEs. + Thus an IRO comprising of subobjects that represents a domain- + sequence may constraints or define the domains involved in an inter- + domain path computation, typically involving two or more + collaborative PCEs. A Domain-Sequence can have varying degrees of granularity; it is possible to have a Domain-Sequence composed of, uniquely, AS identifiers. It is also possible to list the involved areas for a given AS. In any case, the mapping between domains and responsible PCEs is not defined in this document. It is assumed that a PCE that needs to obtain a "next PCE" from a Domain-Sequence is able to do so (e.g. via administrative configuration, or discovery). - A PCC builds a Domain-Sequence IRO to encode the Domain-Sequence, - that is all domains that it wishes the cooperating PCEs to traverse - in order to compute the end to end path. + A PCC builds an IRO to encode the Domain-Sequence, that the + cooperating PCEs should compute an inter-domain shortest constrained + paths across the specified sequence of domains. For each inclusion, the PCC clears the L-bit to indicate that the PCE is required to include the domain, or sets the L-bit to indicate that the PCC simply desires that the domain be included in the domain- sequence. - When a PCE receives a PCEP Request message with an IRO, it looks for - a Domain-Sequence IRO (new type) to see if a domain-sequence is - specified. If the message contains more than one Domain-Sequence IRO - (new type), it MUST use the first one in the message and MUST ignore - subsequent instances. - - If a PCE does not recognize the Domain-Sequence IRO (new type), it - MUST return a PCErr message with Error-Type "Unknown Object" and - Error-value "Unrecognized object Type" as described in [RFC5440]. - - If a PCE is unwilling or unable to process the Domain-Sequence IRO - (new type), it MUST return a PCErr message with the Error-Type "Not - supported object" and follow the relevant procedures described in - [RFC5440]. - - If a PCE that supports the Domain-Sequence IRO (new type) and - encounters a subobject that it does not support or recognize, it MUST - act according to the setting of the L-bit in the subobject. If the - L-bit is clear, the PCE MUST respond with a PCErr with Error-Type - "Unrecognized subobject" and set the Error-Value to the subobject - type code. If the L-bit is set, the PCE MAY respond with a PCErr as - already stated or MAY ignore the subobject: this choice is a local - policy decision. + If a PCE encounters a subobject that it does not support or + recognize, it MUST act according to the setting of the L-bit in the + subobject. If the L-bit is clear, the PCE MUST respond with a PCErr + with Error-Type TBD4 "Unrecognized subobject" and set the Error-Value + to the subobject type code. If the L-bit is set, the PCE MAY respond + with a PCErr as already stated or MAY ignore the subobject: this + choice is a local policy decision. - If a PCE parses a Domain-Sequence IRO (new type), it MUST act - according to the requirements expressed in the subobject. That is, - if the L-bit is clear, the PCE(s) MUST produce a path that follows - domain-sequence nodes in order identified by the subobjects in the - path. If the L-bit is set, the PCE(s) SHOULD produce a path along - the Domain-Sequence unless it is not possible to construct a path - complying with the other constraints expressed in the request. + PCE MUST act according to the requirements expressed in the + subobject. That is, if the L-bit is clear, the PCE(s) MUST produce a + path that follows domain-sequence nodes in order identified by the + subobjects in the path. If the L-bit is set, the PCE(s) SHOULD + produce a path along the Domain-Sequence unless it is not possible to + construct a path complying with the other constraints expressed in + the request. - A successful path computation reported in a PCEP response message - MUST include an ERO to specify the path that has been computed as - specified in [RFC5440] following the sequence of domains. + A successful path computation reported in a PCEP reply message + (PCRep) MUST include an ERO to specify the path that has been + computed as specified in [RFC5440] following the sequence of domains. - In a PCEP response message, PCE MAY also supply a Domain-Sequence IRO - (new type) with the NO-PATH object indicating that the set of - elements of the request's Domain-Sequence IRO prevented the PCE from + In a PCRep, PCE MAY also supply IRO (with domain sequence + information) with the NO-PATH object indicating that the set of + elements (domains) of the request's IRO prevented the PCEs from finding a path. - Subobject types for AS and IGP Area affect the next domain selection - as well as finding the PCE serving that domain. + The Subobject types for domains (AS and IGP Area) affect the next + domain selection as well as finding the PCE serving that domain. Note that a particular domain in the domain-sequence can be identified by :- o A single IGP Area: Only the IGP (OSPF or ISIS) Area subobject is used to identify the next domain. (Refer Figure 1) o A single AS: Only the AS subobject is used to identify the next domain. (Refer Figure 2) o Both an AS and an IGP Area: Combination of both AS and Area are used to identify the next domain. In this case the order is AS Subobject followed by Area. (Refer Figure 3) - Subobject representing Boundary Node or Inter-AS-Link MUST be applied - during the final path computation procedure as before. - -3.4.3. Option B: Existing IRO Object Type - - The IRO (Include Route Object) [RFC5440] is an optional object used - to specify a set of network elements that the computed path MUST - traverse. - - The new subobjects denoting the domain-sequence are carried in the - same IRO Type 1, and all the rules of processing as specified in - [RFC5440] are applied. - - Note the following differences :- - - o Order: Since there is no inherent order specified in the encoding - of the subobjects in IRO Type 1 [RFC5440], it is the job of the - PCE to figure out the optimal order of the domains to be crossed - to reach the destination domain. Note that in case of doubt, or - when applicable, the PCE can still apply the ordering as specified - in the request message. Further PCE may have to crankback and try - multiple permutations before figuring out the correct sequence. - - o Loose / Strict (L-Bit): [RFC5440] state that the L bit of the - subobjects within an IRO Type 1 [RFC5440] has no meaning. This - will be applicable for subobjects denoting domain-sequence as - well. - - o Scope: Coexistence of intra-domain nodes, boundary nodes and - domain nodes in the same IRO List. It is the job of PCE to figure - out the scope and apply the processing rules accordingly. The - nodes in the IRO which are recognized by the PCE are handled - locally and others are forwarded to next PCE hoping they would - handle them, the aggregating PCE (Ingress PCE or Parent) would - make sure that all nodes in IRO are handled correctly. - -3.4.4. Comparison - -+-------------+-------------------+-------------------+-------------------+ -| |Option (A.1): New |Option (A.2): New |Option B: Existing | -| |IRO Object Type for|IRO Object Type for|IRO Object Type | -| |Domain-Sequence |both intra and | | -| |object only |inter-domain | | -+-------------+-------------------+-------------------+-------------------+ -|Order |Yes |Yes |No | -+-------------+-------------------+-------------------+-------------------+ -|L/X bit |Yes |Yes |No | -+-------------+-------------------+-------------------+-------------------+ -|Msg Format |No |Yes |Yes | -|Unchanged | | | | -+-------------+-------------------+-------------------+-------------------+ -|Seperation |Yes |Yes* |No | -|of scope | | | | -+-------------+-------------------+-------------------+-------------------+ - -* becasue of the ordered nature, intra-domain nodes would be first in the - new IRO type - - [Editor's Note: Based on our opinion and the feedback received so - far, we feel the option A.2 should be selected.] + The Subobjects representing an internal node, a Boundary Node or an + Inter-AS-Link MAY influence the selection of the path as well. 3.5. Exclude Route Object (XRO) The Exclude Route Object (XRO) [RFC5521] is an optional object used to specify exclusion of certain abstract nodes or resources from the whole path. 3.5.1. Subobjects The following subobject types are defined to be used in XRO as @@ -639,23 +527,23 @@ 4 Unnumbered Interface ID 32 Autonomous system number (2 Byte) 34 SRLG 64 IPv4 Path Key 65 IPv6 Path Key This document extends the above list to support 4-Byte AS numbers and IGP Areas. Type Subobject - TBD Autonomous system number (4 Byte) - TBD OSPF Area id - TBD ISIS Area id + TBD1 Autonomous system number (4 Byte) + TBD2 OSPF Area id + TBD3 ISIS Area id 3.5.1.1. Autonomous system The new subobjects to support 4 byte AS and IGP (OSPF / ISIS) Area MAY also be used in the XRO to specify exclusion of certain domains in the path computation procedure. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @@ -726,23 +614,23 @@ 1: indicates that the ISIS Area specified SHOULD be avoided from the inter-domain path computed by the PCE(s), but MAY be included subject to PCE policy and the absence of a viable path that meets the other constraints. All other fields are consistent with the definition in Section 3.4. If a PCE that supports XRO and encounters a subobject that it does not support or recognize, it MUST act according to the setting of the X-bit in the subobject. If the X-bit is clear, the PCE MUST respond - with a PCErr with Error-Type "Unrecognized subobject" and set the - Error-Value to the subobject type code. If the X-bit is set, the PCE - MAY respond with a PCErr as already stated or MAY ignore the + with a PCErr with Error-Type TBD4 "Unrecognized subobject" and set + the Error-Value to the subobject type code. If the X-bit is set, the + PCE MAY respond with a PCErr as already stated or MAY ignore the subobject: this choice is a local policy decision. All the other processing rules are as per [RFC5521]. 3.6. Explicit Exclusion Route Subobject (EXRS) Explicit Exclusion Route Subobject (EXRS) [RFC5521] is used to specify exclusion of certain abstract nodes between a specific pair of nodes. @@ -771,23 +659,23 @@ 32 Autonomous system number (2 Byte) 33 Explicit Exclusion (EXRS) 37 Protection 64 IPv4 Path Key 65 IPv6 Path Key This document extends the above list to support 4-Byte AS numbers and IGP Areas. Type Subobject - TBD Autonomous system number (4 Byte) - TBD OSPF Area id - TBD ISIS Area id + TBD1 Autonomous system number (4 Byte) + TBD2 OSPF Area id + TBD3 ISIS Area id The new subobjects to support 4 byte AS and IGP (OSPF / ISIS) Area MAY also be used in the ERO to specify an abstract node (a group of nodes whose internal topology is opaque to the ingress node of the LSP). Using this concept of abstraction, an explicitly routed LSP can be specified as a sequence of domains. In case of Hierarchical PCE [RFC6805], a Parent PCE MAY be requested to find the domain-sequence. Refer example in Section 4.6. @@ -1055,27 +943,27 @@ |Header | |100 | |IPv4 | |IPv4 | |200 | | | | | |x.x.x.x | |x.x.x.x | | | | | | | | | | | | | +---------+ +---------+ +---------+ +---------+ +---------+ 4.4. PCE Serving multiple Domains A single PCE MAY be responsible for multiple domains; for example PCE function deployed on an ABR. A PCE which can support 2 adjacent domains can internally handle this situation without any impact on - the neighboring domains. + the neighbouring domains. 4.5. P2MP - In case of inter-domain P2MP path computation, (Refer - [PCE-P2MP-PROCEDURES]) the path domain tree is nothing but a series - of Domain Sequences, as shown in the below figure: + In case of inter-domain P2MP path computation, (Refer [RFC7334]) the + path domain tree is nothing but a series of Domain Sequences, as + shown in the below figure: D1-D3-D6, D1-D3-D5 and D1-D2-D4. D1 / \ D2 D3 / / \ D4 D5 D6 All rules of processing as applied to P2P can be applied to P2MP as well. @@ -1129,21 +1017,21 @@ | + + +--+ | | +--+ | | | | | | | | +--+ | | +--+ | | | | | | | | +--+ | | Area 1 | | Area 5 | +------------------+ +--------------------+ Figure 4: Hierarchical PCE - In H-PCE, the Ingress PCE PCE(1) can request the parent PCE to + In H-PCE, the Ingress PCE 'PCE(1)' can request the parent PCE to determine the Domain-Sequence and return it in the PCEP response, using the ERO Object. The ERO can contain an ordered sequence of subobjects such as AS and Area (OSPF/ISIS) subobjects. In this case, the Domain-Sequence appear as: +---------+ +---------+ +---------+ +---------+ |ERO | |Sub | |Sub | |Sub | |Object | |Object | |Object | |Object | |Header | |Area 2 | |Area 0 | |Area 4 | | | | | | | | | @@ -1151,23 +1039,20 @@ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ |ERO | |Sub | |Sub | |Sub | |Sub | |Object | |Object AS| |Object | |Object | |Object | |Header | |100 | |Area 2 | |Area 0 | |Area 4 | | | | | | | | | | | | | | | | | | | | | +---------+ +---------+ +---------+ +---------+ +---------+ - Note that, in the case of ERO objects, no new PCEP object type is - required since the ordering constraint is assumed. - 4.7. Relationship to PCE Sequence Instead of a domain-sequence, a sequence of PCEs MAY be enforced by policy on the PCC, and this constraint can be carried in the PCReq message (as defined in [RFC5886]). Note that PCE-Sequence can be used along with domain-sequence in which case PCE-Sequence SHOULD have higher precedence in selecting the next PCE in the inter-domain path computation procedures. Note that Domain-Sequence IRO constraints should still be checked as per @@ -1183,57 +1068,45 @@ [DOMAIN-SUBOBJ] extends the notion of abstract nodes by adding new subobjects for IGP Areas and 4-byte AS numbers. These subobjects MAY be included in Explicit Route Object (ERO), Exclude Route object (XRO) or Explicit Exclusion Route Subobject (EXRS) in RSVP-TE. In any case subobject type defined in RSVP-TE are identical to the subobject type defined in the related documents in PCEP. 5. IANA Considerations -5.1. PCEP Objects - - The "PCEP Parameters" registry contains a subregistry "PCEP Objects". - IANA is requested to make the following allocations from this - registry. - - Object Name Reference - Class - 10 IRO [RFC5440] - Object-Type - (TBA): Domain-Sequence [This I.D.] - -5.2. New Subobjects +5.1. New Subobjects The "PCEP Parameters" registry contains a subregistry "PCEP Objects" with an entry for the Include Route Object (IRO), Exclude Route Object (XRO) and Explicit Route Object (ERO). IANA is requested to add further subobjects as follows: 7 ERO 10 IRO 17 XRO Subobject Type Reference - TBA 4 byte AS number [This I.D.] - TBA OSPF Area ID [This I.D.] - TBA IS-IS Area ID [This I.D.] + TBD1 4 byte AS number [This I.D.] + TBD2 OSPF Area ID [This I.D.] + TBD3 IS-IS Area ID [This I.D.] -5.3. Error Object Field Values +5.2. Error Object Field Values The "PCEP Parameters" registry contains a subregistry "Error Types and Values". IANA is requested to make the following allocations from this subregistry ERROR Meaning Reference Type - TBA "Unrecognized subobject" [This I.D.] + TBD4 "Unrecognized subobject" [This I.D.] Error-Value: type code 6. Security Considerations This document specifies a standard representation of Domain-Sequence and new subobjects, which MAY be used in inter-domain PCE scenarios as explained in other RFC and drafts. The new subobjects and Domain- Sequence mechanisms defined in this document allow finer and more specific control of the path computed by a cooperating PCE(s). Such control increases the risk if a PCEP message is intercepted, @@ -1303,20 +1176,38 @@ Venugopal Reddy, Reeja Paul Sandeep Boina and Avantika for their useful comments and suggestions. 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. + [RFC5440] Vasseur, JP. and JL. Le Roux, "Path Computation Element + (PCE) Communication Protocol (PCEP)", RFC 5440, March + 2009. + + [RFC5441] Vasseur, JP., Zhang, R., Bitar, N., and JL. Le Roux, "A + Backward-Recursive PCE-Based Computation (BRPC) Procedure + to Compute Shortest Constrained Inter-Domain Traffic + Engineering Label Switched Paths", RFC 5441, April 2009. + + [RFC5521] Oki, E., Takeda, T., and A. Farrel, "Extensions to the + Path Computation Element Communication Protocol (PCEP) for + Route Exclusions", RFC 5521, April 2009. + + [RFC6805] King, D. and A. Farrel, "The Application of the Path + Computation Element Architecture to the Determination of a + Sequence of Domains in MPLS and GMPLS", RFC 6805, November + 2012. + 9.2. Informative References [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, December 2001. [RFC3473] Berger, L., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003. @@ -1339,145 +1230,80 @@ Engineering (RSVP-TE)", RFC 4874, April 2007. [RFC4893] Vohra, Q. and E. Chen, "BGP Support for Four-octet AS Number Space", RFC 4893, May 2007. [RFC5152] Vasseur, JP., Ayyangar, A., and R. Zhang, "A Per-Domain Path Computation Method for Establishing Inter-Domain Traffic Engineering (TE) Label Switched Paths (LSPs)", RFC 5152, February 2008. - [RFC5440] Vasseur, JP. and JL. Le Roux, "Path Computation Element - (PCE) Communication Protocol (PCEP)", RFC 5440, March - 2009. - - [RFC5441] Vasseur, JP., Zhang, R., Bitar, N., and JL. Le Roux, "A - Backward-Recursive PCE-Based Computation (BRPC) Procedure - to Compute Shortest Constrained Inter-Domain Traffic - Engineering Label Switched Paths", RFC 5441, April 2009. - [RFC5520] Bradford, R., Vasseur, JP., and A. Farrel, "Preserving Topology Confidentiality in Inter-Domain Path Computation Using a Path-Key-Based Mechanism", RFC 5520, April 2009. - [RFC5521] Oki, E., Takeda, T., and A. Farrel, "Extensions to the - Path Computation Element Communication Protocol (PCEP) for - Route Exclusions", RFC 5521, April 2009. - [RFC5886] Vasseur, JP., Le Roux, JL., and Y. Ikejiri, "A Set of Monitoring Tools for Path Computation Element (PCE)-Based Architecture", RFC 5886, June 2010. - [RFC6805] King, D. and A. Farrel, "The Application of the Path - Computation Element Architecture to the Determination of a - Sequence of Domains in MPLS and GMPLS", RFC 6805, November - 2012. - - [PCE-P2MP-PROCEDURES] - Zhao, Q., Dhody, D., Ali, Z., Saad,, T., Sivabalan,, S., - and R. Casellas, "PCE-based Computation Procedure To - Compute Shortest Constrained P2MP Inter-domain Traffic - Engineering Label Switched Paths (draft-ietf-pce-pcep- - inter-domain-p2mp-procedures)", June 2014. + [RFC7334] Zhao, Q., Dhody, D., King, D., Ali, Z., and R. Casellas, + "PCE-Based Computation Procedure to Compute Shortest + Constrained Point-to-Multipoint (P2MP) Inter-Domain + Traffic Engineering Label Switched Paths", RFC 7334, + August 2014. [PCEP-MIB] Koushik, A., Emile, S., Zhao, Q., King, D., and J. Hardwick, "PCE communication protocol(PCEP) Management - Information Base", April 2014. + Information Base. (draft-ietf-pce-pcep-mib)", September + 2014. [PCE-P2MP-PER-DEST] Dhody, D., Palle, U., and V. Kondreddy, "Supporting explicit inclusion or exclusion of abstract nodes for a subset of P2MP destinations in Path Computation Element Communication Protocol (PCEP). (draft-dhody-pce-pcep-p2mp- - per-destination)", March 2014. + per-destination)", September 2014. [DOMAIN-SUBOBJ] Dhody, D., Palle, U., Kondreddy, V., and R. Casellas, "Domain Subobjects for Resource ReserVation Protocol - Traffic Engineering (RSVP-TE). (draft-dhody-ccamp-rsvp-te- domain-subobjects)", July 2014. + [IRO-SURVEY] + Dhody, D., "Informal Survey into Include Route Object + (IRO) Implementations in Path Computation Element + communication Protocol (PCEP). (draft-dhody-pce-iro- + survey-01)", October 2014. + + [IRO-UPDATE] + Dhody, D., "Update to Include Route Object (IRO) + specification in Path Computation Element communication + Protocol (PCEP. (draft-dhody-pce-iro-update-00)", October + 2014. + [ISO10589] ISO, "Intermediate system to Intermediate system routing information exchange protocol for use in conjunction with the Protocol for providing the Connectionless-mode Network Service (ISO 8473)", ISO/IEC 10589:2002, 1992. -Appendix A. Sample Text for the IRO survey - -During discussion of draft-ietf-pce-pcep-domain-sequence-04, it has been -noted that RFC5440 does not define whether the sub-objects in the IRO -are ordered or unordered. - -We would like to do an informal and *confidential* survey of current -implementations, to help clarify this situation. - -1. IRO Encoding - - a. Does your implementation construct IRO? - - b. If your answer to part (a) is Yes, does your implementation - construct the IRO as an ordered list always, sometimes or never? - - c. If your answer to part (b) is Sometimes, what criteria do you use - to decide if the IRO is an ordered or unordered list? - - d. If your answer to part (b) is Always or Sometimes, does your - implementation construct the IRO as a sequence of strict hops - or as a sequence of loose hops? - -2. IRO Decoding - - a. Does your implementation decode IRO? - - b. If your answer to part (a) is Yes, does your implementation - interpret the decoded IRO as an ordered list always, sometimes - or never? - - c. If your answer to part (b) is Sometimes, what criteria do you use - to decide if the IRO is an ordered or unordered list? - - d. If your answer to part (b) is Always or Sometimes, does your - implementation interpret the IRO as a sequence of strict hops - or as a sequence of loose hops? - -3. Impact - - a. Will there be an impact to your implementation if RFC 5440 is - updated to state that the IRO is an ordered list? - - b. Will there be an impact to your implementation if RFC 5440 is - updated to state that the IRO is an unordered list? - - c. If RFC 5440 is updated to state that the IRO is an ordered list, - will there be an impact to your implementation if RFC 5440 is also - updated to allow IRO sub-objects to use the loose bit (L-bit)? - -4. Respondents - - a. Are you a Vendor/Research Lab/Software House/Other (please - specify)? - - b. If your answer to part (a) is Vendor, is the implementation for a - shipping product, product under development or a prototype? - Authors' Addresses Dhruv Dhody Huawei Technologies Leela Palace Bangalore, Karnataka 560008 INDIA EMail: dhruv.ietf@gmail.com - Udayasree Palle Huawei Technologies Leela Palace Bangalore, Karnataka 560008 INDIA EMail: udayasree.palle@huawei.com Ramon Casellas CTTC