<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2104 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2747 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2747.xml">
<!ENTITY RFC3209 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3209.xml">
<!ENTITY RFC4090 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4090.xml">
<!ENTITY RFC2961 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2961.xml">
<!ENTITY RFC2205 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2205.xml">
<!ENTITY RFC4558 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4558.xml">
<!ENTITY RFC3473 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3473.xml">
<!ENTITY RFC5063 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5063.xml">
<!ENTITY RFC3936 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3936.xml">
<!ENTITY RFC8370 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8370.xml">
<!ENTITY RFC8796 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8796.xml">
<!ENTITY RFC5920 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5920.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-ietf-mpls-ri-rsvp-frr-09" ipr="trust200902" updates="4090">
 <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

   <title abbrev="RI-RSVP FRR Bypass">Refresh-interval Independent FRR Facility Protection
   </title>

   <!-- add 'role="editor"' below for the editors if appropriate -->

   <!-- Another author who claims to be an editor -->

    <author initials="C R" surname="Ramachandran" fullname="Chandra Ramachandran">
	<organization>Juniper Networks, Inc.</organization>
	<address>
	    <email>csekar@juniper.net</email>
	</address>
    </author>

    <author initials="T S" surname="Saad" fullname="Tarek Saad">
	<organization>Juniper Networks, Inc.</organization>
	<address>
	    <email>tsaad@juniper.net</email>
	</address>
    </author>
    
    <author initials="I M" surname="Minei" fullname="Ina Minei">
	<organization>Google, Inc.</organization>
	<address>
	    <email>inaminei@google.com</email>
	</address>
    </author>    
    
    <author initials="D P" surname="Pacella" fullname="Dante Pacella">
	<organization>Verizon, Inc.</organization>
	<address>
	    <email>dante.j.pacella@verizon.com</email>
	</address>
    </author>
    
   <date year="2020" />

   <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

   <!-- Meta-data Declarations -->

   <area>Routing</area>

   <workgroup>MPLS Working Group</workgroup>

   <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>template</keyword>

   <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

  <abstract>

  <t>RSVP-TE Fast ReRoute extensions specified in RFC 4090 defines two local 
  repair techniques to reroute Label Switched Path (LSP) traffic over 
  pre-established backup tunnel. Facility backup method allows one or more 
  LSPs traversing a connected link or node to be protected using a bypass 
  tunnel. The many-to-one nature of local repair technique is attractive 
  from scalability point of view. This document enumerates facility backup 
  procedures in RFC 4090 that rely on refresh timeout and hence make 
  facility backup method refresh-interval dependent. The RSVP-TE extensions 
  defined in this document will enhance the facility backup protection 
  mechanism by making the corresponding procedures refresh-interval 
  independent and hence compatible with Refresh-interval Independent RSVP 
  (RI-RSVP) specified in RFC 8370. Hence, this document updates RFC 4090 in 
  order to support RI-RSVP capability specified in RFC 8370.
  </t>

  </abstract>

  <note title="Requirements Language">

  <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
     "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
     document are to be interpreted as described in RFC-2119
     <xref target="RFC2119"/>. 
  </t>
  </note>

 </front>

 <middle>
   <section anchor="intro" title="Introduction">

     <t>RSVP-TE relies on periodic refresh of RSVP messages to synchronize and 
     maintain the Label Switched Path (LSP) related states along the reserved 
     path. In the absence of refresh messages, the LSP-related states are 
     automatically deleted. Reliance on periodic refreshes and refresh timeouts 
     are problematic from the scalability point of view. The number of RSVP-TE 
     LSPs that a router needs to maintain has been growing in service provider 
     networks and the implementations should be capable of handling increase in 
     LSP scale.
     </t>

     <t>RFC 2961 specifies mechanisms to eliminate the reliance on periodic 
     refresh and refresh timeout of RSVP messages, and enables a router to 
     increase the message refresh interval to values much longer than the 
     default 30 seconds defined in RFC 2205. However, the protocol extensions 
     defined in RFC 4090 for supporting Fast ReRoute (FRR) using bypass tunnels 
     implicitly rely on short refresh timeouts to cleanup stale states.
     </t>

     <t>In order to eliminate the reliance on refresh timeouts, the routers 
     should unambiguously determine when a particular LSP state should be 
     deleted. In scenarios involving RFC 4090 FRR using bypass tunnels, 
     additional explicit tear down messages are necessary. Refresh-interval 
     Independent RSVP FRR (RI-RSVP-FRR) extensions specified in this document 
     consists of procedures to enable LSP state cleanup that are essential in 
     supporting RI-RSVP capability for RFC 4090 FRR using bypass tunnels.
     </t>

    <section anchor="intro_motivation" title="Motivation">
     <t>Base RSVP <xref target="RFC2205"/> maintains state via the 
     generation of RSVP Path/Resv refresh messages. Refresh messages are used 
     to both synchronize state between RSVP neighbors and to recover from lost 
     RSVP messages. The use of Refresh messages to cover many possible 
     failures has resulted in a number of operational problems.

     <list style="hanging">
      <t hangText="-">One problem relates to RSVP control plane scaling due to 
	              periodic refreshes of Path and Resv messages, another 
		      relates to the reliability and latency of RSVP signaling.
      </t>
     </list>
     <list style="hanging">
      <t hangText="-">An additional problem is the time to clean up the stale 
	              state after a tear message is lost. For more on these 
		      problems see Section 1 of RSVP Refresh Overhead Reduction 
		      Extensions <xref target="RFC2961"/>.
      </t>
     </list>
     </t>

     <t>The problems listed above adversely affect RSVP control plane 
     scalability and RSVP-TE <xref target="RFC3209"/> inherited these problems 
     from standard RSVP. Procedures specified in <xref target="RFC2961"/> 
     address the above mentioned problems by eliminating dependency on 
     refreshes for state synchronization and for recovering from lost RSVP 
     messages, and by eliminating dependency on refresh timeout for stale 
     state cleanup. Implementing these procedures allows implementations to 
     improve RSVP-TE control plane scalability. For more details on 
     eliminating dependency on refresh timeout for stale state cleanup, refer 
     to "Refresh-interval Independent RSVP" section 3 of RSVP-TE Scaling 
     Techniques <xref target="RFC8370"/>.
     </t>

     <t>However, the facility backup protection procedures specified in 
     <xref target="RFC4090"/> do not fully address stale state cleanup as the 
     procedures depend on refresh timeouts for stale state cleanup. The 
     updated facility backup protection procedures specified in this document, 
     in combination with RSVP-TE Scaling Techniques <xref target="RFC8370"/>, 
     eliminate this dependency on refresh timeouts for stale state cleanup.
     </t>

     <t>The procedures specified in this document assume reliable delivery of 
     RSVP messages, as specified in <xref target="RFC2961"/>. Therefore this 
     document makes support for <xref target="RFC2961"/> a pre-requisite.
     </t>

    </section>
   </section>

   <section anchor="terminology" title="Terminology">

     <t>The reader is expected to be familiar with the terminology in 
     <xref target="RFC2205"/>, <xref target="RFC3209"/>, 
     <xref target="RFC4090"/>, <xref target="RFC4558"/>, 
     <xref target="RFC8370"/> and <xref target="RFC8796"/>.
     </t>

     <t>Phop node: Previous-hop router along the label switched path
     </t>

     <t>PPhop node: Previous-Previous-hop router along the label switched path
     </t>

     <t>Nhop node: Next-hop router along the label switched path
     </t>

     <t>NNhop node: Next-Next-hop router along the label switched path
     </t>

     <t>PLR: Point of Local Repair router as defined in <xref target="RFC4090"/>
     </t>

     <t>MP: Merge Point router as defined in <xref target="RFC4090"/>
     </t>

     <t>LP-MP node: Merge Point router at the tail of Link-Protecting bypass tunnel
     </t>

     <t>NP-MP node: Merge Point router at the tail of Node-Protecting bypass tunnel
     </t>

     <t>TED: Traffic Engineering Database
     </t>

     <t>LSP state: The combination of "path state" maintained as Path State Block 
     (PSB) and "reservation state" maintained as Reservation State Block (RSB) 
     forms an individual LSP state on an RSVP-TE speaker
     </t>

     <t>RI-RSVP: The set of procedures defined in Section 3 of RSVP-TE Scaling
     Techniques <xref target="RFC8370"/> to eliminate RSVP's reliance on periodic
     message refreshes
     </t>

     <t>B-SFRR-Ready: Bypass Summary FRR Ready Extended Association object defined
     in Summary FRR extensions <xref target="RFC8796"/> and is added by the PLR 
     for each protected LSP.
     </t>

     <t>RI-RSVP-FRR: The set of procedures defined in this document to elimiate 
     RSVP's reliance of periodic message refreshes when supporting facility backup 
     protection <xref target="RFC4090"/>
     </t>

     <t>Conditional PathTear: A PathTear message containing a suggestion to a 
     receiving downstream router to retain the path state if the receiving router 
     is an NP-MP
     </t>

     <t>Remote PathTear: A PathTear message sent from a Point of Local Repair (PLR) 
     to the MP to delete the LSP state on the MP if PLR had not previously sent the 
     backup Path state reliably
     </t>
   </section>

    <section anchor="prob_desc" title="Problem Description">

     <figure align="center" anchor="example_network" title="Example Topology">
       <artwork align="center"><![CDATA[
        E
      /   \
     /     \
    /       \
   /         \
  /           \
 /             \
A ----- B ----- C ----- D
        \             /
         \           /
          \         /
           \       /
            \     /
             \   /
               F
           ]]></artwork>

     </figure>

        <t>In the topology in <xref target="example_network"/>, let us consider a 
	large number of LSPs from A to D transiting B and C. Assume that refresh 
	interval has been configured to be long of the order of minutes and 
	refresh reduction extensions are enabled on all routers.
        </t>

	<t>Also let us assume that node protection has been configured for the LSPs 
	and the LSPs are protected by each router in the following way

        <list style="hanging">
	 <t hangText="-">A has made node protection available using bypass LSP 
		         A -> E -> C; A is the PLR and C is the NP-MP
	 </t>
        </list>
        <list style="hanging">
	 <t hangText="-">B has made node protection available using bypass LSP 
		         B -> F -> D; B is the PLR and D is the NP-MP
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="-">C has made link protection available using bypass LSP 
		         C -> B -> F -> D; C is the PLR and D is the LP-MP
	 </t>
        </list>
	</t>

	<t>In the above condition, assume that B-C link fails. The following is 
	the sequence of events that is expected to occur for all protected 
	LSPs under normal conditions.

        <list style="hanging">
 	 <t hangText="1.">B performs local repair and re-directs LSP traffic 
			  over the bypass LSP B -> F -> D.
	 </t>
        </list>
        <list style="hanging">
 	 <t hangText="2.">B also creates backup state for the LSP and triggers 
		          sending of backup LSP state to D over the bypass LSP 
		          B -> F -> D.
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="3.">D receives backup LSP states and merges the backups 
			  with the protected LSPs.
	 </t>
        </list>
	<list style="hanging">
 	 <t hangText="4.">As the link on C, over which the LSP states are 
		          refreshed, has failed, C will no longer receive state 
			  refreshes. Consequently the protected LSP states on 
			  C will time out and C will send the tear down messages
			  for all LSPs. As each router should consider itself 
			  as an MP, C will time out the state only after waiting
			  for an additional duration equal to refresh timeout.
	 </t>
        </list>
	</t>

	<t>While the above sequence of events has been described in <xref target="RFC4090"/>, 
	there are a few problems for which no mechanism has been specified 
	explicitly.

        <list style="hanging">
 	 <t hangText="-">If the protected LSP on C times out before D receives 
		         signaling for the backup LSP, then D would receive a
			 PathTear from C prior to receiving signaling for the 
			 backup LSP, thus resulting in deleting the LSP state. 
			 This would be possible at scale even with default 
			 refresh time.
	 </t>
        </list>
        <list style="hanging">
	 <t hangText="-">If upon the link failure C is to keep state until its 
		         timeout, then with long refresh interval this may 
			 result in a large amount of stale state on C. 
			 Alternatively, if upon the link failure C is to delete 
			 the state and send a PathTear to D, this would result 
			 in deleting the state on D, thus deleting the LSP. D 
			 needs a reliable mechanism to determine whether it is 
			 an MP or not to overcome this problem.
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="-">If head-end A attempts to tear down LSP after step 1 
		         but before step 2 of the above sequence, then B may 
			 receive the tear down message before step 2 and 
			 delete the LSP state from its state database. If B 
			 deletes its state without informing D, with long 
			 refresh interval this could cause (large) buildup of 
			 stale state on D.
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="-">If B fails to perform local repair in step 1, then B 
		         will delete the LSP state from its state database 
			 without informing D. As B deletes its state without 
			 informing D, with long refresh interval this could 
			 cause (large) buildup of stale state on D.
	 </t>
        </list>
	</t>

	<t>The purpose of this document is to provide solutions to the above 
	problems which will then make it practical to scale up to a large 
	number of protected LSPs in the network.
	</t>

    </section>

   <section anchor="solution" title="Solution Aspects">
     <t>The solution consists of five parts.

	<list style="hanging">
 	 <t hangText="-">Utilize MP determination mechanism specified in 
		 RSVP-TE Summary FRR <xref target="RFC8796"/> that enables 
		 the PLR to signal the availability of local protection to 
		 the MP. In addition, introduce PLR and MP procedures to 
		 to establish Node-ID based hello session between the PLR and 
		 the MP to detect router failures and to determine capability. 
		 See section 4.2 for more details. This part of the solution 
		 re-uses some of the extensions defined in 
		 RSVP-TE Summary FRR <xref target="RFC8796"/> 
		 and RSVP-TE Scaling Techniques <xref target="RFC8370"/>, and 
		 the subsequent sub-sections will list the extensions in these 
		 drafts that are utilized in this document.
	 </t>
        </list>
        <list style="hanging">
	 <t hangText="-">Handle upstream link or node failures by cleaning up 
		 LSP states if the node has not found itself as an MP through the
		 MP determination mechanism. See section 4.3 for more details.
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="-">Introduce extensions to enable a router to send a tear 
		 down message to the downstream router that enables the
		 receiving router to conditionally delete its local LSP state. 
		 See section 4.4 for more details.
	 </t>
        </list>
	<list style="hanging">
	 <t hangText="-">Enhance facility backup protection by allowing a PLR to 
		 directly send a tear down message to the MP without requiring 
		 the PLR to either have a working bypass LSP or have already 
		 signaled backup LSP state. See section 4.5 for more details.
	 </t>
        </list>
        <list style="hanging">
	 <t hangText="-">Introduce extensions to enable the above procedures 
		 to be backward compatible with routers along the LSP path
		 running implementation that do not support these procedures. 
		 See section 4.6 for more details.
	 </t>
        </list>
     </t>

    <section anchor="adv_capability" title="Requirement on RFC 4090 Capable Node to advertise RI-RSVP Capability">
	<t>A node supporting facility backup protection <xref target="RFC4090"/>
	  MAY set the RI-RSVP capability (I bit) defined in Section 3.1 of 
	  RSVP-TE Scaling Techniques <xref target="RFC8370"/> only if it 
	  supports all the extensions specified in the rest of this document. 
	  A node supporting facility backup protection <xref target="RFC4090"/> 
	  but not supporting the extensions specified in this document 
	  MUST NOT set the RI-RSVP capability (I bit) in the outgoing Node-ID 
	  based Hello messages. Hence, this document updates RFC 4090 by 
	  defining extensions and additional procedures over facility 
	  backup protection <xref target="RFC4090"/> in order to advertise 
	  RI-RSVP capability <xref target="RFC8370"/>. However, if a node 
	  supporting facility backup protection <xref target="RFC4090"/> 
	  does set the RI-RSVP capability (I bit) but does not support all 
	  the extensions specified in the rest of this document, then it leaves
	  room for stale state to linger around for an inordinate period of time 
	  given the long refresh intervals recommended by RFC 8370 or disruption 
	  of normal FRR operation. Procedures for backward compatibility 
	  <xref target="cap_bit_without_support"/> delves on this in detail.
       </t>
    </section>
 
    <section anchor="sig_handshake" title="Signaling Handshake between PLR and MP">
     <section anchor="sig_plr_behavior" title="PLR Behavior">
	 <t>As per the facility backup procedures <xref target="RFC4090"/>, when 
	    an LSP becomes operational on a node and the "local protection desired" 
	    flag has been set in the SESSION_ATTRIBUTE object carried in the Path 
	    message corresponding to the LSP, then the node attempts to make local 
	    protection available for the LSP.

	 <list style="hanging">
	  <t hangText="-">If the "node protection desired" flag is set, then 
		  the node tries to become a PLR by attempting to create a
		  NP-bypass LSP to the NNhop node avoiding the Nhop node on 
		  protected LSP path. In case node protection could not be 
		  made available, the node attempts to create an LP-bypass LSP 
		  to the Nhop node avoiding only the link that the protected LSP 
		  takes to reach the Nhop
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">If the "node protection desired" flag is not set, then 
		  the PLR attempts to create an LP-bypass LSP to the Nhop node 
		  avoiding the link that the protected LSP takes to reach the Nhop
	  </t>
         </list>
	 </t>

	 <t>With regard to the PLR procedures described above and that are 
	    specified in RFC 4090, this document specifies the following
	    additional procedures to support RI-RSVP <xref target="RFC8370"/>.

	 <list style="hanging">
	  <t hangText="-">While selecting the destination address of the bypass 
		  LSP, the PLR MUST select the router ID of the NNhop or Nhop 
		  node from the Node-ID sub-object included in the RRO object carried 
		  in the most recent Resv message corresponding to the LSP. If the 
		  MP has not included a Node-ID sub-object in the Resv RRO and if the 
		  PLR and the MP are in the same area, then the PLR may utilize the 
		  TED to determine the router ID corresponding to the interface 
		  address included by the MP in the RRO object. If the NP-MP in a 
		  different IGP area has not included a Node-ID sub-object in RRO 
		  object, then the PLR MUST execute backward compatibility procedures 
		  as if the downstream nodes along the LSP do not support the extensions 
		  defined in the document (see <xref target="dnstr_no_support"/>).
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">The PLR MUST also include its router ID in a 
		  Node-ID sub-object in RRO object carried in any subsequent Path 
		  message corresponding to the LSP. While including its router ID in 
		  the Node-ID sub-object carried in the outgoing Path message, the 
		  PLR MUST include the Node-ID sub-object after including its 
		  IPv4/IPv6 address or unnumbered interface ID sub-object.
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">In parallel to the attempt made to create NP-bypass 
		  or LP-bypass, the PLR MUST initiate a Node-ID based Hello 
		  session to the NNhop or Nhop node respectively along the LSP to 
		  establish the RSVP-TE signaling adjacency. This Hello session is 
		  used to detect MP node failure as well as determine the capability 
		  of the MP node. If the MP has set the I-bit in the CAPABILITY 
		  object <xref target="RFC8370"/> carried in Hello message 
		  corresponding to the Node-ID based Hello session, then the PLR 
		  MUST conclude that the MP supports refresh-interval 
		  independent FRR procedures defined in this document. If the
		  MP has not sent Node-ID based Hello messages or has not set 
		  the I-bit in CAPABILITY object <xref target="RFC8370"/>, 
		  then the PLR MUST execute backward compatibility procedures 
		  defined in <xref target="dnstr_no_support"/> of this document.
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">When the PLR associates a bypass to a protected LSP, it 
		  MUST include a B-SFRR-Ready Extended Association object 
		  <xref target="RFC8796"/> and trigger a Path message to be sent 
		  for the LSP. If a B-SFRR-Ready Extended Association object is 
		  included in the Path message corresponding to the LSP, the 
		  encoding and object ordering rules specified in RSVP-TE Summary FRR 
		  <xref target="RFC8796"/> MUST be followed. In addition to those 
		  rules, the PLR MUST set the Association Source in the object to its 
		  Node-ID address.
	  </t>
         </list>
	 </t>

     </section>

     <section anchor="sig_rem_adjacency" title="Remote Signaling Adjacency">
	 <t>A Node-ID based RSVP-TE Hello session is one in which Node-ID is 
	   used in the source and the destination address fields of RSVP Hello 
	   messages <xref target="RFC4558"/>. This document extends Node-ID based 
	   RSVP Hello session to track the state of any RSVP-TE neighbor that is 
	   not directly connected by at least one interface. In order to apply 
	   Node-ID based RSVP-TE Hello session between any two routers that are 
	   not immediate neighbors, the router that supports the extensions 
	   defined in the document MUST set TTL to 255 in all outgoing 
	   Node-ID based Hello messages exchanged between the PLR and the MP. The 
	   default hello interval for this Node-ID hello session MUST be set 
	   to the default specified in RSVP-TE Scaling Techniques 
	   <xref target="RFC8370"/>.
         </t>

	 <t>In the rest of the document the term &quot;signaling adjacency&quot;, 
	    or &quot;remote signaling adjacency&quot; refers specifically to the 
	    RSVP-TE signaling adjacency.
         </t>
     </section>

     <section anchor="sig_mp_behavior" title="MP Behavior">
	<t>With regard to the MP procedures that are defined in 
	   <xref target="RFC4090"/> this document specifies the following 
	   additional procedures to support RI-RSVP defined in 
	   <xref target="RFC8370"/>.
	</t>

	<t>Each node along an LSP path supporting the extensions defined in 
	   this document MUST also include its router ID in the Node-ID 
	   sub-object of the RRO object carried in the Resv message of the 
	   corresponding LSP. If the PLR has not included a Node-ID sub-object 
	   in the RRO object carried in the Path message and if the PLR is in 
	   a different IGP area, then the router MUST NOT execute the MP 
	   procedures specified in this document for those LSPs. Instead, the 
	   node MUST execute backward compatibility procedures defined in 
	   <xref target="upstr_no_support"/> as if the upstream nodes along 
	   the LSP do not support the extensions defined in this document.
	</t>

	<t>A node receiving a Path message should determine whether the 
	   message contains a B-SFRR-Ready Extended Association object with 
	   its own address as the bypass destination address and whether it 
	   has an operational Node-ID signaling adjacency with the Association 
	   source. If the PLR has not included the B-SFRR-Ready Extended 
	   Association object or if there is no operational Node-ID signaling 
	   adjacency with the PLR identified by the Association source address 
	   or if the PLR has not advertised RI-RSVP capability in its 
	   Node-ID based Hello messages, then the node MUST execute the 
	   backward compatibility procedures defined in 
	   <xref target="upstr_no_support"/>.
        </t>

	<t>If a matching B-SFRR-Ready Extended Association object is found in 
	   in the Path message and if there is an operational remote Node-ID 
	   signaling adjacency with the PLR (identified by the Association 
	   source) that has advertised RI-RSVP capability (I-bit) 
	   <xref target="RFC8370"/>, then the node MUST consider itself as the 
	   MP for the PLR. The matching and ordering rules for Bypass Summary 
	   FRR Extended Association specified in RSVP-TE Summary FRR 
	   <xref target="RFC8796"/> MUST be followed by the implementations 
	   supporting this document.

	 <list style="hanging">
	  <t hangText="-">If a matching Bypass Summary FRR Extended Association 
		  object is included by the PPhop node of an LSP and if a 
		  corresponding Node-ID signaling adjacency exists with the 
		  PPhop node, then the router MUST conclude it is the NP-MP.
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">If a matching Bypass Summary FRR Extended Association 
		  object is included by the Phop node of an LSP and if a 
		  corresponding Node-ID signaling adjacency exists with the Phop 
		  node, then the router MUST conclude it is the LP-MP.
	  </t>
         </list>
	 </t>
     </section>

     <section anchor="sig_rem_state" title="&quot;Remote&quot; State on MP">
	 <t>Once a router concludes it is the MP for a PLR running 
	    refresh-interval independent FRR procedures as described in the 
	    preceding section, it MUST create a remote path state for the LSP. 
	    The only difference between the &quot;remote&quot; path state and 
	    the LSP state is the RSVP_HOP object. The RSVP_HOP object in a 
	    &quot;remote&quot; path state contains the address that the PLR 
	    uses to send Node-ID hello messages to the MP.
	 </t>

	 <t>The MP MUST consider the &quot;remote&quot; path state corresponding 
	    to the LSP automatically deleted if:

	 <list style="hanging">
	  <t hangText="-">The MP later receives a Path message for the LSP with 
		  no matching B-SFRR-Ready Extended Association object corresponding 
		  to the PLR's IP address contained in the Path RRO, or
	  </t>
         </list>
	 <list style="hanging">
	  <t hangText="-">The Node-ID signaling adjacency with the PLR goes down, or
	  </t>
	 </list>
	 <list style="hanging">
	  <t hangText="-">The MP receives backup LSP signaling for the LSP from the PLR or
	  </t>
	 </list>
	 <list style="hanging">
	  <t hangText="-">The MP receives a PathTear for the LSP, or
	  </t>
	 </list>
	 <list style="hanging">
	  <t hangText="-">The MP deletes the LSP state on a local policy or an exception event
	  </t>
	 </list>
	 </t>

	 <t>The purpose of &quot;remote&quot; path state is to enable the PLR 
	    to explicitly tear down the path and reservation states corresponding 
	    to the LSP by sending a tear message for the &quot;remote&quot; path 
	    state. Such a message tearing down &quot;remote&quot; path state is 
	    called &quot;Remote&quot; PathTear.
	 </t>

	 <t>The scenarios in which a &quot;Remote&quot; PathTear is applied are 
	    described in <xref target="rem_tear"/>.
         </t>
     </section>
    </section>

    <section anchor="failures" title="Impact of Failures on LSP State">
       <t>This section describes the procedures that must be executed upon 
	  different kinds of failures by nodes along the path of the LSP. The 
	  procedures that must be executed upon detecting RSVP signaling adjacency 
	  failures do not impact the RSVP-TE graceful restart mechanisms 
	  (<xref target="RFC3473"/>, <xref target="RFC5063"/>). If a node  
	  executing these procedures acts as a helper for a neighboring router, 
	  then the signaling adjacency with the neighbor will be declared as having 
	  failed only after taking into account the grace period extended for the 
	  neighbor by this node acting as a helper.
       </t>

       <t>Node failures are detected from the state of Node-ID hello 
	  sessions established with immediate neighbors. RSVP-TE Scaling 
	  Techniques <xref target="RFC8370"/> recommends that each node 
	  establish Node-ID hello sessions with all its immediate neighbors. 
	  Non-immediate PLR or MP failure is detected from the state of remote 
	  signaling adjacency established according to 
	  <xref target="sig_rem_adjacency"/> of this document.
       </t>

     <section anchor="failures_nonmp" title="Non-MP Behavior">
	<t>When a router detects the Phop link or the Phop node failure for an LSP 
	   and the router is not an MP for the LSP, then it MUST send a Conditional 
	   PathTear (refer to <xref target="cnd_path_tear"/> &quot;Conditional 
	   PathTear&quot; below) and delete the PSB and RSB states corresponding to 
	   the LSP.
	</t>
     </section>

     <section anchor="failures_lpmp" title="LP-MP Behavior">
	<t>When the Phop link for an LSP fails on a router that is an LP-MP for 
	   the LSP, the LP-MP MUST retain the PSB and RSB states corresponding 
	   to the LSP till the occurrence of any of the following events.

	<list style="hanging">
	 <t hangText="-">The Node-ID signaling adjacency with the Phop PLR goes down, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a normal or &quot;Remote&quot; PathTear for its PSB, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a ResvTear for its RSB.
	 </t>
	</list>
	</t>

	<t>When a router that is an LP-MP for an LSP detects Phop node failure 
	   from the Node-ID signaling adjacency state, the LP-MP MUST send a normal 
	   PathTear and delete the PSB and RSB states corresponding to the LSP.
	</t>
     </section>

     <section anchor="failures_npmp" title="NP-MP Behavior">
	<t>When a router that is an NP-MP for an LSP detects Phop link failure, 
	   or Phop node failure from the Node-ID signaling adjacency, the router 
	   MUST retain the PSB and RSB states corresponding to the LSP till the 
	   occurrence of any of the following events.

	<list style="hanging">
	 <t hangText="-">The remote Node-ID signaling adjacency with the PPhop PLR goes down, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a normal or &quot;Remote&quot; PathTear for its PSB, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a ResvTear for its RSB.
	 </t>
	</list>
	</t>

	<t>When a router that is an NP-MP for an LSP did not detect the Phop link 
	   or the Phop node failure, but receives a Conditional PathTear from the 
	   Phop node, then the router MUST retain the PSB and RSB states corresponding to the 
	   LSP till the occurrence of any of the following events.

	<list style="hanging">
	 <t hangText="-">The remote Node-ID signaling adjacency with the PPhop PLR goes down, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a normal or &quot;Remote&quot; PathTear for its PSB, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a ResvTear for its RSB.
	 </t>
	</list>
	</t>

	<t>Receiving a Conditional PathTear from the Phop node will not impact 
	   the &quot;remote&quot; state from the PPhop PLR. Note that the Phop 
	   node must have sent the Conditional PathTear as it was not an MP for
	   the LSP  <xref target="failures_nonmp"/>.
	</t>

	<t>In the example topology <xref target="example_network"/>, we assume 
	   C &amp; D are the NP-MPs for the PLRs A &amp; B respectively. Now when 
	   A-B link fails, as B is not an MP and its Phop link has failed, B will 
	   delete the LSP state (this behavior is required for unprotected LSPs - 
	   <xref target="failures_nonmp"/>). In the data plane, that would 
	   require B to delete the label forwarding entry corresponding to the 
	   LSP. So if B's downstream nodes C and D continue to retain state, 
	   it would not be correct for D to continue to assume itself as the NP-MP 
	   for the PLR B.
	</t>

	<t>The mechanism that enables D to stop considering itself as the 
	   NP-MP for B and delete the corresponding &quot;remote&quot; path 
	   state is given below.

	<list style="hanging">
	 <t hangText="1.">When C receives a Conditional PathTear from B, it 
		 decides to retain LSP state as it is the NP-MP of the PLR A. 
		 C also MUST check whether Phop B had previously signaled 
		 availability of node protection. As B had previously signaled 
		 NP availability by including B-SFRR-Ready Extended Association 
		 object, C MUST remove the B-SFRR-Ready Extended Association 
		 object containing Association Source set to B from the Path 
		 message and trigger a Path to D.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="2.">When D receives the Path message, it realizes that it 
		 is no longer the NP-MP for B and so it deletes the 
		 corresponding &quot;remote&quot; path state. D does not 
		 propagate the Path further down because the only change is that 
		 the B-SFRR-Ready Extended Association object corresponding to 
		 Association Source B is no longer present in the Path message.
	 </t>
	</list>
	</t>
     </section>

     <section anchor="failures_lpnpmp" title="Behavior of a Router that is both LP-MP and NP-MP">
	<t>A router may simultaneously be the LP-MP as well as the NP-MP for the
	   Phop and the PPhop nodes respectively of an LSP. If the Phop link fails 
	   on such a node, the node MUST retain the PSB and RSB states corresponding 
	   to the LSP till the occurrence of any of the following events.

	<list style="hanging">
	 <t hangText="-">Both Node-ID signaling adjacencies with Phop and PPhop nodes go down, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a normal or &quot;Remote&quot; PathTear for its PSB, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a ResvTear for its RSB.
	 </t>
	</list>
	</t>

	<t>If a router that is both an LP-MP and an NP-MP detects Phop node 
	   failure, then the node MUST retain the PSB and RSB states corresponding 
	   to the LSP till the occurrence of any of the following events.

	<list style="hanging">
	 <t hangText="-">The remote Node-ID signaling adjacency with the PPhop PLR goes down, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a normal or &quot;Remote&quot; PathTear for its PSB, or
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">The MP receives a ResvTear for its RSB.
	 </t>
	</list>
	</t>
     </section>

    </section>

    <section anchor="cnd_path_tear" title="Conditional PathTear">
       <t>In the example provided in the <xref target="failures_npmp"/>, B 
	  deletes the PSB and RSB states corresponding to the LSP once B detects 
	  its Phop link went down as B is not an MP. If B were to send a 
	  PathTear normally, then C would delete LSP state immediately. In 
	  order to avoid this, there should be some mechanism by which B can 
	  indicate to C that B does not require the receiving node to 
	  unconditionally delete the LSP state immediately. For this, B MUST 
	  add a new optional CONDITIONS object in the PathTear. The CONDITIONS 
	  object is defined in <xref target="cnd_path_tear_obj"/>. If node C 
	  also understands the new object, then C MUST NOT delete the LSP state 
	  if it is an NP-MP.
       </t>

     <section anchor="cnd_path_tear_send" title="Sending Conditional PathTear">
	<t>A router that is not an MP for an LSP MUST delete the PSB and RSB 
	   states corresponding to the LSP if the Phop link or the Phop Node-ID 
	   signaling adjacency goes down (<xref target="failures_nonmp"/>). 
	   The router MUST send a Conditional PathTear if the following are also 
	   true.

	<list style="hanging">
	 <t hangText="-">The ingress has requested node protection for the LSP, and
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="-">No PathTear is received from the upstream node
	 </t>
	</list>
	</t>
     </section>

     <section anchor="cnd_path_tear_recv" title="Processing Conditional PathTear">
	<t>When a router that is not an NP-MP receives a Conditional PathTear, 
	   the node MUST delete the PSB and RSB states corresponding to the LSP, 
	   and process the Conditional PathTear by considering it as a normal 
	   PathTear. Specifically, the node MUST NOT propagate the Conditional 
	   PathTear downstream but remove the optional object and send a normal 
	   PathTear downstream.
	</t>

	<t>When a node that is an NP-MP receives a Conditional PathTear, it 
	   MUST NOT delete LSP state. The node MUST check whether the 
	   Phop node had previously included the B-SFRR-Ready Extended Association 
	   object in the Path. If the object had been included previously by the 
	   Phop, then the node processing the Conditional PathTear from the Phop 
	   MUST remove the corresponding object and trigger a Path downstream.
	</t>

	<t>If a Conditional PathTear is received from a neighbor that has not 
	   advertised support (refer to <xref target="compatible"/>) for the
	   new procedures defined in this document, then the node MUST 
	   consider the message as a normal PathTear. The node MUST propagate 
	   the normal PathTear downstream and delete the LSP state.
	</t>
     </section>

     <section anchor="cnd_path_tear_obj" title="CONDITIONS Object">
	<t>As any implementation that does not support Conditional PathTear 
	   MUST ignore the new object but process the message as a normal 
	   PathTear without generating any error, the Class-Num of the new 
	   object MUST be 10bbbbbb where 'b' represents a bit (from 
	   Section 3.10 of <xref target="RFC2205"/>).
	</t>

	<t>The new object is called as &quot;CONDITIONS&quot; object that will 
	   specify the conditions under which default processing rules of the 
	   RSVP-TE message MUST be invoked.
	</t>

	<t>The object has the following format:

        <figure align="left" anchor="fig_conditions" title="CONDITIONS Object">
            <artwork>
              <![CDATA[
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Length               |  Class        |     C-type    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Reserved                            |M|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]>
           </artwork>
        </figure>

	<?rfc subcompact="yes" ?>
	<list style="none">
	   <t>Length: This contains the size of the object in bytes and should be set to eight.
              <vspace blankLines="1"/>
	      Class: To be assigned
              <vspace blankLines="1"/>
	      C-type: 1
              <vspace blankLines="1"/>
	      Merge-point condition (M) bit: If the M bit is set to 1, then the 
	      PathTear message MUST be processed according to the receiver router 
	      role, i.e. if the receiving router is an MP or not for the LSP.
              <vspace blankLines="0"/>
              If the M-bit is set to 0, then the PathTear message MUST be processed 
	      processed as a normal PathTear message for the LSP.
           </t>
        </list>
	</t>
     </section>

    </section>

    <section anchor="rem_tear" title="Remote State Teardown">
	<t>If the ingress wants to tear down the LSP because of a management 
	   event while the LSP is being locally repaired at a transit PLR, it 
	   would not be desirable to wait till the completion of backup LSP 
	   signaling to perform state cleanup. To enable LSP state cleanup 
	   when the LSP is being locally repaired, the PLR MUST send a
	   &quot;Remote&quot; PathTear message instructing the MP to delete the PSB 
	   and RSB states corresponding to the LSP. The TTL in the &quot;Remote&quot;
	   PathTear message MUST be set to 255.
	</t>
	<t>Let us consider that node C in the example topology 
	   (<xref target="example_network"/>) has gone down and node B locally 
	   repairs the LSP.
	<list style="hanging">
	 <t hangText="1.">Ingress A receives a management event to tear down the LSP.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="2.">A sends a normal PathTear for the LSP to B.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="3.">Assume B has not initiated the backup signaling for the 
		 LSP during local repair. To enable LSP state cleanup, B MUST send 
		 a &quot;Remote&quot; PathTear with destination IP address set to 
		 that of the node D used in the Node-ID signaling adjacency with D, 
		 and the RSVP_HOP object containing local address used in the 
		 Node-ID signaling adjacency.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="4.">B then deletes the PSB and RSB states corresponding to the LSP.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="5.">On D there would be a remote signaling adjacency with 
		 B and so D MUST accept the &quot;Remote&quot; PathTear and delete the
		 PSB and RSB states corresponding to the LSP.
	 </t>
	</list>
	</t>

     <section anchor="lcl_repair_fail" title="PLR Behavior on Local Repair Failure">
	<t>If local repair fails on the PLR after a failure, then this MUST be 
	   considered as a case for cleaning up LSP state from the PLR to the 
	   Egress. The PLR achieves state cleanup by sending &quot;Remote&quot; 
	   PathTear to the MP. The MP MUST delete the states corresponding to the 
	   LSP also also propagate the PathTear downstream thereby achieving 
	   state cleanup from all downstream nodes up to the LSP egress. Note 
	   that in the case of link protection, the PathTear MUST be directed to 
	   the LP-MP's Node-ID IP address rather than the Nhop interface address.
	</t>
     </section>

     <section anchor="resv_rro_chng" title="PLR Behavior on Resv RRO Change">
	<t>When a PLR router that has already made NP available for an LSP 
	   detects a change in the RRO carried in the Resv message that indicates 
	   that the router's former NP-MP is no longer present on the path of 
	   the LSP, then the router MUST send a &quot;Remote&quot; PathTear 
	   directly to its former NP-MP.
	</t>
	<t>In the example topology <xref target="example_network"/>, let us assume 
	   A has made node protection available for an LSP and C has concluded it 
	   is the NP-MP for PLR A. When the B-C link fails then C, implementing the 
	   procedure specified in <xref target="failures_lpnpmp"/> of this 
	   document, will retain the states corresponding to the LSP until: the 
	   remote Node-ID signaling adjacency with A goes down, or a PathTear or 
	   a ResvTear is received for its PSB or RSB respectively. If B also has 
	   made node protection available, B will eventually complete backup LSP 
	   signaling with its NP-MP D and trigger a Resv to A with RRO changed. 
	   The new RRO of the LSP carried in the Resv will not contain C. When A 
	   processes the Resv message with a new RRO not containing C - its former 
	   NP-MP, A MUST send a &quot;Remote&quot; PathTear to C. When C receives 
	   the &quot;Remote&quot; PathTear for its PSB state, C will send a normal 
	   PathTear downstream to D and delete both the PSB and RSB states 
	   corresponding to the LSP.  As D has already received backup LSP 
	   signaling from B, D will retain control plane and forwarding states 
	   corresponding to the LSP.
	</t>
     </section>

     <section anchor="lcl_repair_preempt" title="LSP Preemption during Local Repair">
      <section anchor="lcl_repair_preempt_lpnp" title="Preemption on LP-MP after Phop Link Failure">
	<t>If an LSP is preempted on an LP-MP after its Phop or the incoming 
	   link has already failed but the backup LSP has not been signaled yet 
	   as part of local repair procedure, then the node MUST send a normal 
	   PathTear and delete both the PSB and RSB states corresponding to the 
	   LSP. As the LP-MP has retained the LSP state expecting the PLR to 
	   initiate backup LSP signaling, preemption would bring down the LSP 
	   and the node would not be LP-MP any more requiring the node to clean 
	   up the LSP state.
	</t>
      </section>

      <section anchor="lcl_repair_preempt_npmp" title="Preemption on NP-MP after Phop Link Failure">
	<t>If an LSP is preempted on an NP-MP after its Phop link has already 
	   failed but the backup LSP has not been signaled yet, then the node 
	   MUST send a normal PathTear and delete the PSB and RSB states 
	   corresponding to the LSP. As the NP-MP has retained LSP state 
	   expecting the PLR to initiate backup LSP signaling, preemption 
	   would bring down the LSP and the node would not be NP-MP any more 
	   requiring the node to clean up LSP state.
	</t>
	<t>Let us consider that B-C link goes down on the same example topology 
	   (<xref target="example_network"/>). As C is the NP-MP for the PLR A, C 
	   will retain LSP state.
	<list style="hanging">
	 <t hangText="1.">The LSP is preempted on C.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="2.">C will delete the RSB state corresponding to the LSP. 
		 But C cannot send a PathErr or a ResvTear to the PLR A because 
		 the backup LSP has not been signaled yet.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="3.">As the only reason for C having retained state after 
		 Phop node failure was that it was an NP-MP, C MUST send a normal 
		 PathTear to D and delete its PSB state also. D would also delete the 
		 PSB and RSB states on receiving a PathTear from C.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="4.">B starts backup LSP signaling to D. But as D does 
		 not have the LSP state, it will reject the backup LSP Path and 
		 send a PathErr to B.
	 </t>
	</list>
	<list style="hanging">
	 <t hangText="5.">B will delete its reservation and send a ResvTear to A.
	 </t>
	</list>
	</t>
      </section>
     </section>
    </section>

    <section anchor="compatible" title="Backward Compatibility Procedures">
     <t>&quot;Refresh interval Independent FRR&quot; or RI-RSVP-FRR refers to the  
	set of procedures defined in this document to elimiate the reliance of
	periodic refreshes. The extensions proposed in RSVP-TE Summary FRR 
	<xref target="RFC8796"/> may apply to implementations that do not support 
	RI-RSVP-FRR. On the other hand, RI-RSVP-FRR extensions relating to LSP 
	state cleanup namely Conditional and &quot;Remote&quot; PathTear require 
	support from one-hop and two-hop neighboring nodes along the LSP path. 
	So procedures that fall under LSP state cleanup category MUST NOT be 
	turned on if any of the nodes involved in the node protection FRR i.e. 
	the PLR, the MP and the intermediate node in the case of NP, DOES NOT 
	support RI-RSVP-FRR extensions. Note that for LSPs requesting link 
	protection, only the PLR and the LP-MP MUST support the extensions.
     </t>
     <section anchor="compat_detect" title="Detecting Support for Refresh interval Independent FRR">
      <t>An implementation supporting RI-RSVP-FRR extensions SHOULD set the flag 
	 &quot;Refresh interval Independent RSVP&quot; or RI-RSVP flag in the 
	 CAPABILITY object carried in Hello messages as specified in RSVP-TE 
	 Scaling Techniques <xref target="RFC8370"/>. If an implementation does 
	 not set the flag even if it supports RI-RSVP-FRR extensions, then its 
	 neighbors will view the node as any node that does not support the
	 extensions.
      <list style="hanging">
       <t hangText="-">As nodes supporting the RI-RSVP-FRR extensions initiate 
	       Node-ID based signaling adjacency with all immedate neighbors, 
	       such a node on the path of a protected LSP can determine whether 
	       its Phop and Nhop neighbors support RI-RSVP-FRR enhancements.
       </t>
      </list>
      <list style="hanging">
       <t hangText="-">As nodes supporting the RI-RSVP-FRR extensions also initiate 
	       Node-ID based signaling adjacency with the NNhop along the path of 
	       the LSP requested node protection <xref target="sig_plr_behavior"/>, 
	       each node along the LSP path can determine whether its NNhop node 
	       supports RI-RSVP-FRR enhancements. If the NNhop (a) does not reply 
	       to remote Node-ID Hello messages or (b) does not set the RI-RSVP flag 
	       in the CAPABILITY object carried in its Node-ID Hello messages, then 
	       the node acting as the PLR can conclude that NNhop does not support 
	       RI-RSVP-FRR extensions.
       </t>
      </list>
      <list style="hanging">
       <t hangText="-">If node protection is requested for an LSP and if (a) 
	       the PPhop node has not included a matching B-SFRR-Ready Extended 
	       Association object in its Path messages or (b) the PPhop node has 
	       not initiated remote Node-ID Hello messages or (c) the PPhop node 
	       does not set the RI-RSVP flag in the CAPABILITY object carried 
	       in its Node-ID Hello messages, then the node MUST conclude 
	       that the PLR does not support RI-RSVP-FRR extensions.
       </t>
      </list>
      </t>
     </section>

     <section anchor="compat_procedures" title="Procedures for Backward Compatibility">
      <t>Every node that supports RI-RSVP-FRR MUST support the procedures defined 
	 in this section in order to support backward compatibility for 
	 those subset of LSPs that also traverse nodes that do not support
	 RI-RSVP-FRR.
      </t>
      <section anchor="dnstr_no_support" title="Lack of support on Downstream Node">
       <t>The procedures on the downstream direction are as follows.
       <list style="hanging">
	<t hangText="-">If a node finds that the Nhop node along the LSP does not 
		support the RI-RSVP-FRR extensions, then the node MUST reduce 
		the &quot;refresh period&quot; in the TIME_VALUES object carried 
		in the Path messages to the default short refresh interval.
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">If node protection is requested for the LSP and the NNhop 
		node along the LSP path does not support the RI-RSVP-FRR extensions, 
		then the node MUST reduce the &quot;refresh period&quot; in the 
		TIME_VALUES object carried in the Path messages to the default short 
		refresh interval.
	</t>
       </list>
       </t>
       <t>If a node reduces the refresh time using the above procedures, it 
	  MUST NOT send any &quot;Remote&quot; PathTear or Conditional PathTear 
	  message to the downstream node.
       </t>
       <t>Consider the example topology in <xref target="example_network"/>. 
	  If C does not support the RI-RSVP-FRR extensions, then:
       <list style="hanging">
	<t hangText="-">A and B MUST reduce the refresh time to the default 
		short refresh interval of 30 seconds and trigger a Path message
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">If B is not an MP and if Phop link of B fails, B 
		cannot send Conditional PathTear to C but MUST time out the PSB 
		state from A normally. Note that B can time out the PSB state 
		A normally only if A did not set long refresh in the TIME_VALUES 
		object carried in the Path messages sent earlier.
	</t>
       </list>
       </t>
      </section>

      <section anchor="upstr_no_support" title="Lack of support on Upstream Node">
       <t>The procedures are as follows.
       <list style="hanging">
	<t hangText="-">If a node finds that the Phop node along the LSP path does 
		not support the RI-RSVP-FRR extensions, then the node MUST reduce 
		the &quot;refresh period&quot; in the TIME_VALUES object carried in 
		the Resv messages to the default short refresh interval.
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">If node protection is requested for the LSP and the Phop 
		node along the LSP path does not support the RI-RSVP-FRR 
		extensions, then the the node MUST reduce the &quot;refresh 
		period&quot; in the TIME_VALUES object carried in the Path 
		messages to the default short refresh interval (thus, the Nhop 
		can use compatible values when sending a Resv).
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">If node protection is requested for the LSP and the 
		PPhop node does not support the RI-RSVP-FRR extensions, then 
		the node MUST reduce the &quot;refresh period&quot; in the 
		TIME_VALUES object carried in the Resv messages to the default 
		short refresh interval.
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">If the node reduces the refresh time using the above 
		procedures, it MUST NOT execute MP procedures specified in 
		<xref target="failures"/> of this document.
	</t>
       </list>
       </t>
      </section>

      <section anchor="cap_bit_without_support" title="Advertising RI-RSVP without RI-RSVP-FRR">
       <t>If a node supporting facility backup protection <xref target="RFC4090"/> 
	  sets the RI-RSVP capability (I bit) but does not support the RI-RSVP-FRR
	  extensions, then it leaves room for stale state to linger around for an 
	  inordinate period of time or disruption of normal FRR operation.
	  Consider the example topology <xref target="example_network"/> provided 
	  in this document.
       <list style="hanging">
	<t hangText="-">Assume node B does set RI-RSVP capability in its Node-ID 
		based Hello messages even though it does not support RI-RSVP-FRR 
		extensions. When B detects the failure of its Phop link along an
		LSP, it will not send Conditional PathTear to C as required by 
		the RI-RSVP-FRR procedures. If B simply leaves the LSP state 
		without deleting, then B may end up holding on to the stale state 
		until the (long) refresh timeout.
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">Intead of node B, assume node C does set RI-RSVP 
		capability in its Node-id based Hello messages even though it 
		does not support RI-RSVP-FRR extensions. When B details the 
		failure of its Phop link along an LSP, it will send Conditional 
		PathTear to C as required by the RI-RSVP-FRR procedures. But, 
		C would not recognize the condition encoded in the PathTear and 
		end up tearing down the LSP.
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">Assume node B does set RI-RSVP capability in its Node-ID 
		based Hello messages even though it does not support RI-RSVP-FRR 
		extensions. Also assume local repair is about to commence on node 
		B for an LSP that has only requested link protection. That is, 
		B has not initiated the backup LSP signaling for the LSP. If node B 
		receives a normal PathTear at this time from ingress A because of a 
		management event initiated on A, then B simply deletes the LSP 
		state without sending a Remote PathTear to the LP-MP C. So, C 
		may end up holding on to the stale state until the (long) refresh 
		timeout.
	</t>
       </list>
       </t>
      </section>

      <section anchor="incr_deploy" title="Incremental Deployment">
       <t>The backward compatibility procedures described in the previous 
	  sub-sections imply that a router supporting the RI-RSVP-FRR 
	  extensions specified in this document can apply the procedures 
	  specified in the document either in the downstream or upstream 
	  direction of an LSP, depending on the capability of the routers 
	  downstream or upstream in the LSP path.
       <list style="hanging">
	<t hangText="-">RI-RSVP-FRR extensions and procedures are enabled for 
		downstream Path,  PathTear and ResvErr messages corresponding 
		to an LSP if link protection is requested for the LSP and the 
		Nhop node supports the extensions
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">RI-RSVP-FRR extensions and procedures are enabled for 
		downstream Path,  PathTear and ResvErr messages corresponding 
		to an LSP if node protection is requested for the LSP and both 
		Nhop &amp; NNhop nodes support the extensions
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">RI-RSVP-FRR extensions and procedures are enabled for 
		upstream PathErr, Resv and ResvTear messages corresponding to 
		an LSP if link protection is requested for the LSP and the 
		Phop node supports the extensions
	</t>
       </list>
       <list style="hanging">
	<t hangText="-">RI-RSVP-FRR extensions and procedures are enabled for 
		upstream PathErr, Resv and ResvTear messages corresponding to 
		an LSP if node protection is requested for the LSP and both 
		Phop and the PPhop support the extensions
	</t>
       </list>
       </t>
       <t>For example, if an implementation supporting the RI-RSVP-FRR 
	  extensions specified in this document is deployed on all routers in 
	  particular region of the network and if all the LSPs in the network 
	  request node protection, then the FRR extensions will only be 
	  applied for the LSP segments that traverse the particular region. 
	  This will aid incremental deployment of these extensions and also 
	  allow reaping the benefits of the extensions in portions of the 
	  network where it is supported.
       </t>
      </section>
     </section>
    </section>
   </section>

   <section anchor="Security" title="Security Considerations">
      <t>The security considerations pertaining to <xref target="RFC2961"/>,
	 <xref target="RFC4090"/>, <xref target="RFC8370"/>, 
	 <xref target="RFC8796"/> and <xref target="RFC5920"/> remain relevant. 
	 When using RSVP Cryptographic Authentication <xref target="RFC2747"/>, 
	 more robust algorithms <xref target="RFC2104"/> 
	 <xref target="FIPS-180-3"/> SHOULD be used when computing the keyed 
	 message digest where possible.
      </t>
       
      <t>This document extends the applicability of Node-ID based Hello session 
      between immediate neighbors. The Node-ID based Hello session between the PLR 
      and the NP-MP may require the two routers to exchange Hello messages with 
      non-immediate neighbor. So, the implementations SHOULD provide the 
      option to configure Node-ID neighbor specific or global authentication 
      key to authentication messages received from Node-ID neighbors. The 
      network administrator SHOULD utilize this option to enable RSVP-TE routers 
      to authenticate Node-ID Hello messages received with TTL greater than 1. 
      Implementations SHOULD also provide the option to specify a limit on the 
      number of Node-ID based Hello sessions that can be established on a 
      router supporting the extensions defined in this document.
      </t>
   </section>

   <section anchor="IANA" title="IANA Considerations">
    <section anchor="IANA_Conditions" title="New Object - CONDITIONS">
       <t>RSVP Change Guidelines <xref target="RFC3936"/> defines the Class-Number 
	  name space for RSVP objects. The name space is managed by IANA.
       </t>

       <t>IANA registry: RSVP Parameters
          <vspace blankLines="0" />
          Subsection: Class Names, Class Numbers, and Class Types</t>
       
       <t>A new RSVP object using a Class-Number from 128-183 range called the 
       &quot;CONDITIONS&quot; object is defined in <xref target="cnd_path_tear"/> 
       of this document. The Class-Number from 128-183 range will be allocated 
       by IANA.
       </t>
    </section>
    <section anchor="IANA_Cnd_Flags" title="CONDITIONS Flags">
       <t>Apart from allocating Class-Number for the CONDITIONS object, the 
	  allocation of the Merge-point condition bit or M-bit 
	  <xref target="cnd_path_tear"/> will also be done by IANA.
       </t>

       <t>Flag: 0x1
          Name: Merge-point condition bit or M-bit
       </t>
    </section>
   </section>

   <!-- This PI places the pagebreak correctly (before the section title) in the text output. -->

   <?rfc needLines="8" ?>

   <section anchor="Acknowledgements" title="Acknowledgements">
      <t>We are very grateful to Yakov Rekhter for his contributions to the 
	 development of the idea and thorough review of content of the draft. 
	 We are thankful to Raveendra Torvi and Yimin Shen for their comments 
	 and inputs on early versions of the draft. We also thank Alexander 
	 Okonnikov for his review and comments on the draft.
      </t>
   </section>

   <!-- Possibly a 'Contributors' section ...  -->

   <section anchor="Contributors" title="Contributors">
     <t>Markus Jork
     <vspace blankLines="0" />
     Juniper Networks, Inc.
     <vspace blankLines="0" />
     Email: mjork@juniper.net
     
     <vspace blankLines="1" />
     
     Harish Sitaraman
     <vspace blankLines="0" />
     Individual Contributor
     <vspace blankLines="0" />
     Email: harish.ietf@gmail.com
     
     <vspace blankLines="1" />

     Vishnu Pavan Beeram
     <vspace blankLines="0" />
     Juniper Networks, Inc.
     <vspace blankLines="0" />
     Email: vbeeram@juniper.net
     
     <vspace blankLines="1" />

     Ebben Aries
     <vspace blankLines="0" />
     Arrcus, Inc. 
     <vspace blankLines="0" />
     Email: exa@arrcus.com

     <vspace blankLines="1" />

     Mike Taillon
     <vspace blankLines="0" />
     Cisco Systems, Inc.
     <vspace blankLines="0" />
     Email: mtaillon@cisco.com
     </t>

   </section> 

 </middle>

 <back>
   <!-- References split into informative and normative -->

   <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

   <references title="Normative References">
      &RFC2119;
      &RFC2747;
      &RFC3209;
      &RFC4090;
      &RFC2961;
      &RFC2205;
      &RFC4558;
      &RFC3473;
      &RFC5063;
      &RFC3936;
      &RFC8370;
      &RFC8796;
   </references>

   <references title="Informative References">
      <reference anchor="FIPS-180-3">
	<front>
	 <title>Secure Hash Standard</title>
	 <author>
	 <organization>National Institute of Standards and Technology</organization>
	 </author>
	 <date month="October" year="2008"/>
	</front>
	<seriesInfo name="FIPS" value="180-3"/>
      </reference>
      &RFC2104;
      &RFC5920;
   </references>

 </back>
</rfc>
