Updated Rules for Processing Stateful PCE Request Parameters FlagsOld Dog Consultingadrian@olddog.co.uk
Routing
PCEPCEPPath Computation ElementStateful PCEFlagsExtensions to the Path Computation Element Communication Protocol
(PCEP) to support stateful Path Computation Elements (PCEs) are defined
in RFC 8231. One of the extensions is the Stateful PCE Request
Parameters (SRP) object. That object includes a Flags field that is a
set of 32 bit flags, and RFC 8281 defines an IANA registry for tracking
assigned flags. However, RFC 8231 does not explain how an
implementation should set unassigned flags in transmitted messages, nor
how an implementation should process unassigned, unknown, or unsupported
flags in received messages.This document updates RFC 8231 by defining the correct behaviors.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
.
Copyright Notice
Copyright (c) 2020 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
() 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
. Introduction
. Requirements Language
. Updated Procedures
. Advice for Specification of New Flags
. Flags Field of the SRP Object
. Compatibility Considerations
. Management Considerations
. Security Considerations
. IANA Considerations
. References
. Normative References
. Informative References
Acknowledgements
Author's Address
Introduction describes the Path
Computation Element Communication Protocol (PCEP). PCEP defines the
communication between a Path Computation Client (PCC) and a Path
Computation Element (PCE), or between PCEs, enabling computation of
Multiprotocol Label Switching (MPLS) for Traffic Engineering Label
Switched Path (TE LSP) characteristics. specifies a set of
extensions to PCEP to enable stateful control of LSPs within and across
PCEP sessions in compliance with . It includes mechanisms to effect Label Switched
Path (LSP) State Synchronization between PCCs and PCEs, delegation of
control over LSPs to PCEs, and PCE control of timing and sequence of
path computations within and across PCEP sessions.One of the extensions defined in is the Stateful PCE Request Parameters (SRP) object.
That object includes a Flags field that is a set of 32 bit flags, and
RFC 8281 defines an IANA registry for tracking assigned
flags. However, RFC 8231 does not explain how an
implementation should set unassigned flags in transmitted messages, nor
how an implementation should process unassigned or unknown flags in
received messages.Furthermore, gives no
guidance to the authors of future specifications about how to describe
the interaction between flags that have already been defined and flags
being defined in the new specifications.This document updates RFC 8231 by defining the correct behaviors.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 when, and only when, they appear in all capitals,
as shown here.
Updated ProceduresAdvice for Specification of New Flags introduces
changes to existing PCEP objects and defines new PCEP objects and TLVs
in support of stateful PCE functionality. That text does not advise
future specifications on how to describe the interaction between flags
that may be defined.The text in
is updated to read as follows:
The PCEP objects defined in this document are compliant with the
PCEP object format defined in . The P and I flags of the PCEP objects defined
in the current document MUST be set to 0 on
transmission and SHOULD be ignored on receipt since
they are exclusively related to path computation requests.
The sections that follow define PCEP objects and TLVs that
contain Flags fields, and some flag values are defined. Future
specifications may define further flags, and each new specification
that defines additional flags is expected to describe the
interaction between these new flags and any existing flags. In
particular, new specifications are expected to explain how to handle
the cases when both new and pre-existing flags are set.
Flags Field of the SRP Object defines the PCEP SRP object. It describes
the Flags field as:
Flags (32 bits): None defined yet.
This document updates that text as follows:
Flags (32 bits): This document does not define any flags. Unassigned flags
MUST be set to zero on transmission and MUST be ignored on receipt.
Implementations that do not understand any particular flag MUST ignore the
flag.
Compatibility ConsiderationsWhile one of the main objectives of the changes made by this document
is to enable backward compatibility, there remains an issue of
compatibility between existing implementations of RFC 8231 and
implementations that are consistent with this document.It should be noted that common behavior for Flags fields is as
described by the updated text presented in . Thus, many implementations, lacking guidance from
RFC 8231, will still have implemented a consistent and future-proof
approach. However, for completeness, it is worth noting how behaviors
might interact between implementations.SRP objects generated by an implementation of this document will set
all unknown flag bits to zero and will therefore cause no issues to an
older implementation even if it inspects those bits. Similarly, an
implementation of this document will not inspect any unknown flag bits
and will therefore be unaffected by older implementations no matter how
they set the flags.There will remain an issue with compatibility between implementations
and how they set the flags. An implementation of RFC 8231 might set any
of the unassigned flags, but an implementation of a future or current
specification (such as or
) assigns specific meanings to
a flag if set. That problem cannot be fixed in old implementations by
any amount of documentation and can only be handled for future
specifications by obsoleting the Flags field and using a new technique.
Fortunately, however, most implementations will have been constructed to
set unused flags to zero, which is consistent with the behavior
described in this document, and so the risk of bad interactions is
sufficiently small that there is no need to obsolete the existing Flags
field.Management ConsiderationsImplementations receiving set SRP flags that they do not recognize MAY log this. That could
be helpful for diagnosing backward compatibility issues with future features that utilize those
flags.Security Considerations sets out security considerations for PCEP when used for communication
with a stateful PCE. This document does not change those considerations.However, by defining the expected behavior of implementations, this
document may improve the stability of networks and thus reduce the
attack surface. That is, by reminding implementations to ignore unset
bits, it is less possible to attack them by randomly tweaking bits.
Furthermore, by reminding implementations to leave undefined bits unset,
the network is future-proofed against new definitions of previously
undefined bits.IANA ConsiderationsIANA maintains a registry called the "Path Computation Element
Protocol (PCEP) Numbers" registry with a subregistry called "SRP Object
Flag Field". IANA has updated the reference for that
subregistry to list this document in addition to
.ReferencesNormative ReferencesKey words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.Ambiguity of Uppercase vs Lowercase in RFC 2119 Key WordsRFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCEThe Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.Although PCEP explicitly makes no assumptions regarding the information available to the PCE, it also makes no provisions for PCE control of timing and sequence of path computations within and across PCEP sessions. This document describes a set of extensions to PCEP to enable stateful control of MPLS-TE and GMPLS Label Switched Paths (LSPs) via PCEP.Path Computation Element Communication Protocol (PCEP) Extensions for PCE-Initiated LSP Setup in a Stateful PCE ModelThe Path Computation Element Communication Protocol (PCEP) provides mechanisms for Path Computation Elements (PCEs) to perform path computations in response to Path Computation Client (PCC) requests.The extensions for stateful PCE provide active control of Multiprotocol Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE LSPs) via PCEP, for a model where the PCC delegates control over one or more locally configured LSPs to the PCE. This document describes the creation and deletion of PCE-initiated LSPs under the stateful PCE model.Informative ReferencesPath Computation Element (PCE) Communication Protocol Generic RequirementsThe PCE model is described in the "PCE Architecture" document and facilitates path computation requests from Path Computation Clients (PCCs) to Path Computation Elements (PCEs). This document specifies generic requirements for a communication protocol between PCCs and PCEs, and also between PCEs where cooperation between PCEs is desirable. Subsequent documents will specify application-specific requirements for the PCE communication protocol. This memo provides information for the Internet community.Path Computation Element (PCE) Communication Protocol (PCEP)This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]Ability for a Stateful Path Computation Element (PCE) to Request and Obtain Control of a Label Switched Path (LSP)A stateful Path Computation Element (PCE) retains information about the placement of Multiprotocol Label Switching (MPLS) Traffic Engineering Label Switched Paths (TE LSPs). When a PCE has stateful control over LSPs, it may send indications to LSP head-ends to modify the attributes (especially the paths) of the LSPs. A Path Computation Client (PCC) that has set up LSPs under local configuration may delegate control of those LSPs to a stateful PCE.There are use cases in which a stateful PCE may wish to obtain control of locally configured LSPs that it is aware of but have not been delegated to the PCE.This document describes an extension to the Path Computation Element Communication Protocol (PCEP) to enable a PCE to make requests for such control.AcknowledgementsThanks to the authors of
for exposing the need for this work. Thanks to and for discussing the
solution. Additional thanks to for his Shepherd's review. Thanks to and for
helpful comments during IESG review.Author's AddressOld Dog Consultingadrian@olddog.co.uk