PCEP Procedures and Protocol Extensions for
Using PCE as a Central Controller (PCECC) of LSPsHuawei Technologies125 Nagog Technology ParkActonMA01719USAquintin.zhao@huawei.comHuawei Technologies2330 Central ExpresswaySanta ClaraCA95050USAkatherine.zhao@huawei.comHuawei TechnologiesHuawei Bld., No.156 Beiqing Rd.Beijing 100095Chinalizhenbin@huawei.comHuawei
TechnologiesDivyashree Techno Park, WhitefieldBangaloreKarnataka560037Indiadhruv.ietf@gmail.comHuawei
TechnologiesDivyashree Techno Park, WhitefieldBangaloreKarnataka560037Indiaudayasree.palle@huawei.comTelus Ltd.TorontoCanadaboris.zhang@telus.com
Routing
PCE Working GroupIn certain networks deployment scenarios, service providers would
like to keep all the existing MPLS functionalities in both MPLS and
GMPLS while removing the complexity of existing signaling protocols
such as LDP and RSVP-TE. In
, we
propose to use
the PCE as a central controller (PCECC) so that LSP can be calculated/
signaled/initiated and label forwarding entries are downloaded
through a centralized PCE server to each network devices along the
LSP path while leveraging the existing PCE technologies as much as
possible.This draft specify the procedures and PCEP protocol extensions for
using the PCE as the central controller and user cases where LSPs are
calculated/setup/initiated and label forwarding entries are
downloaded through extending the existing PCE architectures and PCEP.
This document also discuss the role of PCECC in Segment Routing (SR).In certain network deployment scenarios, service providers would like
to have the ability to dynamically adapt to a wide range of
customer's requests for the sake of flexible network service
delivery, Software Defined Networks(SDN) has provides additional
flexibility in how the network is operated compared to the
traditional network.The existing networking ecosystem has become awfully complex and
highly demanding in terms of robustness, performance, scalability,
flexibility, agility, etc. By migrating to the SDN enabled network
from the existing network, service providers and network operators
must have a solution which they can evolve easily from the existing
network into the SDN enabled network while keeping the network
services remain scalable, guarantee robustness and availability etc.
Taking the smooth transition between traditional network and the new
SDN enabled network into account, especially from a cost impact
assessment perspective, using the existing PCE components from the
current network to function as the central controller of the SDN
network is one choice, which not only achieves the goal of having a
centralized controller, but also leverages the existing PCE network
components.The Path Computation Element communication Protocol (PCEP) provides
mechanisms for Path Computation Elements (PCEs) to perform route
computations in response to Path Computation Clients (PCCs) requests.
PCEP Extensions for PCE-initiated LSP Setup in a Stateful PCE Model
describes a set of
extensions to PCEP to enable active control of MPLS-TE and GMPLS
tunnels. describes the setup and
teardown of PCE-initiated LSPs under the active stateful PCE model,
without the need for local configuration on the PCC, thus allowing
for a dynamic MPLS network that is centrally controlled and deployed.
complements
by addressing the
requirements for remote-initiated GMPLS LSPs.Segment Routing (SR) technology leverages the source routing and
tunneling paradigms. A source node can choose a path without relying
on hop-by-hop signaling protocols such as LDP or RSVP-TE. Each path
is specified as a set of "segments" advertised by link-state routing
protocols (IS-IS or OSPF).
provides an introduction to SR technology. The corresponding IS-IS
and OSPF extensions are specified in
and
,
respectively.A Segment Routed path (SR path) can be derived from an IGP Shortest
Path Tree (SPT). Segment Routed Traffic Engineering paths (SR-TE
paths) may not follow IGP SPT. Such paths may be chosen by a
suitable network planning tool and provisioned on the source node of
the SR-TE path.It is possible to use a stateful PCE for computing one or more SR-TE
paths taking into account various constraints and objective
functions. Once a path is chosen, the stateful PCE can instantiate
an SR-TE path on a PCC using PCEP extensions specified in
using the SR specific PCEP extensions
described in
.PCECC may further use PCEP protocol for SR label distribution
instead of IGP extensions with some benefits.Current MPLS label has local meaning. That is, MPLS label is always
allocated by the downstream node to the upstream node. Then the MPLS
label is only identified by the neighboring upstream node and
downstream node. The label allocation is done locally and signaled
through the LDP/RSVP-TE/BGP protocol. To ease the label allocation
and signaling mechanism, PCE can be conveniently used as a central
controller with Label download capability. Further PCE can also be
used to manage the label range and SRGB etc.The PCECC solution introduced in
allow for a
dynamic MPLS network that is eventually controlled and deployed
without the deployment of RSVP-TE protocol or extended IGP protocol
with node/adjacency segment identifiers signaling capability while
providing all the key MPLS functionalities needed by the service
providers.This draft specify the procedures and PCEP protocol extensions for
using the PCE as the central controller and user cases where LSPs are
calculated/setup/initiated/downloaded through extending the existing
PCE architectures and PCEP.The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as
described in
.The following terminology is used in this document.Interior Gateway Protocol. Either of the
two routing protocols, Open Shortest Path First (OSPF) or
Intermediate System to Intermediate System (IS-IS).Path Computation Client: any client application
requesting a path computation to be performed by a Path
Computation Element.Path Computation Element. An entity (component,
application, or network node) that is capable of computing a
network path or route based on a network graph and applying
computational constraints.Traffic Engineering.The following PCECC modes are supported -
Basic PCECC.PCECC SR.
PCECC SR-BE (Best Effort).PCECC SR-TE (Traffic Engineered).In basic PCECC mode, the forwarding is similar to RSVP-TE
signalled LSP without the RSVP-TE signaling. The PCECC allocates
and download the label entries along the LSP. The rest of processing
is similar to the existing stateful PCE mechanism.In case of SR, there are two modes for SR-BE and SR-TE. For SR-BE,
the forwarding is similar to LDP LSP without LDP signaling or
IGP-SR extension. The SR Node label are allocated and distributed
in the domain centrally by the PCE via PCEP. Each node (PCC) rely
on local IGP for the nexthop calculation. For SR-TE, the forwarding
uses label stack similar to IGP based SR-TE without IGP-SR extension.
The SR node and adj labels are allocated and distributed in the
domain centrally by the PCE via PCEP by PCECC. Rest of the processing
is similar to existing stateful PCE with SR mechanism.Following key requirements associated PCECC should be considered when
designing the PCECC based solution:PCEP speaker supporting this draft MUST have the capability to
advertise its PCECC capability to its peers.Path Computation Client (PCC) supporting this draft MUST have
a capability to communicate local label range or global label range
or both to PCE.Path Computation Element (PCE) supporting this draft SHOULD have
the capability to negotiate a global label range for a group of
clients and communicate the final global label range to PCC.PCEP speaker not supporting this draft MUST be able to reject
PCECC related message with a reason code that indicates no support for PCECC.PCEP SHOULD provide a means to identify PCECC based LSP in the PCEP messages.PCEP SHOULD provide a means to update (or cleanup) the label-download or label-map entry to the PCC.Active stateful PCE is described in . PCE
as a central controller (PCECC) reuses existing Active stateful PCE
mechanism as much as possible to control the LSP.This document defines the following new PCEP messages and extends the
existing messages to support PCECC:a PCEP message sent by a PCC to a PCE to
ask for the label range reservation or a PCE to a PCC to send the
reserved label range. The PCLRResv message described in .a PCEP message sent by a PCE to a PCC
to download or cleanup the Label entry. The PCLabelUpd
message described in .a PCEP message described in .
PCRpt message MAYBE used to send PCECC LSP Reports.a PCEP message described in .
PCInitiate message is used to setup PCE-Initiated LSP based on PCECC mechanism.a PCEP message described in .
PCUpd message is used to send PCECC LSP Update.The new LSP functions defined in this document are mapped onto the messages as
shown in the following table.During PCEP Initialization Phase, PCEP Speakers (PCE or PCC)
advertise their support of PCECC extensions. A PCEP Speaker includes
the "PCECC Capability" TLV, described in of this
document, in the OPEN Object to advertise its support for PCECC extensions.The presence of the PCECC Capability TLV in PCC's OPEN Object
indicates that the PCC is willing to function as a PCECC client.The presence of the PCECC Capability TLV in PCE's OPEN message
indicates that the PCE is interested in function as a PCECC server.The PCEP protocol extensions for PCECC MUST NOT be used if one or
both PCEP Speakers have not included the PCECC Capability TLV in their
respective OPEN message. If the PCEP Speakers support the extensions
of this draft but did not advertise this capability then a PCErr message with
Error-Type=19(Invalid Operation) and Error-Value=[TBD] (Attempted
LSP setup/download/label-range reservation if PCECC capability was not
advertised) will be generated and the PCEP session will be terminated.L flag and G flag defined in PCECC Capability TLV specifies the local
and global label range reservation capability.A PCC or a PCE MUST include both PCECC-CAPABILITY TLV and
STATEFUL-PCE-CAPABILITY TLV in OPEN Object to support the extensions defined
in this document. If PCECC-CAPABILITY TLV is advertised and STATEFUL-PCE-CAPABILITY TLV
is not advertised in OPEN Object, it SHOULD send a PCErr message with Error-Type=19
(Invalid Operation) and Error-value=[TBD](stateful pce capability was not advertised)
and terminate the session.After PCEP initial state synchronization, the label range is reserved.If L flag is advertised in OPEN Object by PCEP speakers, a PCC reserves a local
label range and is communicated using PCLRResv message to a PCE. The PCE maintains
the local label range of each node and further during LSP setup, a label is assigned
to each node from the corresponding local label range reserved.If G flag is advertised in OPEN Object by PCEP speakers,a PCC reserves a global
label range and is advertised in PCLRResv message to a PCE. The PCE MAY negotiate
and reserves the global label range and also sends the negotiated global label range
in PCLRResv message to the PCC. Please refer
for MPLS global label allocation.A PCC MUST send PCLRResv message immediately after the initial LSP synchronization
completion. A PCE SHOULD not send PCLabelUpd message to a PCC before PCLRResv
message received. If the PCC received PCLabelUpd message and not initiated label
range reservation, it SHOULD send a PCErr message with Error-type=[TBD]
(label range not reserved) and Error-value=[TBD].The label range reservation sequence is shown below.[Editor's Note: This section of the document would be updated with
more details about Label Block Negotiation, Reservation, Adjustment etc
in a future revision of the document.]PCE may construct its TEDB by participating in the
IGP ( and for MPLS-TE; and
for GMPLS). An alternative is offered by BGP-LS and .PCEP speaker MAY use any IP address while creating a TCP session. It is important to link the session IP address with the
Router ID in TEDB for successful PCECC operations.During PCEP Initialization Phase, PCC
advertise the TEDB mapping information. A PCC includes
the "Local Node Descriptors TLV" described in ,
in the OPEN Object for this purpose. Various node descriptor sub-TLV are defined in
which can be used to map the PCEP session to the node in the TEDB.If this TLV is not present, the session IP address is directly used for the mapping purpose. The PCEP messages pertaining to PCECC MUST include PATH-SETUP-TYPE
TLV in the SRP object
to clearly identify the PCECC LSP is intended.Inorder to setup a LSP based on PCECC mechanism, a PCC MUST delegate the LSP by
sending a PCRpt message with Path Setup Type set for basic PCECC (see ) and D (Delegate)
flag (see ) set in the LSP object.The LSP-ID in LSP-IDENTIFIER TLV (which usually corresponds to the RSVP-TE LSP-ID)
for PCECC LSP MUST always be generated by
the PCE. In the first PCRpt message of PCECC LSP, LSP ID of LSP-IDENTIFIER
TLV is set to zero.When a PCE received PCRpt message with P and D flags set, it generates
LSP ID; calculates the path and assign labels along the path; and setup
the path by sending PCLabelUpd message to each node
along the path of the LSP.The PCE SHOULD send the PCUpd message with the same PLSP-ID to the
Ingress PCC in response to the delegate PCRpt message.The PCECC LSPs MUST be delegated to a PCE at all times.
LSP deletion operation for PCECC LSP
is same as defined in . If the PCE received
PCRpt message for LSP deletion then it does Label cleanup operation as
described in for the corresponding LSP.The Basic PCECC LSP setup sequence is as shown below.The PCECC LSP are considered to be 'up' by default.
The Ingress MAY further choose to deploy a data plane check
mechanism and report the status back to the PCE via PCRpt message.Inorder to setup an LSP based on PCECC, the PCE sends a PCLabelUpd message
to each node of the LSP to download the Label entry as described in .The LSP object in PCLabelUpd MUST include the LSP-IDENTIFIER TLV.If a node (PCC) received a PCLabelUpd message but failed to download the Label entry,
it MUST send a PCErr message with Error-type=[TBD] (label download failed)
and Error-value=[TBD].Inorder to delete an LSP based on PCECC, the PCE sends a PCLabelUpd
message to each node along the path of the LSP to cleanup the Label entry.If the PCC received a PCLabelUpd message but does not recognize the label,
the PCC MUST generate a PCErr
message with Error-Type 19(Invalid operation) and Error-Value=3, "Unknown Label".
The R flag in SRP object defined in specifies
the deletion of Label Entry in the PCLabelUpd message.The LSP Instantiation operation is same as defined in .Inorder to setup a PCE Initiated LSP based on PCECC mechanism, a PCE
sends PCInitiate message with Path Setup Type set for basic PCECC
(see ) to the Ingress PCC.The Ingress PCC MUST also set D (Delegate) flag (see
) and C (Create) flag
(see ) in LSP object of
PCRpt message. The PCC responds with first PCRpt message with the status as "GOING-UP" and assigned PLSP-ID.The rest of the PCECC LSP setup operations are same as those described in .The LSP deletion operation for PCE Initiated PCECC LSP is same as defined
in . The PCE should further
perform Label entry cleanup operation as described in
for the corresponding LSP.The PCE Initiated PCECC LSP setup sequence is shown below.Incase of a modification of PCECC LSP with a new path, a PCE sends
a PCUpd message to the
Ingress PCC.When a PCC received a PCUpd message for an existing LSP, a PCC MUST
follow the make-before-break procedure. On successful traffic switch over to the
new LSP, PCC sends a PCRpt message to the PCE for the deletion of old LSP.
Further the PCE does cleanup operation for the old LSP described in .The PCECC LSP Update and make-before-break sequence is shown below.The modified PCECC LSP are considered to be 'up' by default.
The Ingress MAY further choose to deploy a data plane check
mechanism and report the status back to the PCE via PCRpt message.As mentioned before, an Ingress PCC MAY choose to apply any OAM mechanism to check the status
of LSP in the Data plane and MAY further send its status in PCRpt message to the PCE.Segment Routing (SR) as described in
depends
on "segments" that are advertised by Interior Gateway
Protocols (IGPs). The SR-node allocate and
advertise the SID (node, adj etc) and flood via the IGP.
This document proposes a new mechanism where
PCE allocate the SID (label) centrally and uses PCEP to
advertise the SID. In some deployments PCE (and PCEP) are
better suited than IGP because of centralized nature of
PCE and direct TCP based PCEP session to the node.Each node (PCC) is allocated a node-SID (label) by the PCECC.
The PCECC sends PCLabelUpd to update the label map of each node to
all the nodes in the domain. The Node IP address is determined from the TEDB
using the maping information in the "Local Node Descriptors TLV" described in . It is RECOMMENDED that PCEP session with PCECC SR capability to use a
different session IP address during TCP session establishment than the
node Router ID in TEDB, to make sure that the PCEP session does not get
impacted by the SR-BE node label maps.On receiving the label map, each node (PCC) uses the local information
to determines the next-hop and download the label forwarding instructions
accordingly. The PCLabelUpd message in this case MUST not have LSP object
but uses new FEC object.The forwarding behavior and the end result is similar to IGP based
"Node-SID" in SR. Thus, from anywhere in the domain, it enforces
the ECMP-aware shortest- path forwarding of the packet towards the
related node.PCE rely on the Node label cleanup using the same PCLabelUpd message.A Segment Routed Best Effort path (SR-BE path) can be derived
from an IGP Shortest Path Tree (SPT) as explained above. On the other
hand, SR-TE paths may not follow IGP SPT. Such paths may
be chosen by a PCE and provisioned on the source node of the SR-TE path. extends PCEP to allow
a stateful PCE to
compute and initiate SR-TE paths, as well as a PCC
to request a path subject to certain constraint(s) and optimization
criteria in SR networks.For SR-TE, apart from node-SID, Adj-SID is used where each adjacency is
allocated an Adj-SID (label) by the PCECC. The PCECC sends
PCLabelUpd to update the label map of each Adj to the corresponding
nodes in the domain. Each node (PCC) download the label forwarding
instructions accordingly. Similar to SR-BE, the PCLabelUpd message
in this case MUST not have LSP object but uses new FEC object.The forwarding behavior and the end result is similar to IGP based
"Adj-SID" in SR.The Path Setup Type MUST be set for PCECC SR-TE (see ).
The rest of the PCEP procedures and mechanism are similar to
.PCE rely on the Adj label cleanup using the same PCLabelUpd message.As defined in [RFC5440], a PCEP message consists of a common header
followed by a variable-length body made of a set of objects that can
be either mandatory or optional. An object is said to be mandatory
in a PCEP message when the object must be included for the message to
be considered valid. For each PCEP message type, a set of rules is
defined that specify the set of objects that the message can carry.
An implementation MUST form the PCEP messages using the object
ordering specified in this document.A Label Range Reservation message (also referred to as PCLRResv message)
is a PCEP message sent by a PCC to a PCE for the reservation of label range
or by PCE to PCC to send reserved label range for the network. The Message-Type
field of the PCEP common header for the PCLRResv message is set to [TBD].The format of a PCLRResv message is as follows:There are two mandatory objects that MUST be included within each
<label-range> in the PCLRResv message: the SRP Object and LABEL-RANGE object.SRP object is defined in and this document
extends the use of SRP object in PCLRResv message. If the SRP object is
missing, the receiving PCE MUST send a PCErr message with Error-type=6
(Mandatory Object missing) and Error-value=10 (SRP object missing).PCC generates the value of SRP-ID-number in SRP object of PCLRResv
message send to a PCE. The PCE MUST include the same SRP-ID-number in
SRP object of PCLRResv message sent to the PCC in response to PCLRResv message.LABEL-RANGE object is defined in . If the LABEL-RANGE object is
missing, the receiving PCE MUST send a PCErr message with Error-type=6
(Mandatory Object missing) and Error-value=[TBD] (Label object missing).[Editor's Note: This section of the document would be updated with
more details about Label Block Negotiation, Reservation, Adjustment etc
in a future revision of the document.]The Label Update Message (also referred to as PCLabelUpd) is a
PCEP message sent by a PCE to a PCC to download label or update the
label map. The same message is also used to cleanup the Label entry.
The Message-Type field of the PCEP common header for the PCLabelUpd message
is set to [TBD].The format of the PCLabelUpd message is as follows:The PCLabelUpd message is used to download label along the path
of the LSP for the basic PCECC mode, as well as to update the label
map for the Node and Adjacency Label in case of SR.The SRP object is defined in and this
document extends the use of SRP object in PCLabelUpd message.
The SRP object is mandatory and MUST be included in PCLabelUpd
message. If the SRP object is missing, the receiving PCC MUST send
a PCErr message with Error-type=6 (Mandatory Object missing) and
Error-value=10 (SRP object missing).The LSP object is defined in and this
document extends the use of LSP object in PCLabelUpd message.
The LSP is an optional object and used in the basic PCECC mode in PCLabelUpd message.
LSP Identifiers TLV is defined in ,
it MUST be included in the LSP object in PCLabelUpd message.
If the TLV is missing, the PCC will generate a PCErr message with
Error-Type=6 (mandatory object missing) and Error-Value=11 (LSP-IDENTIFIERS
TLV missing) and close the session.The LABEL object is defined in . The LABEL is the mandatory object
and MUST be included in PCLabelUpd message. If the LABEL object is
missing, the receiving PCC MUST send a PCErr message with Error-type=6
(Mandatory Object missing) and Error-value=[TBD] (LABEL object missing).
More than one LABEL object MAY be included in the PCLabelUpd message
for the transit LSR.The FEC object is defined in . The FEC is an
optional object and used in PCECC SR mode in PCLabelUpd message. The FEC
object encodes the Node and Adjacency information of the Label Map.To cleanup the SRP object must set the R (remove) bit.The PCEP objects defined in this document are compliant with the PCEP object
format defined in [RFC5440]. The P flag and the I flag of the PCEP objects
defined in this document MUST always be set to 0 on transmission and MUST
be ignored on receipt since these flags are exclusively related to
path computation requests.This document defines a new optional TLVs for use in the OPEN Object.The PCECC-CAPABILITY TLV is an optional TLV for use in the OPEN Object
for PCECC capability advertisement. Advertisement of the PCECC capability
implies support of LSPs that are setup through PCECC as per PCEP extensions
defined in this document.Its format is shown in the following figure:The type of the TLV is [TBD] and it has a fixed length of 4 octets.The value comprises a single field - Flags (32 bits):If set to 1 by
a PCEP speaker, it indicates that the PCEP speaker is capable for local
label range reservation.If set to 1 by
a PCEP speaker, it indicates that the PCEP speaker capable for global
label range reservation.Unassigned bits are considered reserved. They MUST be set to 0 on
transmission and MUST be ignored on receipt.The LABEL-RANGE object MUST be carried within PCLRResv message. The LABEL-RANGE
object is used to carry the label range information based on the label type.LABEL-RANGE Object-Class is TBD.LABEL-RANGE Object-Type is 1.The values defined for label type are
label type 1 specifies the local label. It means the label range is non negotiable.
label type 2 specifies the global label. It means the label range is negotiable.
Refer for global label.It specifies the size of label range.It specifies the minimum label of label range.The PATH-SETUP-TYPE TLV is defined in ;
this document defines following new PST value:
PST = 2: Path is setup via Basic PCECC mode.PST = 3: Path is setup via PCECC SR-TE mode.On a PCRpt or PCInitiate message,
the PST=2 in PATH-SETUP-TYPE TLV in SRP object indicates that
this LSP was setup via a basic PCECC
based mechanism; the PST=3 indicates that
this LSP was setup via a PCECC SR-TE
based mechanism.The LABEL Object is used to specify the Label information and
MUST be carried within PCLabelUpd message.LABEL Object-Class is TBD.LABEL Object-Type is 1.The fields in the LABEL object are as follows:
is used to carry any additional information
pertaining to the label. Currently, the following flag bit is
defined: O bit(Out-label) : If the bit is set, it specifies the label is
the OUT label and it is mandatory to encode the nexthop
information (via IPV4-ADDRESS TLV or
IPV6-ADDRESS TLV or UNNUMBERED-IPV4-ID-ADDRESS TLV in
LABEL object). If the bit is not set, it specifies the label is
the IN label and it is optional to encode the local interface
information (via IPV4-ADDRESS TLV or
IPV6-ADDRESS TLV or UNNUMBERED-IPV4-ID-ADDRESS TLV in
LABEL object).The Label information encoded such
that the 20 rightmost bits represent a label.This document defines the following TLV for the LABEL object to
associate the nexthop information incase of an outgoing label and
local interface information incase of an incoming label.The address TLVs are as follows:
an IPv4 address.an IPv6 address.a pair of Node ID / Interface ID tuples.The FEC Object is used to specify the FEC information and
MAY be carried within PCLabelUpd message.The FEC objects are as follows:
where IPv4 Node ID is specified as an IPv4 address of the Node. FEC Object-type
is 1, and the Object-Length is 4 in this case. where IPv6 Node ID is specified as an IPv6 address of the Node. FEC Object-type
is 2, and the Object-Length is 16 in this case. where Local and Remote IPv4 address is specified as pair of IPv4 address of the adjacency. FEC Object-type
is 3, and the Object-Length is 8 in this case. where Local and Remote IPv6 address is specified as pair of IPv6 address of the adjacency. FEC Object-type
is 4, and the Object-Length is 32 in this case. where a pair of Node ID / Interface ID tuples is used. FEC Object-type
is 5, and the Object-Length is 16 in this case.TBDTBD.TBD.TBD.TBD.TBD.TBD.TBDWe would like to thank Robert Tao, Changjing Yan, Tieying Huang for
their useful comments and suggestions.