This section defines extensions to PCEP [
RFC 5440] to support the H-PCE procedures.
Although the extensions defined in this document are intended primarily for use between a child PCE and a parent PCE, they are also applicable for communications between a PCC and its PCE.
Thus, the information that may be encoded in a PCReq can be sent from a PCC towards the child PCE. This includes the Request Parameters (RP) object ([
RFC 5440] and
Section 3.3), the OF codes (
Section 3.4.1), and the OF object (
Section 3.4.2). A PCC and a child PCE could also exchange the H-PCE capability (
Section 3.2.1) during its session.
This allows a PCC to request paths that transit multiple domains utilizing the capabilities defined in this document.
This document defines two new TLVs to be carried in an OPEN object. This way, during the PCEP session establishment, the H-PCE capability and domain information can be advertised.
The H-PCE-CAPABILITY TLV is an optional TLV associated with the OPEN object [
RFC 5440] to exchange the H-PCE capability of PCEP speakers.
Its format is shown in the following figure:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=13 | Length=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |P|
+---------------------------------------------------------------+
The type of the TLV is 13, and it has a fixed length of 4 octets.
The value comprises a single field -- Flags (32 bits):
-
-
P (Parent PCE Request bit):
-
If set, will signal that the child PCE wishes to use the peer PCE as a parent PCE.
Unassigned bits
MUST be set to 0 on transmission and
MUST be ignored on receipt.
The inclusion of this TLV in an OPEN object indicates that the H-PCE extensions are supported by the PCEP speaker. The child PCE
MUST include this TLV and set the P-flag. The parent PCE
MUST include this TLV and unset the P-flag.
The setting of the P-flag (Parent PCE Request bit) would mean that the PCEP speaker wants the peer to be a parent PCE, so in the case of a PCC-to-child-PCE relationship, neither entity would set the P-flag.
If both peers attempt to set the P-flag, then the session establishment
MUST fail, and the PCEP speaker
MUST respond with a PCErr message using Error-Type 1 (PCEP session establishment failure) as per [
RFC 5440].
If the PCE understands the H-PCE PCReq message but did not advertise its H-PCE capability, it
MUST send a PCErr message with Error-Type=28 (H-PCE Error) and Error-Value=1 (H-PCE Capability not advertised).
Section 7.1 of
RFC 5440 specifies the following requirement: "Unrecognized TLVs
MUST be ignored."
The OPEN object [
RFC 5440] contains the necessary PCEP information between the PCE entities, including session information and PCE capabilities via TLVs (including if H-PCE is supported). If the PCE does not support this document but receives an Open message containing an OPEN object that includes an H-PCE-CAPABILITY TLV, it will ignore that TLV and continue to attempt to establish a PCEP session. However, it will not include the TLV in the Open message that it sends, so the H-PCE relationship will not be created.
If a PCE does not support the extensions defined in this document but receives them in a PCEP message (notwithstanding the fact that the session was not established as supporting an H-PCE relationship), the receiving PCE will ignore the H-PCE related parameters because they are all encoded in TLVs in standard PCEP objects.
The Domain-ID TLV, when used in the OPEN object, identifies the domains served by the PCE. The child PCE uses this mechanism to provide the domain information to the parent PCE.
The Domain-ID TLV is defined below:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=14 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Domain Type | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// Domain ID //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The type of the TLV is 14, and it has a variable Length of the value portion. The value part comprises the following:
-
-
Domain Type (8 bits):
-
Indicates the domain type. Four types of domains are currently defined:
-
Type=1:
-
The Domain ID field carries a 2-byte AS number. Padded with trailing zeros to a 4-byte boundary.
-
Type=2:
-
The Domain ID field carries a 4-byte AS number.
-
Type=3:
-
The Domain ID field carries a 4-byte OSPF area ID.
-
Type=4:
-
The Domain ID field carries a 2-byte Area-Len and a variable-length IS-IS area ID. Padded with trailing zeros to a 4-byte boundary.
-
Reserved:
-
Zero at transmission; ignored on receipt.
-
Domain ID (variable):
-
Indicates an IGP area ID or AS number as per the Domain Type field. It can be 2 bytes, 4 bytes, or variable length, depending on the domain identifier used. It is padded with trailing zeros to a 4-byte boundary. In the case of IS-IS, it includes the Area-Len as well.
In the case where a PCE serves more than one domain, multiple Domain-ID TLVs are included for each domain it serves.
The H-PCE-FLAG TLV is an optional TLV associated with the RP object [
RFC 5440] to indicate the H-PCE PCReq message and options.
Its format is shown in the following figure:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=15 | Length=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |D|S|
+---------------------------------------------------------------+
The type of the TLV is 15, and it has a fixed length of 4 octets.
The value comprises a single field -- Flags (32 bits):
-
-
D (Disallow Domain Re-entry bit):
-
If set, will signal that the computed path does not enter a domain more than once.
-
S (Domain Sequence bit):
-
If set, will signal that the child PCE wishes to get only the domain sequence in the Path Computation Reply (PCRep) message [RFC 5440]. Refer to Section 3.7 of RFC 7897 for details.
Unassigned bits
MUST be set to 0 on transmission and
MUST be ignored on receipt.
The presence of the TLV indicates that the H-PCE-based path computation is requested as per this document.
The Domain-ID TLV, carried in an OPEN object, is used to indicate a managed domain (or a list of managed domains) and is described in
Section 3.2.2. This TLV, when carried in an RP object, indicates the destination domain ID. If a PCC knows the egress domain, it can supply this information in the PCReq message.
Section 3.2.2 also defines the format for this TLV and the procedure for using it.
If a Domain-ID TLV is used in the RP object and the destination is not actually in the indicated domain, then the parent PCE should respond with a NO-PATH object and the NO-PATH-VECTOR TLV should be used. A new bit number is assigned to indicate "Destination is not found in the indicated domain" (see
Section 3.8).
[
RFC 5541] defines a mechanism to specify an OF that is used by a PCE when it computes a path. Three new OFs are defined for the H-PCE model; these are:
-
MTD
-
Name:
-
Minimize the number of Transit Domains (MTD)
-
OF code:
-
12
-
Description:
-
Find a path P such that it passes through the leastnumber of transit domains.
-
OFs are formulated using the following terminology:
-
A network comprises a set of N domains {Di, (i=1...N)}.
-
A path P passes through K unique domains {Dpi, (i=1...K)}.
-
Find a path P such that the value of K is minimized.
-
MBN
-
Name:
-
Minimize the number of Border Nodes (MBN)
-
OF code:
-
13
-
Description:
-
Find a path P such that it passes through the leastnumber of border nodes.
-
OFs are formulated using the following terminology:
-
A network comprises a set of N links {Li, (i=1...N)}.
-
A path P is a list of K links {Lpi, (i=1...K)}.
-
D(Lpi) is a function that determines if the links Lpi and Lpi+1 belong to different domains. D(Li) = 1 if link Li and Li+1 belong to different domains; D(Lk) = 0 if link Lk and Lk+1 belong to the same domain.
-
The number of border nodes in a path P is denoted by B(P), where B(P) = sum{D(Lpi), (i=1...K-1)}.
-
Find a path P such that B(P) is minimized.
There is one OF that applies to a set of synchronized PCReq messages to increase the domain diversity:
-
MCTD
-
Name:
-
Minimize the number of Common Transit Domains (MCTD)
-
OF code:
-
14
-
Description:
-
Find a set of paths such that it passes through theleast number of common transit domains.
-
A network comprises a set of N domains {Di, (i=1...N)}.
-
A path P passes through K unique domains {Dpi, (i=1...K)}.
-
A set of paths {P1...Pm} has L transit domains that are common to more than one path {Dpi, (i=1...L)}.
-
Find a set of paths such that the value of L is minimized.
The OF object [
RFC 5541] is carried in a PCReq message so as to indicate the desired/required OF to be applied by the PCE during path computation. As per
Section 3.2 of
RFC 5541, a single OF object may be included in a PCReq message.
The new OF codes described in
Section 3.4.1 are applicable to the inter-domain path computation performed by the parent PCE. It is also necessary to specify the OF code that may be applied for the intra-domain path computation performed by the child PCE. To accommodate this, the OF-List TLV (described in
Section 2.1 of
RFC 5541) is included in the OF object as an optional TLV.
The OF-List TLV allows the encoding of multiple OF codes. When this TLV is included inside the OF object, only the first OF code in the OF-List TLV is considered. The parent PCE
MUST use this OF code in the OF object when sending the intra-domain PCReq message to the child PCE. If the OF-List TLV is included in the OF object, the OF code inside the OF object
MUST include one of the H-PCE OFs defined in this document. The OF code inside the OF-List TLV
MUST NOT include an H-PCE OF. If this condition is not met, the PCEP speaker
MUST respond with a PCErr message with Error-Type=10 (Reception of an invalid object) and Error-Value=23 (Incompatible OF codes in H-PCE).
If the OFs defined in this document are unknown or unsupported by a PCE, then the procedure as defined in [
RFC 5440] is followed.
The METRIC object is defined in
Section 7.8 of
RFC 5440 and is comprised of the metric-value field, the metric type (the T field), and flags (the Flags field). This document defines the following types for the METRIC object for the H-PCE model:
-
-
T=20:
-
Domain Count metric (number of domains crossed).
-
T=21:
-
Border Node Count metric (number of border nodes crossed).
The Domain Count metric type of the METRIC object encodes the number of domains crossed in the path. The Border Node Count metric type of the METRIC object encodes the number of border nodes in the path. If a domain is re-entered, then the domain should be double counted.
A PCC or child PCE
MAY use the metric in a PCReq message for an inter-domain path computation, meeting the requirement for the number of domains or border nodes being crossed. As per [
RFC 5440], in this case, the B-bit is set to suggest a bound (a maximum) for the metric that must not be exceeded for the PCC to consider the computed path acceptable.
A PCC or child PCE
MAY also use this metric to ask the PCE to optimize the metric during inter-domain path computation. In this case, the B-flag is cleared, and the C-flag is set.
The parent PCE
MAY use the metric in a PCRep message along with a NO-PATH object in the case where the PCE cannot compute a path that meets this constraint. A PCE
MAY also use this metric to send the computed end-to-end metric value in a reply message.
[
RFC 5440] defines the Synchronization Vector (SVEC) object, which includes flags for the potential dependency between the set of PCReq messages (Link, Node, and SRLG diverse). This document defines a new flag (the O-bit) for domain diversity.
The following new bit is added to the Flags field:
-
-
Domain Diverse O-bit - 18:
-
When set, this indicates that the computed paths corresponding to the requests specified by any RP objects that might be provided MUST NOT have any transit domains in common.
The Domain Diverse O-bit can be used in H-PCE path computation to compute synchronized domain-diverse end-to-end paths or diverse domain sequences.
When the Domain Diverse O-bit is set, it is applied to the transit domains. The other bit in SVEC object L (Link diverse), N (Node diverse), S (SRLG diverse), etc.
MAY be set and
MUST still be applied in the ingress and egress shared domain.
A new PCEP Error-Type [
RFC 5440] is used for the H-PCE extension as defined below:
Error-Type |
Meaning |
28 |
H-PCE Error
-
Error-Value=1: H-PCE Capability not advertised
-
Error-Value=2: Parent PCE Capability cannot be provided
|
Table 1: H-PCE Error
To communicate the reason(s) for not being able to find a multi-domain path or domain sequence, the NO-PATH object can be used in the PCRep message. [
RFC 5440] defines the format of the NO-PATH object. The object may contain a NO-PATH-VECTOR TLV to provide additional information about why a path computation has failed.
This document defines four new bit flags in the "NO-PATH-VECTOR TLV Flag Field" subregistry. These flags are to be carried in the Flags field in the NO-PATH-VECTOR TLV carried in the NO-PATH object.
-
-
Bit number 22:
-
When set, the parent PCE indicates that the destination domain is unknown.
-
Bit number 21:
-
When set, the parent PCE indicates that one or more child PCEs are unresponsive.
-
Bit number 20:
-
When set, the parent PCE indicates that no resources are available in one or more domains.
-
Bit number 19:
-
When set, the parent PCE indicates that the destination is not found in the indicated domain.