Updated Rules for Processing Stateful PCE Request Parameters Flags
Old Dog Consulting
adrian@olddog.co.uk
Routing
PCE
PCEP
Path Computation Element
Stateful PCE
Flags
Extensions 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.
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 Procedures
Advice 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 Considerations
While 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 Considerations
Implementations 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 Considerations
IANA 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
.
References
Normative References
Informative References
Acknowledgements
Thanks 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.