<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" number="7571" submissionType="IETF" consensus="yes"
     ipr="trust200902">
  <front>
    <title abbrev="RSVP-TE Extensions for LI &amp; LB">GMPLS RSVP-TE Extensions
    for Lock Instruct and Loopback</title>

    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>jie.dong@huawei.com</email>
      </address>
    </author>

    <author fullname="Mach(Guoyi) Chen" initials="M." surname="Chen">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>China</country>
        </postal>

        <email>mach.chen@huawei.com</email>
      </address>
    </author>

    <author fullname="Zhenqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street>Unit2, Dacheng Plaza, No. 28 Xuanwumenxi Ave.</street>

          <city>Beijing</city>

          <code>100053</code>

          <country>China</country>
        </postal>

        <email>lizhenqiang@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
      <organization>Ericsson</organization>

      <address>
        <postal>
          <street>Via A. Negrone 1/A</street>

          <city>Genova - Sestri Ponente</city>

          <country>Italy</country>
        </postal>

        <email>daniele.ceccarelli@ericsson.com</email>
      </address>
    </author>

    <date month="July" year="2015"/>


    <abstract>
      <t>This document specifies extensions to Resource Reservation
      Protocol - Traffic Engineering (RSVP-TE) to support Lock Instruct (LI) and
      Loopback (LB) mechanisms for Label Switched Paths (LSPs). These
      mechanisms are applicable to technologies that use Generalized
      MPLS (GMPLS) for the control plane.</t>
    </abstract>

  </front>

  <middle>
    <section title="Introduction">
      <t>The requirements for Lock Instruct (LI) and Loopback (LB) in the
      Multiprotocol Label Switching Transport Profile (MPLS-TP) are specified
      in <xref target="RFC5860"/>, and the framework of LI and LB is specified
      in <xref target="RFC6371"/>. A Label Switched Path (LSP) that is locked, using LI, is
      prevented from carrying user data traffic. The LB function can only be
      applied to an LSP that has been previously locked.</t>

      <t>In general, the LI and LB are useful Operations, Administration, and
      Maintenance (OAM) functions for technologies that use Generalized
      MPLS (GMPLS) for the control plane, e.g.,
      time-division multiplexing, wavelength-division multiplexing, and packet
      switching. It is natural to use and extend the GMPLS control-plane
      protocol to provide a unified approach for LI and LB provisioning in all
      these technologies.</t>

      <t><xref target="RFC7487"/> specifies the
      RSVP-TE extensions for the configuration of proactive MPLS-TP OAM
      functions, such as Continuity Check (CC), Connectivity Verification
      (CV), Delay Measurement (DM), and Loss Measurement (LM). The provisioning
      of on-demand OAM functions such as LI and LB are not covered in that
      document.</t>

      <t>This document specifies extensions to Resource Reservation
      Protocol-Traffic Engineering (RSVP-TE) to support lock instruct and
      loopback mechanisms for LSPs. The mechanisms are
      applicable to technologies that use GMPLS for the control plane. For a
      network supporting MPLS-TP, the mechanisms defined in this document are
      complementary to <xref target="RFC6435"/>.</t>

  <section 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 <xref
      target="RFC2119">RFC 2119</xref>.</t>

      <t/>
    </section></section>

    <section title="Flag Definitions for LI and LB">
      <t/>

      <section title="Lock Instruct Indication">

        <t>In order to indicate the lock/unlock status of the LSP, the A
        (Administratively down) bit in the Administrative Status
        (ADMIN_STATUS) Object <xref target="RFC3471"/> <xref
        target="RFC3473"/> is used.</t>

        <t/>
      </section>

      <section title="Extensions for Loopback">
        <t>In order to indicate the loopback mode of LSP, a new bit flag is
        defined in the Attribute Flags TLV <xref target="RFC5420"/>.</t>

        <t>Loopback flag: <list style="empty">
            <t>This flag indicates a particular node on the LSP is required to
            enter loopback mode. This can also be used for specifying the
            loopback state of the node.</t>

         <t>- Bit number: 13</t>

         <t>- Attribute flag carried in Path message: Yes</t>

         <t>- Attribute flag carried in Resv message: No</t>

         <t>- Attribute flag carried in the Record Route Object (RRO) &nbsp;&nbsp;Attributes subobject: Yes</t>
          </list></t>

      </section>
    </section>

    <section title="Operational Procedures">
      <section anchor="Lock_Instruct" title="Lock Instruct">
        <t>When an ingress node intends to put an LSP into lock mode, it MUST
        send a Path message with the Administratively down (A) bit used as
        specified above and the Reflect (R) bit in the ADMIN_STATUS Object
        set.</t>

        <t>On receipt of this Path message, the egress node SHOULD try to take
        the LSP out of service. If the egress node locks the LSP successfully,
        it MUST send a Resv message with the A bit in the ADMIN_STATUS Object
        set. Otherwise, it MUST send a PathErr message with the Error Code
        "OAM Problem" <xref target="RFC7260"/> and the new Error Value "Lock
        Failure", and the following Resv messages MUST be sent with the A bit
        cleared.</t>

        <t>When an LSP is put in lock mode, the subsequent Path and Resv
        messages MUST keep the A bit in the ADMIN_STATUS Object set.</t>

        <t>When the ingress node intends to take the LSP out of the lock mode,
        it MUST send a Path message with the A bit in the ADMIN_STATUS Object
        cleared.</t>

        <t>On receipt of this Path message, the egress node SHOULD try to
        bring the LSP back to service. If the egress node unlocks the LSP
        successfully, it MUST send a Resv message with the A bit in the
        ADMIN_STATUS Object cleared. Otherwise, it MUST send a PathErr message
        with the Error Code "OAM Problem" <xref target="RFC7260"/> and the new
        Error Value "Unlock Failure", and the following Resv messages MUST be
        sent with the A bit set.</t>

        <t>When an LSP is taken out of lock mode, the subsequent Path and Resv
        messages MUST keep the A bit in the ADMIN_STATUS Object cleared.</t>
      </section>

      <section title="Loopback">
        <t>The loopback request can be sent either to the egress node or to a
        particular intermediate node. The mechanism defined in <xref
        target="RFC7570"/> is used for addressing the
        loopback request to a particular node on the LSP. The ingress node
        MUST ensure that the LSP is in lock mode before it requests setting a
        particular node on the LSP into loopback mode.</t>

        <t>When an ingress node intends to put a particular node on the LSP
        into loopback mode, it MUST send a Path message with the Loopback
        Attribute Flag defined above in the Attribute Flags TLV set. The
        mechanism defined in <xref target="RFC7570"/>
        is used to address the loopback request to the particular node. 
	The
        ingress node MUST ensure that the entity at which loopback is intended
        to occur is explicitly identified by the immediately preceding
        subobject of the Explicit Route Object (ERO) Hop Attributes subobject. The Administratively
        down (A) bit in the ADMIN_STATUS Object MUST be kept set to indicate
        that the LSP is still in lock mode.</t>

        <t>On receipt of this Path message, the target node of the loopback
        request MUST check if the LSP is in lock mode by verifying that the
        Administratively down (A) bit is set in the ADMIN_STATUS Object. If
        the bit is not set, the loopback request MUST be ignored. If the bit
        is set, the node MUST check that the desired loopback entity is
        explicitly identified by the ERO subobject prior to the ERO Hop
        Attributes subobject. Currently, the type value MUST be verified to be
        less than 32 (i.e., able to identify a specific entity where a
        loopback can occur; see <xref target="Allocation_Rule"/>), and for type values 1 (IPv4
        prefix) and 2 (IPv6 prefix), the prefix length MUST be 32 and 128,
        respectively. If the desired loopback entity is not explicitly
        identified, the request MUST be ignored and a "Bad EXPLICIT_ROUTE
        object" error SHOULD be generated. Otherwise, the node SHOULD try to
        put the LSP into loopback mode.
        The loopback SHOULD be enabled on the
        entity identified by the ERO subobject immediately prior to the ERO
        Hop Attributes subobject. If the immediately preceding subobject is a
        label subobject <xref target="RFC3473"/>, the loopback SHOULD be
        enabled for the direction indicated by the U bit of the label
        subobject.</t>

        <t>If the node puts the LSP into loopback mode successfully, it MUST
        set the Loopback Attribute Flag if it adds, per <xref
        target="RFC7570"/>, an RRO Hop Attributes
        subobject to the RRO of a Path or Resv message.
        The Administratively down (A) bit in the ADMIN_STATUS Object MUST be
        kept set in the message. If the node cannot put the LSP into loopback
        mode, it MUST send a PathErr message with the Error Code "OAM Problem"
        <xref target="RFC7260"/> and the new Error Value "Loopback
        Failure".</t>

        <t>When the ingress node intends to take the particular node out of
        loopback mode, it MUST send a Path message with the Loopback Attribute
        Flag in the Attribute Flags TLV cleared. The mechanism defined in
        <xref target="RFC7570"/> is used to indicate
        that the particular node SHOULD exit loopback mode for this LSP. The
        Administratively down (A) bit in the ADMIN_STATUS Object MUST be kept
        set to indicate the LSP is still in lock mode.</t>

        <t>On receipt of this Path message, the target node SHOULD try to take
        the LSP out of loopback mode. If the node takes the LSP out of
        loopback mode successfully, it MUST clear the Loopback Attribute Flag
        in the RRO Hop Attributes subobject and push this subobject onto the
        RRO object in the corresponding Path or Resv message. The
        Administratively down (A) bit in the ADMIN_STATUS Object MUST be kept
        set in the message. Otherwise, the node MUST send a PathErr message
        with the Error Code "OAM Problem" <xref target="RFC7260"/> and the new
        Error Value "Exit Loopback Failure".</t>

        <t>After the loopback mode is cleared successfully, the ingress node
        MAY remove the Lock Instruct using the mechanism defined in <xref target="Lock_Instruct"/>. 
        The ingress node MUST NOT request to exit lock mode if the LSP is
        still in loopback mode. The egress node MUST ignore such a request when
        the LSP is still in loopback mode.</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>IANA has assigned new values defined
      in this document and summarized in this section.</t>

      <section title="Attribute Flags">
        <t>IANA maintains a registry called "Resource Reservation
        Protocol-Traffic Engineering (RSVP-TE) Parameters" with a sub-registry
        called "Attribute Flags".</t>

        <t>IANA has assigned a new bit flag as follows:</t>

        <t><figure>
            <artwork><![CDATA[
 Bit |           | Attribute  | Attribute  |     |     |
 No. | Name      | Flags Path | Flags Resv | RRO | ERO |  Reference
-----+-----------+------------+------------+-----+-----+-------------
  13 | Loopback  |   Yes      |   No       | Yes | Yes |this document
]]></artwork>
          </figure></t>
      </section>

      <section title="RSVP Error Value Sub-Codes">
        <t>IANA maintains a registry called "Resource Reservation Protocol
        (RSVP) Parameters" with a sub-registry called "Error Codes and
        Globally-Defined Error Value Sub-Codes".</t>

        <t>IANA has assigned four new Error Value sub-codes for the
        "OAM Problem" Error Code:</t>

        <t><figure>
            <artwork><![CDATA[
   Value   |  Description                | Reference
-----------+-----------------------------+--------------
     26    |  Lock Failure               | this document
     27    |  Unlock Failure             | this document
     28    |  Loopback Failure           | this document
     29    |  Exit Loopback Failure      | this document
]]></artwork>
          </figure></t>
      </section>

      <section anchor="Allocation_Rule" title="Allocation Rule for ERO Subobjects">
        <t>IANA maintains a registry called "Resource Reservation Protocol
        (RSVP) Parameters" with a sub-registry called "Class Names, Class
        Numbers, and Class Types".</t>

        <t>For Explicit Route Object, the allocation rule for subobject types
        in the range 5-31 (0x05 - 0x1F) has been updated as:</t>

        <t><figure>
            <artwork><![CDATA[
5-31     Unassigned    (For explicit resource identification)]]></artwork>
          </figure></t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document does not introduce any new security issues beyond those
      identified in <xref target="RFC3209"/>, <xref target="RFC3473"/>, and
      <xref target="RFC7570"/>. For a more
      comprehensive discussion of GMPLS security and attack mitigation
      techniques, please see "Security Framework for MPLS and GMPLS
      Networks" <xref target="RFC5920"/>.</t>

      <t>In addition, the reporting of the loopback status using the RRO may
      reveal details about the node that the operator wishes to remain
      confidential. The privacy considerations as described in paragraph 3 of Section 5
       of <xref target="RFC7570"/> also
      apply to this document.</t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.5860'?>

      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.RFC.3471'?>

      <?rfc include='reference.RFC.3473'?>

      <?rfc include='reference.RFC.5420'?>

      <?rfc include='reference.RFC.7260'?>

<!--draft-ietf-teas-lsp-attribute-ro: RFC-to-be 7570 -->
<reference anchor='RFC7570' target="http://www.rfc-editor.org/info/rfc7570">
<front>
<title>Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)</title>
<author initials='C' surname='Margaria' fullname='Cyril Margaria' role="editor">
    <organization />
</author>
<author initials='G' surname='Martinelli' fullname='Giovanni Martinelli'>
    <organization />
</author>
<author initials='S' surname='Balls' fullname='Steve Balls'>
    <organization />
</author>
<author initials='B' surname='Wright' fullname='Ben Wright'>
    <organization />
</author>
<date month='July' year='2015' />
</front>
    <seriesInfo name='RFC' value='7570' />
    <seriesInfo name='DOI' value='10.17487/RFC7570'/>
</reference>

    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.5920'?>

      <?rfc include='reference.RFC.6371'?>

      <?rfc include='reference.RFC.6435'?>

      <!--draft-ietf-ccamp-rsvp-te-mpls-tp-oam-ext is now RFC 7487-->
      <?rfc include='reference.RFC.7487'?>

    </references>

<section anchor="Acknowledgments" title="Acknowledgments" numbered="no">
      <t>The authors would like to thank Greg Mirsky, Lou Berger, and Francesco
      Fondelli for their comments and suggestions.</t>
    </section>
  </back>
</rfc>
