draft-ietf-pce-lsp-control-request-10.txt   draft-ietf-pce-lsp-control-request-11.txt 
skipping to change at page 1, line 15 skipping to change at page 1, line 15
Intended status: Standards Track AT&T Intended status: Standards Track AT&T
Expires: April 15, 2020 J. Karthik Expires: April 15, 2020 J. Karthik
S. Sivabalan S. Sivabalan
Cisco Systems, Inc. Cisco Systems, Inc.
M. Negi M. Negi
Huawei Technologies Huawei Technologies
October 13, 2019 October 13, 2019
Ability for a Stateful Path Computation Element (PCE) to request and Ability for a Stateful Path Computation Element (PCE) to request and
obtain control of a Label Switched Path (LSP) obtain control of a Label Switched Path (LSP)
draft-ietf-pce-lsp-control-request-10 draft-ietf-pce-lsp-control-request-11
Abstract Abstract
A Stateful Path Computation Element (PCE) retains information about A Stateful Path Computation Element (PCE) retains information about
the placement of Multiprotocol Label Switching (MPLS) Traffic the placement of Multiprotocol Label Switching (MPLS) Traffic
Engineering Label Switched Paths (TE LSPs). When a PCE has stateful Engineering Label Switched Paths (TE LSPs). When a PCE has stateful
control over LSPs it may send indications to LSP head-ends to modify control over LSPs it may send indications to LSP head-ends to modify
the attributes (especially the paths) of the LSPs. A Path the attributes (especially the paths) of the LSPs. A Path
Computation Client (PCC) that has set up LSPs under local Computation Client (PCC) that has set up LSPs under local
configuration may delegate control of those LSPs to a stateful PCE. configuration may delegate control of those LSPs to a stateful PCE.
skipping to change at page 2, line 32 skipping to change at page 2, line 32
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
3. LSP Control Request Flag . . . . . . . . . . . . . . . . . . 4 3. LSP Control Request Flag . . . . . . . . . . . . . . . . . . 4
4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Implementation Status . . . . . . . . . . . . . . . . . . . . 6 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 6
5.1. Huawei's Proof of Concept based on ONOS . . . . . . . . . 6 5.1. Huawei's Proof of Concept based on ONOS . . . . . . . . . 6
6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7
7.1. SRP Object Flags . . . . . . . . . . . . . . . . . . . . 7 7.1. SRP Object Flags . . . . . . . . . . . . . . . . . . . . 8
8. Manageability Considerations . . . . . . . . . . . . . . . . 8 8. Manageability Considerations . . . . . . . . . . . . . . . . 8
8.1. Control of Function and Policy . . . . . . . . . . . . . 8 8.1. Control of Function and Policy . . . . . . . . . . . . . 8
8.2. Information and Data Models . . . . . . . . . . . . . . . 8 8.2. Information and Data Models . . . . . . . . . . . . . . . 8
8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 8 8.3. Liveness Detection and Monitoring . . . . . . . . . . . . 8
8.4. Verify Correct Operations . . . . . . . . . . . . . . . . 8 8.4. Verify Correct Operations . . . . . . . . . . . . . . . . 8
8.5. Requirements On Other Protocols . . . . . . . . . . . . . 8 8.5. Requirements On Other Protocols . . . . . . . . . . . . . 9
8.6. Impact On Network Operations . . . . . . . . . . . . . . 8 8.6. Impact On Network Operations . . . . . . . . . . . . . . 9
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
10.1. Normative References . . . . . . . . . . . . . . . . . . 9 10.1. Normative References . . . . . . . . . . . . . . . . . . 9
10.2. Informative References . . . . . . . . . . . . . . . . . 10 10.2. Informative References . . . . . . . . . . . . . . . . . 10
Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 11 Appendix A. Contributor Addresses . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction 1. Introduction
Stateful Path Computation Element (PCE) communication Protocol (PCEP) Stateful Path Computation Element (PCE) communication Protocol (PCEP)
extensions [RFC8231] specifies a set of extensions to PCEP [RFC5440] extensions [RFC8231] specifies a set of extensions to PCEP [RFC5440]
to enable stateful control of Traffic Engineering Label Switched to enable stateful control of Traffic Engineering Label Switched
Paths (TE LSPs) between and across PCEP sessions in compliance with Paths (TE LSPs) between and across PCEP sessions in compliance with
[RFC4657]. It includes mechanisms to effect LSP state [RFC4657]. It includes mechanisms to synchronize LSP state between
synchronization between Path Computation Clients (PCCs) and PCEs, Path Computation Clients (PCCs) and PCEs, delegate control of LSPs to
delegation of control of LSPs to PCE, and PCE control of timing and PCE, and PCE-control of timing and sequence of path computations
sequence of path computations within and across PCEP sessions. The within and across PCEP sessions. The stateful PCEP defines the
stateful PCEP defines the following two useful network operations: following two useful network operations:
o Delegation: As per [RFC8051], an operation to grant a PCE o Delegation: As per [RFC8051], an operation to grant a PCE
temporary rights to modify a subset of LSP parameters on one or temporary rights to modify a subset of LSP parameters on one or
more LSPs of a PCC. LSPs are delegated from a PCC to a PCE and more LSPs of a PCC. LSPs are delegated from a PCC to a PCE and
are referred to as "delegated" LSPs. are referred to as "delegated" LSPs.
o Revocation: As per [RFC8231], an operation performed by a PCC on a o Revocation: As per [RFC8231], an operation performed by a PCC on a
previously delegated LSP. Revocation revokes the rights granted previously delegated LSP. Revocation revokes the rights granted
to the PCE in the delegation operation. to the PCE in the delegation operation.
For Redundant Stateful PCEs (section 5.7.4. of [RFC8231]), during a For Redundant Stateful PCEs (section 5.7.4. of [RFC8231]), during a
PCE failure, one of the redundant PCE could request to take control PCE failure, one of the redundant PCE might want to request to take
over an LSP. The redundant PCEs may use a local policy or a control over an LSP. The redundant PCEs may use a local policy or a
proprietary election mechanism to decide which PCE would take proprietary election mechanism to decide which PCE would take
control. In this case, a mechanism is needed for a stateful PCE to control. In this case, a mechanism is needed for a stateful PCE to
request control of one or more LSPs from a PCC, so that a newly request control of one or more LSPs from a PCC, so that a newly
elected primary PCE can request to take over control. elected primary PCE can request to take over control.
In case of virtualized PCEs (vPCE) running in virtual network In case of virtualized PCEs (vPCEs) running in virtual network
function (VNF) mode, as the computation load in the network function (VNF) mode, as the computation load in the network
increases, a new instance of vPCE could be instantiated to balance increases, a new instance of vPCE could be instantiated to balance
the current load. The PCEs could use a proprietary algorithm to the current load. The PCEs could use a proprietary algorithm to
decide which LSPs to be assigned to the new vPCE. Thus, having a decide which LSPs to be assigned to the new vPCE. Thus, having a
mechanism for the PCE to request control of some LSPs is needed. mechanism for the PCE to request control of some LSPs is needed.
In some deployments, the operator would like to use stateful PCE for In some deployments, the operator would like to use stateful PCE for
global optimization algorithms but would still like to keep the global optimization algorithms but would still like to keep the
control of the LSP at the PCC. In such cases, a stateful PCE could control of the LSP at the PCC. In such cases, a stateful PCE could
request to take control during the global optimization and return the request to take control during the global optimization and return the
skipping to change at page 4, line 44 skipping to change at page 4, line 44
capitals, as shown here. capitals, as shown here.
3. LSP Control Request Flag 3. LSP Control Request Flag
The Stateful PCE Request Parameters (SRP) object is defined in The Stateful PCE Request Parameters (SRP) object is defined in
Section 7.2 of [RFC8231] and it includes a Flags field. Section 7.2 of [RFC8231] and it includes a Flags field.
A new flag, the "LSP-Control Request Flag" (C) - TBD, is introduced A new flag, the "LSP-Control Request Flag" (C) - TBD, is introduced
in the SRP object. On a PCUpd message, a PCE sets the C Flag to 1 to in the SRP object. On a PCUpd message, a PCE sets the C Flag to 1 to
indicate that it wishes to gain control of LSPs. The LSPs are indicate that it wishes to gain control of LSPs. The LSPs are
identified by the LSP object. A PLSP-ID of value other than 0 and identified by the PLSP-ID in the LSP object following the SRP object.
0xFFFFF is used to identify the LSP for which the PCE requests A PLSP-ID of value other than 0 and 0xFFFFF is used to identify the
control. The PLSP-ID value of 0 indicates that the PCE is requesting LSP for which the PCE requests control. The PLSP-ID value of 0
control of all LSPs originating from the PCC that it wishes to indicates that the PCE is requesting control of all LSPs originating
delegate. The C Flag has no meaning in other PCEP messages that from the PCC that it wishes to delegate. The C Flag has no meaning
carry an SRP object and the flag MUST be set to 0 on transmission and in other PCEP messages that carry SRP objects and for which the C
MUST be ignored on receipt. flag MUST be set to 0 on transmission and MUST be ignored on receipt.
4. Operation 4. Operation
During normal operation, a PCC that wishes to delegate the control of During normal operation, a PCC that wishes to delegate the control of
an LSP sets the D Flag (delegate, Section 7.3 of [RFC8231]) to 1 in an LSP sets the D Flag (delegate, Section 7.3 of [RFC8231]) to 1 in
all PCRpt messages pertaining to the LSP. The PCE confirms the all PCRpt messages pertaining to the LSP. The PCE confirms the
delegation by setting D Flag to 1 in all PCUpd messages pertaining to delegation by setting D Flag to 1 in all PCUpd messages pertaining to
the LSP. The PCC revokes the control of the LSP from the PCE by the LSP. The PCC revokes the control of the LSP from the PCE by
setting D Flag to 0 in PCRpt messages pertaining to the LSP. If the setting D Flag to 0 in PCRpt messages pertaining to the LSP. If the
PCE wishes to relinquish the control of the LSP, it sets D Flag to 0 PCE wishes to relinquish the control of the LSP, it sets D Flag to 0
in all PCUpd messages pertaining to the LSP. in all PCUpd messages pertaining to the LSP.
If a PCE wishes to gain control over an LSP, it sends a PCUpd message If a PCE wishes to gain control over an LSP, it sends a PCUpd message
with C Flag set to 1 in SRP object. The LSP for which the PCE with C Flag set to 1 in SRP object. The LSP for which the PCE
requests control is identified by the PLSP-ID. The PLSP-ID of 0 requests control is identified by the PLSP-ID in the associated LSP
indicates that the PCE wants control over all LSPs originating from object. The PLSP-ID of 0 indicates that the PCE wants control over
the PCC. A PCC that receives a PCUpd message with C Flag set to 1 all LSPs originating from the PCC. An implementation of this feature
and PLSP-ID of 0 MUST NOT trigger the error condition for unknown needs to make sure to check for the LSP control feature (C flag set
PLSP-ID in an LSP update request as per [RFC8231]. The D Flag and C to 1) before any check for PLSP-ID (as prescribed in [RFC8231]). The
Flag are mutually exclusive in a PCUpd message. The PCE SHOULD NOT D Flag and C Flag are mutually exclusive in a PCUpd message. The PCE
send a control request for the LSP which is already delegated to the MUST NOT send a control request for the LSP which is already
PCE, i.e. if the D Flag is set in the PCUpd message, then the C Flag delegated to the PCE, i.e. if the D Flag is set in the PCUpd message,
SHOULD NOT be set. If a PCC receives a PCUpd message with D Flag set then the C Flag MUST NOT be set. If a PCC receives a PCUpd message
in the LSP object (i.e. LSP is already delegated) and the C Flag is with D Flag set in the LSP object (i.e. LSP is already delegated)
also set (i.e. PCE is making a control request), the PCC MUST ignore and the C Flag is also set (i.e. PCE is making a control request),
the C Flag. A PCC can decide to delegate the control of the LSP at the PCC MUST ignore the C Flag. A PCC can decide to delegate the
its own discretion. If the PCC grants or denies the control, it control of the LSP at its own discretion. If the PCC grants or
sends a PCRpt message with D Flag set to 1 and 0 respectively in denies the control, it sends a PCRpt message with D Flag set to 1 and
accordance with stateful PCEP [RFC8231]. If the PCC does not grant 0 respectively in accordance with stateful PCEP [RFC8231]. If the
the control, it MAY choose to not respond, and the PCE MAY choose to PCC does not grant the control, it MAY choose to not respond, and the
retry requesting the control preferably using exponentially PCE MAY choose to retry requesting the control preferably using
increasing timer. A PCE ignores the C Flag on the PCRpt message. exponentially increasing timer. Note that, if the PCUpd message with
Note that, if the PCUpd message with C Flag set is received for a C Flag set is received for a currently non-delegated LSP (for which
currently non-delegated LSP (for which the PCE is requesting the PCE is requesting delegation), this MUST NOT trigger the error
delegation), this MUST NOT trigger the error handling as specified in handling as specified in [RFC8231] (a PCErr with Error-type=19
[RFC8231] (a PCErr with Error-type=19 (Invalid Operation) and error- (Invalid Operation) and error-value 1 (Attempted LSP Update Request
value 1 (Attempted LSP Update Request for a non-delegated LSP)). for a non-delegated LSP)).
As per [RFC8231], a PCC cannot delegate an LSP to more than one PCE As per [RFC8231], a PCC cannot delegate an LSP to more than one PCE
at any time. If a PCE requests control of an LSP that has already at any time. If a PCE requests control of an LSP that has already
been delegated by the PCC to another PCE, the PCC MAY ignore the been delegated by the PCC to another PCE, the PCC MAY ignore the
request, or MAY revoke the delegation to the first PCE before request, or MAY revoke the delegation to the first PCE before
delegating it to the second. This choice is a matter of local delegating it to the second. This choice is a matter of local
policy. policy.
It should be noted that a legacy implementation of PCC that does not It should be noted that a legacy implementation of PCC that does not
support this extension would trigger the error condition as specified support this extension would receive an LSP control request: PCUpd
in [RFC8231] (a PCErr with Error-type=19 (Invalid Operation) and message with C flag set and D flag (delegate) unset, it would ignore
error-value 1 (Attempted LSP Update Request for a non-delegated the C flag and trigger the error condition for the D flag as
LSP)), as the D Flag would be unset in this update request. Further, specified in [RFC8231] (a PCErr with Error-type=19 (Invalid
in case of PLSP-ID of 0, the error condition as specified in Operation) and error-value 1 (Attempted LSP Update Request for a non-
[RFC8231] (a PCErr with Error-type=19 (Invalid Operation) and error- delegated LSP)). Further, in case of PLSP-ID of 0, the error
value 3 (Attempted LSP Update Request for an LSP identified by an condition as specified in [RFC8231] (a PCErr with Error-type=19
unknown PSP-ID)) would be triggered. (Invalid Operation) and error-value 3 (Attempted LSP Update Request
for an LSP identified by an unknown PSP-ID)) would be triggered.
[RFC8281] describes the setup, maintenance and teardown of PCE- [RFC8281] describes the setup, maintenance and teardown of PCE-
initiated LSPs under the stateful PCE model. It also specifies how a initiated LSPs under the stateful PCE model. It also specifies how a
PCE may obtain control over an orphaned LSP that was PCE-initiated. PCE may obtain control over an orphaned LSP that was PCE-initiated.
A PCE implementation can apply the mechanism described in this A PCE implementation can apply the mechanism described in this
document in conjunction with those in [RFC8281]. document in conjunction with those in [RFC8281].
5. Implementation Status 5. Implementation Status
[Note to the RFC Editor - remove this section before publication, as [Note to the RFC Editor - remove this section before publication, as
skipping to change at page 7, line 28 skipping to change at page 7, line 28
to this document as well. However, this document also introduces a to this document as well. However, this document also introduces a
new attack vector. An attacker may flood the PCC with request to new attack vector. An attacker may flood the PCC with request to
delegate all of its LSPs at a rate which exceeds the PCC's ability to delegate all of its LSPs at a rate which exceeds the PCC's ability to
process them, either by spoofing messages or by compromising the PCE process them, either by spoofing messages or by compromising the PCE
itself. The PCC SHOULD be configured with a threshold rate for the itself. The PCC SHOULD be configured with a threshold rate for the
delegation requests received from the PCE. If the threshold is delegation requests received from the PCE. If the threshold is
reached, it is RECOMMENDED to log the issue. reached, it is RECOMMENDED to log the issue.
A PCC is the ultimate arbiter of delegation. As per [RFC8231], a A PCC is the ultimate arbiter of delegation. As per [RFC8231], a
local policy at PCC is used to influence the delegation. A PCC can local policy at PCC is used to influence the delegation. A PCC can
also revoke the delegation at any time. A PCC MUST NOT blindly trust also revoke the delegation at any time. A PCC need not blindly trust
the control requests and SHOULD take local policy and other factors the control requests and SHOULD take local policy and other factors
into consideration before honoring the request. into consideration before honoring the request.
Note that, a PCE may not be sure if a PCC supports this feature. A
PCE would try sending a control request to a 'legacy' PCC, which
would in turn respond with an error as described in Section 4. So a
PCE would learn this fact only when it wants to take control over an
LSP. A PCE might also be susceptible to a downgrade attacks by
falsifying the error condition.
As per [RFC8231], it is RECOMMENDED that these PCEP extensions only As per [RFC8231], it is RECOMMENDED that these PCEP extensions only
be activated on authenticated and encrypted sessions across PCEs and be activated on authenticated and encrypted sessions across PCEs and
PCCs belonging to the same administrative authority, using Transport PCCs belonging to the same administrative authority, using Transport
Layer Security (TLS) [RFC8253], as per the recommendations and best Layer Security (TLS) [RFC8253], as per the recommendations and best
current practices in [RFC7525] (unless explicitly excluded in current practices in BCP 195 [RFC7525] (unless explicitly excluded in
[RFC8253]). [RFC8253]).
7. IANA Considerations 7. IANA Considerations
7.1. SRP Object Flags 7.1. SRP Object Flags
IANA maintains a registry called the "Path Computation Element IANA maintains a registry called the "Path Computation Element
Protocol (PCEP) Numbers" registry. It contains a subregistry called Protocol (PCEP) Numbers" registry. It contains a subregistry called
the "SRP Object Flag Field" registry. This document requests IANA to the "SRP Object Flag Field" registry. This document requests IANA to
allocate following code point in the "SRP Object Flag Field" allocate following code point in the "SRP Object Flag Field"
subregistry. subregistry.
Bit Description Reference Bit Description Reference
TBD LSP-Control Request Flag This document TBD LSP-Control Request Flag This document
skipping to change at page 9, line 19 skipping to change at page 9, line 29
Thanks to Jonathan Hardwick to remind the authors to not use Thanks to Jonathan Hardwick to remind the authors to not use
suggested values in IANA section. suggested values in IANA section.
Thanks to Adrian Farrel, Haomian Zheng and Tomonori Takeda for their Thanks to Adrian Farrel, Haomian Zheng and Tomonori Takeda for their
valuable comments. valuable comments.
Thanks to Shawn M. Emery for security directorate's review. Thanks to Shawn M. Emery for security directorate's review.
Thanks to Francesca Palombini for GENART review. Thanks to Francesca Palombini for GENART review.
Thanks to Martin Vigoureux, Alvaro Retana, and Barry Leiba for IESG Thanks to Benjamin Kaduk, Martin Vigoureux, Alvaro Retana, and Barry
reviews. Leiba for IESG reviews.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
 End of changes. 14 change blocks. 
55 lines changed or deleted 62 lines changed or added

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