<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" docName="draft-fizgeer-pcep-bfd-parameters-00" category="std" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="false" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <!-- Generated by id2xml 1.5.0 on 2022-11-23T14:45:11Z -->
	<front>
    <title abbrev="support BFD parameters">PCEP Extensions to support BFD parameters</title>
    <seriesInfo name="Internet-Draft" value="draft-fizgeer-pcep-bfd-parameters-00"/>
    <author initials="O." surname="Bachar" fullname="Orly Bachar">
      <organization>Ribbon Communication</organization>
      <address>
        <postal>
          <street>Hasivim 30, Petah-Tikva</street>
          <street>Israel</street>
        </postal>
      </address>
    </author>
    <author initials="M." surname="Fizgeer" fullname="Marina Fizgeer">
      <organization>Ribbon Communication</organization>
      <address>
        <postal>
          <street>Hasivim 30, Petah-Tikva</street>
        </postal>
      </address>
    </author>
    <date year="2022" month="December" day="16"/>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <t>
   This document proposes extension to PCEP to configure LSP parameters.
   Some of LSP parameters are needed to configure S-BFD for candidate
   paths. Each candidate path is identified in PCEP by its uniquely assigned
   PLSP-ID.  The mechanism proposed in this document is applicable to
   to all path setup types. The need for these definitions first appeared for 
   Segment Routing path setup type, both MPLS and IPv6 data planes of SR.</t>
    </abstract>
    <note>
      <name>Requirements Language</name>
      <t>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 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> 
	  when, and only when, they appear in all capitals, as shown here.
      </t>
    </note>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
	  <t>Path Computation Element (PCE) Communication Protocol (PCEP) <xref target="RFC5440" format="default"/>
enables the communication between a Path Computation Client (PCC) and
a Path Computation Element (PCE), or between two PCEs based on the PCE
architecture <xref target="RFC4655" format="default"/>.</t>

<t>PCEP Extensions for the Stateful PCE Model <xref target="RFC8231" format="default"/> describes a set of
extensions to PCEP to enable active control of Multiprotocol Label
Switching Traffic Engineering (MPLS-TE) and Generalized MPLS (GMPLS)
tunnels. <xref target="RFC8281" format="default"/> describes the setup and teardown of PCE-initiated
LSPs under the active stateful PCE model, without the need for local
configuration on the PCC, thus allowing for dynamic centralized control
 of a network.</t>
 
<t>PCEP Extensions for Segment Routing <xref target="RFC8664" format="default"/> specifies extensions to
the Path Computation Element Protocol (PCEP) that allow a stateful PCE
to compute and initiate Traffic Engineering (TE) paths, as well as a
PCC to request a path subject to certain constraint(s) and optimization
 criteria in SR networks.</t>
 
<t>PCEP Extensions for Establishing Relationships Between Sets of LSPs
<xref target="RFC8697" format="default"/> introduces a generic mechanism to create a grouping of LSPs
which can then be used to define associations between a set of LSPs
and a set of attributes (such as configuration parameters or behaviors)
and is equally applicable to stateful PCE (active and passive modes)
and stateless PCE.</t>

<t>Segment Routing Policy for Traffic Engineering 
 details the concepts of SR Policy and approaches to steering traffic 
 into an SR Policy.
This document specifies PCEP extensions to signal additional information
to configure LSP attributes.
This is accomplished via the use of the existing LSPA object, by
defining a new capability and new TLVs.</t>
    </section>
 <section anchor="sect-2" numbered="true" toc="default">
      <name>Terminology</name>
<t>
 The following terminologies are used in this document:</t>
<ul>
<li>PCC:
Path Computation Client. Any client application requesting a path
computation to be performed by a Path Computation Element.</li>
<li>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.</li>
<li>PCEP:
Path Computation Element Protocol.
PCEP Tunnel:
The entity identified by the PLSP-ID, as per [I-D.koldychev-pce-
operational].</li>
</ul>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>Motivation</name>
	  <t>
S-BFD protocol is used for detecting failures in different tunnels 
path setup types.
There are several protocol parameters that need to be configured
and exchanged between PCEP speakers. As the parameters are associated
to LSPs or tunnels, they are exchanged via PCEP.
The LSPS-BFD-Capability TLV, the LSP-SBFD TLV and its sub-TLVs, defined
in this document, allow PCEP speakers to exchange additional
information about S-BFD.
    </t>
    </section>
    <section anchor="sect-4" numbered="true" toc="default">
      <name>Overview of Protocol Extensions</name>
      <section anchor="sect-4.1" numbered="true" toc="default">
        <name>Overview</name>
<t>A new option to define S-BFD parameters is defined in this document.
The S-BFD parameters are only meant to be used for SR LSPs and with
PCEP peers which advertise SR capability.</t>
<t>A PCEP speaker indicates its ability to support S-BFD parameters during
the PCEP initialization phase, as follows. When the PCEP session is
created, it sends an Open message with an OPEN object that contains
the LSP-SBFD-Capability TLV (see <xref target="sect-4.3.1" format="default"/>).</t>
<t>If a PCEP speaker receives the PCEP LSP-SBFD-Capability TLV with B
flag = 1 in the Open object, then it means its peer is capable to
receive and to send S-BFD TLVs towards that peer.</t>
<t>If a PCEP speaker has not received this TLV in the Open object, or if
it receives it with B flag set to 0, then it MUST NOT send any S-BFD
TLVs in LSPA object towards that peer.</t>
      </section>
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>Processing</name>
		<t>If a PCEP speaker is capable of S-BFD and its peer is capable of
S-BFD, then the PCEP speaker MAY send LSP-SBFD TLV towards that peer,
to report the S-BFD state (Enabled/Disabled) for the configured LSP.
The LSP-SBFD TLV shall be sent as an optional TLV in the LSPA object.
A PCC shall send it in the PCRpt message. </t>
<t>A PCE shall send it in the PCInit or in the PCUpd message.
If the LSP-SBFD TLV is received from a PCEP peer with the B flag set
to 1, then S-BFD shall be applied for specified LSP.
If PCC received this TLV via PCUpd with B=0 and there is no S-BFD
applied for the LSP, then the PCC shall IGNORE the TLV.</t>
<t>If PCE received this TLV with B=0 and there is no S-BFD applied for
the LSP (editing a PCC-initiated LSP) then it may IGNORE it.
If B=0 and LSP-BFD-Parameters sub-TLV is received, then the PCEP
speaker shall IGNORE the sub-TLV. Ignoring or saving the S-BFD 
configuration is implementation decision.</t>
<t>In some implementations there is limitation that LSPs in the same
association group must have same S-BFD parameter values.</t>
<t>Editor note:
Alternatively, it can be defined implicitly as follows:
If the LSP-SBFD TLV is not received from PCEP peer but there is
S-BFD for that LSP then S-BFD shall be removed for specified LSP.</t>
      </section>
      <section anchor="sect-4.3" numbered="true" toc="default">
        <name>Objects and TLVs</name>
        <section anchor="sect-4.3.1" numbered="true" toc="default">
          <name>LSP S-BFD Capability</name>
<t>
The LSP-SBFD-Capability TLV is an optional TLV. It MAY be carried
within an OPEN object sent by PCEP speaker in an Open message to a
PCEP peer to indicate it supports SBFD capability.</t>
<t>The LSP-SBFD-Capability TLV has the following format:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             Type              |             Length            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           Reserved                          |B|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type: TBD1
Length: 4
B flag: A PCEP speaker sets this bit to 1 to indicate that it is capable
of S-BFD, and it supports configuring the S-BFD via PCEP
]]></artwork>
        </section>
        <section anchor="sect-4.3.2" numbered="true" toc="default">
          <name>S-BFD parameters</name>
          <section anchor="sect-4.3.2.1" numbered="true" toc="default">
            <name>LSP S-BFD TLV</name>
<t>
The PCEP LSP-SBFD TLV is an optional TLV. It MAY be carried within the LSPA
object.</t>
<t>The PCEP LSP-SBFD TLV has the following format:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             Type              |             Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Reserved                          |B|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                     Optional sub-TLVs                       //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
			
			<t>Type: TBD2 </t>
			<t>Length: The total length in bytes of the remainder of the TLV, that is,
			excluding the Type and Length fields.</t>
			<t>B flag: Enable/Disable S-BFD for this LSP. If B=1 then S-BFD will be
			enabled. If B=0 then S-BFD will be disabled for that LSP.
			If the PCEP speaker received LSP-SBFD TLV from PCEP peer with B flag is 
			set to 0, then S-BFD shall be removed (in case of PCE update) or shall not 
			be applied (in case of PCE initiated message) for specified LSP</t>
			
          </section>
          <section anchor="sect-4.3.2.2" numbered="true" toc="default">
            <name>LSP-SBFD Parameters sub-TLV</name>
<t>The PCEP LSP-SBFD-Parameters sub-TLV is optional. It MAY be carried
within the LSP-SBFD TLV.
The PCEP LSP-SBFD-Parameters sub-TLV has the following format:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             Type              |             Length            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Min Tx Interval                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                       Reserved                 |   Multiplier |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type: TBD3
Length: 8
Min Tx Interval: 32 bits - Specify the Minimal Transmit Interval
(milliseconds).
Note: for YANG implementation of the S-BFD information model the value 
needs to be converted to microseconds
Multiplier: 1..255
]]></artwork>
<t>Procedure</t>
<t>If B=0 and LSP-SBFD-Parameters sub-TLV is received, then the PCEP
speaker shall IGNORE the sub-TLV.</t>
          </section>
          <section anchor="sect-4.3.2.3" numbered="true" toc="default">
            <name>LSP-SBFD-Discriminator sub-TLV</name>
			<t>
 The PCEP LSP-SBFD-Discriminator sub-TLV and is optional TLV. It MAY
 be carried within the LSP-SBFD TLV.
 The PCEP LSP-SBFD-Discriminator sub-TLV has the following format:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Type              |             Length            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Remote Discriminator                     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type: TBD4
Length: 4
Remote Discriminator: 32 bits
]]></artwork>
<t>Procedure</t>
<t>If B=0 and LSP-SBFD-Discriminator sub-TLV is received, then the PCEP
speaker shall IGNORE the LSP-SBFD-Discriminator sub-TLV.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Error Handling</name>
<t>If a PCEP speaker has not received S-BFD-Capability TLV from a peer
in the Open object, and it received an LSP S-BFD TLV (see <xref target="sect-4.3.2.1" format="default"/>)
from that peer, then it MUST ignore the content of the LSP S-BFD TLV,
and it MUST return a PCErr message with Error-Type=19 "Invalid
Operation" with Error-value = TBD5 "SBFD capability is not negotiated".</t>

<t>If Multiplier value in the LSP-SBFD-Parameters sub-TLV is not in the
legal range (1..255), then the PCEP Speaker MUST return a PCErr message
with Error-Type=23 "Bad parameter value" and Error-value = TBD6
"Multiplier is out of range".</t>

<t>If Remote Discriminator value in the PCEP LSP-SBFD-Discriminator
sub-TLV is not in the legal range (i.e., it is zero), then the PCEP
Speaker MUST return a PCErr message with Error-Type=23 "Bad parameter
value" and Error-value = TBD8 "Remote Discriminator is out of range".</t>
    </section>
    <section anchor="sect-6" numbered="true" toc="default">
      <name>Implementation Note</name>
<t>In some implementations there is limitation that LSPs in the same
association group must have same S-BFD parameter values.
If either the Min Tx Interval, the Multiplier or the Remote
Discriminator values received in the LSP-BFD Parameters sub-TLVs
for LSPs that are members in the same Association Group are not
identical, then the PCEP Speaker SHOULD return a PCErr message
with Error-Type=26 "Association Error" with Error-value TBD7
"Invalid S-BFD parameter value"</t>
    </section>
    <section anchor="sect-7" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="sect-7.1" numbered="true" toc="default">
        <name>PCEP TLV Type Indicators</name>
        <t>
   This document defines new TLVs and sub-TLVs for carrying additional
   information about S-BFD.  IANA is requested to make the assignment of
   new values for the existing "PCEP TLV Type Indicators" registry as
   follows:</t>
        <figure anchor="ure-1">
          <artwork name="" type="" align="left" alt=""><![CDATA[
     +=======+================================+===============+
     | Value | Description                    | Reference     |
     +=======+================================+===============+
     | TBD1  | LSP-SBFD-Capability TLV        | This document |
     +-------+--------------------------------+---------------+
     | TBD2  | LSP-SBFD TLV                   | This document |
     +-------+--------------------------------+---------------+
     | TBD3  | LSP-BFD-Parameters sub-TLV     | This document |
     +-------+--------------------------------+---------------+
     | TBD4  | LSP-SBFD-DISCRIMINATOR sub-TLV | This document |
     +-------+--------------------------------+---------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="sect-7.2" numbered="true" toc="default">
        <name>PCEP Errors</name>
        <figure anchor="ure-2">
          <artwork name="" type="" align="left" alt=""><![CDATA[
This document defines new Error-Values within the different Error-Types.
IANA is requested to allocate new types:</t>
        <figure anchor="ure-2">
          <artwork name="" type="" align="left" alt=""><![CDATA[
 +============+=============+======================+===========+
 | Error Type | Error Value | Meaning              | Reference |
 +============+=============+======================+===========+
 | 19         | TBD5        | SBFD capability is   | This      |
 |            |             | not negotiated       | document  |
 +------------+-------------+----------------------+-----------+
 | 23         | TBD6        | Multiplier is out of | This      |
 |            |             | range                | document  |
 +------------+-------------+----------------------+-----------+
 | 26         | TBD7        | Invalid S-BFD        | This      |
 |            |             | parameter value      | document  |
 +------------+-------------+----------------------+-----------+
 | 26         | TBD8        | Remote Discriminator | This      |
 |            |             | is out of range      | document  |
 +------------+-------------+----------------------+-----------+
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Security Considerations</name>
<t>
This document defines one new type for association, which does
not add any new security concerns beyond those discussed in <xref target="RFC5440" format="default"/>, 
<xref target="RFC8231" format="default"/>, <xref target="RFC8664" format="default"/>, 
<xref target="RFC5880" format="default"/> and <xref target="RFC8697" format="default"/> in itself.
</t>
    </section>
    <section anchor="sect-9" numbered="true" toc="default">
      <name>Acknowledgement</name>
      <t>
   Would like to thank Avantika Sushil, Alexander Ferdman, Itay Katz and
   Galina Mintz for review and suggestions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
	  <references>
	  <name>Normative References</name>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8281.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8697.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5880.xml"/>	  
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8664.xml"/>
	  <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
	  </references>
	  <references>
      <name>Informative References</name>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml"/>
	  </references>
  </references>
    <section anchor="sect-a" numbered="true" toc="default">
      <name>Contributors</name>
      <dl newline="true" spacing="normal" indent="2">
        <dt>Dhruv Dhody</dt>
        <dd>
          <t>
	Huawei Technologies Divyashree Techno Park, Whitefield Bangalore,
     Karnataka 560066 India
          </t>
          <t>
	Email: dhruv.ietf@gmail.com
          </t>
        </dd>
      </dl>
    </section>
  </back>
</rfc>
