Difference between revisions of "RFC8786"

From RFC-Wiki
(Created page with " Internet Engineering Task Force (IETF) A. Farrel Request for Comments: 8786 Old Dog Consulting Updates: 8231...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 

 

 
 
  
 
Internet Engineering Task Force (IETF)                        A. Farrel
 
Internet Engineering Task Force (IETF)                        A. Farrel
Line 9: Line 7:
 
ISSN: 2070-1721
 
ISSN: 2070-1721
  
 +
Updated Rules for Processing Stateful PCE Request Parameters Flags
  
  Updated Rules for Processing Stateful PCE Request Parameters Flags
+
'''Abstract'''
  
Abstract
+
Extensions to the Path Computation Element Communication Protocol
 +
(PCEP) to support stateful Path Computation Elements (PCEs) are
 +
defined in [[RFC8231|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 [[RFC8281|RFC 8281]] defines an IANA registry
 +
for tracking assigned flags.  However, [[RFC8231|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.
  
  Extensions to the Path Computation Element Communication Protocol
+
This document updates [[RFC8231|RFC 8231]] by defining the correct behaviors.
  (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'''
  
Status of This Memo
+
This is an Internet Standards Track document.
  
  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 [[RFC7841|RFC 7841]].
  
  This document is a product of the Internet Engineering Task Force
+
Information about the current status of this document, any errata,
  (IETF).  It represents the consensus of the IETF community.  It has
+
and how to provide feedback on it may be obtained at
  received public review and has been approved for publication by the
+
https://www.rfc-editor.org/info/rfc8786.
  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,
+
'''Copyright Notice'''
  and how to provide feedback on it may be obtained at
 
  https://www.rfc-editor.org/info/rfc8786.
 
  
Copyright Notice
+
Copyright (c) 2020 IETF Trust and the persons identified as the
 +
document authors.  All rights reserved.
  
  Copyright (c) 2020 IETF Trust and the persons identified as the
+
This document is subject to [[BCP78|BCP 78]] and the IETF Trust's Legal
  document authorsAll rights reserved.
+
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 is subject to BCP 78 and the IETF Trust's Legal
+
1.  Introduction
  Provisions Relating to IETF Documents
+
2.  Requirements Language
  (https://trustee.ietf.org/license-info) in effect on the date of
+
3.  Updated Procedures
  publication of this documentPlease review these documents
+
  3.1. Advice for Specification of New Flags
  carefully, as they describe your rights and restrictions with respect
+
  3.2.  Flags Field of the SRP Object
  to this documentCode Components extracted from this document must
+
4Compatibility Considerations
  include Simplified BSD License text as described in Section 4.e of
+
5.  Management Considerations
  the Trust Legal Provisions and are provided without warranty as
+
6Security Considerations
  described in the Simplified BSD License.
+
7.  IANA Considerations
 +
8. References
 +
  8.1.  Normative References
 +
  8.2. Informative References
 +
Acknowledgements
 +
Author's Address
  
Table of Contents
+
== Introduction ==
  
  1.  Introduction
+
[[RFC5440]] describes the Path Computation Element Communication
  2Requirements Language
+
Protocol (PCEP)PCEP defines the communication between a Path
  3.  Updated Procedures
+
Computation Client (PCC) and a Path Computation Element (PCE), or
    3.1.  Advice for Specification of New Flags
+
between PCEs, enabling computation of Multiprotocol Label Switching
    3.2.  Flags Field of the SRP Object
+
(MPLS) for Traffic Engineering Label Switched Path (TE LSP)
  4.  Compatibility Considerations
+
characteristics.
  5. Management Considerations
 
  6.  Security Considerations
 
  7.  IANA Considerations
 
  8.  References
 
    8.1.  Normative References
 
    8.2.  Informative References
 
  Acknowledgements
 
  Author's Address
 
  
1Introduction
+
[[RFC8231]] specifies a set of extensions to PCEP to enable stateful
 +
control of LSPs within and across PCEP sessions in compliance with
 +
[[RFC4657]]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.
  
  [RFC5440] describes the Path Computation Element Communication
+
One of the extensions defined in [[RFC8231]] is the Stateful PCE
  Protocol (PCEP).  PCEP defines the communication between a Path
+
Request Parameters (SRP) objectThat object includes a Flags field
  Computation Client (PCC) and a Path Computation Element (PCE), or
+
that is a set of 32 bit flags, and [[RFC8281|RFC 8281]] defines an IANA registry
  between PCEs, enabling computation of Multiprotocol Label Switching
+
for tracking assigned flags.  However, [[RFC8231|RFC 8231]] does not explain how
  (MPLS) for Traffic Engineering Label Switched Path (TE LSP)
+
an implementation should set unassigned flags in transmitted
  characteristics.
+
messages, nor how an implementation should process unassigned or
 +
unknown flags in received messages.
  
  [RFC8231] specifies a set of extensions to PCEP to enable stateful
+
Furthermore, [[RFC8231]] gives no guidance to the authors of future
  control of LSPs within and across PCEP sessions in compliance with
+
specifications about how to describe the interaction between flags
  [RFC4657].  It includes mechanisms to effect Label Switched Path
+
that have already been defined and flags being defined in the new
  (LSP) State Synchronization between PCCs and PCEs, delegation of
+
specifications.
  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 [RFC8231] is the Stateful PCE
+
This document updates [[RFC8231|RFC 8231]] by defining the correct behaviors.
  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, [RFC8231] gives no guidance to the authors of future
+
== Requirements Language ==
  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.
+
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
 +
[[BCP14|BCP 14]] [[RFC2119]] [[RFC8174]] when, and only when, they appear in all
 +
capitals, as shown here.
  
2.  Requirements Language
+
== Updated Procedures ==
  
  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+
=== Advice for Specification of New Flags ===
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
 
  "OPTIONAL" in this document are to be interpreted as described in
 
  BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
 
  capitals, as shown here.
 
  
3Updated Procedures
+
Section 7 of [[RFC8231]] introduces changes to existing PCEP objects
 +
and defines new PCEP objects and TLVs in support of stateful PCE
 +
functionalityThat text does not advise future specifications on
 +
how to describe the interaction between flags that may be defined.
  
3.1.  Advice for Specification of New Flags
+
The text in Section 7 of [[RFC8231]] is updated to read as follows:
  
   Section 7 of [RFC8231] introduces changes to existing PCEP objects
+
   The PCEP objects defined in this document are compliant with the
   and defines new PCEP objects and TLVs in support of stateful PCE
+
   PCEP object format defined in [[RFC5440]].  The P and I flags of the
   functionality.  That text does not advise future specifications on
+
  PCEP objects defined in the current document MUST be set to 0 on
   how to describe the interaction between flags that may be defined.
+
   transmission and SHOULD be ignored on receipt since they are
 +
   exclusively related to path computation requests.
  
   The text in Section 7 of [RFC8231] is updated to read as follows:
+
   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.
  
      The PCEP objects defined in this document are compliant with the
+
=== Flags Field of the SRP Object ===
      PCEP object format defined in [RFC5440].  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
+
Section 7.2 of [[RFC8231]] defines the PCEP SRP objectIt describes
      Flags fields, and some flag values are defined. Future
+
the Flags field as:
      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
 
      flagsIn particular, new specifications are expected to explain
 
      how to handle the cases when both new and pre-existing flags are
 
      set.
 
  
3.2.  Flags Field of the SRP Object
+
  Flags (32 bits): None defined yet.
  
  Section 7.2 of [RFC8231] defines the PCEP SRP object.  It describes
+
This document updates that text as follows:
  the Flags field as:
 
  
      Flags (32 bits): None defined yet.
+
  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.
  
  This document updates that text as follows:
+
== Compatibility Considerations ==
  
      Flags (32 bits): This document does not define any flags.
+
While one of the main objectives of the changes made by this document
      Unassigned flags MUST be set to zero on transmission and MUST be
+
is to enable backward compatibility, there remains an issue of
      ignored on receipt.  Implementations that do not understand any
+
compatibility between existing implementations of [[RFC8231|RFC 8231]] and
      particular flag MUST ignore the flag.
+
implementations that are consistent with this document.
  
4Compatibility Considerations
+
It should be noted that common behavior for Flags fields is as
 +
described by the updated text presented in Section 3Thus, many
 +
implementations, lacking guidance from [[RFC8231|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.
  
  While one of the main objectives of the changes made by this document
+
SRP objects generated by an implementation of this document will set
  is to enable backward compatibility, there remains an issue of
+
all unknown flag bits to zero and will therefore cause no issues to
  compatibility between existing implementations of RFC 8231 and
+
an older implementation even if it inspects those bits.  Similarly,
  implementations that are consistent with this document.
+
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.
  
  It should be noted that common behavior for Flags fields is as
+
There will remain an issue with compatibility between implementations
  described by the updated text presented in Section 3Thus, many
+
and how they set the flagsAn implementation of [[RFC8231|RFC 8231]] might set
  implementations, lacking guidance from RFC 8231, will still have
+
any of the unassigned flags, but an implementation of a future or
  implemented a consistent and future-proof approachHowever, for
+
current specification (such as [[RFC8281]] or [[RFC8741]]) assigns
  completeness, it is worth noting how behaviors might interact between
+
specific meanings to a flag if set.  That problem cannot be fixed in
  implementations.
+
old implementations by any amount of documentation and can only be
 +
handled for future specifications by obsoleting the Flags field and
 +
using a new techniqueFortunately, 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.
  
  SRP objects generated by an implementation of this document will set
+
== Management Considerations ==
  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
+
Implementations receiving set SRP flags that they do not recognize
  and how they set the flags.  An implementation of RFC 8231 might set
+
MAY log this.  That could be helpful for diagnosing backward
  any of the unassigned flags, but an implementation of a future or
+
compatibility issues with future features that utilize those flags.
  current specification (such as [RFC8281] or [RFC8741]) 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.
 
  
5.  Management Considerations
+
== Security Considerations ==
  
  Implementations receiving set SRP flags that they do not recognize
+
[[RFC8231]] sets out security considerations for PCEP when used for
  MAY log thisThat could be helpful for diagnosing backward
+
communication with a stateful PCEThis document does not change
  compatibility issues with future features that utilize those flags.
+
those considerations.
  
6Security Considerations
+
However, by defining the expected behavior of implementations, this
 +
document may improve the stability of networks and thus reduce the
 +
attack surfaceThat 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.
  
  [RFC8231] sets out security considerations for PCEP when used for
+
== IANA Considerations ==
  communication with a stateful PCE.  This document does not change
 
  those considerations.
 
  
  However, by defining the expected behavior of implementations, this
+
IANA maintains a registry called the "Path Computation Element
  document may improve the stability of networks and thus reduce the
+
Protocol (PCEP) Numbers" registry with a subregistry called "SRP
  attack surfaceThat is, by reminding implementations to ignore
+
Object Flag Field"IANA has updated the reference for that
  unset bits, it is less possible to attack them by randomly tweaking
+
subregistry to list this document in addition to [[RFC8281]].
  bits.  Furthermore, by reminding implementations to leave undefined
 
  bits unset, the network is future-proofed against new definitions of
 
  previously undefined bits.
 
  
7.  IANA Considerations
+
== References ==
  
  IANA maintains a registry called the "Path Computation Element
+
=== Normative References ===
  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 [RFC8281].
 
  
8. References
+
[[RFC2119]]  Bradner, S., "Key words for use in RFCs to Indicate
 +
          Requirement Levels", [[BCP14|BCP 14]], [[RFC2119|RFC 2119]],
 +
          DOI 10.17487/RFC2119, March 1997,
 +
          <https://www.rfc-editor.org/info/rfc2119>.
  
8.1. Normative References
+
[[RFC8174]]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
 +
          2119 Key Words", [[BCP14|BCP 14]], [[RFC8174|RFC 8174]], DOI 10.17487/RFC8174,
 +
          May 2017, <https://www.rfc-editor.org/info/rfc8174>.
  
  [RFC2119Bradner, S., "Key words for use in RFCs to Indicate
+
[[RFC8231]Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
              Requirement Levels", BCP 14, RFC 2119,
+
          Computation Element Communication Protocol (PCEP)
              DOI 10.17487/RFC2119, March 1997,
+
          Extensions for Stateful PCE", [[RFC8231|RFC 8231]],
              <https://www.rfc-editor.org/info/rfc2119>.
+
          DOI 10.17487/RFC8231, September 2017,
 +
          <https://www.rfc-editor.org/info/rfc8231>.
  
  [RFC8174Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+
[[RFC8281]Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+
          Computation Element Communication Protocol (PCEP)
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
          Extensions for PCE-Initiated LSP Setup in a Stateful PCE
 +
          Model", [[RFC8281|RFC 8281]], DOI 10.17487/RFC8281, December 2017,
 +
          <https://www.rfc-editor.org/info/rfc8281>.
  
  [RFC8231]  Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
+
=== Informative References ===
              Computation Element Communication Protocol (PCEP)
 
              Extensions for Stateful PCE", RFC 8231,
 
              DOI 10.17487/RFC8231, September 2017,
 
              <https://www.rfc-editor.org/info/rfc8231>.
 
  
  [RFC8281Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
+
[[RFC4657]Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation
              Computation Element Communication Protocol (PCEP)
+
          Element (PCE) Communication Protocol Generic
              Extensions for PCE-Initiated LSP Setup in a Stateful PCE
+
          Requirements", [[RFC4657|RFC 4657]], DOI 10.17487/RFC4657, September
              Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
+
          2006, <https://www.rfc-editor.org/info/rfc4657>.
              <https://www.rfc-editor.org/info/rfc8281>.
 
  
8.2. Informative References
+
[[RFC5440]]  Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
 +
          Element (PCE) Communication Protocol (PCEP)", [[RFC5440|RFC 5440]],
 +
          DOI 10.17487/RFC5440, March 2009,
 +
          <https://www.rfc-editor.org/info/rfc5440>.
  
  [RFC4657]  Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation
+
[[RFC8741]]  Raghuram, A., Goddard, A., Karthik, J., Sivabalan, S., and
              Element (PCE) Communication Protocol Generic
+
          M. Negi, "Ability for a Stateful Path Computation Element
              Requirements", RFC 4657, DOI 10.17487/RFC4657, September
+
          (PCE) to Request and Obtain Control of a Label Switched
              2006, <https://www.rfc-editor.org/info/rfc4657>.
+
          Path (LSP)", [[RFC8741|RFC 8741]], DOI 10.17487/RFC8741, March 2020,
 
+
          <https://www.rfc-editor.org/info/rfc8741>.
  [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
 
              Element (PCE) Communication Protocol (PCEP)", RFC 5440,
 
              DOI 10.17487/RFC5440, March 2009,
 
              <https://www.rfc-editor.org/info/rfc5440>.
 
 
 
  [RFC8741]  Raghuram, A., Goddard, A., Karthik, J., Sivabalan, S., and
 
              M. Negi, "Ability for a Stateful Path Computation Element
 
              (PCE) to Request and Obtain Control of a Label Switched
 
              Path (LSP)", RFC 8741, DOI 10.17487/RFC8741, March 2020,
 
              <https://www.rfc-editor.org/info/rfc8741>.
 
  
 
Acknowledgements
 
Acknowledgements
  
  Thanks to the authors of [RFC8741] for exposing the need for this
+
Thanks to the authors of [[RFC8741]] for exposing the need for this
  work.  Thanks to Dhruv Dhody and Julien Meuric for discussing the
+
work.  Thanks to Dhruv Dhody and Julien Meuric for discussing the
  solution.  Additional thanks to Hariharan Ananthakrishnan for his
+
solution.  Additional thanks to Hariharan Ananthakrishnan for his
  Shepherd's review.  Thanks to Benjamin Kaduk and Alvaro Retana for
+
Shepherd's review.  Thanks to Benjamin Kaduk and Alvaro Retana for
  helpful comments during IESG review.
+
helpful comments during IESG review.
  
 
Author's Address
 
Author's Address
  
  Adrian Farrel
+
Adrian Farrel
  Old Dog Consulting
+
Old Dog Consulting
 +
 
 +
  
+
[[Category:Standards Track]]

Latest revision as of 11:15, 30 October 2020



Internet Engineering Task Force (IETF) A. Farrel Request for Comments: 8786 Old Dog Consulting Updates: 8231 May 2020 Category: Standards Track ISSN: 2070-1721

Updated Rules for Processing Stateful PCE Request Parameters Flags

Abstract

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.

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 https://www.rfc-editor.org/info/rfc8786.

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 (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.

1. Introduction 2. Requirements Language 3. Updated Procedures

 3.1.  Advice for Specification of New Flags
 3.2.  Flags Field of the SRP Object

4. Compatibility Considerations 5. Management Considerations 6. Security Considerations 7. IANA Considerations 8. References

 8.1.  Normative References
 8.2.  Informative References

Acknowledgements Author's Address

Introduction

RFC5440 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.

RFC8231 specifies a set of extensions to PCEP to enable stateful control of LSPs within and across PCEP sessions in compliance with RFC4657. 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 RFC8231 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, RFC8231 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 RFC2119 RFC8174 when, and only when, they appear in all capitals, as shown here.

Updated Procedures

Advice for Specification of New Flags

Section 7 of RFC8231 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 Section 7 of RFC8231 is updated to read as follows:

  The PCEP objects defined in this document are compliant with the
  PCEP object format defined in RFC5440.  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

Section 7.2 of RFC8231 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 Section 3. 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 RFC8281 or RFC8741) 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

RFC8231 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 RFC8281.

References

Normative References

RFC2119 Bradner, S., "Key words for use in RFCs to Indicate

          Requirement Levels", BCP 14, RFC 2119,
          DOI 10.17487/RFC2119, March 1997,
          <https://www.rfc-editor.org/info/rfc2119>.

RFC8174 Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC

          2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
          May 2017, <https://www.rfc-editor.org/info/rfc8174>.

RFC8231 Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path

          Computation Element Communication Protocol (PCEP)
          Extensions for Stateful PCE", RFC 8231,
          DOI 10.17487/RFC8231, September 2017,
          <https://www.rfc-editor.org/info/rfc8231>.

RFC8281 Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path

          Computation Element Communication Protocol (PCEP)
          Extensions for PCE-Initiated LSP Setup in a Stateful PCE
          Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
          <https://www.rfc-editor.org/info/rfc8281>.

Informative References

RFC4657 Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation

          Element (PCE) Communication Protocol Generic
          Requirements", RFC 4657, DOI 10.17487/RFC4657, September
          2006, <https://www.rfc-editor.org/info/rfc4657>.

RFC5440 Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation

          Element (PCE) Communication Protocol (PCEP)", RFC 5440,
          DOI 10.17487/RFC5440, March 2009,
          <https://www.rfc-editor.org/info/rfc5440>.

RFC8741 Raghuram, A., Goddard, A., Karthik, J., Sivabalan, S., and

          M. Negi, "Ability for a Stateful Path Computation Element
          (PCE) to Request and Obtain Control of a Label Switched
          Path (LSP)", RFC 8741, DOI 10.17487/RFC8741, March 2020,
          <https://www.rfc-editor.org/info/rfc8741>.

Acknowledgements

Thanks to the authors of RFC8741 for exposing the need for this work. Thanks to Dhruv Dhody and Julien Meuric for discussing the solution. Additional thanks to Hariharan Ananthakrishnan for his Shepherd's review. Thanks to Benjamin Kaduk and Alvaro Retana for helpful comments during IESG review.

Author's Address

Adrian Farrel Old Dog Consulting

Email: [email protected]