Network Working Group

Internet Engineering Task Force (IETF)                          A. Stone
Internet-Draft
Request for Comments: 9488                                   M. Aissaoui
Updates: 5440 (if approved)                                                      Nokia
Intended status:
Category: Standards Track                                       S. Sidor
Expires: 25 December 2023
ISSN: 2070-1721                                      Cisco Systems, Inc.
                                                            S. Sivabalan
                                                       Ciena Coroporation
                                                            23 June Corporation
                                                            October 2023

      Local Protection Enforcement in PCEP
             draft-ietf-pce-local-protection-enforcement-11 the Path Computation Element
                     Communication Protocol (PCEP)

Abstract

   This document updates RFC5440 RFC 5440 to clarify usage of the local
   protection desired Local
   Protection Desired bit signalled signaled in the Path Computation Element
   Communication Protocol (PCEP).  This document also introduces a new
   flag for
   signalling signaling protection strictness enforcement in PCEP.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list  It represents the consensus of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid the IETF community.  It has
   received public review and has been approved for a maximum 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 six months this document, any errata,
   and how to provide feedback on it may be updated, replaced, or obsoleted by other documents obtained at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 25 December 2023.
   https://www.rfc-editor.org/info/rfc9488.

Copyright Notice

   Copyright (c) 2023 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)
   (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 Revised BSD License text as described in Section 4.e of the
   Trust Legal Provisions and are provided without warranty as described
   in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Motivation  . . . . . . . . . . . . . . . . . . . . . . . . .   4
     4.1.  Implementation differences  . . . . . . . . . . . . . . .   4 Differences
     4.2.  SLA Enforcement . . . . . . . . . . . . . . . . . . . . .   4
   5.  Protection Enforcement Flag (E flag)  . . . . . . . . . . . .   5 Flag)
     5.1.  Backwards Compatibility . . . . . . . . . . . . . . . . .   7
   6.  Implementation Status . . . . . . . . . . . . . . . . . . . .   8
     6.1.  Nokia Implementation  . . . . . . . . . . . . . . . . . .   8
     6.2.  Cisco Implementation  . . . . . . . . . . . . . . . . . .   9
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
   8.
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   9
   9.
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  10
     9.1.
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  10
     9.2.
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  11
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  11
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  11

1.  Introduction

   The Path Computation Element (PCE) Communication Protocol (PCEP) [RFC5440]
   enables the communication between a Path Computation Client (PCC) and
   a PCE, PCE or between two PCEs based on the PCE architecture [RFC4655].

   PCEP [RFC5440] utilizes flags, values values, and concepts previously
   defined in RSVP-TE Extensions [RFC3209] and Fast Reroute Extensions
   to RSVP-
   TE RSVP-TE [RFC4090].  One such concept in PCEP is the 'Local Local
   Protection
   Desired' (L Desired (L) flag in the LSPA Object LSP Attributes (LSPA) object in [RFC5440]),
   [RFC5440], which was originally defined in the SESSION-ATTRIBUTE Object Session Attribute
   object in RFC3209. [RFC3209].  In RSVP, this flag signals to downstream
   routers that they may use a local repair mechanism.  The headend
   router calculating the path does not know whether if a downstream router will
   or will not protect a hop during its calculation.  Therefore, a local protection desired the L
   flag does not require the transit router to satisfy protection in
   order to establish the RSVP signalled RSVP-signaled path.  This flag is signalled signaled in
   PCEP as an attribute of the LSP Label Switched Path (LSP) via the LSP Attributes LSPA
   object.

   PCEP Extensions for Segment Routing ([RFC8664]) [RFC8664] extends support in PCEP
   for Segment Routed Routing paths.  The path list is encoded with Segment
   Identifiers,
   Identifiers (SIDs), each of which might offer local protection.  The
   PCE may discover the protection eligibility for a Segment Identifier (SID) SID via BGP-LS the Border
   Gateway Protocol - Link State (BGP-LS) [RFC9085] and take the
   protection into consideration as a path constraint.

   It is desirable for an operator to be able to define the enforcement,
   or strictness enforcement
   of the protection requirement.

   This document updates [RFC5440] by further describing the behaviour
   with behavior of
   the Local Protection Desired Flag (L flag) (L) flag and extends on it with the
   introduction of the Protection Enforcement Flag (E flag). (E) flag.

   The document contains reference notes for descriptions in the context of Segment Routing, however Routing;
   however, the content described is agnostic in regard to path setup
   type and data plane technology
   agnostic. technology.

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

3.  Terminology

   This document uses the following terminology:

   PROTECTION MANDATORY:  The Path path MUST have protection eligibility on
      all links.

   UNPROTECTED MANDATORY:  The Path path MUST NOT have protection eligibility
      on all links.

   PROTECTION PREFERRED:  The Path path should have protection eligibility on
      all links but might contain links which that do not have protection
      eligibility.

   UNPROTECTED PREFERRED:  The Path path should not have protection
      eligibility on all links but might contain links which that have
      protection eligibility.

   PCC:  Path Computation Client.  Any client application requesting a
      path computation to be performed by a Path Computation Element.

   PCE:  Path Computation Element.  An entity (component, application,
      or network node) that is capable of computing a network path or
      route based on a network graph and applying computational
      constraints.

   PCEP:  Path Computation Element Protocol. Communication Protocol

   LSPA:  LSP Attributes Object in PCEP, defined in RFC5440 object [RFC5440]

4.  Motivation

4.1.  Implementation differences Differences

   As defined in [RFC5440] [RFC5440], the mechanism to signal protection
   enforcement in PCEP is the previously mentioned L flag defined in the
   LSPA Object. object.  The name of the flag uses the term "Desired", which by
   definition means "strongly wished for or intended" and the intended".  The use case for
   this flag originated from the in RSVP.  For RSVP signalled RSVP-signaled paths, local
   protection is not within control of the PCE.  However, [RFC5440] does
   state
   "When that "[w]hen set, this means that the computed path must
   include links protected with Fast Reroute as defined in [RFC4090]."
   Implementations of that use PCEP [RFC5440] have either interpreted the L flag
   as either PROTECTION MANDATORY or PROTECTION PREFERRED, leading to
   operational differences.

4.2.  SLA Enforcement

   The boolean bit L flag is a boolean bit and thus unable to distinguish between
   the different options of PROTECTION MANDATORY, UNPROTECTED MANDATORY,
   PROTECTION
   PREFERRED PREFERRED, and UNPROTECTED PREFERRED.  Selecting one of the
   these options is typically dependent on the service level agreement Service Level Agreement
   (SLA) the operator wishes to impose on the LSP.  A network may be
   providing transit to multiple service agreement SLA definitions against the same base
   topology network, whose behavior could vary, such as wanting local
   protection to be invoked on some LSPs and not wanting local
   protection on others.  When enforcement is used, the resulting
   shortest path calculation is impacted.

   For example, PROTECTION MANDATORY is for use cases where in which an
   operator may need the LSP to follow a path which that has local protection
   provided along the full path, ensuring that traffic will be fast
   rerouted at the point if there is a failure anywhere along the path that traffic will be fast re-routed at the point.

   For path.

   As another example, UNPROTECTED MANDATORY is when for use cases in which
   an operator may intentionally prefer an LSP to not be locally protected,
   protected and thus would rather local failures cause the LSP to go
   down.  An example scenario is one where an LSP is protected with path protection via a
   secondary diverse LSP.  Each LSP is traffic engineered to follow
   specific traffic engineered traffic-engineered criteria computed by the PCE to satisfy
   the SLA.  Upon a failure, if local protection is invoked on the
   active LSP traffic, the traffic may temporarily traverse links which that
   violate the TE requirements and could negatively impact the resources
   being traversed (e.g., insufficient bandwidth).  In addition,
   depending on the network topological scenario, it may be not be feasible
   for the PCE to reroute the LSP while respecting the TE requirements requirements,
   which include path diversity, resulting diversity; this results in the LSP being torn down
   and switched to the protected path anyways.  In such scenarios its scenarios, it is
   desirable for the LSP to be simply torn down immediately and not re-routed
   rerouted through local protection, so that traffic may be forwarded
   through an already
   established already-established traffic-engineered secondary path.

   Both the UNPROTECTED PREFERRED and PROTECTED PREFERRED options
   provide a relaxation of the protection constraint.  These options can
   be used when an operator does not require protection enforcement.
   Regardless of the option selected, the protection status of a
   resource does not influence whether the link must be pruned during a
   path calculation.  Furthermore, the selection of either option
   indicates a priority selection to the PCE when there is an option to
   choose a protected or unprotected instruction associated with a
   resource, ensuring consistent PCE behavior across different
   implementations.

   When used with Segment Routing, an adjacency may have both a
   protected SID and an unprotected SID.  If the UNPROTECTED PREFERRED
   option is selected, the PCE chooses the unprotected SID.
   Alternatively, if the PROTECTED PREFERRED option is selected, the PCE
   chooses the protected SID SID.

5.  Protection Enforcement Flag (E flag) Flag)

   Section 7.11 in Path Computation Element Protocol of [RFC5440] describes the encoding of the Local
   Protection Desired (L flag).  A (L) flag.  The Protection Enforcement flag "E" is specified below, extending (E) flag,
   which extends the L flag.

   [RFC Editor Note: The text below assumes the E bit remains the early
   allocation value 6.  Please adjust if this changes and remove this
   note before publication.]
   Codespace of the Flag field (LSPA Object) flag, is specified below.

   +=====+==========================+===========+
   | Bit | Description              | Reference |
   +=====+==========================+===========+
   | 6   | Protection Enforcement   | RFC 9488  |
   +-----+--------------------------+-----------+
   | 7   | Local Protection Desired             RFC5440

         6    Local Protection Enforcement        This document | RFC 5440  |
   +-----+--------------------------+-----------+

     Table 1: Codespace of the Flag Field (LSPA
                      Object)

   The following shows the format of the LSPA Object object as defined in
   [RFC5440] is: with the addition of the E flag defined in this document:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Exclude-any                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Include-any                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                       Include-all                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Setup Prio   |  Holding Prio |     Flags |E|L|   Reserved    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      //                     Optional TLVs                           //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Flags (8 bits)

   * bits):
      L Flag: As (Local Protection Desired):  This flag is defined in [RFC5440]
         and further updated by this document.  When set to 1,
         protection is desired.  When set to 0, protection is not
         desired.  The enforcement of the protection is identified via
         the E flag.

   *

      E Flag (Protection Enforcement):  This flag controls the strictness
      in
         with which the PCE must apply the L flag.  When set to 1, the
         value of the L flag needs to be respected during resource
         selection by the PCE.  When the E flag is set to 0, an attempt
         to respect the value of the L flag is made; however, the PCE
         could relax or ignore the L flag when computing a path.  The
         statements below indicate preference when the E flag is set to
         0 in combination with the L flag value.

   When both the L flag and E flag are set to 1, then the PCE MUST
   consider the protection eligibility as a PROTECTION MANDATORY
   constraint.

   When the L flag is set to 1 and the E flag is set to 0, then the PCE
   MUST consider the protection eligibility as a PROTECTION PREFERRED
   constraint.

   When both the L flag and E flag are set to 0, then the PCE SHOULD
   consider the protection eligibility as an UNPROTECTED PREFERRED
   constraint but MAY consider the protection eligibility as an
   UNPROTECTED MANDATORY constraint.  An example of when the latter
   behavior might be chosen is if the PCE has some means (outside the
   scope of this document) to detect that it is interacting with a
   legacy PCC that expects the legacy behavior.

   When the L flag is set to 0 and the E flag is set to 1, then the PCE
   MUST consider the protection eligibility as an UNPROTECTED MANDATORY
   constraint.

   If a PCE is unable to infer the protection status of a resource, the
   PCE MAY use local policy to define protected status assumptions.
   When computing a Segment Routed Routing path, It it is RECOMMENDED that a PCE
   assume a Node SID is protected.  It is also RECOMMENDED that a PCE
   assume an Adjacency SID is protected if the backup flag advertised
   with the Adjacency SID is set.

5.1.  Backwards Compatibility

   Considerations

   This section outlines considerations for the E flag bit in the
   message passing between the PCC and the PCE for
   the E flag bit which that are not supported by
   the entity are outlined in
   this section, with entity.  The requirements for the PCE and the PCC implementing
   this document are described at the end.

   For a PCC or PCE which that does not yet support this document, the E flag
   is ignored and set to zero 0 in PCRpt and/or PCUpd messages as per
   [RFC5440] for PCC-initiated LSPs or as per [RFC8281] for PCE-initiated PCE-
   initiated LSPs.  It is important to note that [RFC8231] and [RFC8281]
   permit the LSP
   Attribute Object LSPA object [RFC5440] to be included in PCUpd messages for
   PCC-initiated and PCE-initiated LSPs.

   For PCC-initiated LSPs, PCUpd the E flag (and L flag) in a PCUpd message is
   an echo from the previous PCRpt however message; however, the bit value is
   ignored on the PCE from the previous PCRpt, therefore PCRpt message, so the E flag
   value set in the PCUpd message is zero. 0.  A PCE which that does not support
   this document sends PCUpd messages with the E flag set to 0 for PCC-initated PCC-
   initiated LSPs even if set to 1 in the prior PCReq or PCRpt. PCRpt message.

   A PCC which that does not support this document sends PCRpt messages with
   the E flag set to 0 for PCE-initiated LSPs even if set to 1 in the
   prior PCInitiate or PCUpd. PCUpd message.

   For a PCC which that does support this document, it MAY set the E flag MAY be set to 1
   depending on local configuration.  If communicating with a PCE
   which that
   does not yet support this document, the PCE follows the
   behaviour behavior
   specified in [RFC5440] and will ignore ignores the E flag.  Thus, a computed path
   might not respect the enforcement constraint.

   For PCC-initiated LSPs, the PCC SHOULD ignore the E flag value
   received from the PCE in a PCUpd message as it may be communicating
   with a PCE which that does not support this document.

   For PCE-initiated LSPs, the PCC MAY process the E flag value received
   from the PCE in a PCUpd message.  The PCE SHOULD ignore the E flag
   value received from the PCC in a PCRpt message as it may be
   communicating with a PCC which that does not support this document.

7.

6.  Security Considerations

   This document clarifies the behaviour behavior of an existing flag and
   introduces a new flag to provide further control of that existing
   behaviour.
   behavior.  The introduction of this new flag and behaviour the behavior
   clarification does do not create any new sensitive information.  No
   additional security measure is required.

   Securing the PCEP session using Transport Layer Security (TLS)
   [RFC8253], as per the recommendations and best current practices in
   [RFC9325]
   [RFC9325], is RECOMMENDED.

8.

7.  IANA Considerations

   [RFC Editor Note: The text below assumes the E bit remains the early
   allocation value 6.  Please adjust if this changes and remove this
   note before publication.]

   This document defines a new bit value in the sub-registry subregistry "LSPA Object
   Flag Field" in the "Path Computation Element Protocol (PCEP) Numbers"
   registry.  IANA has made the following codepoint allocation.

   +=====+========================+===========+
   | Bit    Name | Description            | Reference |
   +=====+========================+===========+
   | 6   | Protection Enforcement       This document

9. | RFC 9488  |
   +-----+------------------------+-----------+

      Table 2: Addition to LSPA Object Flag
                  Field Registry

8.  References

9.1.

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

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

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
              Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
              <https://www.rfc-editor.org/info/rfc3209>.

   [RFC4090]  Pan, P., Ed., Swallow, G., Ed., and A. Atlas, Ed., "Fast
              Reroute Extensions to RSVP-TE for LSP Tunnels", RFC 4090,
              DOI 10.17487/RFC4090, May 2005,
              <https://www.rfc-editor.org/info/rfc4090>.

   [RFC8253]  Lopez, D., Gonzalez de Dios, O., Wu, Q.,

   [RFC5440]  Vasseur, JP., Ed. and D. Dhody,
              "PCEPS: Usage of TLS to Provide a Secure Transport for the
              Path JL. Le Roux, Ed., "Path Computation
              Element (PCE) Communication Protocol (PCEP)", RFC 8253, 5440,
              DOI 10.17487/RFC8253, October 10.17487/RFC5440, March 2009,
              <https://www.rfc-editor.org/info/rfc5440>.

   [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/rfc8253>. <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>.

   [RFC8253]  Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody,
              "PCEPS: Usage of TLS to Provide a Secure Transport for the
              Path Computation Element Communication Protocol (PCEP)",
              RFC 8253, DOI 10.17487/RFC8253, October 2017,
              <https://www.rfc-editor.org/info/rfc8253>.

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

   [RFC9325]  Sheffer, Y., Saint-Andre, P., and T. Fossati,
              "Recommendations for Secure Use of Transport Layer
              Security (TLS) and Datagram Transport Layer Security
              (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November
              2022, <https://www.rfc-editor.org/info/rfc9325>.

9.2.

8.2.  Informative References

   [RFC4655]  Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
              Computation Element (PCE)-Based Architecture", RFC 4655,
              DOI 10.17487/RFC4655, August 2006,
              <https://www.rfc-editor.org/info/rfc4655>.

   [RFC8664]  Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
              and J. Hardwick, "Path Computation Element Communication
              Protocol (PCEP) Extensions for Segment Routing", RFC 8664,
              DOI 10.17487/RFC8664, December 2019,
              <https://www.rfc-editor.org/info/rfc8664>.

   [RFC9085]  Previdi, S., Talaulikar, K., Ed., Filsfils, C., Gredler,
              H., and M. Chen, "Border Gateway Protocol - Link State
              (BGP-LS) Extensions for Segment Routing", RFC 9085,
              DOI 10.17487/RFC9085, August 2021,
              <https://www.rfc-editor.org/info/rfc9085>.

Acknowledgements

   Thanks to Dhruv Dhody, Mike Koldychev, and John Scudder for reviewing
   and providing very valuable feedback and discussions on this
   document.

   Thanks to Julien Meuric for shepherding this document.

Authors' Addresses

   Andrew Stone
   Nokia
   600 March Road
   Kanata Ontario K2K 2T6
   Canada
   Email: andrew.stone@nokia.com

   Mustapha Aissaoui
   Nokia
   600 March Road
   Kanata Ontario K2K 2T6
   Canada
   Email: mustapha.aissaoui@nokia.com

   Samuel Sidor
   Cisco Systems, Inc.
   Eurovea Central 3. 3
   Pribinova 10
   811 09 Bratislava
   Slovakia
   Email: ssidor@cisco.com

   Siva Sivabalan
   Ciena Coroporation Corporation
   385 Terry Fox Drive
   Kanata Ontario K2K 0L1
   Canada
   Email: ssivabal@ciena.com