PCEP Inter-Layer: Extensions to the Path Computation Element Communication Protocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering
New PCEP objects and metrics that let a path computation request span several network layers.
Oki, E., Takeda, T., Farrel, A., and F. Zhang, "Extensions to the Path Computation Element Communication Protocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering", RFC 8282, DOI 10.17487/RFC8282, December 2017, <https://www.rfc-editor.org/info/rfc8282>.
@misc{rfc8282,
series = {Request for Comments},
number = 8282,
howpublished = {RFC 8282},
publisher = {RFC Editor},
doi = {10.17487/RFC8282},
url = {https://www.rfc-editor.org/info/rfc8282},
author = {E. Oki and T. Takeda and A. Farrel and F. Zhang},
title = {{Extensions to the Path Computation Element Communication Protocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering}},
pagetotal = 22,
year = 2017,
month = dec,
} RFC text
Contents
Internet Engineering Task Force (IETF) E. Oki
Request for Comments: 8282 Kyoto University
Category: Standards Track T. Takeda
ISSN: 2070-1721 NTT
A. Farrel
Juniper Networks
F. Zhang
Huawei Technologies Co., Ltd.
December 2017
Extensions to the Path Computation Element Communication Protocol (PCEP)
for Inter-Layer MPLS and GMPLS Traffic Engineering
Abstract
The Path Computation Element (PCE) provides path computation
functions in support of traffic engineering in Multiprotocol Label
Switching (MPLS) and Generalized MPLS (GMPLS) networks.
MPLS and GMPLS networks may be constructed from layered service
networks. It is advantageous for overall network efficiency to
provide end-to-end traffic engineering across multiple network layers
through a process called inter-layer traffic engineering. PCE is a
candidate solution for such requirements.
The PCE Communication Protocol (PCEP) is designed as a communication
protocol between Path Computation Clients (PCCs) and PCEs. This
document presents PCEP extensions for inter-layer traffic
engineering.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8282.
Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
2. Overview of PCE-Based Inter-Layer Path Computation . . . . . 4
3. Protocol Extensions . . . . . . . . . . . . . . . . . . . . . 4
3.1. INTER-LAYER Object . . . . . . . . . . . . . . . . . . . 5
3.2. SWITCH-LAYER Object . . . . . . . . . . . . . . . . . . . 8
3.3. REQ-ADAP-CAP Object . . . . . . . . . . . . . . . . . . . 9
3.4. New Metric Types . . . . . . . . . . . . . . . . . . . . 10
3.5. SERVER-INDICATION Object . . . . . . . . . . . . . . . . 11
4. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Path Computation Request . . . . . . . . . . . . . . . . 11
4.2. Path Computation Reply . . . . . . . . . . . . . . . . . 12
4.3. Stateful PCE and PCE Initiated LSPs . . . . . . . . . . . 13
5. Updated Format of PCEP Messages . . . . . . . . . . . . . . . 14
6. Manageability Considerations . . . . . . . . . . . . . . . . 15
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
7.1. New PCEP Objects . . . . . . . . . . . . . . . . . . . . 16
7.2. New Registry for INTER-LAYER Object Flags . . . . . . . . 17
7.3. New Metric Types . . . . . . . . . . . . . . . . . . . . 17
8. Security Considerations . . . . . . . . . . . . . . . . . . . 18
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1. Normative References . . . . . . . . . . . . . . . . . . 18
9.2. Informative References . . . . . . . . . . . . . . . . . 19
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 21
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction
The Path Computation Element (PCE) defined in [RFC4655] is an entity
that is capable of computing a network path or route based on a
network graph and applying computational constraints. A Path
Computation Client (PCC) may make requests to a PCE for paths to be
computed, and a PCE may initiate or modify services in a network by
supplying new paths [RFC8231] [RFC8281].
A network may comprise multiple layers. These layers may represent
separation of technologies (e.g., packet switch capable (PSC), time
division multiplex (TDM), and lambda switch capable (LSC)) [RFC3945];
separation of data-plane switching granularity levels (e.g., Virtual
Circuit 4 (VC4) and VC12) [RFC5212]; or a distinction between client
and server networking roles (e.g., commercial or administrative
separation of client and server networks). In this multi-layer
network, Label Switched Paths (LSPs) in lower layers are used to
carry higher-layer LSPs. The network topology formed by lower-layer
LSPs and advertised as traffic engineering links (TE links) in the
higher layer is called a Virtual Network Topology (VNT) [RFC5212].
Discussion of other ways that network layering can be supported such
that connectivity in a higher-layer network can be provided by LSPs
in a lower-layer network is provided in [RFC7926].
It is important to optimize network resource utilization globally,
i.e., taking into account all layers, rather than optimizing resource
utilization at each layer independently. This allows better network
efficiency to be achieved. This is what we call inter-layer traffic
engineering. This includes mechanisms allowing the computation of
end-to-end paths across layers (known as inter-layer path
computation) and mechanisms for control and management of the VNT by
setting up and releasing LSPs in the lower layers [RFC5212].
PCE can provide a suitable mechanism for resolving inter-layer path
computation issues. The framework for applying the PCE-based path
computation architecture to inter-layer traffic engineering is
described in [RFC5623].
The PCE communication protocol (PCEP) is designed as a communication
protocol between PCCs and PCEs and is defined in [RFC5440]. A set of
requirements for PCEP extensions to support inter-layer traffic
engineering is described in [RFC6457].
This document presents PCEP extensions for inter-layer traffic
engineering that satisfy the requirements described in [RFC6457].
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Overview of PCE-Based Inter-Layer Path Computation
[RFC4206] defines a way to signal a higher-layer LSP, which has an
explicit route that includes hops traversed by LSPs in lower layers.
The computation of end-to-end paths across layers is called inter-
layer path computation.
A Label Switching Router (LSR) in the higher layer might not have
information on the lower-layer topology, particularly in an overlay
or augmented model [RFC3945]; hence, it may not be able to compute an
end-to-end path across layers.
PCE-based inter-layer path computation consists of using one or more
PCEs to compute an end-to-end path across layers. This could be
achieved by relying on a single PCE that has topology information
about multiple layers and can directly compute an end-to-end path
across layers considering the topology of all of the layers.
Alternatively, the inter-layer path computation could be performed
using multiple cooperating PCEs where each PCE has information about
the topology of one or more layers (but not all layers) and where the
PCEs collaborate to compute an end-to-end path.
As described in [RFC5339], a hybrid node may advertise a single TE
link with multiple switching capabilities. Normally, those TE links
exist at the layer/region boarder. In this case, a PCE needs to be
capable of specifying the server-layer path information when the
server-layer path information is required to be returned to the PCC.
[RFC5623] describes models for inter-layer path computation in more
detail. It introduces the Virtual Network Topology Manager (VNTM), a
functional element that controls the VNT, and sets out three distinct
models (and a fourth hybrid model) for inter-layer control involving
a PCE, triggered signaling, and a Network Management System (NMS).
3. Protocol Extensions
This section describes PCEP extensions for inter-layer path
computation. Four new objects are defined: the INTER-LAYER object,
the SWITCH-LAYER object, the REQ-ADAP-CAP object, and the SERVER-
INDICATION object. Also, two new metric types are defined.
3.1. INTER-LAYER Object
The INTER-LAYER object is optional and can be used in Path
Computation Request (PCReq) and Path Computation Reply (PCRep)
messages, and also in Path Computation State Report (PCRpt), Path
Computation Update Request (PCUpd), and Path Computation LSP Initiate
Request (PCInitiate) messages.
In a PCReq message, the INTER-LAYER object indicates whether inter-
layer path computation is allowed, the type of path to be computed,
and whether triggered signaling (hierarchical LSPs per [RFC4206] or
stitched LSPs per [RFC5150] depending on physical network
technologies) is allowed. When the INTER-LAYER object is absent from
a PCReq message, the receiving PCE MUST process as though inter-layer
path computation had been explicitly disallowed (I-bit set to zero --
see below).
In a PCRep message, the INTER-LAYER object indicates whether
inter-layer path computation has been performed, the type of path
that has been computed, and whether triggered signaling is used.
When a PCReq message includes more than one request, an INTER-LAYER
object is used per request. When a PCRep message includes more than
one path per request that is responded to, an INTER-LAYER object is
used per path.
The applicability of this object to PCRpt and PCUpd messages is the
same as for other objects on those messages as described in
[RFC8231]. The applicability of this object to the PCInitiate
message is the same as for other objects on those messages as
described in [RFC8281]. These messages use the <attribute-list> as
defined in [RFC5440] and extended by further PCEP extensions, so the
<attribute-list> as extended in Section 5 can be used to include the
INTER-LAYER object on these messages.
INTER-LAYER Object-Class is 36.
Inter-layer Object-Type is 1.
The format of the INTER-LAYER object body is shown in Figure 1.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |T|M|I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: The INTER-LAYER Object
I flag (1 bit): The I flag is used by a PCC in a PCReq message to
indicate to a PCE whether an inter-layer path is allowed. When the I
flag is set (one), the PCE MAY perform inter-layer path computation
and return an inter-layer path. When the flag is clear (zero), the
path that is returned MUST NOT be an inter-layer path.
The I flag is used by a PCE in a PCRep message to indicate to a PCC
whether the path returned is an inter-layer path. When the I flag is
set (one), the path is an inter-layer path. When it is clear (zero),
the path is contained within a single layer because either inter-
layer path computation was not performed or a mono-layer path
(without any virtual TE link and without any loose hop that spans the
lower-layer network) was found notwithstanding the use of inter-layer
path computation.
M flag (1 bit): The M flag is used by a PCC in a PCReq message to
indicate to a PCE whether a mono-layer path or multi-layer path is
requested. When the M flag is set (one), a multi-layer path is
requested. When it is clear (zero), a mono-layer path is requested.
The M flag is used by a PCE in a PCRep message to indicate to a PCC
whether a mono-layer path or multi-layer path is returned. When the
M flag is set (one), a multi-layer path is returned. When the M flag
is clear (zero), a mono-layer path is returned.
If the I flag is clear (zero), the M flag has no meaning and MUST be
ignored.
[RFC6457] describes two sub-options for mono-layer path.
o A mono-layer path that is specified by strict hops. The path may
include virtual TE links.
o A mono-layer path that includes loose hops that span the lower-
layer network.
The choice of this sub-option can be specified by the use of the O
flag in the Request Parameter (RP) object specified in [RFC5440].
T flag (1 bit): The T flag is used by a PCC in a PCReq message to
indicate to a PCE whether triggered signaling is allowed. When the T
flag is set (one), triggered signaling is allowed. When it is clear
(zero), triggered signaling is not allowed.
The T flag is used by a PCE in a PCRep message to indicate to a PCC
whether triggered signaling is required to support the returned path.
When the T flag is set (one), triggered signaling is required. When
it is clear (zero), triggered signaling is not required.
Note that triggered signaling is used to support hierarchical
[RFC4206] or stitched [RFC5150] LSPs according to the physical
attributes of the network layers.
If the I flag is clear (zero), the T flag has no meaning and MUST be
ignored.
Note that the I and M flags differ in the following ways. When the I
flag is clear (zero), virtual TE links must not be used in path
computation. In addition, loose hops that span the lower-layer
network must not be specified. Only regular TE links from the same
layer may be used.
o When the I flag is set (one), the M flag is clear (zero), and the
T flag is set (one), virtual TE links are allowed in path
computation. In addition, when the O flag of the RP object is
set, loose hops that span the lower-layer network may be
specified. This will initiate lower-layer LSP setup; thus, the
inter-layer path is set up even though the path computation result
from a PCE to a PCC includes hops from the same layer only.
o However, when the I flag is set (one), the M flag is clear (zero),
and the T flag is clear (zero), since triggered signaling is not
allowed, virtual TE links that have not been pre-signaled MUST NOT
be used in path computation. In addition, loose hops that span
the lower-layer network MUST NOT be specified. Therefore, this is
equivalent to the I flag being clear (zero).
Reserved bits of the INTER-LAYER object sent between a PCC and PCE in
the same domain MUST be transmitted as zero and SHOULD be ignored on
receipt. A PCE that forwards a path computation request to other
PCEs MUST preserve the settings of reserved bits in the PCReq
messages it sends and in the PCRep messages it forwards to PCCs.
Note that the flags in the PCRpt message indicate the state of an
LSP, whereas the flags in the PCUpd and the PCInitiate messages
indicate the intended/desired state as determined by the PCE.
3.2. SWITCH-LAYER Object
The SWITCH-LAYER object is optional on a PCReq message and specifies
switching layers in which a path MUST, or MUST NOT, be established.
A switching layer is expressed as a switching type and encoding type.
When a SWITCH-LAYER object is used on a PCReq, it is interpreted in
the context of the INTER-LAYER object on the same message. If no
INTER-LAYER object is present, the PCE MUST process the SWITCH-LAYER
object as though inter-layer path computation had been explicitly
disallowed. In such a case, the SWITCH-LAYER object MUST NOT have
more than one LSP Encoding Type and Switching Type with the I flag
set.
The SWITCH-LAYER object is optional on a PCRep message, where it is
used with the NO-PATH object in the case of unsuccessful path
computation to indicate the set of constraints that could not be
satisfied.
The SWITCH-LAYER object may be used on a PCRpt message consistent
with how properties of existing LSPs are reported on that message
[RFC8231]. The PCRpt message uses the <attribute-list> as defined in
[RFC5440] and extended by further PCEP extensions. This message can
use the <attribute-list> as extended in Section 5 to carry the
SWITCH-LAYER object. The SWITCH-LAYER object is not used on a PCUpd
or PCInitiate messages.
SWITCH-LAYER Object-Class is 37.
Switch-layer Object-Type is 1.
The format of the SWITCH-LAYER object body is shown in Figure 2.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSP Enc. Type |Switching Type | Reserved |I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| . |
// . //
| . |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSP Enc. Type |Switching Type | Reserved |I|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: The SWITCH-LAYER Object
Each row indicates a switching type and encoding type that must or
must not be used for a specified layer(s) in the computed path.
The format is based on [RFC3471] and has equivalent semantics.
LSP Encoding Type (8 bits): see [RFC3471] for a description of
parameters.
Switching Type (8 bits): see [RFC3471] for a description of
parameters.
I flag (1 bit): the I flag indicates whether a layer with the
specified switching type and encoding type must or must not be used
by the computed path. When the I flag is set (one), the computed
path MUST traverse a layer with the specified switching type and
encoding type. When the I flag is clear (zero), the computed path
MUST NOT enter or traverse any layer with the specified switching
type and encoding type.
When a combination of switching type and encoding type is not
included in the SWITCH-LAYER object, the computed path MAY traverse a
layer with that combination of switching type and encoding type.
A PCC may want to specify only a Switching Type and not an LSP
Encoding Type. In this case, the LSP Encoding Type is set to zero.
3.3. REQ-ADAP-CAP Object
The REQ-ADAP-CAP object is optional and is used to specify a
requested adaptation capability for both ends of the lower-layer LSP.
The REQ-ADAP-CAP object is used in a PCReq message for inter-PCE
communication, where the PCE that is responsible for computing
higher-layer paths acts as a PCC to request a path computation from a
PCE that is responsible for computing lower-layer paths.
The REQ-ADAP-CAP object is used in a PCRep message in case of
unsuccessful path computation (in this case, the PCRep message also
contains a NO-PATH object, and the REQ-ADAP-CAP object is used to
indicate the set of constraints that could not be satisfied).
The REQ-ADAP-CAP object MAY be used in a PCReq message in a mono-
layer network to specify a requested adaptation capability for both
ends of the LSP. In this case, it MAY be carried without an INTER-
LAYER object.
The applicability of this object to PCRpt and PCUpd messages is the
same as for other objects on those messages as described in
[RFC8231]. The applicability of this object to the PCInitiate
message is the same as for other objects on those messages as
described in [RFC8281]. These messages use the <attribute-list> as
defined in [RFC5440] and extended by further PCEP extensions. These
messages can use the <attribute-list> as extended in Section 5 to
carry the REQ-ADAP-CAP object.
REQ-ADAP-CAP Object-Class is 38.
Req-Adap-Cap Object-Type is 1.
The format of the REQ-ADAP-CAP object body is shown in Figure 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Switching Cap | Encoding | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: The REQ-ADAP-CAP Object
The format is based on [RFC6001] and has equivalent semantics as the
Interface Adjustment Capability Descriptor (IACD) Upper Switching
Capability and Lower Switching Capability fields.
Switching Capability (8 bits): see [RFC4203] for a description of
parameters.
Encoding (8 bits): see [RFC3471] for a description of parameters.
A PCC may want to specify a Switching Capability, but not an
Encoding. In this case, the Encoding MUST be set to zero.
3.4. New Metric Types
This document defines two new metric types for use in the PCEP METRIC
object.
IANA has assigned the value 18 to indicate the metric "Number of
adaptations on a path".
IANA has assigned the value 19 to indicate the metric "Number of
layers on a path".
See Sections 4.1, 4.2, and 4.3 for a description of how these metrics
are applied.
3.5. SERVER-INDICATION Object
The SERVER-INDICATION is optional and is used to indicate that path
information included in the Explicit Route Object (ERO) is server-
layer information, and it specifies the characteristics of the server
layer, e.g., the switching capability and encoding of the server-
layer path.
The format of the SERVER-INDICATION object body is shown in Figure 4.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Switching Cap | Encoding | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Optional TLVs ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: The SERVER-INDICATION Object
SERVER-INDICATION Object-Class is 39.
Server-indication Object-Type is 1.
Switching Capability (8 bits): see [RFC4203] for a description of
parameters.
Encoding (8 bits): see [RFC3471] for a description of parameters.
Optional TLVs: Optional TLVs MAY be included within the object to
specify more specific server-layer path information (e.g., traffic
parameters). Such TLVs will be defined by other documents.
4. Procedures
4.1. Path Computation Request
A PCC requests or allows inter-layer path computation in a PCReq
message by including the INTER-LAYER object with the I flag set. The
INTER-LAYER object indicates whether inter-layer path computation is
allowed, which path type is requested, and whether triggered
signaling is allowed.
The SWITCH-LAYER object, which MUST NOT be present unless the INTER-
LAYER object is also present, is optionally used to specify the
switching types and encoding types that define layers that must, or
must not, be used in the computed path. When the SWITCH-LAYER object
is used with the INTER-LAYER object I flag clear (zero), inter-layer
path computation is not allowed, but constraints specified in the
SWITCH-LAYER object apply. Example usage includes path computation
in a single-layer GMPLS network.
The REQ-ADAP-CAP object is optionally used to specify the interface
switching capability of both ends of the lower-layer LSP. The
REQ-ADAP-CAP object is used in inter-PCE communication, where the PCE
that is responsible for computing higher-layer paths makes a request
as a PCC to a PCE that is responsible for computing lower-layer
paths. Alternatively, the REQ-ADAP-CAP object may be used in the
NMS-VNTM model, where the VNTM makes a request as a PCC to a PCE that
is responsible for computing lower-layer paths.
The METRIC object is optionally used to specify metric types to be
optimized or bounded. When metric type 18 is used, it indicates that
path computation MUST minimize or bound the number of adaptations on
a path. When metric type 19 is used, it indicates that path
computation MUST minimize or bound the number of layers to be
involved on a path.
Furthermore, in order to allow different Objective Functions (OFs) to
be applied within different network layers, multiple OF objects
[RFC5541] MAY be present. In such a case, the first OF object
specifies an objective function for the higher-layer network, and
subsequent OF objects specify objection functions of the subsequent
lower-layer networks.
4.2. Path Computation Reply
In the case of successful path computation, the requested PCE replies
to the requesting PCC for the inter-layer path computation result in
a PCRep message that MAY include the INTER-LAYER object. When the
INTER-LAYER object is included in a PCRep message, the I, M, and T
flags indicate semantics of the path as described in Section 3.1.
Furthermore, when the C flag of the METRIC object in a PCReq is set,
the METRIC object MUST be included in the PCRep to provide the
computed metric value, as specified in [RFC5440].
The PCE MAY specify the server-layer path information in the ERO. In
this case, the requested PCE replies with a PCRep message that
includes at least two sets of ERO information in the path-list: one
is for the client-layer path information, and another one is the
server-layer path information. When SERVER-INDICATION is included in
a PCRep message, it indicates that the path in the ERO is the server-
layer path information. The server-layer path specified in the ERO
could be loose or strict. On receiving the replied path, the PCC
(e.g., NMS and ingress node) can trigger the signaling to set up the
LSPs according to the computed paths.
In the case of unsuccessful path computation, the PCRep message also
contains a NO-PATH object, and the SWITCH-TYPE object and/or
REQ-ADAP-CAP MAY be used to indicate the set of constraints that
could not be satisfied.
4.3. Stateful PCE and PCE Initiated LSPs
Processing for stateful PCEs is described in [RFC8231]. That
document defines the PCRpt message to allow a PCC to report to a PCE
that an LSP already exists in the network and to delegate control of
that LSP to the PCE.
When the LSP is a multi-layer LSP (or a mono-layer LSP for which
specific adaptations exist), the message objects defined in this
document are used on the PCRpt to describe an LSP that is delegated
to the PCE so that the PCE may process the LSP.
Furthermore, [RFC8231] defines the PCUpd message to allow a PCE to
modify an LSP that has been delegated to it. When the LSP is a
multi-layer LSP (or a mono-layer LSP for which specific adaptations
exist), the message objects defined in this document are used on the
PCUpd to describe the new attributes of the modified LSP.
Processing for PCE-initiated LSPs is described in [RFC8281]. That
document defines the PCInitiate message that is used by a PCE to
request a PCC to set up a new LSP. When the LSP is a multi-layer LSP
(or a mono-layer LSP for which specific adaptations exist), the
message objects defined in this document are used on the PCInitiate
to describe the attributes of the new LSP.
The new metric types defined in this document can also be used with
the stateful PCE extensions. The format of PCEP messages described
in [RFC8231] and [RFC8281] uses <attribute-list> (which is extended
in Section 5 for the purpose of including the new metrics).
The stateful PCE implementation MAY use the extension of PCReq and
PCRep messages as defined in Section 5 to also enable the use of
inter-layer parameters during passive stateful operations, using the
LSP object.
5. Updated Format of PCEP Messages
Message formats in this section, as those in [RFC5440], are presented
using Routing Backus-Naur Format (RBNF) as specified in [RFC5511].
The format of the PCReq message is updated as shown in Figure 5.
<PCReq Message>::= <Common Header>
[<svec-list>]
<request-list>
where:
<svec-list>::=<SVEC>
[<svec-list>]
<request-list>::=<request>[<request-list>]
<request>::= <RP>
<END-POINTS>
[<LSP>]
[<LSPA>]
[<BANDWIDTH>]
[<metric-list>]
[<of-list>]
[<RRO>[<BANDWIDTH>]]
[<IRO>]
[<LOAD-BALANCING>]
[<INTER-LAYER> [<SWITCH-LAYER>]]
[<REQ-ADAP-CAP>]
where:
<of-list>::=<OF>[<of-list>]
<metric-list>::=<METRIC>[<metric-list>]
Figure 5: The Updated PCReq Message
The format of the PCRep message is updated as shown in Figure 6.
<PCRep Message> ::= <Common Header>
<response-list>
where:
<response-list>::=<response>[<response-list>]
<response>::=<RP>
[<LSP>]
[<NO-PATH>]
[<attribute-list>]
[<path-list>]
<path-list>::=<path>[<path-list>]
<path>::= <ERO><attribute-list>
where:
<attribute-list>::=[<of-list>]
[<LSPA>]
[<BANDWIDTH>]
[<metric-list>]
[<IRO>]
[<INTER-LAYER>]
[<SWITCH-LAYER>]
[<REQ-ADAP-CAP>]
[<SERVER-INDICATION>]
<of-list>::=<OF>[<of-list>]
<metric-list>::=<METRIC>[<metric-list>]
Figure 6: The Updated PCRep Message
6. Manageability Considerations
Implementations of this specification should provide a mechanism to
configure any optional features (such as whether a PCE supports
inter-layer computation and which metrics are supported).
A Management Information Base (MIB) module for modeling PCEP is
described in [RFC7420]. Systems that already use a MIB module to
manage their PCEP implementations might want to augment that module
to provide controls and indicators for support of inter-layer
features defined in this document and to add counters of messages
sent and received containing the objects defined here.
However, the preferred mechanism for configuration is through a YANG
model. Work has started on a YANG model for PCEP [PCEP-YANG], and
this could be enhanced as described for the MIB module, above.
Additional policy configuration might be provided to allow a PCE to
discriminate between the computation services offered to different
PCCs.
A set of monitoring tools for the PCE-based architecture are provided
in [RFC5886]. Systems implementing this specification and PCE
monitoring should consider defining extensions to the mechanisms
defined in [RFC5886] to help monitor inter-layer path computation
requests.
7. IANA Considerations
IANA maintains a registry called "Path Computation Element Protocol
(PCEP) Numbers". Per this document, IANA has carried out actions on
subregistries of that registry.
7.1. New PCEP Objects
IANA has made the following assignments in the "PCEP Objects"
subregistry.
Object-Class Value | Name | Object-Type | Reference
-------------------+-------+-----------------------+-----------
INTER-LAYER | 36 | 0: Reserved | RFC 8282
| | 1: Inter-layer |
| | 2-15: Unassigned |
| | |
SWITCH-LAYER | 37 | 0: Reserved | RFC 8282
| | 1: Switch-layer |
| | 2-15: Unassigned |
| | |
REQ-ADAP-CAP | 38 | 0: Reserved | RFC 8282
| | 1: Req-Adap-Cap |
| | 2-15: Unassigned |
| | |
SERVER-INDICATION | 39 | 0: Reserved | RFC 8282
| | 1: Server-indication |
Figure 7: New PCEP Objects
7.2. New Registry for INTER-LAYER Object Flags
IANA has created a new subregistry to manage the Flag field of the
INTER-LAYER object called the "Inter-Layer Object Path Property Bits"
registry.
New bit numbers may be allocated only by "IETF Review" [RFC8126].
Each bit should be tracked with the following qualities:
o Bit number (counting from bit 0 as the most significant bit up to
a maximum of bit 31)
o Capability Description
o Defining RFC
IANA has populated the registry as follows:
Bit | Flag | Multi-Layer Path Property | Reference
----+------+-------------------------------+------------
0-28| | Unassigned |
29 | T | Triggered Signaling Allowed | RFC 8282
30 | M | Multi-Layer Requested | RFC 8282
31 | I | Inter-Layer Allowed | RFC 8282
Figure 8: New Registry for INTER-LAYER Object Flags
7.3. New Metric Types
Two new metric types are defined in this document for the METRIC
object (specified in [RFC5440]). IANA has made the following
allocations from the "Metric Object T Field" registry.
Value | Description | Reference
------+---------------------------------+------------
18 | Number of adaptations on a path | RFC 8282
19 | Number of layers on a path | RFC 8282
Figure 9: New Metric Types
IANA has updated the registry to show the registration procedure of
"IETF Review" as already documented in [RFC5440].
8. Security Considerations
Inter-layer traffic engineering with PCE may raise new security
issues when PCE-PCE communication is done between different layer
networks for inter-layer path computation. Security issues may also
exist when a single PCE is granted full visibility of TE information
that applies to multiple layers.
The Path-Key-based mechanism defined in [RFC5520] MAY be applied to
address the topology confidentiality between different layers.
9. References
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Functional Description",
RFC 3471, DOI 10.17487/RFC3471, January 2003,
<https://www.rfc-editor.org/info/rfc3471>.
[RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Architecture", RFC 3945,
DOI 10.17487/RFC3945, October 2004,
<https://www.rfc-editor.org/info/rfc3945>.
[RFC4203] Kompella, K., Ed. and Y. Rekhter, Ed., "OSPF Extensions in
Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 4203, DOI 10.17487/RFC4203, October 2005,
<https://www.rfc-editor.org/info/rfc4203>.
[RFC4206] Kompella, K. and Y. Rekhter, "Label Switched Paths (LSP)
Hierarchy with Generalized Multi-Protocol Label Switching
(GMPLS) Traffic Engineering (TE)", RFC 4206,
DOI 10.17487/RFC4206, October 2005,
<https://www.rfc-editor.org/info/rfc4206>.
[RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
Element (PCE) Communication Protocol (PCEP)", RFC 5440,
DOI 10.17487/RFC5440, March 2009,
<https://www.rfc-editor.org/info/rfc5440>.
[RFC5520] Bradford, R., Ed., Vasseur, JP., and A. Farrel,
"Preserving Topology Confidentiality in Inter-Domain Path
Computation Using a Path-Key-Based Mechanism", RFC 5520,
DOI 10.17487/RFC5520, April 2009,
<https://www.rfc-editor.org/info/rfc5520>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
Computation Element Communication Protocol (PCEP)
Extensions for Stateful PCE", RFC 8231,
DOI 10.17487/RFC8231, September 2017,
<https://www.rfc-editor.org/info/rfc8231>.
[RFC8281] Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
Computation Element Communication Protocol (PCEP)
Extensions for PCE-initiated LSP Setup in a Stateful PCE
Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
<http://www.rfc-editor.org/info/rfc20>.
9.2. Informative References
[PCEP-YANG]
Dhody, D., Hardwick, J., Beeram, V., and j.
jefftant@gmail.com, "A YANG Data Model for Path
Computation Element Communications Protocol (PCEP)", Work
in Progress, draft-ietf-pce-pcep-yang-05, June 2017.
[RFC4655] Farrel, A., Vasseur, J., and J. Ash, "A Path Computation
Element (PCE)-Based Architecture", RFC 4655,
DOI 10.17487/RFC4655, August 2006,
<https://www.rfc-editor.org/info/rfc4655>.
[RFC5150] Ayyangar, A., Kompella, K., Vasseur, JP., and A. Farrel,
"Label Switched Path Stitching with Generalized
Multiprotocol Label Switching Traffic Engineering (GMPLS
TE)", RFC 5150, DOI 10.17487/RFC5150, February 2008,
<https://www.rfc-editor.org/info/rfc5150>.
[RFC5212] Shiomoto, K., Papadimitriou, D., Le Roux, JL., Vigoureux,
M., and D. Brungard, "Requirements for GMPLS-Based Multi-
Region and Multi-Layer Networks (MRN/MLN)", RFC 5212,
DOI 10.17487/RFC5212, July 2008,
<https://www.rfc-editor.org/info/rfc5212>.
[RFC5339] Le Roux, JL., Ed. and D. Papadimitriou, Ed., "Evaluation
of Existing GMPLS Protocols against Multi-Layer and Multi-
Region Networks (MLN/MRN)", RFC 5339,
DOI 10.17487/RFC5339, September 2008,
<https://www.rfc-editor.org/info/rfc5339>.
[RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax
Used to Form Encoding Rules in Various Routing Protocol
Specifications", RFC 5511, DOI 10.17487/RFC5511, April
2009, <https://www.rfc-editor.org/info/rfc5511>.
[RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of
Objective Functions in the Path Computation Element
Communication Protocol (PCEP)", RFC 5541,
DOI 10.17487/RFC5541, June 2009,
<https://www.rfc-editor.org/info/rfc5541>.
[RFC5623] Oki, E., Takeda, T., Le Roux, JL., and A. Farrel,
"Framework for PCE-Based Inter-Layer MPLS and GMPLS
Traffic Engineering", RFC 5623, DOI 10.17487/RFC5623,
September 2009, <https://www.rfc-editor.org/info/rfc5623>.
[RFC5886] Vasseur, JP., Ed., Le Roux, JL., and Y. Ikejiri, "A Set of
Monitoring Tools for Path Computation Element (PCE)-Based
Architecture", RFC 5886, DOI 10.17487/RFC5886, June 2010,
<https://www.rfc-editor.org/info/rfc5886>.
[RFC6001] Papadimitriou, D., Vigoureux, M., Shiomoto, K., Brungard,
D., and JL. Le Roux, "Generalized MPLS (GMPLS) Protocol
Extensions for Multi-Layer and Multi-Region Networks (MLN/
MRN)", RFC 6001, DOI 10.17487/RFC6001, October 2010,
<https://www.rfc-editor.org/info/rfc6001>.
[RFC6457] Takeda, T., Ed. and A. Farrel, "PCC-PCE Communication and
PCE Discovery Requirements for Inter-Layer Traffic
Engineering", RFC 6457, DOI 10.17487/RFC6457, December
2011, <https://www.rfc-editor.org/info/rfc6457>.
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J.
Hardwick, "Path Computation Element Communication Protocol
(PCEP) Management Information Base (MIB) Module",
RFC 7420, DOI 10.17487/RFC7420, December 2014,
<https://www.rfc-editor.org/info/rfc7420>.
[RFC7926] Farrel, A., Ed., Drake, J., Bitar, N., Swallow, G.,
Ceccarelli, D., and X. Zhang, "Problem Statement and
Architecture for Information Exchange between
Interconnected Traffic-Engineered Networks", BCP 206,
RFC 7926, DOI 10.17487/RFC7926, July 2016,
<https://www.rfc-editor.org/info/rfc7926>.
Acknowledgments
The authors would like to thank Cyril Margaria for his valuable
comments. Helpful comments and suggested text were offered by Dhruv
Dhody, who also fixed the RBNF. Jonathan Hardwick provided a helpful
review as document shepherd.
Contributors
Jean-Louis Le Roux
France Telecom R&D
Av Pierre Marzin
Lannion 22300
France
Email: jeanlouis.leroux@orange.com
Authors' Addresses
Eiji Oki
Kyoto University
Yoshida-honmachi, Sakyo-ku, Kyoto
Japan
Email: oki@i.kyoto-u.ac.jp
Tomonori Takeda
NTT
3-9-11 Midori-cho
Musashino-shi, Tokyo
Japan
Email: tomonori.takeda@ntt.com
Adrian Farrel
Juniper Networks
Email: afarrel@juniper.net
Fatai Zhang
Huawei Technologies Co., Ltd.
F3-5-B R&D Center, Huawei Base
Bantian, Longgang District, Shenzhen 518129
China
Phone: +86-755-28972912
Email: zhangfatai@huawei.com
AI ELI5
On this page
§1Introduction
A Path Computation Element (PCE) computes a network path from a network graph and constraints. A Path Computation Client (PCC) asks it for paths using the PCE Communication Protocol, PCEP. A PCE can also initiate or modify services by supplying new paths.
A network may have several layers, for example packet switch capable (PSC), time division multiplex (TDM) and lambda switch capable (LSC) layers. Label Switched Paths (LSPs) in lower layers carry higher-layer LSPs. The topology formed by lower-layer LSPs, advertised as traffic engineering (TE) links in the higher layer, is called a Virtual Network Topology (VNT).
The RFC argues that resources should be optimized across all layers rather than layer by layer. That is inter-layer traffic engineering. This document gives PCEP the extensions needed for it, satisfying the requirements in RFC 6457.
Some networks are stacked like floors in a building. This RFC teaches the route planner to plan a trip that uses more than one floor.
§2PCE-Based Inter-Layer Path Computation
A router in the higher layer might not have information about the lower-layer topology, particularly in an overlay or augmented model, so it may not be able to compute an end-to-end path across layers. Using PCEs solves this in one of two ways.
- A single PCE holds topology information for several layers and computes the whole path.
- Several cooperating PCEs each know one or more layers, but not all, and collaborate on the end-to-end path.
A hybrid node may advertise a single TE link with multiple switching capabilities. Such links normally sit at a layer or region border, so a PCE must be able to give server-layer path information when the PCC needs it. RFC 5623 describes the models in more detail, including the Virtual Network Topology Manager (VNTM).
Either one planner knows every floor, or several planners each know a few floors and talk to each other to plan the whole trip.
§3.1The INTER-LAYER Object
The optional INTER-LAYER object (Object-Class 36, Object-Type 1) can appear in PCReq and PCRep messages, and also in PCRpt, PCUpd and PCInitiate messages. Its body is 32 bits: reserved bits and three flags. In a request, if the object is absent, the PCE MUST act as though inter-layer computation were disallowed (I flag zero).
- I flag: in a request, whether an inter-layer path is allowed. In a reply, whether the returned path is an inter-layer path. If I is clear, a returned path MUST NOT be an inter-layer path.
- M flag: in a request, whether a multi-layer path (set) or a mono-layer path (clear) is wanted. In a reply, which kind was returned. It is ignored when I is clear.
- T flag: in a request, whether triggered signaling is allowed. In a reply, whether it is required to support the returned path. It is ignored when I is clear.
If I is set, M is clear and T is clear, virtual TE links that have not been pre-signaled MUST NOT be used, and loose hops spanning the lower layer MUST NOT be specified, which is equivalent to I being clear. Reserved bits MUST be sent as zero and SHOULD be ignored on receipt.
The object is a little card with three yes/no boxes: may we use more than one floor, do we want a path that really spans floors, and may new connections be built on the fly.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
RESERVED | Reserved | 29 bits | Sent as zero and ignored on receipt. | |
T | T | 1 bits | Triggered signaling allowed (request) or required (reply). | |
M | M | 1 bits | Multi-layer path requested or returned. | |
I | I | 1 bits | Inter-layer path allowed or returned. |
§3.2The Other Objects and Metrics
Three more optional objects and two metric types complete the extensions.
The SWITCH-LAYER object (class 37) lists switching types and encoding types, each with an I flag. When the flag is set, the computed path MUST traverse a layer with that combination. When it is clear, the path MUST NOT enter or traverse such a layer. Combinations not listed MAY be traversed. It is only valid alongside an INTER-LAYER object; without one, the PCE treats inter-layer computation as disallowed.
The REQ-ADAP-CAP object (class 38) asks for an adaptation capability at both ends of a lower-layer LSP, using a Switching Capability and an Encoding field. It is used when the PCE for higher-layer paths acts as a PCC toward a PCE for lower-layer paths.
The SERVER-INDICATION object (class 39) in a reply marks the path in the Explicit Route Object (ERO) as server-layer information and describes that layer's switching capability and encoding, with optional TLVs.
The new metric types are 18, "Number of adaptations on a path", and 19, "Number of layers on a path". A request using either MUST have the PCE minimize or bound that quantity.
Extra cards let you say which kinds of floors you must or must not use, what kind of connector you need between floors, and whether the route shown is for the lower floor. Two new scores count how many connectors and floors the trip uses.
- 36INTER-LAYER — Whether inter-layer paths are allowed or returned.
- 37SWITCH-LAYER — Layers a path must or must not traverse.
- 38REQ-ADAP-CAP — Requested adaptation capability at both ends of the lower-layer LSP.
- 39SERVER-INDICATION — Marks ERO path data as server-layer information.
- 18Metric: adaptations — Number of adaptations on a path.
- 19Metric: layers — Number of layers on a path.
§4Request, Reply and Stateful Procedures
A PCC requests or allows inter-layer computation by including the INTER-LAYER object with the I flag set in a PCReq. Multiple Objective Function (OF) objects MAY be present: the first applies to the higher layer and later ones to successive lower layers. When a PCReq or PCRep carries more than one request or path, an INTER-LAYER object is used per request or per path.
On success, the PCRep MAY include the INTER-LAYER object, and the I, M and T flags describe the path returned. The PCE MAY give server-layer path information in the ERO, in which case the reply carries at least two sets of ERO information, one for the client layer and one for the server layer, marked by SERVER-INDICATION. The PCC can then trigger signaling to set up the LSPs. On failure, the PCRep contains a NO-PATH object, and SWITCH-LAYER and/or REQ-ADAP-CAP MAY indicate which constraints could not be met.
For stateful PCEs (RFC 8231) and PCE-initiated LSPs (RFC 8281), the same objects and metrics are used on PCRpt, PCUpd and PCInitiate messages. Section 5 of the RFC updates the PCReq and PCRep message formats, in Routing Backus-Naur Form, to include the new objects.
You ask for a trip and say whether you can use several floors. The planner answers with the route and says what kind of trip it is, or tells you which of your rules it could not meet.
§7IANA Assignments
IANA assigned Object-Class values 36 (INTER-LAYER), 37 (SWITCH-LAYER), 38 (REQ-ADAP-CAP) and 39 (SERVER-INDICATION) in the PCEP Objects registry, and metric values 18 and 19 in the Metric Object T Field registry.
IANA also created the "Inter-Layer Object Path Property Bits" registry for the INTER-LAYER flags. New bits need "IETF Review". Bit 29 is T, bit 30 is M and bit 31 is I; bits 0 to 28 are unassigned.
The official list of numbers got new entries for the new cards and scores, and a new list was started for the three yes/no boxes.
§8Security Considerations
Inter-layer traffic engineering with a PCE may raise new security issues when PCE-to-PCE communication crosses layer networks. Issues may also arise when a single PCE has full visibility of TE information for several layers.
The Path-Key-based mechanism of RFC 5520 MAY be applied to protect topology confidentiality between layers.
Sharing maps of every floor with a planner can reveal secrets, so the RFC points to a way to hide the details of one floor from another.