Standard Representation Of Domain-SequenceHuawei TechnologiesLeela PalaceBangaloreKarnataka560008INDIAdhruv.dhody@huawei.comHuawei TechnologiesLeela PalaceBangaloreKarnataka560008INDIAudayasree.palle@huawei.comCTTCAv. Carl Friedrich Gauss n7CastelldefelsBarcelona 08860SPAINramon.casellas@cttc.es
Routing
PCE Working GroupThe 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 document specifies a standard representation and encoding of a Domain-Sequence, which is defined as an ordered sequence of domains traversed to reach the destination domain to be used by Path Computation Elements (PCEs) to compute inter-domain shortest constrained paths across a predetermined sequence of domains . This document also defines new subobjects to be used to encode domain identifiers. A PCE may be used to compute end-to-end paths across multi-domain environments using a per-domain path computation technique . The so called backward recursive path computation (BRPC) mechanism 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. Further for inter-domain point-to-multi-point (P2MP) tree computation, assumes the domain-tree is known.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 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 . When the sequence of domains is not known in advance, the Hierarchical PCE (H-PCE) 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 and H-PCE. The Domain-Sequence (the set of domains traversed to reach the destination domain) is either administratively predetermined or discovered by some means (H-PCE) that is outside of the scope of this document. defines the Include Route Object (IRO) and the Explicit Route Object (ERO); defines the Exclude Route Object (XRO) and the Explicit Exclusion Route Subobject (EXRS); The use of Autonomous System (AS) (albeit with a 2-Byte AS number) as an abstract node representing domain is defined in , this document specifies new subobjects to include or exclude domains such as an IGP area or an Autonomous Systems (4-Byte as per ).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 .The following terminology is used in this document.OSPF Area Border Router. Routers used to connect two IGP areas.Autonomous System.Autonomous System Boundary Router.Boundary Node, Can be an ABR or ASBR.Backward Recursive Path ComputationAs per , 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).An ordered sequence of domains traversed to reach the destination domain.Explicit Route ObjectHierarchical PCEInterior Gateway Protocol. Either of the two routing protocols, Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS).Include Route ObjectIntermediate System to Intermediate System.Open Shortest Path First.Path Computation Client: any client application requesting a path computation to be performed by a Path Computation Element.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.Point-to-MultipointPoint-to-PointResource Reservation ProtocolTraffic Engineering Label Switched Path. and 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 Domain-Sequence. A domain can be uniquely identified by area-id or AS or both.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 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 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. 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 -AS NumberArea IDBoundary Node IDInter-AS-Link AddressConsequently, a Domain-Sequence can be used: by a PCE in order to discover or select the next PCE in a collaborative path computation, such as in BRPC ; by the Parent PCE to return the Domain-Sequence when unknown, this can further be an input to BRPC procedure ;by a PCC (or PCE) to constraint the domains used in a H-PCE path computation, explicitly specifying which domains to be expanded;by a PCE in per-domain path computation model to identify the next domain(s);Domain-Sequence MAY appear in PCEP Messages, notably in - Include Route Object (IRO): As per , 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 reach the destination. Exclude Route Object (XRO): As per , used to specify certain abstract nodes that MUST be excluded from whole path. These subobjects are used to specify certain domains that MUST be avoided to reach the destination. Explicit Exclusion Route Subobject (EXRS): As per , 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.Explicit Route Object (ERO): As per ,used to specify a computed path in the network. As per , IRO (Include Route Object) can be used to specify that the computed path MUST traverse a set of specified network elements or abstract nodes.Some subobjects are defined in , , and , but new subobjects related to Domain-Sequence are needed.The following subobject types are used in IRO.This document extends the above list to support 4-Byte AS numbers and IGP Areas.- Autonomous system already defines 2 byte AS number.To support 4 byte AS number as per following subobject is defined: The L bit is an attribute of the subobject as defined in .(TBA by IANA) indicating a 4-Byte AS Number.8 (Total length of the subobject in bytes).Zero at transmission, ignored at receipt.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 AreaSince the length and format of Area-id is different for OSPF and ISIS, following two subobjects are defined: The L bit is an attribute of the subobject as defined in .(TBA by IANA) indicating a 4-Byte OSPF Area ID.8 (Total length of the subobject in bytes).Zero at transmission, ignored at receipt.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 .The L bit is an attribute of the subobject as defined in .(TBA by IANA) indicating IS-IS Area ID.Variable. As per , 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.Variable (Length of the actual (non-padded) IS-IS Area Identifier in octets; Valid values are from 2 to 11 inclusive). Zero at transmission, ignored at receipt.The variable-length IS-IS area identifier. Padded with trailing zeroes to a four-byte boundary. 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.Subobjects: The IRO is made of subobjects identical to the ones defined in , , and , 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 . 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 domains in the domain-sequence.The new IRO Object-Type used to define the domain-sequence would handle the L bit (Loose / Strict) in the subobjects similar to . Further we have following options: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 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 . 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.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. 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. 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 . 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 .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 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.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 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 finding a path.Subobject types for 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 :- A single IGP Area: Only the IGP (OSPF or ISIS) Area subobject is used to identify the next domain. (Refer )A single AS: Only the AS subobject is used to identify the next domain. (Refer )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 )Subobject representing Boundary Node or Inter-AS-Link MUST be applied during the final path computation procedure as before.The IRO (Include Route Object) 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 are applied.Note the following differences :- Order: Since there is no inherent order specified in the encoding of the subobjects in IRO Type 1 , 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.Loose / Strict (L-Bit): state that the L bit of the subobjects within an IRO Type 1 has no meaning. This will be applicable for subobjects denoting domain-sequence as well.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.The Exclude Route Object (XRO) is an optional object used to specify exclusion of certain abstract nodes or resources from the whole path.The following subobject types are defined to be used in XRO as defined in , , , and . This document extends the above list to support 4-Byte AS numbers and IGP Areas.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.The X-bit indicates whether the exclusion is mandatory or desired. indicates that the AS specified MUST be excluded from the path computed by the PCE(s).indicates that the AS 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 .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: The X-bit indicates whether the exclusion is mandatory or desired. indicates that the OSFF Area specified MUST be excluded from the path computed by the PCE(s).indicates that the OSFF 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 .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 . The subobject is encoded as follows:The X-bit indicates whether the exclusion is mandatory or desired. indicates that the ISIS Area specified MUST be excluded from the path computed by the PCE(s).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 .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 subobject: this choice is a local policy decision.All the other processing rules are as per .Explicit Exclusion Route Subobject (EXRS) is used to specify exclusion of certain abstract nodes between a specific pair of nodes. The EXRS subobject may carry any of the subobjects defined for inclusion in the XRO, thus the new subobjects to support 4 byte AS and IGP (OSPF / ISIS) Area MAY also be used in the EXRS. The meanings of the fields of the new XRO subobjects are unchanged when the subobjects are included in an EXRS, except that scope of the exclusion is limited to the single hop between the previous and subsequent elements in the IRO.All the processing rules are as per .The Explicit Route Object (ERO) is used to specify a computed path in the network. PCEP ERO subobject types correspond to RSVP-TE ERO subobject types as defined in , , , , , and .This document extends the above list to support 4-Byte AS numbers and IGP Areas.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 , a Parent PCE MAY be requested to find the domain-sequence. Refer example in .The format of the new ERO subobjects is similar to new IRO subobjects, refer .In an inter-area path computation where the ingress and the egress nodes belong to different IGP areas within the same AS, the Domain-Sequence MAY be represented using a ordered list of Area subobjects. The AS number MAY be skipped, as area information is enough to select the next PCE.In inter-AS path computation, where ingress and egress belong to different AS, the Domain-Sequence is represented using an ordered list of AS subobjects. The Domain-Sequence MAY further include decomposed area information in Area subobjects.As shown in , where AS to be made of a single area, the area subobject MAY be skipped in the Domain-Sequence as AS is enough to uniquely identify the next domain and PCE.As shown in , where AS 200 is made up of multiple areas and multiple domain-sequence exist, PCE MAY include both AS and Area subobject to uniquely identify the next domain and PCE.The combination of both an AS and an Area uniquely identify a domain in the Domain-Sequence. Note that an Area domain identifier always belongs to the previous AS that appears before it or, if no AS subobjects are present, it is assumed to be the current AS.If the area information cannot be provided, PCE MAY forward the path computation request to the next PCE based on AS alone. If multiple PCEs are responsible, PCE MAY apply local policy to select the next PCE. A PCC or PCE MAY add additional constraints covering which Boundary Nodes (ABR or ASBR) or Border links (Inter-AS-link) MUST be traversed while defining a Domain-Sequence. In which case the Boundary Node or Link MAY be encoded as a part of the domain-sequence using the existing subobjects. Boundary Nodes (ABR / ASBR) can be encoded using the IPv4 or IPv6 prefix subobjects usually the loopback address of 32 and 128 prefix length respectively. An Inter-AS link can be encoded using the IPv4 or IPv6 prefix subobjects or unnumbered interface subobjects. For , an ABR to be traversed can be specified as:For , an inter-AS-link to be traversed can be specified as: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. In case of inter-domain P2MP path computation, (Refer ) the path domain tree is nothing but a series of Domain Sequences, as shown in the below figure:All rules of processing as applied to P2P can be applied to P2MP as well.In case of P2MP, different destinations MAY have different Domain-Sequence within the domain tree, it requires domain-sequence to be attached per destination. (Refer )As per , consider a case as shown in consisting of multiple child PCEs and a parent PCE. 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:Note that, in the case of ERO objects, no new PCEP object type is required since the ordering constraint is assumed.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 ).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 the rules of processing IRO. already describes the notion of abstract nodes, where an abstract node is a group of nodes whose internal topology is opaque to the ingress node of the LSP. It further defines a subobject for AS but with a 2-Byte AS Number. 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.The "PCEP Parameters" registry contains a subregistry "PCEP Objects". IANA is requested to make the following allocations from this registry.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:The "PCEP Parameters" registry contains a subregistry "Error Types and Values". IANA is requested to make the following allocations from this subregistryThis 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, modified, or spoofed because it allows the attacker to exert control over the path that the PCE will compute or to make the path computation impossible. Therefore, the security techniques described in are considered more important. Note, however, that the Domain-Sequence mechanisms also provide the operator with the ability to route around vulnerable parts of the network and may be used to increase overall network security.Several local policy decisions should be made at the PCE. Firstly, the exact behavior with regard to desired inclusion and exclusion of domains must be available for examination by an operator and may be configurable. Second, the behavior on receipt of an unrecognized subobjects with the L or X-bit set should be configurable and must be available for inspection. The inspection and control of these local policy choices may be part of the PCEP MIB module.A MIB module for management of the PCEP is being specified in a separate document . That MIB module allows examination of individual PCEP messages, in particular requests, responses and errors. The MIB module MUST be extended to include the ability to view the domain-sequence extensions defined in this document.Mechanisms defined in this document do not imply any new liveness detection and monitoring requirements in addition to those already listed in .Mechanisms defined in this document do not imply any new operation verification requirements in addition to those already listed in .In case of per-domain path computation , where the full path of an inter-domain TE LSP cannot be or is not determined at the ingress node, and signaling message may use domain identifiers. The Subobjects defined in this document SHOULD be supported by RSVP-TE. extends the notion of abstract nodes by adding new subobjects for IGP Areas and 4-byte AS numbers.Apart from this, mechanisms defined in this document do not imply any requirements on other protocols in addition to those already listed in .Mechanisms defined in this document do not have any impact on network operations in addition to those already listed in .We would like to thank Adrian Farrel, Pradeep Shastry, Suresh Babu, Quintin Zhao, Fatai Zhang, Daniel King, Oscar Gonzalez, Chen Huaimo, Venugopal Reddy, Reeja Paul and Sandeep Boina for their useful comments and suggestions.PCE-based Computation Procedure To Compute Shortest Constrained P2MP Inter-domain Traffic Engineering Label Switched Paths (draft-ietf-pce-pcep-inter-domain-p2mp-procedures)PCE communication protocol(PCEP) Management Information BaseSupporting 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)Domain Subobjects for Resource ReserVation Protocol - Traffic Engineering (RSVP-TE). (draft-dhody-ccamp-rsvp-te-domain-subobjects)
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