draft-ietf-pce-pcep-domain-sequence-12.txt   rfc7897.txt 
PCE Working Group D. Dhody Internet Engineering Task Force (IETF) D. Dhody
Internet-Draft U. Palle Request for Comments: 7897 U. Palle
Intended status: Experimental Huawei Technologies Category: Experimental Huawei Technologies
Expires: June 9, 2016 R. Casellas ISSN: 2070-1721 R. Casellas
CTTC CTTC
December 7, 2015 June 2016
Domain Subobjects for Path Computation Element (PCE) Communication Domain Subobjects
Protocol (PCEP). for the Path Computation Element Communication Protocol (PCEP)
draft-ietf-pce-pcep-domain-sequence-12
Abstract Abstract
The ability to compute shortest constrained Traffic Engineering Label The ability to compute shortest constrained Traffic Engineering Label
Switched Paths (TE LSPs) in Multiprotocol Label Switching (MPLS) and Switched Paths (TE LSPs) in Multiprotocol Label Switching (MPLS) and
Generalized MPLS (GMPLS) networks across multiple domains has been Generalized MPLS (GMPLS) networks across multiple domains has been
identified as a key requirement. In this context, a domain is a identified as a key requirement. In this context, a domain is a
collection of network elements within a common sphere of address collection of network elements within a common sphere of address
management or path computational responsibility such as an Interior management or path computational responsibility such as an Interior
Gateway Protocol (IGP) area or an Autonomous System (AS). This Gateway Protocol (IGP) area or an Autonomous System (AS). This
document specifies a representation and encoding of a Domain- document specifies a representation and encoding of a domain
Sequence, which is defined as an ordered sequence of domains sequence, which is defined as an ordered sequence of domains
traversed to reach the destination domain to be used by Path traversed to reach the destination domain to be used by Path
Computation Elements (PCEs) to compute inter-domain constrained Computation Elements (PCEs) to compute inter-domain constrained
shortest paths across a predetermined sequence of domains . This shortest paths across a predetermined sequence of domains. This
document also defines new subobjects to be used to encode domain document also defines new subobjects to be used to encode domain
identifiers. identifiers.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for examination, experimental implementation, and
evaluation.
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 This document defines an Experimental Protocol for the Internet
and may be updated, replaced, or obsoleted by other documents at any community. This document is a product of the Internet Engineering
time. It is inappropriate to use Internet-Drafts as reference Task Force (IETF). It represents the consensus of the IETF
material or to cite them other than as "work in progress." community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are a candidate for any level of
Internet Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on June 9, 2016. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7897.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 1.2. Requirements Language . . . . . . . . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Detail Description . . . . . . . . . . . . . . . . . . . . . 6 3. Detail Description . . . . . . . . . . . . . . . . . . . . . 6
3.1. Domains . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Domains . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Domain-Sequence . . . . . . . . . . . . . . . . . . . . . 6 3.2. Domain Sequence . . . . . . . . . . . . . . . . . . . . . 6
3.3. Domain-Sequence Representation . . . . . . . . . . . . . 7 3.3. Domain Sequence Representation . . . . . . . . . . . . . 7
3.4. Include Route Object (IRO) . . . . . . . . . . . . . . . 7 3.4. Include Route Object (IRO) . . . . . . . . . . . . . . . 8
3.4.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 8 3.4.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 8
3.4.1.1. Autonomous system . . . . . . . . . . . . . . . . 8 3.4.1.1. Autonomous System . . . . . . . . . . . . . . . . 8
3.4.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 9 3.4.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 9
3.4.2. Update in IRO specification . . . . . . . . . . . . . 10 3.4.2. Update in IRO Specification . . . . . . . . . . . . . 10
3.4.3. IRO for Domain-Sequence . . . . . . . . . . . . . . . 10 3.4.3. IRO for Domain Sequence . . . . . . . . . . . . . . . 11
3.4.3.1. PCC Procedures . . . . . . . . . . . . . . . . . 11 3.4.3.1. PCC Procedures . . . . . . . . . . . . . . . . . 11
3.4.3.2. PCE Procedures . . . . . . . . . . . . . . . . . 11 3.4.3.2. PCE Procedures . . . . . . . . . . . . . . . . . 11
3.5. Exclude Route Object (XRO) . . . . . . . . . . . . . . . 12 3.5. Exclude Route Object (XRO) . . . . . . . . . . . . . . . 13
3.5.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 13 3.5.1. Subobjects . . . . . . . . . . . . . . . . . . . . . 13
3.5.1.1. Autonomous system . . . . . . . . . . . . . . . . 13 3.5.1.1. Autonomous System . . . . . . . . . . . . . . . . 14
3.5.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 14 3.5.1.2. IGP Area . . . . . . . . . . . . . . . . . . . . 14
3.6. Explicit Exclusion Route Subobject (EXRS) . . . . . . . . 15 3.6. Explicit Exclusion Route Subobject (EXRS) . . . . . . . . 16
3.7. Explicit Route Object (ERO) . . . . . . . . . . . . . . . 16 3.7. Explicit Route Object (ERO) . . . . . . . . . . . . . . . 16
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1. Inter-Area Path Computation . . . . . . . . . . . . . . . 16 4.1. Inter-Area Path Computation . . . . . . . . . . . . . . . 17
4.2. Inter-AS Path Computation . . . . . . . . . . . . . . . . 18 4.2. Inter-AS Path Computation . . . . . . . . . . . . . . . . 19
4.2.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1. Example 1 . . . . . . . . . . . . . . . . . . . . . . 20
4.2.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 21 4.2.2. Example 2 . . . . . . . . . . . . . . . . . . . . . . 22
4.3. Boundary Node and Inter-AS-Link . . . . . . . . . . . . . 23 4.3. Boundary Node and Inter-AS Link . . . . . . . . . . . . . 25
4.4. PCE Serving multiple Domains . . . . . . . . . . . . . . 24 4.4. PCE Serving Multiple Domains . . . . . . . . . . . . . . 25
4.5. P2MP . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.5. P2MP . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.6. Hierarchical PCE . . . . . . . . . . . . . . . . . . . . 26 4.6. Hierarchical PCE . . . . . . . . . . . . . . . . . . . . 27
5. Other Considerations . . . . . . . . . . . . . . . . . . . . 26 5. Other Considerations . . . . . . . . . . . . . . . . . . . . 27
5.1. Relationship to PCE Sequence . . . . . . . . . . . . . . 26 5.1. Relationship to PCE Sequence . . . . . . . . . . . . . . 27
5.2. Relationship to RSVP-TE . . . . . . . . . . . . . . . . . 26 5.2. Relationship to RSVP-TE . . . . . . . . . . . . . . . . . 27
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28
6.1. New Subobjects . . . . . . . . . . . . . . . . . . . . . 27 6.1. New Subobjects . . . . . . . . . . . . . . . . . . . . . 28
7. Security Considerations . . . . . . . . . . . . . . . . . . . 27 7. Security Considerations . . . . . . . . . . . . . . . . . . . 28
8. Manageability Considerations . . . . . . . . . . . . . . . . 28 8. Manageability Considerations . . . . . . . . . . . . . . . . 29
8.1. Control of Function and Policy . . . . . . . . . . . . . 28 8.1. Control of Function and Policy . . . . . . . . . . . . . 29
8.2. Information and Data Models . . . . . . . . . . . . . . . 28 8.2. Information and Data Models . . . . . . . . . . . . . . . 29
8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 29 8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 30
8.4. Verify Correct Operations . . . . . . . . . . . . . . . . 29 8.4. Verify Correct Operations . . . . . . . . . . . . . . . . 30
8.5. Requirements On Other Protocols . . . . . . . . . . . . . 29 8.5. Requirements on Other Protocols . . . . . . . . . . . . . 30
8.6. Impact On Network Operations . . . . . . . . . . . . . . 29 8.6. Impact on Network Operations . . . . . . . . . . . . . . 30
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 31
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 9.1. Normative References . . . . . . . . . . . . . . . . . . 31
10.1. Normative References . . . . . . . . . . . . . . . . . . 30 9.2. Informative References . . . . . . . . . . . . . . . . . 32
10.2. Informative References . . . . . . . . . . . . . . . . . 31 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 35
1. Introduction 1. Introduction
A Path Computation Element (PCE) may be used to compute end-to-end A Path Computation Element (PCE) may be used to compute end-to-end
paths across multi-domain environments using a per-domain path paths across multi-domain environments using a per-domain path
computation technique [RFC5152]. The backward recursive path computation technique [RFC5152]. The Backward-Recursive PCE-Based
computation (BRPC) mechanism [RFC5441] also defines a PCE-based path Computation (BRPC) mechanism [RFC5441] also defines a PCE-based path
computation procedure to compute inter-domain constrained path for computation procedure to compute an inter-domain constrained path for
(G)MPLS TE LSPs. However, both per-domain and BRPC techniques assume (G)MPLS TE LSPs. However, both per-domain and BRPC techniques assume
that the sequence of domains to be crossed from source to destination that the sequence of domains to be crossed from source to destination
is known, either fixed by the network operator or obtained by other is known and is either fixed by the network operator or obtained by
means. Also for inter-domain point-to-multi-point (P2MP) tree other means. Also, for inter-domain point-to-multipoint (P2MP) tree
computation, [RFC7334] assumes the domain-tree is known in priori. computation, it is assumed per [RFC7334] that the domain tree is
known a priori.
The list of domains (Domain-Sequence) in point-to-point (P2P) or a The list of domains (domain sequence) in point-to-point (P2P) or a
domain tree in point-to-multipoint (P2MP) is usually a constraint in domain tree in P2MP is usually a constraint in inter-domain path
inter-domain path computation procedure. computation procedure.
The Domain-Sequence (the set of domains traversed to reach the The domain sequence (the set of domains traversed to reach the
destination domain) is either administratively predetermined or destination domain) is either administratively predetermined or
discovered by some means like H-PCE. discovered by some means like Hierarchical PCE (H-PCE).
[RFC5440] defines the Include Route Object (IRO) and the Explicit [RFC5440] defines the Include Route Object (IRO) and the Explicit
Route Object (ERO). [RFC5521] defines the Exclude Route Object (XRO) Route Object (ERO). [RFC5521] defines the Exclude Route Object (XRO)
and the Explicit Exclusion Route Subobject (EXRS). The use of and the Explicit Exclusion Route subobject (EXRS). The use of an
Autonomous System (AS) (albeit with a 2-Byte AS number) as an Autonomous System (albeit with a 2-byte AS number) as an abstract
abstract node representing a domain is defined in [RFC3209]. In the node representing a domain is defined in [RFC3209]. In the current
current document, we specify new subobjects to include or exclude document, we specify new subobjects to include or exclude domains
domains including IGP area or an Autonomous Systems (4-Byte as per including an IGP area or an AS (4 bytes as per [RFC6793]).
[RFC6793]).
Further, the domain identifier may simply act as delimiter to specify Further, the domain identifier may simply act as a delimiter to
where the domain boundary starts and ends in some cases. specify where the domain boundary starts and ends in some cases.
This is a companion document to Resource ReserVation Protocol - This is a companion document to Resource Reservation Protocol -
Traffic Engineering (RSVP-TE) extensions for the domain identifiers Traffic Engineering (RSVP-TE) extensions for the domain identifiers
[DOMAIN-SUBOBJ]. [RFC7898].
1.1. Scope 1.1. Scope
The procedures described in this document are experimental. The The procedures described in this document are experimental. The
experiment is intended to enable research for the usage of Domain- experiment is intended to enable research for the usage of the domain
Sequence at the PCEs for inter-domain paths. For this purpose this sequence at the PCEs for inter-domain paths. For this purpose, this
document specifies new domain subobjects as well as how they document specifies new domain subobjects as well as how they
incorporate with existing subobjects to represent a Domain-Sequence. incorporate with existing subobjects to represent a domain sequence.
The experiment will end two years after the RFC is published. At The experiment will end two years after the RFC is published. At
that point, the RFC authors will attempt to determine how widely this that point, the RFC authors will attempt to determine how widely this
has been implemented and deployed. has been implemented and deployed.
This document does not change the procedures for handling existing This document does not change the procedures for handling existing
subobjects in PCEP. subobjects in the PCE Communication Protocol (PCEP).
The new subobjects introduced by this document will not be understood The new subobjects introduced by this document will not be understood
by legacy implementations. If a legacy implementation receives one by legacy implementations. If a legacy implementation receives one
of the subobjects that it does not understand in a PCEP object, the of the subobjects that it does not understand in a PCEP object, the
legacy implementation will behave as described in Section 3.4.3. legacy implementation will behave according to the rules for a
Therefore, it is assumed that this experiment will be conducted only malformed object as per [RFC5440]. Therefore, it is assumed that
when both the PCE and the PCC form part of the experiment. It is this experiment will be conducted only when both the PCE and the Path
possible that a PCC or PCE can operate with peers some of which form Computation Client (PCC) form part of the experiment. It is possible
part of the experiment and some that do not. In this case, since no that a PCC or PCE can operate with peers, some of which form part of
the experiment and some that do not. In this case, since no
capabilities exchange is used to identify which nodes can use these capabilities exchange is used to identify which nodes can use these
extensions, manual configuration should be used to determine which extensions, manual configuration should be used to determine which
peerings form part of the experiment. peerings form part of the experiment.
When the result of implementation and deployment are available, this When the results of implementation and deployment are available, this
document will be updated and refined, and then be moved from document will be updated and refined, and then it could be moved from
Experimental to Standard Track. Experimental to Standards Track.
1.2. Requirements Language 1.2. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Terminology 2. Terminology
The following terminology is used in this document. The following terminology is used in this document.
ABR: OSPF Area Border Router. Routers used to connect two IGP ABR: Area Border Router. Routers used to connect two IGP areas
areas. (Open Shortest Path First (OSPF) or Intermediate System to
Intermediate System (IS-IS).
AS: Autonomous System. AS: Autonomous System
ASBR: Autonomous System Boundary Router. ASBR: Autonomous System Border Router
BN: Boundary Node, Can be an ABR or ASBR. BN: Boundary node; can be an ABR or ASBR.
BRPC: Backward Recursive Path Computation BRPC: Backward-Recursive PCE-Based Computation
Domain: As per [RFC4655], any collection of network elements within Domain: As per [RFC4655], any collection of network elements within
a common sphere of address management or path computational a common sphere of address management or path computational
responsibility. Examples of domains include Interior Gateway responsibility. Examples of domains include IGP area and AS.
Protocol (IGP) area and Autonomous System (AS).
Domain-Sequence: An ordered sequence of domains traversed to reach Domain Sequence: An ordered sequence of domains traversed to reach
the destination domain. the destination domain.
ERO: Explicit Route Object ERO: Explicit Route Object
H-PCE: Hierarchical PCE H-PCE: Hierarchical PCE
IGP: Interior Gateway Protocol. Either of the two routing IGP: Interior Gateway Protocol. Either of the two routing
protocols, Open Shortest Path First (OSPF) or Intermediate System protocols: OSPF or IS-IS.
to Intermediate System (IS-IS).
IRO: Include Route Object IRO: Include Route Object
IS-IS: Intermediate System to Intermediate System. IS-IS: Intermediate System to Intermediate System
OSPF: Open Shortest Path First. OSPF: Open Shortest Path First
PCC: Path Computation Client: any client application requesting a PCC: Path Computation Client. Any client application requesting a
path computation to be performed by a Path Computation Element. path computation to be performed by a Path Computation Element.
PCE: Path Computation Element. An entity (component, application, PCE: Path Computation Element. An entity (component, application,
or network node) that is capable of computing a network path or or network node) that is capable of computing a network path or
route based on a network graph and applying computational route based on a network graph and applying computational
constraints. constraints.
P2MP: Point-to-Multipoint P2MP: Point-to-Multipoint
P2P: Point-to-Point P2P: Point-to-Point
RSVP: Resource Reservation Protocol RSVP: Resource Reservation Protocol
TE LSP: Traffic Engineering Label Switched Path. TE LSP: Traffic Engineering Label Switched Path
XRO: Exclude Route Object XRO: Exclude Route Object
3. Detail Description 3. Detail Description
3.1. Domains 3.1. Domains
[RFC4726] and [RFC4655] define domain as a separate administrative or [RFC4726] and [RFC4655] define a domain as a separate administrative
geographic environment within the network. A domain could be further or geographic environment within the network. A domain could be
defined as a zone of routing or computational ability. Under these further defined as a zone of routing or computational ability. Under
definitions a domain might be categorized as an AS or an IGP area. these definitions, a domain might be categorized as an AS or an IGP
Each AS can be made of several IGP areas. In order to encode a area. Each AS can be made of several IGP areas. In order to encode
Domain-Sequence, it is required to uniquely identify a domain in the a domain sequence, it is required to uniquely identify a domain in
Domain-Sequence. A domain can be uniquely identified by area-id or the domain sequence. A domain can be uniquely identified by an
AS number or both. area-id, AS number, or both.
3.2. Domain-Sequence 3.2. Domain Sequence
A Domain-Sequence is an ordered sequence of domains traversed to A domain sequence is an ordered sequence of domains traversed to
reach the destination domain. reach the destination domain.
A Domain-Sequence can be applied as a constraint and carried in a A domain sequence can be applied as a constraint and carried in a
path computation request to PCE(s). A Domain-Sequence can also be path computation request to a PCE(s). A domain sequence can also be
the result of a path computation. For example, in the case of the result of a path computation. For example, in the case of H-PCE
Hierarchical PCE (H-PCE) [RFC6805], Parent PCE could send the Domain- [RFC6805], a parent PCE could send the domain sequence as a result in
Sequence as a result in a path computation reply. a path computation reply.
In a P2P path, the domains listed appear in the order that they are 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 a list of crossed. In a P2MP path, the domain tree is represented as a list of
Domain-Sequences. domain sequences.
A Domain-Sequence enables a PCE to select the next domain and the PCE A domain sequence enables a PCE to select the next domain and the PCE
serving that domain to forward the path computation request based on serving that domain to forward the path computation request based on
the domain information. the domain information.
Domain-Sequence can include Boundary Nodes (ABR or ASBR) or Border A domain sequence can include boundary nodes (ABR or ASBR) or border
links (Inter-AS-links) to be traversed as an additional constraint. links (inter-AS links) to be traversed as an additional constraint.
Thus a Domain-Sequence can be made up of one or more of - Thus, a domain sequence can be made up of one or more of the
following:
o AS Number o AS Number
o Area ID o Area ID
o Boundary Node ID o Boundary Node ID
o Inter-AS-Link Address
o Inter-AS Link Address
These are encoded in the new subobjects defined in this document as These are encoded in the new subobjects defined in this document as
well as the existing subobjects to represent a Domain-Sequence. well as in the existing subobjects that represent a domain sequence.
Consequently, a Domain-Sequence can be used: Consequently, a domain sequence can be used by:
1. by a PCE in order to discover or select the next PCE in a 1. a PCE in order to discover or select the next PCE in a
collaborative path computation, such as in BRPC [RFC5441]; collaborative path computation, such as in BRPC [RFC5441];
2. by the Parent PCE to return the Domain-Sequence when unknown; 2. the parent PCE to return the domain sequence when unknown; this
this can then be an input to the BRPC procedure [RFC6805]; can then be an input to the BRPC procedure [RFC6805];
3. by a Path Computation Client (PCC) or a PCE, to constrain the 3. a PCC or a PCE to constrain the domains used in inter-domain path
domains used in inter-domain path computation, explicitly computation, explicitly specifying which domains to be expanded
specifying which domains to be expanded or excluded; or excluded; and
4. by a PCE in the per-domain path computation model [RFC5152] to 4. a PCE in the per-domain path computation model [RFC5152] to
identify the next domain. identify the next domain.
3.3. Domain-Sequence Representation 3.3. Domain Sequence Representation
Domain-Sequence appears in PCEP messages, notably in - A domain sequence appears in PCEP messages, notably in:
o Include Route Object (IRO): As per [RFC5440], IRO can be used to o Include Route Object (IRO): As per [RFC5440], IRO can be used to
specify a set of network elements to be traversed to reach the specify a set of network elements to be traversed to reach the
destination, which includes subobjects used to specify the Domain- destination, which includes subobjects used to specify the domain
Sequence. sequence.
o Exclude Route Object (XRO): As per [RFC5521], XRO can be used to o Exclude Route Object (XRO): As per [RFC5521], XRO can be used to
specify certain abstract nodes, to be excluded from whole path, specify certain abstract nodes, to be excluded from the whole
which includes subobjects used to specify the Domain-Sequence. path, which include subobjects used to specify the domain
sequence.
o Explicit Exclusion Route Subobject (EXRS): As per [RFC5521], EXRS o Explicit Exclusion Route Subobject (EXRS): As per [RFC5521], EXRS
can be used to specify exclusion of certain abstract nodes can be used to specify exclusion of certain abstract nodes
(including domains) between a specific pair of nodes. EXRS are a (including domains) between a specific pair of nodes. EXRS is a
subobject inside the IRO. subobject inside the IRO.
o Explicit Route Object (ERO): As per [RFC5440], ERO can be used to o Explicit Route Object (ERO): As per [RFC5440], ERO can be used to
specify a computed path in the network. For example, in the case specify a computed path in the network. For example, in the case
of H-PCE [RFC6805], a Parent PCE can send the Domain-Sequence as a of H-PCE [RFC6805], a parent PCE can send the domain sequence as a
result, in a path computation reply using ERO. result in a path computation reply using ERO.
3.4. Include Route Object (IRO) 3.4. Include Route Object (IRO)
As per [RFC5440], IRO (Include Route Object) can be used to specify As per [RFC5440], IRO can be used to specify that the computed path
that the computed path needs to traverse a set of specified network needs to traverse a set of specified network elements or abstract
elements or abstract nodes. nodes.
3.4.1. Subobjects 3.4.1. Subobjects
Some subobjects are defined in [RFC3209], [RFC3473], [RFC3477] and Some subobjects are defined in [RFC3209], [RFC3473], [RFC3477], and
[RFC4874], but new subobjects related to Domain-Sequence are needed. [RFC4874], but new subobjects related to domain sequence are needed.
This document extends the support for 4-Byte AS numbers and IGP This document extends the support for 4-byte AS numbers and IGP
Areas. areas.
Type Subobject Value Description
TBD1 Autonomous system number (4 Byte) ----- ----------------
TBD2 OSPF Area id 5 4-byte AS number
TBD3 ISIS Area id 6 OSPF Area ID
7 IS-IS Area ID
Note: The twins of these subobjects are carried in RSVP-TE messages Note: Identical subobjects are carried in RSVP-TE messages as defined
as defined in [DOMAIN-SUBOBJ]. in [RFC7898].
3.4.1.1. Autonomous system 3.4.1.1. Autonomous System
[RFC3209] already defines 2 byte AS number. [RFC3209] already defines 2-byte AS numbers.
To support 4 byte AS number as per [RFC6793] following subobject is To support 4-byte AS numbers as per [RFC6793], the following
defined: subobject is defined:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | Reserved | |L| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AS-ID (4 bytes) | | AS Number (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
and usage in IRO subobject updated in [IRO-UPDATE]. [RFC3209], and its usage in the IRO subobject is defined in
[RFC7896].
Type: (TBD1 by IANA) indicating a 4-Byte AS Number. Type: 5 (indicating a 4-byte AS number).
Length: 8 (Total length of the subobject in bytes). Length: 8 (total length of the subobject in bytes).
Reserved: Zero at transmission, ignored at receipt. Reserved: Zero at transmission; ignored at receipt.
AS-ID: The 4-Byte AS Number. Note that if 2-Byte AS numbers are in AS Number: The 4-byte AS number. Note that if 2-byte AS numbers are
use, the low order bits (16 through 31) MUST be used and the high in use, the low-order bits (16 through 31) MUST be used, and the
order bits (0 through 15) MUST be set to zero. high-order bits (0 through 15) MUST be set to zero.
3.4.1.2. IGP Area 3.4.1.2. IGP Area
Since the length and format of Area-id is different for OSPF and Since the length and format of Area ID is different for OSPF and
ISIS, following two subobjects are defined: IS-IS, the following two subobjects are defined below:
For OSPF, the area-id is a 32 bit number. The subobject is encoded For OSPF, the Area ID is a 32-bit number. The subobject is encoded
as follows: as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | Reserved | |L| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OSPF Area Id (4 bytes) | | 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
and usage in IRO subobject updated in [IRO-UPDATE]. [RFC3209], and its usage in the IRO subobject is defined in
[RFC7896].
Type: (TBD2 by IANA) indicating a 4-Byte OSPF Area ID. Type: 6 (indicating a 4-byte OSPF Area ID).
Length: 8 (Total length of the subobject in bytes). Length: 8 (total length of the subobject in bytes).
Reserved: Zero at transmission, ignored at receipt. Reserved: Zero at transmission; ignored at receipt.
OSPF Area Id: The 4-Byte OSPF Area ID. OSPF Area ID: The 4-byte OSPF Area ID.
For IS-IS, the area-id is of variable length and thus the length of For IS-IS, the Area ID is of variable length; thus, the length of the
the Subobject is variable. The Area-id is as described in IS-IS by subobject is variable. The Area ID is as described in IS-IS by the
ISO standard [ISO10589]. The subobject is encoded as follows: ISO standard [ISO10589]. The subobject is encoded as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L| Type | Length | Area-Len | Reserved | |L| Type | Length | Area-Len | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// IS-IS Area ID // // 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
and usage in IRO subobject updated in [IRO-UPDATE]. [RFC3209], and its usage in the IRO subobject is defined in
[RFC7896].
Type: (TBD3 by IANA) indicating IS-IS Area ID. Type: 7 (indicating the IS-IS Area ID).
Length: Variable. The Length MUST be at least 8, and MUST be a Length: Variable. The length MUST be at least 8 and MUST be a
multiple of 4. multiple of 4.
Area-Len: Variable (Length of the actual (non-padded) IS-IS Area Area-Len: Variable (length of the actual (non-padded) IS-IS area
Identifier in octets; Valid values are from 1 to 13 inclusive). identifier in octets; valid values are from 1 to 13, inclusive).
Reserved: Zero at transmission, ignored at receipt. Reserved: Zero at transmission; ignored at receipt.
IS-IS Area Id: The variable-length IS-IS area identifier. Padded IS-IS Area ID: The variable-length IS-IS area identifier. Padded
with trailing zeroes to a four-byte boundary. with trailing zeroes to a 4-byte boundary.
3.4.2. Update in IRO specification 3.4.2. Update in IRO Specification
[RFC5440] describes IRO as an optional object used to specify network [RFC5440] describes IRO as an optional object used to specify network
elements to be traversed by the computed path. It further state that elements to be traversed by the computed path. It further states
the L bit of such subobject has no meaning within an IRO. It also that the L bit of such subobject has no meaning within an IRO. It
did not mention if IRO is an ordered or un-ordered list of also does not mention if IRO is an ordered or unordered list of
subobjects. subobjects.
An update to IRO specification [IRO-UPDATE] makes IRO as an ordered An update to the IRO specification [RFC7896] makes IRO as an ordered
list, as well as support for loose bit (L-bit) is added. list and includes support for the L bit.
The use of IRO for Domain-Sequence, assumes the updated specification The use of IRO for the domain sequence assumes the updated
for IRO, as per [IRO-UPDATE]. specification is being used for IRO, as per [RFC7896].
3.4.3. IRO for Domain-Sequence 3.4.3. IRO for Domain Sequence
The subobject type for IPv4, IPv6, and unnumbered Interface ID can be The subobject type for IPv4, IPv6, and unnumbered Interface IDs can
used to specify Boundary Nodes (ABR/ASBR) and Inter-AS-Links. The be used to specify boundary nodes (ABR/ASBR) and inter-AS links. The
subobject type for the AS Number (2 or 4 Byte) and the IGP Area are subobject type for the AS Number (2 or 4 bytes) and the IGP area are
used to specify the domain identifiers in the Domain-Sequence. used to specify the domain identifiers in the domain sequence.
The IRO can incorporate the new domain subobjects with the existing The IRO can incorporate the new domain subobjects with the existing
subobjects in a sequence of traversal. subobjects in a sequence of traversal.
Thus an IRO, comprising subobjects, that represents a Domain- Thus, an IRO, comprising subobjects, that represents a domain
Sequence, define the domains involved in an inter-domain path sequence defines the domains involved in an inter-domain path
computation, typically involving two or more collaborative PCEs. computation, typically involving two or more collaborative PCEs.
A Domain-Sequence can have varying degrees of granularity. It is A domain sequence can have varying degrees of granularity. It is
possible to have a Domain-Sequence composed of, uniquely, AS possible to have a domain sequence composed of, uniquely, AS
identifiers. It is also possible to list the involved IGP areas for identifiers. It is also possible to list the involved IGP areas for
a given AS. a given AS.
In any case, the mapping between domains and responsible PCEs is not 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 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 obtain a "next PCE" from a domain sequence is able to do so (e.g.,
administrative configuration, or discovery). via administrative configuration or discovery).
3.4.3.1. PCC Procedures 3.4.3.1. PCC Procedures
A PCC builds an IRO to encode the Domain-Sequence, so that the A PCC builds an IRO to encode the domain sequence, so that the
cooperating PCEs could compute an inter-domain shortest constrained cooperating PCEs could compute an inter-domain shortest constrained
path across the specified sequence of domains. path across the specified sequence of domains.
A PCC may intersperse Area and AS subobjects with other subobjects A PCC may intersperse area and AS subobjects with other subobjects
without change to the previously specified processing of those without change to the previously specified processing of those
subobjects in the IRO. subobjects in the IRO.
3.4.3.2. PCE Procedures 3.4.3.2. PCE Procedures
If a PCE receives an IRO in a Path Computation request (PCReq) If a PCE receives an IRO in a Path Computation Request (PCReq)
message that contains the subobjects defined in this document, that message that contains the subobjects defined in this document that it
it does not recognize, it will respond according to the rules for a does not recognize, it will respond according to the rules for a
malformed object as per [RFC5440]. The PCE MAY also include the IRO malformed object as per [RFC5440]. The PCE MAY also include the IRO
in the PCErr message as per [RFC5440]. in the PCEP Error (PCErr) message as per [RFC5440].
The interpretation of Loose bit (L bit) is as per section 4.3.3.1 of The interpretation of the L bit is as per Section 4.3.3.1 of
[RFC3209] (as per [IRO-UPDATE]). [RFC3209] (as per [RFC7896]).
In a Path Computation reply (PCRep), PCE MAY also supply IRO (with In a Path Computation Reply (PCRep), PCE MAY also supply IRO (with
Domain-Sequence information) with the NO-PATH object indicating that domain sequence information) with the NO-PATH object indicating that
the set of elements (domains) of the request's IRO prevented the PCEs the set of elements (domains) of the request's IRO prevented the PCEs
from finding a path. from finding a path.
The following processing rules apply for Domain-Sequence in IRO - The following processing rules apply for a domain sequence in IRO:
o When a PCE parses an IRO, it interprets each subobject according o When a PCE parses an IRO, it interprets each subobject according
to the AS number associated with the preceding subobject. We call to the AS number associated with the preceding subobject. We call
this the "current AS". Certain subobjects modify the current AS, this the "current AS". Certain subobjects modify the current AS,
as follows. as follows.
* The current AS is initialized to the AS number of the PCC. * The current AS is initialized to the AS number of the PCC.
* If the PCE encounters an AS subobject, then it updates the * If the PCE encounters an AS subobject, then it updates the
current AS to this new AS number. current AS to this new AS number.
* If the PCE encounters an Area subobject, then it assumes that * If the PCE encounters an area subobject, then it assumes that
the area belongs to the current AS. the area belongs to the current AS.
* If the PCE encounters an IP address that is globally routable, * If the PCE encounters an IP address that is globally routable,
then it updates the current AS to the AS that owns this IP then it updates the current AS to the AS that owns this IP
address. This document does not define how the PCE learns address. This document does not define how the PCE learns
which AS owns the IP address. which AS owns the IP address.
* If the PCE encounters an IP address that is not globally * If the PCE encounters an IP address that is not globally
routable, then it assumes that it belongs to the current AS. routable, then it assumes that it belongs to the current AS.
* If the PCE encounters an unnumbered link, then it assumes that * If the PCE encounters an unnumbered link, then it assumes that
it belongs to the current AS. it belongs to the current AS.
o When a PCE parses an IRO, it interprets each subobject according o When a PCE parses an IRO, it interprets each subobject according
to the Area ID associated with the preceding subobject. We call to the Area ID associated with the preceding subobject. We call
this the "current Area". Certain subobjects modify the current this the "current area". Certain subobjects modify the current
Area, as follows. area, as follows.
* The current Area is initialized to the Area ID of the PCC. * The current area is initialized to the Area ID of the PCC.
* If the current AS is changed, the current Area is reset and * If the current AS is changed, the current area is reset and
need to be determined again by current or subsequent subobject. needs to be determined again by a current or subsequent
subobject.
* If the PCE encounters an Area subobject, then it updates the * If the PCE encounters an area subobject, then it updates the
current Area to this new Area ID. current area to this new Area ID.
* If the PCE encounters an IP address that belongs to a different * If the PCE encounters an IP address that belongs to a different
area, then it updates the current Area to the Area that has area, then it updates the current area to the area that has
this IP address. This document does not define how the PCE this IP address. This document does not define how the PCE
learns which Area has the IP address. learns which area has the IP address.
* If the PCE encounters an unnumbered link that belongs to a * If the PCE encounters an unnumbered link that belongs to a
different area, then it updates the current Area to the Area different area, then it updates the current Area to the area
that has this link. that has this link.
* Otherwise, it assumes that the subobject belongs to the current * Otherwise, it assumes that the subobject belongs to the current
Area. area.
o In case the current PCE is not responsible for the path o In case the current PCE is not responsible for the path
computation in the current AS or Area, then the PCE selects the computation in the current AS or area, then the PCE selects the
"next PCE" in the domain-sequence based on the current AS and "next PCE" in the domain sequence based on the current AS and
Area. area.
Note that it is advised that, PCC should use AS and Area subobject Note that it is advised that PCC should use AS and area subobjects
while building the domain-sequence in IRO and avoid using other while building the domain sequence in IRO and avoid using other
mechanism to change the "current AS" and "current Area" as described mechanisms to change the "current AS" and "current area" as described
above. above.
3.5. Exclude Route Object (XRO) 3.5. Exclude Route Object (XRO)
The Exclude Route Object (XRO) [RFC5521] is an optional object used XRO [RFC5521] is an optional object used to specify exclusion of
to specify exclusion of certain abstract nodes or resources from the certain abstract nodes or resources from the whole path.
whole path.
3.5.1. Subobjects 3.5.1. Subobjects
Some subobjects to be used in XRO as defined in [RFC3209], [RFC3477], Some subobjects are to be used in XRO as defined in [RFC3209],
[RFC4874], and [RFC5520], but new subobjects related to Domain- [RFC3477], [RFC4874], and [RFC5520], but new subobjects related to
Sequence are needed. domain sequence are needed.
This document extends the support for 4-Byte AS numbers and IGP This document extends the support for 4-byte AS numbers and IGP
Areas. areas.
Type Subobject Value Description
TBD1 Autonomous system number (4 Byte) ----- ----------------
TBD2 OSPF Area id 5 4-byte AS number
TBD3 ISIS Area id 6 OSPF Area ID
7 IS-IS Area ID
Note: The twins of these subobjects are carried in RSVP-TE messages Note: Identical subobjects are carried in RSVP-TE messages as defined
as defined in [DOMAIN-SUBOBJ]. in [RFC7898].
3.5.1.1. Autonomous system 3.5.1.1. Autonomous System
The new subobjects to support 4 byte AS and IGP (OSPF / ISIS) Area The new subobjects to support 4-byte AS numbers and the IGP
MAY also be used in the XRO to specify exclusion of certain domains (OSPF/IS-IS) area MAY also be used in the XRO to specify exclusion of
in the path computation procedure. certain domains in the path computation procedure.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X| Type | Length | Reserved | |X| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AS-ID (4 bytes) | | AS Number (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The X-bit indicates whether the exclusion is mandatory or desired. The X-bit indicates whether the exclusion is mandatory or desired.
0: indicates that the AS specified MUST be excluded from the path 0: indicates that the AS specified MUST be excluded from the path
computed by the PCE(s). computed by the PCE(s).
1: indicates that the AS specified SHOULD be avoided from the inter- 1: indicates that the AS specified SHOULD be avoided from the inter-
domain path computed by the PCE(s), but MAY be included subject to domain path computed by the PCE(s), but it MAY be included subject
PCE policy and the absence of a viable path that meets the other to PCE policy and the absence of a viable path that meets the
constraints. other constraints.
All other fields are consistent with the definition in Section 3.4. All other fields are consistent with the definition in Section 3.4.
3.5.1.2. IGP Area 3.5.1.2. IGP Area
Since the length and format of Area-id is different for OSPF and Since the length and format of the Area ID is different for OSPF and
ISIS, following two subobjects are defined: IS-IS, the following two subobjects are defined:
For OSPF, the area-id is a 32 bit number. The subobject is encoded For OSPF, the Area ID is a 32-bit number. The subobject is encoded
as follows: as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X| Type | Length | Reserved | |X| Type | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OSPF Area Id (4 bytes) | | OSPF Area ID (4 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The X-bit indicates whether the exclusion is mandatory or desired. The X-bit indicates whether the exclusion is mandatory or desired.
0: indicates that the OSFF Area specified MUST be excluded from the 0: indicates that the OSPF area specified MUST be excluded from the
path computed by the PCE(s). path computed by the PCE(s).
1: indicates that the OSFF Area specified SHOULD be avoided from the 1: indicates that the OSPF area specified SHOULD be avoided from the
inter-domain path computed by the PCE(s), but MAY be included inter-domain path computed by the PCE(s), but it MAY be included
subject to PCE policy and the absence of a viable path that meets subject to PCE policy and the absence of a viable path that meets
the other constraints. the other constraints.
All other fields are consistent with the definition in Section 3.4. All other fields are consistent with the definition in Section 3.4.
For IS-IS, the area-id is of variable length and thus the length of For IS-IS, the Area ID is of variable length; thus, the length of the
the subobject is variable. The Area-id is as described in IS-IS by subobject is variable. The Area ID is as described in IS-IS by the
ISO standard [ISO10589]. The subobject is encoded as follows: ISO standard [ISO10589]. The subobject is encoded as follows:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X| Type | Length | Area-Len | Reserved | |X| Type | Length | Area-Len | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
// IS-IS Area ID // // IS-IS Area ID //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The X-bit indicates whether the exclusion is mandatory or desired. The X-bit indicates whether the exclusion is mandatory or desired.
0: indicates that the ISIS Area specified MUST be excluded from the 0: indicates that the IS-IS area specified MUST be excluded from the
path computed by the PCE(s). path computed by the PCE(s).
1: indicates that the ISIS Area specified SHOULD be avoided from the 1: indicates that the IS-IS area specified SHOULD be avoided from the
inter-domain path computed by the PCE(s), but MAY be included inter-domain path computed by the PCE(s), but it MAY be included
subject to PCE policy and the absence of a viable path that meets subject to PCE policy and the absence of a viable path that meets
the other constraints. the other constraints.
All other fields are consistent with the definition in Section 3.4. All other fields are consistent with the definition in Section 3.4.
All the processing rules are as per [RFC5521]. All the processing rules are as per [RFC5521].
Note that, if a PCE receives an XRO in a PCReq message that contains Note that if a PCE receives an XRO in a PCReq message that contains
subobjects defined in this document, that it does not recognize, it subobjects defined in this document that it does not recognize, it
will respond according to the rules for a malformed object as per will respond according to the rules for a malformed object as per
[RFC5440]. [RFC5440].
IGP Area subobjects in the XRO are local to the current AS. In case IGP area subobjects in the XRO are local to the current AS. In case
of multi-AS path computation to exclude an IGP area in a different multi-AS path computation excludes an IGP area in a different AS, the
AS, IGP Area subobject should be part of Explicit Exclusion Route IGP area subobject should be part of EXRS in the IRO to specify the
Subobject (EXRS) in the IRO to specify the AS in which the IGP area AS in which the IGP area is to be excluded. Further, policy may be
is to be excluded. Further policy may be applied to prune/ignore applied to prune/ignore area subobjects in XRO after a "current AS"
Area subobjects in XRO after "current AS" change during path change during path computation.
computation.
3.6. Explicit Exclusion Route Subobject (EXRS) 3.6. Explicit Exclusion Route Subobject (EXRS)
EXRS [RFC5521] is used to specify exclusion of certain abstract nodes The EXRS [RFC5521] is used to specify exclusion of certain abstract
between a specific pair of nodes. nodes between a specific pair of nodes.
The EXRS subobject can carry any of the subobjects defined for The EXRS can carry any of the subobjects defined for inclusion in the
inclusion in the XRO, thus the new subobjects to support 4 byte AS XRO; thus, the new subobjects to support 4-byte AS numbers and the
and IGP (OSPF / ISIS) Area can also be used in the EXRS. The IGP (OSPF / IS-IS) area can also be used in the EXRS. The meanings
meanings of the fields of the new XRO subobjects are unchanged when of the fields of the new XRO subobjects are unchanged when the
the subobjects are included in an EXRS, except that scope of the subobjects are included in an EXRS, except that the scope of the
exclusion is limited to the single hop between the previous and exclusion is limited to the single hop between the previous and
subsequent elements in the IRO. subsequent elements in the IRO.
The EXRS subobject should be interpreted in the context of the The EXRS should be interpreted in the context of the current AS and
current AS and current Area of the preceding subobject in the IRO. current area of the preceding subobject in the IRO. The EXRS does
The EXRS subobject does not change the current AS or current Area. not change the current AS or current area. All other processing
All other processing rules are as per [RFC5521]. rules are as per [RFC5521].
Note that, if a PCE that supports the EXRS in an IRO, parses an IRO, Note that if a PCE that supports the EXRS in an IRO parses an IRO,
and encounters an EXRS that contains subobjects defined in this and encounters an EXRS that contains subobjects defined in this
document, that it does not recognize, it will act according to the document that it does not recognize, it will act according to the
setting of the X-bit in the subobject as per [RFC5521]. setting of the X-bit in the subobject as per [RFC5521].
3.7. Explicit Route Object (ERO) 3.7. Explicit Route Object (ERO)
The Explicit Route Object (ERO) [RFC5440] is used to specify a ERO [RFC5440] is used to specify a computed path in the network.
computed path in the network. PCEP ERO subobject types correspond to PCEP ERO subobject types correspond to RSVP-TE ERO subobject types as
RSVP-TE ERO subobject types as defined in [RFC3209], [RFC3473], defined in [RFC3209], [RFC3473], [RFC3477], [RFC4873], [RFC4874], and
[RFC3477], [RFC4873], [RFC4874], and [RFC5520]. The subobjects [RFC5520]. The subobjects related to the domain sequence are further
related to Domain-Sequence are further defined in [DOMAIN-SUBOBJ]. defined in [RFC7898].
The new subobjects to support 4 byte AS and IGP (OSPF / ISIS) Area The new subobjects to support 4-byte AS numbers and the IGP
can also be used in the ERO to specify an abstract node (a group of (OSPF/IS-IS) area can also be used in the ERO to specify an abstract
nodes whose internal topology is opaque to the ingress node of the node (a group of nodes whose internal topology is opaque to the
LSP). Using this concept of abstraction, an explicitly routed LSP ingress node of the LSP). Using this concept of abstraction, an
can be specified as a sequence of domains. explicitly routed LSP can be specified as a sequence of domains.
In case of Hierarchical PCE [RFC6805], a Parent PCE can be requested In case of H-PCE [RFC6805], a parent PCE can be requested to find the
to find the Domain-Sequence. Refer example in Section 4.6. The ERO domain sequence. Refer to the example in Section 4.6 of this
in reply from parent PCE can then be used in Per-Domain path document. The ERO in reply from the parent PCE can then be used in
computation or BRPC. per-domain path computation or BRPC.
If a PCC receives an ERO in a PCRep message that contains subobject If a PCC receives an ERO in a PCRep message that contains a subobject
defined in this document, that it does not recognize, it will respond defined in this document that it does not recognize, it will respond
according to the rules for a malformed object as per [RFC5440]. according to the rules for a malformed object as per [RFC5440].
4. Examples 4. Examples
The examples in this section are for illustration purposes only; to The examples in this section are for illustration purposes only to
highlight how the new subobjects could be encoded. They are not highlight how the new subobjects could be encoded. They are not
meant to be an exhaustive list of all possible usecases and meant to be an exhaustive list of all possible use cases and
combinations. combinations.
4.1. Inter-Area Path Computation 4.1. Inter-Area Path Computation
In an inter-area path computation where the ingress and the egress In an inter-area path computation where the ingress and the egress
nodes belong to different IGP areas within the same AS, the Domain- nodes belong to different IGP areas within the same AS, the domain
Sequence could be represented using a ordered list of Area sequence could be represented using an ordered list of area
subobjects. subobjects.
----------------- ----------------- ----------------- -----------------
| | | | | | | |
| +--+ | | +--+ | | +--+ | | +--+ |
| +--+ | | | | | | | | +--+ | | | | | | |
| | | +--+ | | +--+ +--+ | | | | +--+ | | +--+ +--+ |
| +--+ | | | | | | +--+ | | | | |
| | | +--+ | | | | +--+ |
| +--+ | | | | +--+ | | |
skipping to change at page 18, line 5 skipping to change at page 19, line 5
| +--+ | | | | +--+ | | |
| | | | | +--+ | | | | | | +--+ |
| +--+ | | | | | | +--+ | | | | |
| | | +--+ | | | | +--+ |
| | | | | | | |
| Area 1 | | Area 5 | | Area 1 | | Area 5 |
----------------- ------------------ ----------------- ------------------
Figure 1: Inter-Area Path Computation Figure 1: Inter-Area Path Computation
AS Number is 100. The AS Number is 100.
If the ingress is in Area 2, egress in Area 4 and transit through If the ingress is in area 2, the egress is in area 4, and transit is
Area 0. Some possible way a PCC can encode the IRO: through area 0, here are some possible ways a PCC can encode the IRO:
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|IRO | |Sub | |Sub | |IRO | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |object | |object |
|Header | |Area 0 | |Area 4 | |Header | |Area 0 | |Area 4 |
| | | | | | | | | | | |
| | | | | | | | | | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+
or or
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|IRO | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |object | |object | |object |
|Header | |Area 2 | |Area 0 | |Area 4 | |Header | |Area 2 | |Area 0 | |Area 4 |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
or or
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|IRO | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object AS| |Object | |Object | |Object | |Object | |object AS| |object | |object | |object |
|Header | |100 | |Area 2 | |Area 0 | |Area 4 | |Header | |100 | |Area 2 | |Area 0 | |Area 4 |
| | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
The Domain-Sequence can further include encompassing AS information The domain sequence can further include encompassing AS information
in the AS subobject. in the AS subobject.
4.2. Inter-AS Path Computation 4.2. Inter-AS Path Computation
In inter-AS path computation, where ingress and egress belong to In inter-AS path computation, where the ingress and egress belong to
different AS, the Domain-Sequence could be represented using an different ASes, the domain sequence could be represented using an
ordered list of AS subobjects. The Domain-Sequence can further ordered list of AS subobjects. The domain sequence can further
include decomposed area information in the Area subobject. include decomposed area information in the area subobject.
4.2.1. Example 1 4.2.1. Example 1
As shown in Figure 2, where AS has a single area, AS subobject in the As shown in Figure 2, where AS has a single area, the AS subobject in
domain-sequence can uniquely identify the next domain and PCE. the domain sequence can uniquely identify the next domain and PCE.
AS A AS E AS C AS A AS E AS C
<-------------> <----------> <-------------> <-------------> <----------> <------------->
A4----------E1---E2---E3---------C4 A4----------E1---E2---E3---------C4
/ / \ / / \
/ / \ / / \
/ / AS B \ / / AS B \
/ / <----------> \ / / <----------> \
Ingress------A1---A2------B1---B2---B3------C1---C2------Egress Ingress------A1---A2------B1---B2---B3------C1---C2------Egress
\ / / \ / /
\ / / \ / /
\ / / \ / /
\ / / \ / /
A3----------D1---D2---D3---------C3 A3----------D1---D2---D3---------C3
<----------> <---------->
AS D AS D
* All AS have one area (area 0) * All ASes have one area (area 0)
Figure 2: Inter-AS Path Computation Figure 2: Inter-AS Path Computation
If the ingress is in AS A, egress in AS C and transit through AS B. If the ingress is in AS A, the egress is in AS C, and transit is
Some possible way a PCC can encode the IRO: through AS B, here are some possible ways a PCC can encode the IRO:
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |IRO | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |object | |object |
|Header | |AS B | |AS C | |Header | |AS B | |AS C |
| | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+
or or
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |object | |object | |object |
|Header | |AS A | |AS B | |AS C | |Header | |AS A | |AS B | |AS C |
| | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
or or
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |Object | |Object | |Object | |object | |object | |object | |object | |object | |object |
|Header | |AS A | |Area 0 | |AS B | |Area 0 | |AS C | |Area 0 | |Header | |AS A | |Area 0 | |AS B | |Area 0 | |AS C | |Area 0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
Note that to get a domain disjoint path, the ingress could also Note that to get a domain disjoint path, the ingress could also
request the backup path with - request the backup path with:
+-------+ +-------+ +-------+ +-------+
|XRO | |Sub | |XRO | |Sub |
|Object | |Object | |Object | |Object |
|Header | |AS B | |Header | |AS B |
| | | | | | | |
+-------+ +-------+ +-------+ +-------+
As described in Section 3.4.3, a domain subobject in IRO changes the
As described in Section 3.4.3, domain subobject in IRO changes the domain information associated with the next set of subobjects till
domain information associated with the next set of subobjects; till
you encounter a subobject that changes the domain too. Consider the you encounter a subobject that changes the domain too. Consider the
following IRO: following IRO:
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |Object | |Object | |object | |object | |object | |object | |object |
|Header | |AS B | |IP | |IP | |AS C | |IP | |Header | |AS B | |IP | |IP | |AS C | |IP |
| | | | |B1 | |B3 | | | |C1 | | | | | |B1 | |B3 | | | |C1 |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
On processing subobject "AS B", it changes the AS of the subsequent On processing subobject "AS B", it changes the AS of the subsequent
subobjects till we encounter another subobject "AS C" which changes subobjects till we encounter another subobject "AS C" that changes
the AS for its subsequent subobjects. the AS for its subsequent subobjects.
Consider another IRO: Consider another IRO:
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |Object | |object | |object | |object | |object |
|Header | |AS D | |IP | |IP | |IP | |Header | |AS D | |IP | |IP | |IP |
| | | | |D1 | |D3 | |C3 | | | | | |D1 | |D3 | |C3 |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
Here as well, on processing "AS D", it changes the AS of the Here as well, on processing "AS D", it changes the AS of the
subsequent subobjects till you encounter another subobject "C3" which subsequent subobjects till you encounter another subobject "C3" that
belong in another AS and changes the AS for its subsequent belongs in another AS and changes the AS for its subsequent
subobjects. subobjects.
Further description for the Boundary Node and Inter-AS-Link can be Further description for the boundary node and inter-AS link can be
found in Section 4.3. found in Section 4.3.
4.2.2. Example 2 4.2.2. Example 2
In Figure 3, AS 200 is made up of multiple areas. In Figure 3, AS 200 is made up of multiple areas.
| |
| +-------------+ +----------------+ | +-------------+ +----------------+
| |Area 2 | |Area 4 | | |Area 2 | |Area 4 |
| | +--+| | +--+ | | | +--+| | +--+ |
skipping to change at page 22, line 26 skipping to change at page 23, line 50
+-------------+| | | | | | | | +--+ | +-------------+| | | | | | | | +--+ |
| | +--+ +--+ | +--+ | | | +--+ +--+ | +--+ |
| | | | | | | | | | | |
| | +--+ | +--+ | | | +--+ | +--+ |
| | +--+ | | | C| | | | +--+ | | | C| |
| | | | | | +--+ | | | | | | | +--+ |
| | +--+ | | | | | +--+ | | |
| | | | | | | | | |
| +------------+ +----------------+ | +------------+ +----------------+
| |
|
AS 100 | AS 200 AS 100 | AS 200
| |
Figure 3: Inter-AS Path Computation Figure 3: Inter-AS Path Computation
For LSP (A-B), where ingress A is in (AS 100, Area 0), egress B in For LSP (A-B), where ingress A is in (AS 100, area 0), egress B is in
(AS 200, Area 4) and transit through (AS 200, Area 0). Some possible (AS 200, area 4), and transit is through (AS 200, area 0), here are
way a PCC can encode the IRO: some possible ways a PCC can encode the IRO:
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |object | |object | |object |
|Header | |AS 200 | |Area 0 | |Area 4 | |Header | |AS 200 | |Area 0 | |Area 4 |
| | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
or or
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |Object | |Object | |object | |object | |object | |object | |object |
|Header | |AS 100 | |Area 0 | |AS 200 | |Area 0 | |Area 4 | |Header | |AS 100 | |Area 0 | |AS 200 | |Area 0 | |Area 4 |
| | | | | | | | | | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
For LSP (A-C), where ingress A is in (AS 100, Area 0), egress C in
(AS 200, Area 5) and transit through (AS 200, Area 0). Some possible For LSP (A-C), where ingress A is in (AS 100, area 0), egress C is in
way a PCC can encode the IRO: (AS 200, area 5), and transit is through (AS 200, area 0), here are
some possible ways a PCC can encode the IRO:
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |object | |object | |object |
|Header | |AS 200 | |Area 0 | |Area 5 | |Header | |AS 200 | |Area 0 | |Area 5 |
| | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
or or
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
|IRO | |Sub | |Sub | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |Object | |Object | |object | |object | |object | |object | |object |
|Header | |AS 100 | |Area 0 | |AS 200 | |Area 0 | |Area 5 | |Header | |AS 100 | |Area 0 | |AS 200 | |Area 0 | |Area 5 |
| | | | | | | | | | | | | | | | | | | | | | | |
+-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+ +-------+
4.3. Boundary Node and Inter-AS-Link 4.3. Boundary Node and Inter-AS Link
A PCC or PCE can include additional constraints covering which A PCC or PCE can include additional constraints covering which
Boundary Nodes (ABR or ASBR) or Border links (Inter-AS-link) to be boundary nodes (ABR or ASBR) or border links (inter-AS link) to be
traversed while defining a Domain-Sequence. In which case the traversed while defining a domain sequence. In which case, the
Boundary Node or Link can be encoded as a part of the Domain- boundary node or link can be encoded as a part of the domain
Sequence. sequence.
Boundary Nodes (ABR / ASBR) can be encoded using the IPv4 or IPv6 Boundary nodes (ABR/ASBR) can be encoded using the IPv4 or IPv6
prefix subobjects usually the loopback address of 32 and 128 prefix prefix subobjects, usually with a loopback address of 32 and a prefix
length respectively. An Inter-AS link can be encoded using the IPv4 length of 128, respectively. An inter-AS link can be encoded using
or IPv6 prefix subobjects or unnumbered interface subobjects. the IPv4 or IPv6 prefix subobjects or unnumbered interface
subobjects.
For Figure 1, an ABR (say 203.0.113.1) to be traversed can be For Figure 1, an ABR (say, 203.0.113.1) to be traversed can be
specified in IRO as: specified in IRO as:
+---------+ +---------+ +---------++---------+ +---------+ +---------+ +---------+ +---------++---------+ +---------+
|IRO | |Sub | |Sub ||Sub | |Sub | |IRO | |Sub- | |Sub- ||Sub- | |Sub- |
|Object | |Object | |Object ||Object | |Object | |Object | |object | |object ||object | |object |
|Header | |Area 2 | |IPv4 ||Area 0 | |Area 4 | |Header | |Area 2 | |IPv4 ||Area 0 | |Area 4 |
| | | | |203.0. || | | | | | | | |203.0. || | | |
| | | | |112.1 || | | | | | | | |112.1 || | | |
+---------+ +---------+ +---------++---------+ +---------+ +---------+ +---------+ +---------++---------+ +---------+
For Figure 3, an inter-AS-link (say 198.51.100.1 - 198.51.100.2) to For Figure 3, an inter-AS link (say, 198.51.100.1 - 198.51.100.2) to
be traversed can be specified as: be traversed can be specified as:
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|IRO | |Sub | |Sub | |Sub | |IRO | |Sub- | |Sub- | |Sub- |
|Object | |Object AS| |Object | |Object AS| |Object | |object AS| |object | |object AS|
|Header | |100 | |IPv4 | |200 | |Header | |100 | |IPv4 | |200 |
| | | | |198.51. | | | | | | | |198.51. | | |
| | | | |100.2 | | | | | | | |100.2 | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
4.4. PCE Serving multiple Domains 4.4. PCE Serving Multiple Domains
A single PCE can be responsible for multiple domains; for example PCE A single PCE can be responsible for multiple domains; for example,
function deployed on an ABR could be responsible for multiple areas. PCE function deployed on an ABR could be responsible for multiple
A PCE which can support adjacent domains can internally handle those areas. A PCE that can support adjacent domains can internally handle
domains in the Domain-Sequence without any impact on the other those domains in the domain sequence without any impact on the other
domains in the Domain-Sequence. domains in the domain sequence.
4.5. P2MP 4.5. P2MP
[RFC7334] describes an experimental inter-domain P2MP path [RFC7334] describes an experimental inter-domain P2MP path
computation mechanism where the path domain tree is described as a computation mechanism where the path domain tree is described as a
series of Domain-Sequences, an example is shown in the below figure: series of domain sequences; an example is shown in the figure below:
+----------------+ +----------------+
| |Domain D1 | |Domain D1
| R | | R |
| | | |
| A | | A |
| | | |
+-B------------C-+ +-B------------C-+
/ \ / \
/ \ / \
skipping to change at page 25, line 38 skipping to change at page 26, line 44
/ \ / \ / \ / \
/ Domain D4 \ Domain D5 / Domain D6 \ / Domain D4 \ Domain D5 / Domain D6 \
+-L-------------W+ +------P---------+ +-----------T----+ +-L-------------W+ +------P---------+ +-----------T----+
| | | | | | | | | | | |
| | | Q | | U | | | | Q | | U |
| M O | | S | | | | M O | | S | | |
| | | | | V | | | | | | V |
| N | | R | | | | N | | R | | |
+----------------+ +----------------+ +----------------+ +----------------+ +----------------+ +----------------+
The domain tree can be represented as a series of domain-sequence - Figure 4: Domain Tree Example
The domain tree can be represented as a series of domain sequences:
o Domain D1, Domain D3, Domain D6 o Domain D1, Domain D3, Domain D6
o Domain D1, Domain D3, Domain D5 o Domain D1, Domain D3, Domain D5
o Domain D1, Domain D2, Domain D4 o Domain D1, Domain D2, Domain D4
The domain sequence handling described in this document could be The domain sequence handling described in this document could be
applied to P2MP path domain tree. applied to the P2MP path domain tree.
4.6. Hierarchical PCE 4.6. Hierarchical PCE
In case of H-PCE [RFC6805], the parent PCE can be requested to In case of H-PCE [RFC6805], the parent PCE can be requested to
determine the Domain-Sequence and return it in the path computation determine the domain sequence and return it in the path computation
reply, using the ERO. . For the example in section 4.6 of [RFC6805], reply, using the ERO. For the example in Section 4.6 of [RFC6805],
the Domain-Sequence can possibly appear as: the domain sequence can possibly appear as:
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|ERO | |Sub | |Sub | |Sub | |ERO | |Sub- | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |Object | |object | |object | |object |
|Header | |Domain 1 | |Domain 2 | |Domain 3 | |Header | |Domain 1 | |Domain 2 | |Domain 3 |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+ +---------+
or or
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+
|ERO | |Sub | |Sub | |ERO | |Sub- | |Sub- |
|Object | |Object | |Object | |Object | |object | |object |
|Header | |BN 21 | |Domain 3 | |Header | |BN 21 | |Domain 3 |
| | | | | | | | | | | |
| | | | | | | | | | | |
+---------+ +---------+ +---------+ +---------+ +---------+ +---------+
5. Other Considerations 5. Other Considerations
5.1. Relationship to PCE Sequence 5.1. Relationship to PCE Sequence
Instead of a Domain-Sequence, a sequence of PCEs MAY be enforced by 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 policy on the PCC, and this constraint can be carried in the PCReq
message (as defined in [RFC5886]). message (as defined in [RFC5886]).
Note that PCE-Sequence can be used along with Domain-Sequence in Note that PCE Sequence can be used along with domain sequence, in
which case PCE-Sequence MUST have higher precedence in selecting the which case PCE Sequence MUST have higher precedence in selecting the
next PCE in the inter-domain path computation procedures. next PCE in the inter-domain path computation procedures.
5.2. Relationship to RSVP-TE 5.2. Relationship to RSVP-TE
[RFC3209] already describes the notion of abstract nodes, where an [RFC3209] already describes the notion of abstract nodes, where an
abstract node is a group of nodes whose internal topology is opaque 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 to the ingress node of the LSP. It further defines a subobject for
AS but with a 2-Byte AS Number. AS but with a 2-byte AS number.
[DOMAIN-SUBOBJ] extends the notion of abstract nodes by adding new [RFC7898] extends the notion of abstract nodes by adding new
subobjects for IGP Areas and 4-byte AS numbers. These subobjects can subobjects for IGP areas and 4-byte AS numbers. These subobjects can
be included in Explicit Route Object (ERO), Exclude Route object be included in ERO, XRO, or EXRS in RSVP-TE.
(XRO) or Explicit Exclusion Route Subobject (EXRS) in RSVP-TE.
In any case subobject type defined in RSVP-TE are identical to the In any case, subobject types defined in RSVP-TE are identical to the
subobject type defined in the related documents in PCEP. subobject types defined in the related documents in PCEP.
6. IANA Considerations 6. IANA Considerations
6.1. New Subobjects 6.1. New Subobjects
IANA maintains the "Path Computation Element Protocol (PCEP) Numbers" IANA maintains the "Path Computation Element Protocol (PCEP) Numbers"
at <http://www.iana.org/assignments/pcep>. Within this registry IANA registry at <http://www.iana.org/assignments/pcep>. Within this
maintains two sub-registries: registry, IANA maintains two sub-registries:
o IRO Subobjects (see IRO Subobjects at o IRO Subobjects
http://www.iana.org/assignments/pcep)
o XRO Subobjects (see XRO Subobjects at o XRO Subobjects
http://www.iana.org/assignments/pcep)
Upon approval of this document, IANA is requested to make identical IANA has made identical additions to those registries as follows:
additions to these registries as follows:
Subobject Type Reference Value Description Reference
TBD1 4 byte AS number [This I.D.][DOMAIN-SUBOBJ] ----- ---------------- -------------------
TBD2 OSPF Area ID [This I.D.][DOMAIN-SUBOBJ] 5 4-byte AS number RFC 7897, [RFC7898]
TBD3 IS-IS Area ID [This I.D.][DOMAIN-SUBOBJ] 6 OSPF Area ID RFC 7897, [RFC7898]
7 IS-IS Area ID RFC 7897, [RFC7898]
Further upon approval of this document, IANA is requested to add a Further, IANA has added a reference to this document to the new RSVP
reference to this document to the new RSVP numbers that are numbers that are registered by [RFC7898], as shown on
registered by [DOMAIN-SUBOBJ]. <http://www.iana.org/assignments/rsvp-parameters>.
7. Security Considerations 7. Security Considerations
The protocol extensions defined in this document do not substantially The protocol extensions defined in this document do not substantially
change the nature of PCEP. Therefore, the security considerations change the nature of PCEP. Therefore, the security considerations
set out in [RFC5440] apply unchanged. Note that further security set out in [RFC5440] apply unchanged. Note that further security
considerations for the use of PCEP over TCP are presented in considerations for the use of PCEP over TCP are presented in
[RFC6952]. [RFC6952].
This document specifies a representation of Domain-Sequence and new This document specifies a representation of the domain sequence and
subobjects, which could be used in inter-domain PCE scenarios as new subobjects, which could be used in inter-domain PCE scenarios as
explained in [RFC5152], [RFC5441], [RFC6805], [RFC7334] etc. The explained in [RFC5152], [RFC5441], [RFC6805], [RFC7334], etc. The
security considerations set out in each of these mechanisms remain security considerations set out in each of these mechanisms remain
unchanged by the new subobjects and Domain-Sequence representation in unchanged by the new subobjects and domain sequence representation in
this document. this document.
But the new subobjects do allow finer and more specific control of But the new subobjects do allow finer and more specific control of
the path computed by a cooperating PCE(s). Such control increases the path computed by a cooperating PCE(s). Such control increases
the risk if a PCEP message is intercepted, modified, or spoofed the risk if a PCEP message is intercepted, modified, or spoofed
because it allows the attacker to exert control over the path that because it allows the attacker to exert control over the path that
the PCE will compute or to make the path computation impossible. the PCE will compute or to make the path computation impossible.
Consequently, it is important that implementations conform to the Consequently, it is important that implementations conform to the
relevant security requirements of [RFC5440]. These mechanisms relevant security requirements of [RFC5440]. These mechanisms
include: include:
o Securing the PCEP session messages using TCP security techniques o Securing the PCEP session messages using TCP security techniques
(Section 10.2 of [RFC5440]). PCEP implementations SHOULD also (Section 10.2 of [RFC5440]). PCEP implementations SHOULD also
consider the additional security provided by the TCP consider the additional security provided by the TCP
Authentication Option (TCP-AO) [RFC5925] or [PCEPS]. Authentication Option (TCP-AO) [RFC5925] or Transport Layer
Security (TLS) [PCEPS].
o Authenticating the PCEP messages to ensure the message is intact o Authenticating the PCEP messages to ensure the messages are intact
and sent from an authorized node (Section 10.3 of [RFC5440]). and sent from an authorized node (Section 10.3 of [RFC5440]).
o PCEP operates over TCP, so it is also important to secure the PCE o PCEP operates over TCP, so it is also important to secure the PCE
and PCC against TCP denial-of-service attacks. Section 10.7.1 of and PCC against TCP denial-of-service attacks. Section 10.7.1 of
[RFC5440] outlines a number of mechanisms for minimizing the risk [RFC5440] outlines a number of mechanisms for minimizing the risk
of TCP-based denial-of-service attacks against PCEs and PCCs. of TCP-based denial-of-service attacks against PCEs and PCCs.
o In inter-AS scenarios, attacks may be particularly significant o In inter-AS scenarios, attacks may be particularly significant
with commercial as well as service-level implications. with commercial- as well as service-level implications.
Note, however, that the Domain-Sequence mechanisms also provide the Note, however, that the domain sequence mechanisms also provide the
operator with the ability to route around vulnerable parts of the operator with the ability to route around vulnerable parts of the
network and may be used to increase overall network security. network and may be used to increase overall network security.
8. Manageability Considerations 8. Manageability Considerations
8.1. Control of Function and Policy 8.1. Control of Function and Policy
The exact behaviour with regards to desired inclusion and exclusion The exact behavior with regards to desired inclusion and exclusion of
of domains MUST be available for examination by an operator and MAY domains MUST be available for examination by an operator and MAY be
be configurable. Manual configurations is needed to identify which configurable. Manual configurations are needed to identify which
PCEP peers understand the new domain subobjects defined in this PCEP peers understand the new domain subobjects defined in this
document. document.
8.2. Information and Data Models 8.2. Information and Data Models
A MIB module for management of the PCEP is being specified in a A MIB module for management of the PCEP is being specified in a
separate document [RFC7420]. This document does not imply any new separate document [RFC7420]. This document does not imply any new
extension to the current MIB module. extension to the current MIB module.
8.3. Liveness Detection and Monitoring 8.3. Liveness Detection and Monitoring
Mechanisms defined in this document do not imply any new liveness Mechanisms defined in this document do not imply any new liveness
detection and monitoring requirements in addition to those already detection and monitoring requirements aside from those already listed
listed in [RFC5440]. in [RFC5440].
8.4. Verify Correct Operations 8.4. Verify Correct Operations
Mechanisms defined in this document do not imply any new operation Mechanisms defined in this document do not imply any new operation
verification requirements in addition to those already listed in verification requirements aside from those already listed in
[RFC5440]. [RFC5440].
8.5. Requirements On Other Protocols 8.5. Requirements on Other Protocols
In case of per-domain path computation [RFC5152], where the full path In case of per-domain path computation [RFC5152], where the full path
of an inter-domain TE LSP cannot be, or is not determined at the of an inter-domain TE LSP cannot be determined (or is not determined)
ingress node, a signaling message can use the domain identifiers. at the ingress node, a signaling message can use the domain
The Subobjects defined in this document SHOULD be supported by RSVP- identifiers. The subobjects defined in this document SHOULD be
TE. [DOMAIN-SUBOBJ] extends the notion of abstract nodes by adding supported by RSVP-TE. [RFC7898] extends the notion of abstract nodes
new subobjects for IGP Areas and 4-byte AS numbers. by adding new subobjects for IGP areas and 4-byte AS numbers.
Apart from this, mechanisms defined in this document do not imply any Apart from this, mechanisms defined in this document do not imply any
requirements on other protocols in addition to those already listed requirements on other protocols aside from those already listed in
in [RFC5440]. [RFC5440].
8.6. Impact On Network Operations 8.6. Impact on Network Operations
The mechanisms described in this document can provide the operator The mechanisms described in this document can provide the operator
with the ability to exert finer and more specific control of the path with the ability to exert finer and more specific control of the path
computation by inclusion or exclusion of domain subobjects. There computation by inclusion or exclusion of domain subobjects. There
may be some scaling benefit when a single domain subobject may may be some scaling benefit when a single domain subobject may
substitute for many subobjects and can reduce the overall message substitute for many subobjects and can reduce the overall message
size and processing. size and processing.
Backward compatibility issues associated with the new subobjects Backward compatibility issues associated with the new subobjects
arise when a PCE does not recognize them, in which case PCE responds arise when a PCE does not recognize them, in which case PCE responds
according to the rules for a malformed object as per [RFC5440]. For according to the rules for a malformed object as per [RFC5440]. For
successful operations the PCEs in the network would need to be successful operations, the PCEs in the network would need to be
upgraded. upgraded.
9. Acknowledgments 9. References
Authors would like to especially thank Adrian Farrel for his detailed
reviews as well as providing text to be included in the document.
Further, we would like to thank Pradeep Shastry, Suresh Babu, Quintin
Zhao, Fatai Zhang, Daniel King, Oscar Gonzalez, Chen Huaimo,
Venugopal Reddy, Reeja Paul, Sandeep Boina, Avantika Sergio Belotti
and Jonathan Hardwick for their useful comments and suggestions.
Thanks to Jonathan Hardwick for shepherding this document.
Thanks to Deborah Brungard for being the Responsible AD.
Thanks to Amanda Baber for IANA Review.
Thanks to Joel Halpern for Gen-ART Review.
Thanks to Klaas Wierenga for SecDir Review.
Thanks to Spencer Dawkins and Barry Leiba for comments during the
IESG Review.
10. References 9.1. Normative References
10.1. Normative References [ISO10589] International Organization for Standardization,
"Information technology -- Telecommunications and
information exchange between systems -- Intermediate
System to Intermediate System intra-domain routeing
information exchange protocol for use in conjunction with
the protocol for providing the connectionless-mode network
service (ISO 8473)", ISO/IEC 10589:2002, Second Edition,
2002.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<http://www.rfc-editor.org/info/rfc3209>. <http://www.rfc-editor.org/info/rfc3209>.
skipping to change at page 31, line 23 skipping to change at page 32, line 16
Path Computation Element Communication Protocol (PCEP) for Path Computation Element Communication Protocol (PCEP) for
Route Exclusions", RFC 5521, DOI 10.17487/RFC5521, April Route Exclusions", RFC 5521, DOI 10.17487/RFC5521, April
2009, <http://www.rfc-editor.org/info/rfc5521>. 2009, <http://www.rfc-editor.org/info/rfc5521>.
[RFC6805] King, D., Ed. and A. Farrel, Ed., "The Application of the [RFC6805] King, D., Ed. and A. Farrel, Ed., "The Application of the
Path Computation Element Architecture to the Determination Path Computation Element Architecture to the Determination
of a Sequence of Domains in MPLS and GMPLS", RFC 6805, of a Sequence of Domains in MPLS and GMPLS", RFC 6805,
DOI 10.17487/RFC6805, November 2012, DOI 10.17487/RFC6805, November 2012,
<http://www.rfc-editor.org/info/rfc6805>. <http://www.rfc-editor.org/info/rfc6805>.
[ISO10589] [RFC7896] Dhody, D., "Update to the Include Route Object (IRO)
ISO, "Intermediate system to Intermediate system routing Specification in the Path Computation Element
information exchange protocol for use in conjunction with Communication Protocol (PCEP)", RFC 7896,
the Protocol for providing the Connectionless-mode Network DOI 10.17487/RFC7896, June 2016,
Service (ISO 8473)", ISO/IEC 10589:2002, 1992. <http://www.rfc-editor.org/info/rfc7896>.
[IRO-UPDATE] [RFC7898] Dhody, D., Palle, U., Kondreddy, V., and R. Casellas,
Dhody, D., "Update to Include Route Object (IRO) "Domain Subobjects for Resource Reservation Protocol -
specification in Path Computation Element communication Traffic Engineering (RSVP-TE)", RFC 7898,
Protocol (PCEP. (draft-ietf-pce-iro-update-02)", May 2015. DOI 10.17487/RFC7898, June 2016,
<http://www.rfc-editor.org/info/rfc7898>.
[DOMAIN-SUBOBJ] 9.2. Informative References
Dhody, D., Palle, U., Kondreddy, V., and R. Casellas,
"Domain Subobjects for Resource ReserVation Protocol -
Traffic Engineering (RSVP-TE). (draft-ietf-teas-rsvp-te-
domain-subobjects-05)", November 2015.
10.2. Informative References [PCEPS] Lopez, D., Dios, O., Wu, W., and D. Dhody, "Secure
Transport for PCEP", Work in Progress,
draft-ietf-pce-pceps-09, November 2015.
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation [RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
Element (PCE)-Based Architecture", RFC 4655, Element (PCE)-Based Architecture", RFC 4655,
DOI 10.17487/RFC4655, August 2006, DOI 10.17487/RFC4655, August 2006,
<http://www.rfc-editor.org/info/rfc4655>. <http://www.rfc-editor.org/info/rfc4655>.
[RFC4726] Farrel, A., Vasseur, J., and A. Ayyangar, "A Framework for [RFC4726] Farrel, A., Vasseur, J., and A. Ayyangar, "A Framework for
Inter-Domain Multiprotocol Label Switching Traffic Inter-Domain Multiprotocol Label Switching Traffic
Engineering", RFC 4726, DOI 10.17487/RFC4726, November Engineering", RFC 4726, DOI 10.17487/RFC4726, November
2006, <http://www.rfc-editor.org/info/rfc4726>. 2006, <http://www.rfc-editor.org/info/rfc4726>.
skipping to change at page 33, line 11 skipping to change at page 34, line 5
Traffic Engineering Label Switched Paths", RFC 7334, Traffic Engineering Label Switched Paths", RFC 7334,
DOI 10.17487/RFC7334, August 2014, DOI 10.17487/RFC7334, August 2014,
<http://www.rfc-editor.org/info/rfc7334>. <http://www.rfc-editor.org/info/rfc7334>.
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J. [RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J.
Hardwick, "Path Computation Element Communication Protocol Hardwick, "Path Computation Element Communication Protocol
(PCEP) Management Information Base (MIB) Module", (PCEP) Management Information Base (MIB) Module",
RFC 7420, DOI 10.17487/RFC7420, December 2014, RFC 7420, DOI 10.17487/RFC7420, December 2014,
<http://www.rfc-editor.org/info/rfc7420>. <http://www.rfc-editor.org/info/rfc7420>.
[PCEPS] Lopez, D., Dios, O., Wu, W., and D. Dhody, "Secure Acknowledgments
Transport for PCEP", draft-ietf-pce-pceps-06 (work in
progress), November 2015. The authors would like to especially thank Adrian Farrel for his
detailed reviews as well as providing text to be included in the
document.
Further, we would like to thank Pradeep Shastry, Suresh Babu, Quintin
Zhao, Fatai Zhang, Daniel King, Oscar Gonzalez, Chen Huaimo,
Venugopal Reddy, Reeja Paul, Sandeep Boina, Avantika Sergio Belotti,
and Jonathan Hardwick for their useful comments and suggestions.
Thanks to Jonathan Hardwick for shepherding this document.
Thanks to Deborah Brungard for being the responsible AD.
Thanks to Amanda Baber for the IANA review.
Thanks to Joel Halpern for the Gen-ART review.
Thanks to Klaas Wierenga for the SecDir review.
Thanks to Spencer Dawkins and Barry Leiba for comments during the
IESG review.
Authors' Addresses Authors' Addresses
Dhruv Dhody Dhruv Dhody
Huawei Technologies Huawei Technologies
Divyashree Techno Park, Whitefield Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560037 Bangalore, Karnataka 560066
India India
EMail: dhruv.ietf@gmail.com Email: dhruv.ietf@gmail.com
Udayasree Palle Udayasree Palle
Huawei Technologies Huawei Technologies
Divyashree Techno Park, Whitefield Divyashree Techno Park, Whitefield
Bangalore, Karnataka 560037 Bangalore, Karnataka 560066
India India
EMail: udayasree.palle@huawei.com Email: udayasree.palle@huawei.com
Ramon Casellas Ramon Casellas
CTTC CTTC
Av. Carl Friedrich Gauss n7 Av. Carl Friedrich Gauss n7
Castelldefels, Barcelona 08860 Castelldefels, Barcelona 08860
Spain Spain
EMail: ramon.casellas@cttc.es Email: ramon.casellas@cttc.es
 End of changes. 235 change blocks. 
499 lines changed or deleted 510 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/