Internet Engineering Task Force (IETF) D. Dhody Request for Comments: 8356 Huawei Technologies Updates: 5440 D. King Category: Standards Track Lancaster University ISSN: 2070-1721 A. Farrel Juniper Networks March 2018
Experimental Codepoint Allocation for the Path Computation Element Communication Protocol (PCEP)
IANA assigns values to the Path Computation Element Communication Protocol (PCEP) parameters (messages, objects, TLVs). IANA established a top-level registry to contain all PCEP codepoints and sub-registries. This top-level registry contains sub-registries for PCEP message, object, and TLV types. The allocation policy for each of these sub-registries is IETF Review.
This document updates RFC 5440 by changing the allocation policies for these three registries to mark some of the codepoints as assigned for Experimental Use.
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.
RFC 8356 Experimental Codepoints for PECP March 2018
Copyright (c) 2018 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.
This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
The Path Computation Element Communication Protocol (PCEP) [RFC5440] provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.
Further, in order to support use cases described in [RFC8051], [RFC8231] specifies a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS LSPs via PCEP. [RFC8281] describes the setup, maintenance, and teardown of PCE-initiated LSPs under the stateful PCE model.
In Section 9 of [RFC5440], IANA assigns values to the PCEP protocol parameters (messages, objects, TLVs). IANA established a top-level registry to contain all PCEP codepoints and sub-registries. This top-level registry contains sub-registries for PCEP message, object and TLV types. The allocation policy for each of these sub- registries is IETF Review [RFC8126]. Also, early allocation [RFC7120] provides some latitude for allocation of these codepoints but is reserved for features that are considered appropriately stable.
Recently, there have been rapid advancements in PCE technology, which has created an enhanced need to experiment with PCEP. It is often necessary to use some sort of number or constant in order to actually test or experiment with the new function, even when testing in a closed environment. In order to run experiments, it is important that the value not collide with existing codepoints or any future allocations.
This document updates [RFC5440] by changing the allocation policies for these three registries to mark some of the codepoints as assigned for Experimental Use. As stated in [RFC3692], experiments using these codepoints are not intended to be used in general deployments, and due care must be taken to ensure that two experiments using the same codepoints are not run in the same environment. See [RFC3692] for further discussion of the use of experimental codepoints (also referred to as "experimental and testing numbers").
A PCEP implementation that receives an experimental PCEP message that it does not recognize reacts by sending a PCErr message with Error-Type=2 (capability not supported) per Section 6.9 of [RFC5440].
If a PCEP speaker does not understand or support an experimental object, then the way it handles this situation depends on the message type. For example, a PCE handles an unknown object in the Path Computation Request (PCReq) message according to the rules of [RFC5440]. Message-specific behavior may be specified (e.g., [RFC8231] defines rules for a PCC to handle an unknown object in a Path Computation LSP Update Request (PCUpd) message).
As per Section 7.1 of [RFC5440], an unknown experimental PCEP TLV would be ignored.
This document does not introduce any new security considerations to the existing protocol. Refer to [RFC5440] for further details of the specific security measures.
[RFC3692] asserts that the existence of experimental codepoints introduce no new security considerations. However, implementations accepting experimental codepoints need to take care in how they parse and process the messages, objects, and TLVs in case they come, accidentally, from another experiment. Further, an implementation accepting experimental codepoints needs to consider the security aspects of the experimental extensions. [RFC6709] provides various design considerations for protocol extensions (including those designated as experimental).
Dhody, et al. Standards Track [Page 5]
RFC 8356 Experimental Codepoints for PECP March 2018
Based on feedback from the PCE WG, it was decided to allocate an Experimental codepoint range only in the message, object, and TLV sub-registries. The justification for this decision is that, if an experiment finds that it wants to use a new codepoint in another PCEP sub-registry, it can implement the same function using a new experimental object or TLV instead.
The authors would like to thank Ramon Casellas, Jeff Tantsura, Julien Meuric, Lou Berger, Michael Shroff, and Andrew Dolganow for their feedback and suggestions.
We would like to thank Jonathan Hardwick for shepherding this document and providing comments with text suggestions.
Thanks to Brian Carpenter for the GENART review. Thanks to Ben Niven-Jenkins and Scott Bradner for RTGDIR and OPSDIR reviews respectively.
Dhruv Dhody Huawei Technologies Divyashree Techno Park, Whitefield Bangalore, Karnataka 560066 India