PCEP Procedures and Protocol Extensions for
Using PCE as a Central Controller (PCECC) of LSPsHuawei Technologies125 Nagog Technology ParkActonMA01719USAquintin.zhao@huawei.comHuawei TechnologiesHuawei Bld., No.156 Beiqing Rd.Beijing 100095Chinalizhenbin@huawei.comHuawei
TechnologiesDivyashree Techno Park, WhitefieldBangaloreKarnataka560066Indiadhruv.ietf@gmail.comHuawei TechnologiesDivyashree Techno Park, WhitefieldBangaloreKarnataka560066Indiasatishk@huawei.comJuniper Networks, IncUKadrian@olddog.co.ukCisco Systemschoa.zhou@cisco.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 signalling protocols
such as LDP and RSVP-TE. PCE has been proposed to be used as a
central controller (PCECC) so that LSP can be
calculated/setup/initiated and label forwarding entries are
downloaded through a centralized PCE server to each network devices
along the 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, where LSPs are
calculated/setup/initiated and label forwarding entries are downloaded
through extending PCEP.
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 leverage 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
tear down 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.
introduces the architecture for
PCE as a central controller, examines the motivations and applicability
for PCEP as a southbound interface, and introduces the implications for the
protocol. describes the use cases for
the PCECC architecture.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 extension for PCECC in Segment Routing (SR) is specified in a
seperate draft .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
.Terminologies used in this document is same as described in the draft
.In this mode LSPs are provisioned as explicit label instructions at each
hop on the end-to-end path. Each router along the path must be
told what label forwarding instructions to program and what resources
to reserve. The controller uses PCEP to communicate with each router
along the path of the end-to-end LSP.Note that the PCE-based controller will take responsibility for
managing some part of the MPLS label space for each of the routers
that it controls, and may taker wider responsibility for partitioning
the label space for each router and allocating different parts for
different uses. This is also described in section 3.1.2. of
. For the purpose
of this document, it is assumed that label range to be used by a PCE
is set on both PCEP peers. A future extention MAY add capability to
advertise the range via possible PCEP extention as well.
The rest of processing is similar
to the existing stateful PCE 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.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 entry to the PCC.PCEP SHOULD provide a means to synchronize the labels between
PCE to PCC in PCEP messages.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 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.a new PCEP message sent by a PCE to a PCC
to download or cleanup the Label entry. The PCLabelUpd
message described in .a new PCEP message sent by a PCC to a PCE to
report the set of labels for which explicit action is required
from PCE to update or cleanup or do nothing for these Label entries.
The PCLabelRpt message described in .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.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. The PCEP messages pertaining to PCECC MUST include PATH-SETUP-TYPE
TLV in the SRP object
to clearly identify the PCECC LSP is intended.In order 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.LSP-IDENTIFIER TLV MAY be included for PCECC LSP, the LSP-ID SHOULD be generated by
the PCE for PCECC LSP. In the first PCRpt message of PCECC LSP, LSP ID of LSP-IDENTIFIER
TLV is set to zero.When a PCE receives PCRpt message with D flags and PST Type set, it MAY
generates LSP ID; calculates the path and assigns labels along the
path; and setups the path by sending PCLabelUpd message to each node
along the path of the LSP.In response to the delegate PCRpt message, the PCE SHOULD send the PCUpd message with the same PLSP-ID to the
Ingress PCC.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 receives
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 using a new
message PCLabelUpd.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.The new label operations in PCEP can be done via a new PCLabelUpd message and by
defining new PCEP Objects for Label operations. Local label range of
each PCC can be configured at PCE and PCE.In order 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) receives a PCLabelUpd message with a Label, out
of the range set aside for the PCE, it MUST send a PCErr message with Error-type=TBD
(label download failure) and Error-value=TBD (Label out of range) and MUST include the
SRP object to specify the error is for the corresponding label update.
If a PCC receives a PCLabelUpd message but failed to download
the Label entry, it MUST send a PCErr message with Error-type=TBD
(label download failure) and Error-value=TBD (label failed to be download)and MUST include the
SRP object to specify the error is for the corresponding label update.New PCEP object for LABEL is defined in to encode the Label
operations.In order 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 receives 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=TBD, "Unknown Label" and
MUST include the SRP object to specify the error is for the
corresponding label cleanup.
The R flag in SRP object defined in specifies
the deletion of Label Entry in the new PCLabelUpd message.The LSP Instantiation operation is same as defined in .In order 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 using
a new PCLabelUpd message.Incase of a modification of PCECC LSP with a new path, a PCE sends
a PCUpd message to the
Ingress PCC.When a PCC receives a PCUpd message for an existing LSP, a PCC MAY
follow the make-before-break procedure i.e. first download labels for the
updated LSP and then switch traffic, before cleaning up the old labels. 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 as described in .The PCECC LSP Update and make-before-break sequence is shown below
using a new PCLabelUpd message.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.PCC MUST mark all labels that were previously reported by this PCE
as stale on session down. defines the
State Timeout Interval. The labels which are marked stale and provisioned
for the Basic PCECC LSP on this session MUST be cleaned up at the expiration of
the State Timeout Interval. The labels will be retained when the
Infinite State Timeout Interval is used.The purpose of LABEL-DB synchronization is to make sure that the
PCE's view of LABEL-DB matches with the PCC's LABEL-DB. The LABEL-
DB synchronization MUST be performed from PCE to PCC immediately
after the LSP state synchronization.
describes the basic mechanism for LSP state synchronization.
describes the
optimizations for LSP state synchronization.LABEL-DB synchronization is a two phase procedure. In first phase, immediately
after the LSP state synchronization PCE MUST synchronize its LABEL-DB
to PCC. In second phase, PCC MUST report all the stale marked labels to PCE. During LABEL-DB Synchronization, a PCE first takes a snapshot
of the label database for the session, then sends this snapshot to
the PCC in a sequence of Label Update message (PCLabelUpd message).
Each PCLabelUpd message sent during LABEL-DB Synchronization has
the SYNC Flag in the SRP Object(see ) set to 1.The end of synchronization marker is a PCLabelUpd message with the
SYNC Flag set to 0 for SRP Object and Label equal to a reserved value
of 0 in the LABEL object ().
If the PCE has no label to synchronize, it will only send
the end of synchronization marker.PCC MUST remove the stale marking for the all labels on receipt of correspoding
PCLabelUpd message during the LABEL-DB Synchronization phase. The remaining
stale marked labels after the LABEL-DB synchronization process MUST be reported
to PCE in a sequence of Label Report message (PCLabelRpt message) with the SYNC Flag
in the SRP Object(see ) set to 1.The end of report synchronization marker is a PCLabelRpt message with the
SYNC Flag set to 0 for SRP Object with Label equal to reserved value
0 in the LABEL object (()). If the PCC has no label to report, it will only
send the end of report synchronization marker.Either the PCE or the PCC MAY terminate the session using the PCEP
session termination procedures during the LABEL-DB synchronization
phase. The session reestablishment MUST be re-attempted as per the
procedures defined in , including use of
a back-off timer.The PCC does not send positive acknowledgements for properly received
label database synchronization messages. It MUST respond with a
PCErr message with Error-type TBD1 (Label Database Synchronization
Error) and Error-value 1 (indicating an error in processing the
PCLabelUpd) if it encounters a problem with the Label Update it
received from the PCE and it MUST terminate the session.If the PCE encounters a problem which prevents it from completing
the label transfer, it MUST send a PCErr message with Error-type TBD1
(Label Database Synchronization Error) and Error-value 2 (indicating
an internal PCE Error) to the PCC and terminate the session.PCE MUST respond with a PCErr message with Error-type TBD1 (Label Database
Report Synchronization Error) and Error-value 1 (indicating an error
in processing the PCLabelRpt) if it encounters a problem with the Label
Report it received from the PCC and it MUST terminate the session.The successful LABEL-DB Synchronization sequence is shown below.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.As defined in , 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.LSP-IDENTIFIERS TLV MAY be included in the LSP object for PCECC
LSP.A new 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.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.
LSP Identifiers TLV is defined in ,
it MAY be included in the LSP object in PCLabelUpd message.
Either LSP object or FEC object defined in
is mandatory in
PCLabelUpd message.
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.To cleanup the SRP object must set the R (remove) bit.A new Label Report Message (also referred to as PCLabelRpt) is a PCEP
message sent by a PCC to a PCE to report the label. The Message-Type
field of the PCEP common header for the PCLabelRpt message is set to TBD.The format of the PCLabelRpt message is as follows:The SRP object is defined in and this
document extends the use of SRP object in PCLabelRpt message.
The SRP object is mandatory and MUST be included in PCLabelRpt
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).The LSP object is defined in and this
document extends the use of LSP object in PCLabelRpt message.
LSP Identifiers TLV is defined in ,
it MAY be included in the LSP object in PCLabelRpt message.
Either LSP object or FEC object defined in
is mandatory in
PCLabelRpt message.
The LABEL object is defined in . The LABEL is the mandatory object
and MUST be included in PCLabelRpt message. If the LABEL 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).
More than one LABEL object MAY be included in the PCLabelRpt message.Message described in
continue to apply.The PCEP objects defined in this document are compliant with the PCEP object
format defined in . 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).No flags are assigned right now.Unassigned bits are considered reserved. They MUST be set to 0 on
transmission and MUST be ignored on receipt.The PATH-SETUP-TYPE TLV is defined in ;
this document defines a new PST value:
PST = TBD: Path is setup via Basic PCECC mode.On a PCRpt/PCUpd/PCInitiate message, the PST=TBD in PATH-SETUP-TYPE TLV
in SRP object indicates that this LSP was setup via a basic PCECC
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.Set to zero while sending, ignored on receive.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.
SRP object is defined in
and extended in .
This draft defines a new 'SYNC' flag (S bit) to specify the LABEL-DB synchronization operation.
The format of the SRP object is shown :S (SYNC - 1 bit):The S Flag MUST be set to 1 on each PCLabelUpd and
PCLabelRpt sent from a PCE and PCC respectively during LABEL-DB
Synchronization. The S Flag MUST be set to 0 in other messages sent
from the PCE and PCC.The security considerations described in and
apply to the extensions described in
this document. Additional considerations related to a malicious PCE are introduced.PCE has complete control over PCC to update the labels and can
cause the LSP's to behave inappropriate and cause cause major impact
to the network. As a general precaution, it is RECOMMENDED that
these PCEP extensions only be activated on authenticated and encrypted
sessions across PCEs and PCCs belonging to the same administrative
authority, using Transport Layer Security (TLS) ,
as per the recommendations and best current practices in . A PCE or PCC implementation SHOULD allow to configure to
enable/disable PCECC capability as a global configuration. describes the PCEP MIB, this MIB can be extended to get the
PCECC capability status.The PCEP YANG module could be extended
to enable/disable PCECC capability.Mechanisms defined in this document do not imply any new liveness
detection and monitoring requirements in addition to those already
listed in .Mechanisms defined in this document do not imply any new operation
verification requirements in addition to those already listed in
and .PCEP extensions defined in this document do not put new requirements
on other protocols.PCEP implementation SHOULD allow a limit to be placed on the rate
of PCLabelUpd messages sent by PCE and processed by PCC.
It SHOULD also allow sending a notification when a rate threshold is
reached.IANA is requested to allocate a new message type within the "PCEP
Messages" sub-registry of the PCEP Numbers registry for:ValueMeaningReferenceTBDLabel UpdateThis documentTBDLabel ReportThis documentIANA is requested to confirm the early allocation of the following
TLV Type Indicator values within the "PCEP TLV Type Indicators" sub-
registry of the PCEP Numbers registry, and to update the reference in
the registry to point to this document, when it is an RFC:ValueMeaningReferenceTBDPCECC-CAPABILITYThis documentTBDIPV4-ADDRESS TLVThis documentTBDIPV6-ADDRESS TLVThis documentTBDUNNUMBERED-IPV4-ID-ADDRESS TLVThis documentIANA is requested to allocate new PST Field in PATH-
SETUP-TYPE TLV. The allocation policy for this new registry should
be by IETF Consensus. The new registry should contain the following value:ValueDescriptionReferenceTBDTraffic engineering path isThis documentsetup using Basic PCECC modeIANA is requested to allocate new registry for LABEL PCEP object.Object-Class ValueNameReferenceTBDLABEL Object-TypeThis document1IANA is requestd to create a registry to manage the Flag field
of the LABEL object.One bit to be defined for the LABEL Object flag field in this document:Codespace of the Flag field (LABEL Object)BitDescriptionReference7Specifies labelThis document is out labelSRP object is defined in and extended in
. IANA is requested to allocate a new
bit in SRP object flag. Field registry, as follows:BitDescriptionReference30S(SYNC Flag)This documentIANA is requested to allocate new error types and error values within
the "PCEP-ERROR Object Error Types and Values" sub-registry of the
PCEP Numbers registry for the following errors:
MeaningInvalid operation.
Attempted LSP setup/download/label-range reservation if PCECC capability was not advertisedStateful PCE capability was not advertisedUnknown LabelMandatory Object missing.
LABEL object missingLabel download failure.
Label out of range.Download of label Failed.Label DB synchronization failed.
Processing label update Failed during synchronization.Internal PCE Error during synchronization.We would like to thank Robert Tao, Changjing Yan, Tieying Huang and Avantika for
their useful comments and suggestions.
PCEP Procedures and Protocol Extensions for
Using PCE as a Central Controller (PCECC) of SR-LSPs