<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-teas-yang-rsvp-te-10" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="RSVP-TE Protocol YANG Data Model">A YANG Data Model for RSVP-TE Protocol</title>

    <author initials="V. P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>tsaad.net@gmail.com</email>
      </address>
    </author>
    <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>rgandhi@cisco.com</email>
      </address>
    </author>
    <author initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>Volta Networks</organization>
      <address>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="I." surname="Bryskin" fullname="Igor Bryskin">
      <organization>Individual</organization>
      <address>
        <email>i_bryskin@yahoo.com</email>
      </address>
    </author>
    <author initials="H." surname="Shah" fullname="Himanshu Shah">
      <organization>Ciena</organization>
      <address>
        <email>hshah@ciena.com</email>
      </address>
    </author>

    <date year="2026" month="January" day="19"/>

    
    <workgroup>TEAS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 61?>

<t>This document defines a YANG data model for the configuration and management of
RSVP (Resource Reservation Protocol) to establish Traffic-Engineered (TE)
Label-Switched Paths (LSPs) for MPLS (Multi-Protocol Label Switching) and other
technologies.</t>

<t>The model defines a generic RSVP-TE module for signaling LSPs that are
technology agnostic.  The generic RSVP-TE module is to be augmented by
technology specific RSVP-TE modules that define technology specific data. This
document also defines the augmentation for RSVP-TE MPLS LSPs model.</t>

<t>This model covers data for the configuration, operational state, remote
procedural calls, and event notifications.</t>



    </abstract>



  </front>

  <middle>


<?line 76?>

<section anchor="introduction"><name>Introduction</name>

<t>YANG <xref target="RFC7950"/> is a data modeling language that was introduced to define the
contents of a conceptual data store that allows networked devices to be managed
using NETCONF <xref target="RFC6241"/>. YANG has proved relevant beyond its initial
confines, as bindings to other interfaces (e.g. RESTCONF <xref target="RFC8040"/>) and
encoding other than XML (e.g. JSON) are being defined. Furthermore, YANG data
models can be used as the basis of implementation for other interfaces, such as
CLI and programmatic APIs.</t>

<t>This document defines a generic YANG data model for configuring and managing
RSVP-TE LSP(s) <xref target="RFC3209"/>.  The RSVP-TE generic model augments the RSVP base
and extended models defined in <xref target="I-D.ietf-teas-yang-rsvp"/>, and adds TE
extensions to the RSVP protocol <xref target="RFC2205"/> model configuration and state data.
The technology specific RSVP-TE models augment the generic RSVP-TE model with
additional technology specific parameters. For example, this document also
defines the MPLS RSVP-TE model for configuring and managing MPLS RSVP TE
LSP(s).</t>

<t>In addition to augmenting the RSVP YANG module, the modules defined in this
document augment the TE Interfaces, Tunnels and LSP(s) YANG module defined in
<xref target="I-D.ietf-teas-yang-te"/> to define additional parameters to enable signaling
for RSVP-TE.</t>

<section anchor="terminology"><name>Terminology</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"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>

<t>The terminology for describing YANG data models is found in <xref target="RFC7950"/>.</t>

</section>
<section anchor="prefixes-in-data-node-names"><name>Prefixes in Data Node Names</name>

<t>In this document, names of data nodes and other data model objects are prefixed
using the standard prefix associated with the corresponding YANG imported
modules, as shown in Table 1.</t>

<figure><artwork><![CDATA[
 +---------------+--------------------+-------------------------------+
 | Prefix        | YANG module        | Reference                     |
 +---------------+--------------------+-------------------------------+
 | yang          | ietf-yang-types    | [RFC6991]                     |
 | inet          | ietf-inet-types    | [RFC6991]                     |
 | te            | ietf-te            | [I-D.ietf-teas-yang-te]       |
 | rsvp          | ietf-rsvp          | [I-D.ietf-teas-yang-rsvp]     |
 | te-dev        | ietf-te-device     | [I-D.ietf-teas-yang-te]       |
 | te-types      | ietf-te-types      | [I-D.ietf-teas-yang-te-types] |
 | te-mpls-types | ietf-te-mpls-types | [I-D.ietf-teas-yang-te-types] |
 | rsvp-te       | ietf-rsvp-te       | this document                 |
 | rsvp-te-mpls  | ietf-rsvp-te-mpls  | this document                 |
 +---------------+--------------------+-------------------------------+

            Table 1: Prefixes and corresponding YANG modules
]]></artwork></figure>

</section>
</section>
<section anchor="model-overview"><name>Model Overview</name>

<t>The RSVP-TE generic model augments the RSVP base and extended YANG models
defined in <xref target="I-D.ietf-teas-yang-rsvp"/>. It also augments the TE tunnels and
interfaces module defined in <xref target="I-D.ietf-teas-yang-te"/> to cover parameters
specific to the configuration and management of RSVP-TE interfaces, tunnels and
LSP(s).</t>

<t>The RSVP-TE MPLS YANG model augments the RSVP-TE generic model with parameters
to configure and manage signaling of MPLS RSVP-TE LSPs.  RSVP-TE model
augmentation for other dataplane technologies (e.g. OTN or WDM) are outside the
scope of this document.</t>

<t>There are three types of configuration and state data nodes in module(s)
defined in this document:</t>

<t><list style="symbols">
  <t>those augmenting or extending the base RSVP module that is defined in
<xref target="I-D.ietf-teas-yang-rsvp"/></t>
  <t>those augmenting or extending the base TE module defined in
<xref target="I-D.ietf-teas-yang-te"/></t>
  <t>those that are specific to the RSVP-TE and RSVP-TE MPLS modules defined in
this document.</t>
</list></t>

<section anchor="module-relationship"><name>Module Relationship</name>

<t>The data pertaining to RSVP-TE in this document is divided into two modules: a
technology agnostic RSVP-TE module that holds generic parameters for RSVP-TE
applicable to all technologies, and a MPLS technology specific RSVP-TE module
that holds parameters specific to MPLS technology.</t>

<t>The relationship between the different modules is shown in <xref target="figctrl"/>.</t>

<figure title="Relationship of RSVP and RSVP-TE modules with other
 protocol modules" anchor="figctrl"><artwork><![CDATA[
  TE basic       +---------+
  module         | ietf-te |        o: augment
                 +---------+
                      o
                      |
                      |
                 +--------------+
  RSVP-TE module | ietf-rsvp-te |o . . .
                 +--------------+         \
                      |                    \
                      o                 +--------------------+
                 +-----------+          | ietf-rsvp-te-mpls  |
  RSVP module    | ietf-rsvp |          +--------------------+
                 +-----------+             RSVP-TE with MPLS
                      o
                      |
  RSVP extended       |
    module       +--------------------+
                 | ietf-rsvp-extended |
                 +--------------------+
]]></artwork></figure>

</section>
<section anchor="model-tree-diagrams"><name>Model Tree Diagrams</name>

<t>A full tree diagram of the module(s) defined in this document as per the syntax
defined in <xref target="RFC8340"/> are given in subsequent sections.</t>

<section anchor="rsvp-te-model-tree-diagram"><name>RSVP-TE Model Tree Diagram</name>

<t><xref target="fig-rsvp-te"/> shows the YANG tree diagram of the RSVP-TE generic YANG model
defined in module ietf-rsvp-te.yang.</t>

<figure title="RSVP-TE model Tree diagram" anchor="fig-rsvp-te"><artwork><![CDATA[
module: ietf-rsvp-te

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp:
    +--rw global-soft-preemption!
       +--rw soft-preemption-timeout?   uint16
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces:
    +--rw rsvp-te-interface-attributes
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
            /rsvp:interface:
    +--rw rsvp-te-interface-attributes
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions:
    +--ro session-te* [tunnel-endpoint tunnel-id extended-tunnel-id]
       +--ro tunnel-endpoint       inet:ip-address
       +--ro tunnel-id             uint16
       +--ro extended-tunnel-id    inet:ip-address
       +--ro psbs
       |  +--ro psb* []
       |     +--ro tspec-average-rate?
       |     |       rt-types:bandwidth-ieee-float32
       |     +--ro tspec-size?
       |     |       rt-types:bandwidth-ieee-float32
       |     +--ro tspec-peak-rate?
       |     |       rt-types:bandwidth-ieee-float32
       |     +--ro min-policed-unit?     uint32
       |     +--ro max-packet-size?      uint32
       +--ro rsbs
          +--ro rsb* []
             +--ro fspec-average-rate?
             |       rt-types:bandwidth-ieee-float32
             +--ro fspec-size?
             |       rt-types:bandwidth-ieee-float32
             +--ro fspec-peak-rate?
             |       rt-types:bandwidth-ieee-float32
             +--ro min-policed-unit?     uint32
             +--ro max-packet-size?      uint32
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors:
  augment /te:te/te:tunnels/te:tunnel:
    +--rw lsp-signaled-name?   string
    +--rw session-attribute*   identityref
    +--rw lsp-attribute*       identityref
    +--rw retry-timer?         uint16
  augment /te:te/te:lsps/te:lsp:
    +--ro associated-rsvp-session?            leafref
    +--ro lsp-signaled-name?                  string
    +--ro session-attribute*                  identityref
    +--ro lsp-attribute*                      identityref
    +--ro rsvp-message-type?                  identityref
    +--ro rsvp-error-code?                    uint8
    +--ro rsvp-error-subcode?                 uint16
    +--ro explicit-route-objects
    |  +--ro incoming-explicit-route-hop* [index]
    |  |  +--ro index                        uint32
    |  |  +--ro (type)?
    |  |     +--:(numbered-node-hop)
    |  |     |  +--ro numbered-node-hop
    |  |     |     +--ro node-id-uri?   nw:node-id
    |  |     |     +--ro node-id?       te-node-id
    |  |     |     +--ro hop-type?      te-hop-type
    |  |     +--:(numbered-link-hop)
    |  |     |  +--ro numbered-link-hop
    |  |     |     +--ro link-tp-id    te-tp-id
    |  |     |     +--ro hop-type?     te-hop-type
    |  |     |     +--ro direction?    te-link-direction
    |  |     +--:(unnumbered-link-hop)
    |  |     |  +--ro unnumbered-link-hop
    |  |     |     +--ro link-tp-id-uri?   nt:tp-id
    |  |     |     +--ro link-tp-id?       te-tp-id
    |  |     |     +--ro node-id-uri?      nw:node-id
    |  |     |     +--ro node-id?          te-node-id
    |  |     |     +--ro hop-type?         te-hop-type
    |  |     |     +--ro direction?        te-link-direction
    |  |     +--:(as-number)
    |  |     |  +--ro as-number-hop
    |  |     |     +--ro as-number    inet:as-number
    |  |     |     +--ro hop-type?    te-hop-type
    |  |     +--:(label)
    |  |        +--ro label-hop
    |  |           +--ro te-label
    |  |              +--ro (technology)?
    |  |              |  +--:(generic)
    |  |              |     +--ro generic?
    |  |              |             rt-types:generalized-label
    |  |              +--ro direction?       te-label-direction
    |  +--ro outgoing-explicit-route-hop* [index]
    |     +--ro index                        uint32
    |     +--ro (type)?
    |        +--:(numbered-node-hop)
    |        |  +--ro numbered-node-hop
    |        |     +--ro node-id-uri?   nw:node-id
    |        |     +--ro node-id?       te-node-id
    |        |     +--ro hop-type?      te-hop-type
    |        +--:(numbered-link-hop)
    |        |  +--ro numbered-link-hop
    |        |     +--ro link-tp-id    te-tp-id
    |        |     +--ro hop-type?     te-hop-type
    |        |     +--ro direction?    te-link-direction
    |        +--:(unnumbered-link-hop)
    |        |  +--ro unnumbered-link-hop
    |        |     +--ro link-tp-id-uri?   nt:tp-id
    |        |     +--ro link-tp-id?       te-tp-id
    |        |     +--ro node-id-uri?      nw:node-id
    |        |     +--ro node-id?          te-node-id
    |        |     +--ro hop-type?         te-hop-type
    |        |     +--ro direction?        te-link-direction
    |        +--:(as-number)
    |        |  +--ro as-number-hop
    |        |     +--ro as-number    inet:as-number
    |        |     +--ro hop-type?    te-hop-type
    |        +--:(label)
    |           +--ro label-hop
    |              +--ro te-label
    |                 +--ro (technology)?
    |                 |  +--:(generic)
    |                 |     +--ro generic?
    |                 |             rt-types:generalized-label
    |                 +--ro direction?       te-label-direction
    +--ro incoming-record-route-subobjects
    |  +--ro incoming-record-route-subobject* [index]
    |     +--ro index                        uint32
    |     +--ro (type)?
    |        +--:(numbered-node-hop)
    |        |  +--ro numbered-node-hop
    |        |     +--ro node-id-uri?   nw:node-id
    |        |     +--ro node-id?       te-node-id
    |        |     +--ro flags*         path-attribute-flags
    |        +--:(numbered-link-hop)
    |        |  +--ro numbered-link-hop
    |        |     +--ro link-tp-id    te-tp-id
    |        |     +--ro flags*        path-attribute-flags
    |        +--:(unnumbered-link-hop)
    |        |  +--ro unnumbered-link-hop
    |        |     +--ro link-tp-id-uri?   nt:tp-id
    |        |     +--ro link-tp-id?       te-tp-id
    |        |     +--ro node-id-uri?      nw:node-id
    |        |     +--ro node-id?          te-node-id
    |        |     +--ro flags*            path-attribute-flags
    |        +--:(label)
    |           +--ro label-hop
    |              +--ro te-label
    |              |  +--ro (technology)?
    |              |  |  +--:(generic)
    |              |  |     +--ro generic?
    |              |  |             rt-types:generalized-label
    |              |  +--ro direction?       te-label-direction
    |              +--ro flags*      path-attribute-flags
    +--ro outgoing-record-route-subobjects
       +--ro outgoing-record-route-subobject* [index]
          +--ro index                        uint32
          +--ro (type)?
             +--:(numbered-node-hop)
             |  +--ro numbered-node-hop
             |     +--ro node-id-uri?   nw:node-id
             |     +--ro node-id?       te-node-id
             |     +--ro flags*         path-attribute-flags
             +--:(numbered-link-hop)
             |  +--ro numbered-link-hop
             |     +--ro link-tp-id    te-tp-id
             |     +--ro flags*        path-attribute-flags
             +--:(unnumbered-link-hop)
             |  +--ro unnumbered-link-hop
             |     +--ro link-tp-id-uri?   nt:tp-id
             |     +--ro link-tp-id?       te-tp-id
             |     +--ro node-id-uri?      nw:node-id
             |     +--ro node-id?          te-node-id
             |     +--ro flags*            path-attribute-flags
             +--:(label)
                +--ro label-hop
                   +--ro te-label
                   |  +--ro (technology)?
                   |  |  +--:(generic)
                   |  |     +--ro generic?
                   |  |             rt-types:generalized-label
                   |  +--ro direction?       te-label-direction
                   +--ro flags*      path-attribute-flags
  augment /te:te/te-dev:interfaces/te-dev:interface:
]]></artwork></figure>

</section>
<section anchor="rsvp-te-mpls-model-tree-diagram"><name>RSVP-TE MPLS Model Tree Diagram</name>

<t><xref target="fig-rsvp-te-mpls-module"/> shows the YANG tree diagram of the RSVP-TE MPLS
YANG model defined in module ietf-rsvp-te-mpls.yang and that augments RSVP-TE
module as well as RSVP and TE YANG modules.</t>

<figure title="RSVP-TE MPLS Tree diagram" anchor="fig-rsvp-te-mpls"><artwork><![CDATA[
module: ietf-rsvp-te-mpls

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp:
    +--rw rsvp-frr-local-revert-delay?   uint32
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces:
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces
            /rsvp:interface:
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:sessions:
  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors:
  augment /te:te/te:tunnels/te:tunnel:
    +--rw session-attribute*   identityref
  augment /te:te/te:lsps/te:lsp:
    +--ro session-attribute*   identityref
    +--ro backup-info
       +--ro backup-tunnel-name?         string
       +--ro backup-frr-on?              uint8
       +--ro backup-protected-lsp-num?   uint32
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:lsps/te:lsp:
    +--ro session-attribute*   identityref
    +--ro backup-info
       +--ro backup-tunnel-name?         string
       +--ro backup-frr-on?              uint8
       +--ro backup-protected-lsp-num?   uint32
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:lsps/te:lsp:
    +--ro session-attribute*   identityref
    +--ro backup-info
       +--ro backup-tunnel-name?         string
       +--ro backup-frr-on?              uint8
       +--ro backup-protected-lsp-num?   uint32
  augment /te:te/te-dev:interfaces/te-dev:interface:
    +--rw bandwidth-mpls-reservable
       +--rw (bandwidth-value)?
       |  +--:(absolute)
       |  |  +--rw absolute-value?   te-packet-types:bandwidth-kbps
       |  +--:(percentage)
       |     +--rw percent-value?    uint32
       +--rw (bc-model-type)?
          +--:(bc-model-rdm)
          |  +--rw bc-model-rdm
          |     +--rw bandwidth-mpls-constraints
          |        +--rw maximum-reservable?
          |        |       te-packet-types:bandwidth-kbps
          |        +--rw bc-value*             uint32
          +--:(bc-model-mam)
          |  +--rw bc-model-mam
          |     +--rw bandwidth-mpls-constraints
          |        +--rw maximum-reservable?
          |        |       te-packet-types:bandwidth-kbps
          |        +--rw bc-value*             uint32
          +--:(bc-model-mar)
             +--rw bc-model-mar
                +--rw bandwidth-mpls-constraints
                   +--rw maximum-reservable?
                   |       te-packet-types:bandwidth-kbps
                   +--rw bc-value*             uint32
  augment /te:te/te-dev:interfaces/te-dev:interface:
    +--rw rsvp-te-frr-backups
       +--rw (type)?
          +--:(static-tunnel)
          |  +--rw static-backups
          |     +--rw static-backup* [backup-tunnel-name]
          |        +--rw backup-tunnel-name
          |                -> /te:te/tunnels/tunnel/name
          +--:(auto-tunnel)
             +--rw auto-tunnel-backups
                +--rw auto-backup-protection?         identityref
                +--rw auto-backup-path-computation?   identityref
]]></artwork></figure>

</section>
</section>
<section anchor="te-yang-mod"><name>YANG Modules</name>

<section anchor="rsvp-te-yang-mod"><name>RSVP-TE YANG Module</name>

<t>The RSVP-TE generic YANG module "ietf-rsvp-te" imports the following modules:</t>

<t><list style="symbols">
  <t>ietf-rsvp defined in <xref target="I-D.ietf-teas-yang-rsvp"/></t>
  <t>ietf-routing-types defined in <xref target="RFC8294"/></t>
  <t>ietf-te-types defined in <xref target="I-D.ietf-teas-yang-te-types"/></t>
  <t>ietf-te and ietf-te-dev defined in <xref target="I-D.ietf-teas-yang-te"/></t>
</list></t>

<t>This module references the following documents:
<xref target="I-D.ietf-teas-yang-rsvp"/>, <xref target="RFC8349"/>, <xref target="I-D.ietf-teas-yang-te"/>,
<xref target="I-D.ietf-teas-yang-te-types"/>, <xref target="RFC2210"/>, <xref target="RFC4920"/>,
<xref target="RFC5420"/>, <xref target="RFC7570"/>, <xref target="RFC4859"/>.</t>

<figure title="RSVP TE generic YANG module" anchor="fig-rsvp-te-module"><artwork><![CDATA[
<CODE BEGINS> file "ietf-rsvp-te@2026-01-19.yang"
module ietf-rsvp-te {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te";
  prefix rsvp-te;

  import ietf-rsvp {
    prefix rsvp;
    reference
      "draft-ietf-teas-yang-rsvp: A YANG Data Model for
       Resource Reservation Protocol (RSVP)";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC8349: A YANG Data Model for Routing Management";
  }
  import ietf-routing-types {
    prefix rt-types;
    reference
      "RFC8294: Common YANG Data Types for the Routing Area";
  }
  import ietf-te {
    prefix te;
    reference
      "draft-ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }
  import ietf-te-device {
    prefix te-dev;
    reference
      "draft-ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }

  /* Import TE generic types */

  import ietf-te-types {
    prefix te-types;
    reference
      "RFC8776: Common YANG Data Types for Traffic Engineering.";
  }
  import ietf-inet-types {
    prefix inet;
    reference
      "RFC6991: Common YANG Data Types";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Tarek Saad
               <mailto:tsaad.net@gmail.com>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Xufeng Liu
               <mailto: xufeng.liu.ietf@gmail.com>

     Editor:   Igor Bryskin
               <mailto:Igor.Bryskin@huawei.com>

     Editor:   Himanshu Shah
               <mailto:hshah@ciena.com>";
  description
    "This module contains the RSVP-TE YANG generic data model.
     The model fully conforms to the Network Management Datastore
     Architecture (NMDA).

     Copyright (c) 2018 IETF Trust and the persons
     identified as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  // RFC Ed.: replace XXXX with actual RFC number and remove this
  // note.
  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.

  revision 2026-01-19 {
    description
      "A YANG Data Model for RSVP-TE";
    reference
      "RFCXXXX: A YANG Data Model for RSVP-TE Protocol";
  }

  identity rsvp-message-type {
    description
      "RSVP message types";
  }

  identity rsvp-message-path {
    base rsvp-message-type;
    description
      "RSVP Path message";
    reference
      "RFC2205";
  }

  identity rsvp-message-resv {
    base rsvp-message-type;
    description
      "RSVP Resv message";
    reference
      "RFC2205";
  }

  identity rsvp-message-path-err {
    base rsvp-message-type;
    description
      "RSVP Path-Err message";
    reference
      "RFC2205";
  }

  identity rsvp-message-resv-err {
    base rsvp-message-type;
    description
      "RSVP Resv-Err message";
    reference
      "RFC2205";
  }

  identity rsvp-message-path-tear {
    base rsvp-message-type;
    description
      "RSVP Path Tear message";
    reference
      "RFC2205";
  }

  identity rsvp-message-resv-conf {
    base rsvp-message-type;
    description
      "RSVP Resv Confirm message";
    reference
      "RFC2205";
  }

  identity rsvp-message-srefresh {
    base rsvp-message-type;
    description
      "RSVP SRefresh message";
    reference
      "RFC2961";
  }

  identity rsvp-message-hello {
    base rsvp-message-type;
    description
      "RSVP Hello message";
    reference
      "RFC3209";
  }

  identity rsvp-message-bundle {
    base rsvp-message-type;
    description
      "RSVP Bundle message";
    reference
      "RFC2961";
  }

  identity rsvp-message-notify {
    base rsvp-message-type;
    description
      "RSVP Notify message";
    reference
      "RFC3473";
  }

  /**
   * RSVP-TE LSPs groupings.
   */

  grouping lsp-record-route-information-state {
    description
      "recorded route information grouping";
    container incoming-record-route-subobjects {
      description
        "RSVP recorded route object incoming information";
      list incoming-record-route-subobject {
        when "../../te:origin-type != 'ingress'" {
          description
            "Applicable on non-ingress LSPs only";
        }
        key "index";
        ordered-by user;
        description
          "List of RSVP Path record-route objects";
        uses te-types:record-route-state;
      }
    }
    container outgoing-record-route-subobjects {
      description
        "RSVP recorded route object outgoing information";
      list outgoing-record-route-subobject {
        when "../../te:origin-type != 'egress'" {
          description
            "Applicable on non-egress LSPs only";
        }
        key "index";
        ordered-by user;
        description
          "List of RSVP Resv record-route objects";
        uses te-types:record-route-state;
      }
    }
  }

  grouping lsp-explicit-route-information-state {
    description
      "RSVP-TE LSP explicit-route information";
    container explicit-route-objects {
      description
        "Explicit route object information";
      list incoming-explicit-route-hop {
        when "../../te:origin-type != 'ingress'" {
          description
            "Applicable on non-ingress LSPs only";
        }
        key "index";
        ordered-by user;
        description
          "List of incoming RSVP Path explicit-route objects";
        leaf index {
          type uint32;
          description
            "Explicit route hop index. The index is used to
             identify an entry in the list. The order of entries
             is defined by the user without relying on key values";
        }
        uses te-types:explicit-route-hop;
      }
      list outgoing-explicit-route-hop {
        when "../../te:origin-type != 'egress'" {
          description
            "Applicable on non-egress LSPs only";
        }
        key "index";
        ordered-by user;
        description
          "List of outgoing RSVP Path explicit-route objects";
        leaf index {
          type uint32;
          description
            "Explicit route hop index. The index is used to
             identify an entry in the list. The order of entries
             is defined by the user without relying on key values";
        }
        uses te-types:explicit-route-hop;
      }
    }
  }

  grouping lsp-attributes-flags {
    description
      "Configuration parameters relating to RSVP-TE LSP
       attribute flags";
    leaf-list lsp-attribute {
      type identityref {
        base te-types:lsp-attributes-flags;
      }
      description
        "RSVP per LSP attributes flags";
      reference
        "RFC4920, RFC5420, RFC7570";
    }
  }

  grouping lsp-session-attributes-obj-flags {
    description
      "Configuration parameters relating to RSVP-TE LSP
       session attribute flags";
    reference
      "RFC4859: Registry for RSVP-TE Session Flags";
    leaf-list session-attribute {
      type identityref {
        base te-types:session-attributes-flags;
      }
      description
        "RSVP session attributes flags";
      reference
        "RFC4859: Registry for RSVP-TE Session Flags";
    }
  }

  grouping lsp-properties {
    description
      "Configuration parameters relating to RSVP-TE LSP
       session attribute flags";
    leaf lsp-signaled-name {
      type string;
      description
        "Sets the session name to use in the session
         attribute object.";
    }
    uses lsp-session-attributes-obj-flags;
    uses lsp-attributes-flags;
  }

  grouping tunnel-properties {
    description
      "RSVP-TE Tunnel properties grouping";
    leaf retry-timer {
      type uint16 {
        range "1..600";
      }
      units "seconds";
      description
        "sets the time between attempts to establish the
         LSP";
    }
  }

  /*** End of RSVP-TE LSP groupings ***/
  /**
   * RSVP-TE generic global properties.
   */

  grouping global-soft-preemption {
    description
      "Configuration for global RSVP-TE soft preemption";
    container global-soft-preemption {
      presence "Enables soft preemption on a node.";
      description
        "Top level container for RSVP-TE soft-preemption";
      leaf soft-preemption-timeout {
        type uint16 {
          range "0..300";
        }
        units "seconds";
        default "0";
        description
          "Timeout value for soft preemption to revert
           to hard preemption";
      }
    }
  }

  /*** End of RSVP-TE generic global properties. ***/
  /**
   * RSVP-TE interface generic groupings.
   */

  grouping rsvp-te-interface-attributes {
    description
      "Top level grouping for RSVP-TE interface properties.";
    container rsvp-te-interface-attributes {
      description
        "Top level container for RSVP-TE interface
         properties";
    }
  }

  /*** End of RSVP-TE generic groupings ***/
  /* RSVP-TE global properties */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp" {
    description
      "RSVP-TE augmentation to RSVP globals";
    uses global-soft-preemption;
  }

  /* Linkage to the base RSVP all links */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" {
    description
      "RSVP-TE generic data augmentation pertaining to interfaces";
    uses rsvp-te-interface-attributes;
  }

  /* Linkage to per RSVP interface */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
        + "rsvp:interface" {
    description
      "RSVP-TE generic data augmentation pertaining to specific
       interface";
    uses rsvp-te-interface-attributes;
  }

  /* add augmentation for sessions and neighbors */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/"
        + "rsvp:sessions" {
    description
      "RSVP-TE generic data augmentation pertaining to session";
    list session-te {
      key "tunnel-endpoint tunnel-id extended-tunnel-id";
      config false;
      description
        "List of RSVP sessions";
      leaf tunnel-endpoint {
        type inet:ip-address;
        description
          "RFC3209";
      }
      leaf tunnel-id {
        type uint16;
        description
          "RFC3209";
      }
      leaf extended-tunnel-id {
        type inet:ip-address;
        description
          "RFC3209";
      }
      /* uses rsvp:session-attributes; */
      container psbs {
        description
          "Path State Block (PSB) container.";
        list psb {
          description
            "List of Path State Blocks.";
        }
      }
      container rsbs {
        description
          "Reservation State Block (RSB) container.";
        list rsb {
          description
            "List of Reservation State Blocks.";
        }
      }
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/"
        + "rsvp:sessions/session-te/psbs/psb" {
    description
      "RSVP-TE generic data augmentation pertaining to session";
    /* To be added */
    leaf tspec-average-rate {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Tspec Token Bucket Average Rate";
      reference
        "RFC2210: RSVP with INTSERV";
    }
    leaf tspec-size {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Tspec Token Bucket Burst Rate";
      reference
        "RFC2210";
    }
    leaf tspec-peak-rate {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Tspec Token Bucket Peak Data Rate";
      reference
        "RFC2210";
    }
    leaf min-policed-unit {
      type uint32;
      description
        "Tspec Minimum Policed Unit";
      reference
        "RFC2210";
    }
    leaf max-packet-size {
      type uint32;
      description
        "Tspec Maximum Packet Size";
      reference
        "RFC2210";
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/"
        + "rsvp:sessions/session-te/rsbs/rsb" {
    description
      "RSVP-TE generic data augmentation pertaining to session";
    leaf fspec-average-rate {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Fspec Token Bucket Average Rate";
      reference
        "RFC2210";
    }
    leaf fspec-size {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Fspec Token Bucket Burst Rate";
      reference
        "RFC2210";
    }
    leaf fspec-peak-rate {
      type rt-types:bandwidth-ieee-float32;
      units "Bytes per second";
      description
        "Fspec Token Bucket Peak Data Rate";
      reference
        "RFC2210";
    }
    leaf min-policed-unit {
      type uint32;
      description
        "Fspec Minimum Policed Unit";
      reference
        "RFC2210";
    }
    leaf max-packet-size {
      type uint32;
      description
        "Fspec Maximum Packet Size";
      reference
        "RFC2210";
    }
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" {
    description
      "RSVP-TE generic data augmentation pertaining to neighbors";
    /* To be added */
  }

  /**
   * RSVP-TE generic augmentations of generic TE model.
   */
  /* TE tunnel augmentation */

  augment "/te:te/te:tunnels/te:tunnel" {
    when "/te:te/te:tunnels/te:tunnel"
       + "/te:primary-paths/te:primary-path"
       + "/te:signaling-type = 'te-types:path-setup-rsvp'" {
      description
        "When the path signaling protocol is RSVP-TE ";
    }
    description
      "RSVP-TE generic data augmentation pertaining to TE tunnels";
    uses lsp-properties;
    uses tunnel-properties;
  }

  /* TE LSP augmentation */

  grouping rsvp-te-lsp-error-info {
    description
      "Grouping for RSVP-TE error reporting information";
    leaf rsvp-message-type {
      type identityref {
        base rsvp-message-type;
      }
      description
        "The RSVP message type that delivered the error";
    }
    leaf rsvp-error-code {
      type uint8;
      description
        "RSVP error code";
      reference
        "RFC2205";
    }
    leaf rsvp-error-subcode {
      type uint16;
      description
        "RSVP Error sub-codes";
      reference
        "RFC2205";
    }
  }

  augment "/te:te/te:lsps/te:lsp" {
    when "/te:te/te:lsps/te:lsp"
       + "/te:signaling-type = 'te-types:path-setup-rsvp'" {
      description
        "When the signaling protocol is RSVP-TE ";
    }
    description
      "RSVP-TE generic data augmentation pertaining to specific TE
       LSP";
    leaf associated-rsvp-session {
      type leafref {
        path "/rt:routing/rt:control-plane-protocols/"
           + "rt:control-plane-protocol/rsvp:rsvp/"
           + "rsvp:sessions/session-te/tunnel-id";
      }
      config false;
      description
        "If the signalling protocol specified for this path is
         RSVP-TE, this leaf provides a reference to the associated
         session within the RSVP-TE protocol sessions list, such
         that details of the signaling can be retrieved.";
    }
    uses lsp-properties;
    uses rsvp-te-lsp-error-info;
    uses lsp-explicit-route-information-state;
    uses lsp-record-route-information-state;
  }

  /* TE interface augmentation */

  augment "/te:te/te-dev:interfaces/te-dev:interface" {
    description
      "RSVP-TE generic data augmentation pertaining to specific TE
       interface";
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="rsvp-te-mpls-yang-mod"><name>RSVP-TE MPLS YANG Module</name>

<t>The RSVP-TE MPLS YANG module "ietf-rsvp-te-mpls" imports the following module(s):</t>

<t><list style="symbols">
  <t>ietf-rsvp defined in <xref target="I-D.ietf-teas-yang-rsvp"/></t>
  <t>ietf-routing-types defined in <xref target="RFC8294"/></t>
  <t>ietf-te-mpls-types defined in <xref target="I-D.ietf-teas-yang-te-types"/></t>
  <t>ietf-te and ietf-te-dev defined in <xref target="I-D.ietf-teas-yang-te"/></t>
</list></t>

<t>This module references the following documents:
<xref target="I-D.ietf-teas-yang-rsvp"/>, <xref target="RFC8349"/>, <xref target="I-D.ietf-teas-yang-te-types"/>,
<xref target="I-D.ietf-teas-yang-te"/>, <xref target="RFC3209"/>.</t>

<figure title="RSVP TE MPLS YANG module" anchor="fig-rsvp-te-mpls-module"><artwork><![CDATA[
<CODE BEGINS> file "ietf-rsvp-te-mpls@2026-01-19.yang"
module ietf-rsvp-te-mpls {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls";
  prefix rsvp-te-mpls;

  import ietf-rsvp {
    prefix rsvp;
    reference
      "draft-ietf-teas-yang-rsvp: A YANG Data Model for
       Resource Reservation Protocol (RSVP)";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC8349: A YANG Data Model for Routing Management";
  }
  import ietf-te-packet-types {
    prefix te-packet-types;
    reference
      "RFC8776: Common YANG Data Types for Traffic Engineering.";
  }
  import ietf-te-types {
    prefix te-types;
    reference
      "RFC8776: Common YANG Data Types for Traffic Engineering.";
  }
  import ietf-te {
    prefix te;
    reference
      "draft-ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }
  import ietf-te-device {
    prefix te-dev;
    reference
      "draft-ietf-teas-yang-te: A YANG Data Model for Traffic
       Engineering Tunnels and Interfaces";
  }

  organization
    "IETF Traffic Engineering Architecture and Signaling (TEAS)
     Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     Editor:   Vishnu Pavan Beeram
               <mailto:vbeeram@juniper.net>

     Editor:   Tarek Saad
               <mailto:tsaad.net@gmail.com>

     Editor:   Rakesh Gandhi
               <mailto:rgandhi@cisco.com>

     Editor:   Xufeng Liu
               <mailto: xufeng.liu.ietf@gmail.com>

     Editor:   Igor Bryskin
               <mailto:Igor.Bryskin@huawei.com>

     Editor:   Himanshu Shah
               <mailto:hshah@ciena.com>";
  description
    "Latest update to MPLS RSVP-TE YANG data model.
     The model fully conforms to the Network Management Datastore
     Architecture (NMDA).

     Copyright (c) 2018 IETF Trust and the persons
     identified as authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  // RFC Ed.: replace XXXX with actual RFC number and remove this
  // note.
  // RFC Ed.: update the date below with the date of RFC publication
  // and remove this note.

  revision 2026-01-19 {
    description
      "Update to MPLS RSVP-TE YANG initial revision.";
    reference
      "RFCXXXX: A YANG Data Model for RSVP-TE Protocol";
  }

  /* RSVP-TE MPLS LSPs groupings */

  grouping lsp-attributes-flags-mpls {
    description
      "Configuration parameters relating to RSVP-TE MPLS LSP
       attribute flags";
  }

  grouping lsp-session-attributes-obj-flags-mpls {
    description
      "Configuration parameters relating to RSVP-TE MPLS LSP
       session attribute flags";
    reference
      "RFC4859: Registry for RSVP-TE Session Flags";
    leaf-list session-attribute {
      type identityref {
        base te-types:session-attributes-flags;
      }
      description
        "RSVP session attributes flags";
      reference
        "RFC4859: Registry for RSVP-TE Session Flags";
    }
  }

  grouping tunnel-properties-mpls {
    description
      "Top level grouping for LSP properties.";
    uses lsp-session-attributes-obj-flags-mpls;
    uses lsp-attributes-flags-mpls;
  }

  grouping lsp-properties-mpls {
    description
      "Top level grouping for LSP properties.";
    uses lsp-session-attributes-obj-flags-mpls;
    uses lsp-attributes-flags-mpls;
  }

  /* End of RSVP-TE MPLS LSPs groupings */
  /* MPLS RSVP-TE interface groupings */

  grouping rsvp-te-interface-state {
    description
      "The RSVP-TE interface state grouping";
    leaf over-subscribed-bandwidth {
      type te-packet-types:bandwidth-kbps;
      description
        "The amount of over-subscribed bandwidth on
         the interface";
    }
  }

  grouping rsvp-te-interface-softpreemption-state {
    description
      "The RSVP-TE interface preeemptions state grouping";
    container interface-softpreemption-state {
      description
        "The RSVP-TE interface preeemptions state grouping";
      leaf soft-preempted-bandwidth {
        type te-packet-types:bandwidth-kbps;
        description
          "The amount of soft-preempted bandwidth on
           this interface";
      }
      list lsps {
        key "source destination tunnel-id lsp-id "
          + "extended-tunnel-id";
        description
          "List of LSPs that are soft-preempted";
        leaf source {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:source";
          }
          description
            "Tunnel sender address extracted from
             SENDER_TEMPLATE  object";
          reference
            "RFC3209";
        }
        leaf destination {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:destination";
          }
          description
            "Tunnel endpoint address extracted from
             SESSION object";
          reference
            "RFC3209";
        }
        leaf tunnel-id {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:tunnel-id";
          }
          description
            "Tunnel identifier used in the SESSION
             that remains constant over the life
             of the tunnel.";
          reference
            "RFC3209";
        }
        leaf lsp-id {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:lsp-id";
          }
          description
            "Identifier used in the SENDER_TEMPLATE
             and the FILTER_SPEC that can be changed
             to allow a sender to share resources with
             itself.";
          reference
            "RFC3209";
        }
        leaf extended-tunnel-id {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:extended-tunnel-id";
          }
          description
            "Extended Tunnel ID of the LSP.";
          reference
            "RFC3209";
        }
        leaf type {
          type leafref {
            path "/te:te/te:lsps/te:lsp/"
               + "te:type";
          }
          description
            "LSP type P2P or P2MP";
        }
      }
    }
  }

  grouping bandwidth-mpls-constraints {
    description
      "Bandwidth constraints.";
    container bandwidth-mpls-constraints {
      description
        "Holds the bandwidth constraints properties";
      leaf maximum-reservable {
        type te-packet-types:bandwidth-kbps;
        description
          "The maximum reservable bandwidth on the
           interface in kbps";
      }
      leaf-list bc-value {
        type uint32 {
          range "0..4294967295";
        }
        max-elements 8;
        description
          "The bandwidth constraint type";
      }
    }
  }

  grouping bandwidth-constraint-values {
    description
      "Packet bandwidth contraints values";
    choice value-type {
      description
        "Value representation";
      case percentages {
        container perc-values {
          uses bandwidth-mpls-constraints;
          description
            "Percentage values";
        }
      }
      case absolutes {
        container abs-values {
          uses bandwidth-mpls-constraints;
          description
            "Absolute values";
        }
      }
    }
  }

  grouping bandwidth-mpls-reservable {
    description
      "Interface bandwidth reservable configuration grouping";
    container bandwidth-mpls-reservable {
      description
        "Interface bandwidth reservable container";
      choice bandwidth-value {
        description
          "Reservable bandwidth configuration choice";
        case absolute {
          leaf absolute-value {
            type te-packet-types:bandwidth-kbps;
            description
              "Absolute value of the bandwidth";
          }
        }
        case percentage {
          leaf percent-value {
            type uint32 {
              range "0..4294967295";
            }
            description
              "Percentage reservable bandwidth";
          }
          description
            "The maximum reservable bandwidth on the
             interface";
        }
      }
      choice bc-model-type {
        description
          "Reservable bandwidth percentage capacity
           values.";
        case bc-model-rdm {
          container bc-model-rdm {
            description
              "Russian Doll Model Bandwidth Constraints.";
            uses bandwidth-mpls-constraints;
          }
        }
        case bc-model-mam {
          container bc-model-mam {
            uses bandwidth-mpls-constraints;
            description
              "Maximum Allocation Model Bandwidth
               Constraints.";
          }
        }
        case bc-model-mar {
          container bc-model-mar {
            uses bandwidth-mpls-constraints;
            description
              "Maximum Allocation with Reservation Model
               Bandwidth Constraints.";
          }
        }
      }
    }
  }

  /* End of RSVP-TE interface groupings */
  /* RSVP-TE FRR groupings */

  grouping rsvp-te-frr-auto-tunnel-backup {
    description
      "Auto-tunnel backup configuration grouping";
    leaf auto-backup-protection {
      type identityref {
        base te-packet-types:backup-protection-type;
      }
      default "te-packet-types:backup-protection-node-link";
      description
        "Describes whether the backup should offer
         protection against link, node, or either";
    }
    leaf auto-backup-path-computation {
      type identityref {
        base te-types:path-computation-srlg-type;
      }
      description
        "FRR backup computation type";
    }
  }

  grouping rsvp-te-frr-backups {
    description
      "Top level container for RSVP-TE FRR backup parameters";
    container rsvp-te-frr-backups {
      description
        "RSVP-TE facility backup properties";
        choice type {
          description
            "FRR backup tunnel type";
          case static-tunnel {
            container static-backups {
              description
                "List of static backups";
              list static-backup {
                key "backup-tunnel-name";
                description
                  "List of static backup tunnels that
                   protect the RSVP-TE interface.";
                leaf backup-tunnel-name {
                  type leafref {
                    path "/te:te/te:tunnels/te:tunnel/te:name";
                  }
                  description
                    "FRR Backup tunnel name";
                }
              }
            }
          }
          case auto-tunnel {
            container auto-tunnel-backups {
              description
                "Auto-tunnel choice";
              uses rsvp-te-frr-auto-tunnel-backup;
            }
          }
        }
    }
  }

  grouping lsp-backup-info-state {
    description
      "LSP backup information grouping";
    leaf backup-tunnel-name {
      type string;
      description
        "If an LSP has an FRR backup LSP that can protect it,
         this field identifies the tunnel name of the backup LSP.
         Otherwise, this field is empty.";
    }
    leaf backup-frr-on {
      type uint8;
      description
        "Whether currently this backup is carrying traffic";
    }
    leaf backup-protected-lsp-num {
      type uint32;
      description
        "Number of LSPs protected by this backup";
    }
  }

  grouping lsp-backup-info {
    description
      "Backup/bypass LSP related information";
    container backup-info {
      description
        "backup information";
      uses lsp-backup-info-state;
    }
  }

  /*** End of RSVP-TE FRR backup information ***/

  /* RSVP-TE global properties */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp" {
    description
      "RSVP-TE augmentation to RSVP globals";
    leaf rsvp-frr-local-revert-delay {
      type uint32;
      description
        "Time to wait after primary link is restored
         before node attempts local revertive
         procedures.";
    }
  }

  /* Linkage to the base RSVP all interfaces */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces" {
    description
      "Augmentations for RSVP-TE MPLS all interfaces properties";
    /* To be added */
  }

  /* Linkage to per RSVP interface */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces/"
        + "rsvp:interface" {
    description
      "Augmentations for RSVP-TE MPLS per interface properties";
    /* To be added */
  }

  /* add augmentation for sessions neighbors */

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/"
        + "rsvp:sessions" {
    description
      "Augmentation for RSVP-TE MPLS sessions";
    /* To be added */
  }

  augment "/rt:routing/rt:control-plane-protocols/"
        + "rt:control-plane-protocol/rsvp:rsvp/rsvp:neighbors" {
    description
      "Augmentations for RSVP-TE MPLS neighbors properties";
    /* To be added */
  }

  /**
   * Augmentation to TE generic module
   */

  augment "/te:te/te:tunnels/te:tunnel" {
    description
      "Augmentations for RSVP-TE MPLS TE tunnel properties";
    uses tunnel-properties-mpls;
  }

  augment "/te:te/te:lsps/te:lsp" {
    when "/te:te/te:lsps/te:lsp"
       + "/te:signaling-type = 'te-types:path-setup-rsvp'" {
      description
        "When the signaling protocol is RSVP-TE ";
    }
    description
      "RSP-TE MPLS LSP state properties";
    uses lsp-properties-mpls;
    uses lsp-backup-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths"
        + "/te:primary-path/te:lsps/te:lsp" {
    when "/te:te/te:tunnels/te:tunnel"
       + "/te:secondary-paths/te:secondary-path/"
       + "te:signaling-type = 'te-types:path-setup-rsvp'" {
      description
        "When the signaling protocol is RSVP-TE ";
    }
    description
      "RSVP-TE MPLS LSP state properties";
    uses lsp-properties-mpls;
    uses lsp-backup-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths"
        + "/te:secondary-path/te:lsps/te:lsp" {
    when "/te:te/te:tunnels/te:tunnel"
       + "/te:secondary-paths/te:secondary-path/"
       + "te:signaling-type = 'te-types:path-setup-rsvp'" {
      description
        "When the signaling protocol is RSVP-TE ";
    }
    description
      "RSVP-TE MPLS LSP state properties";
    uses lsp-properties-mpls;
    uses lsp-backup-info;
  }

  augment "/te:te/te-dev:interfaces/te-dev:interface" {
    description
      "RSVP reservable bandwidth configuration properties";
    uses bandwidth-mpls-reservable;
  }

  augment "/te:te/te-dev:interfaces/te-dev:interface" {
    description
      "RSVP reservable bandwidth configuration properties";
    uses rsvp-te-frr-backups;
  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document registers the following URIs in the IETF XML registry <xref target="RFC3688"/>.
Following the format in <xref target="RFC3688"/>, the following registration is
requested to be made.</t>

<figure><artwork><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te
   Registrant Contact:  The IESG.
   XML: N/A, the requested URI is an XML namespace.

   URI: urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls
   Registrant Contact:  The IESG.
   XML: N/A, the requested URI is an XML namespace.
]]></artwork></figure>

<t>This document registers two YANG modules in the YANG Module Names
registry <xref target="RFC6020"/>.</t>

<figure><artwork><![CDATA[
   name:       ietf-rsvp-te
   namespace:  urn:ietf:params:xml:ns:yang:ietf-rsvp-te
   prefix:     rsvp-te
   reference:  RFCXXXX

   name:       ietf-rsvp-te-mpls
   namespace:  urn:ietf:params:xml:ns:yang:ietf-rsvp-te-mpls
   prefix:     rsvp-te-mpls
   reference:  RFCXXXX
]]></artwork></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol <xref target="RFC6241"/>.  The lowest NETCONF layer is the
secure transport layer and the mandatory-to-implement secure
transport is SSH <xref target="RFC6242"/>.  The NETCONF access control model
<xref target="RFC8341"/> provides means to restrict access for particular NETCONF
users to a pre-configured subset of all available NETCONF protocol
operations and content.</t>

<t>There are a number of data nodes defined in the YANG module(s) defined
in this document which are
writable/creatable/deletable (i.e., config true, which is the
default).  These data nodes may be considered sensitive or vulnerable
in some network environments.  Write operations (e.g., &lt;edit-config&gt;)
to these data nodes without proper protection can have a negative
effect on network operations.</t>

<t>/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rsvp:rsvp/globals:
The data nodes defined defined in this document and under this branch are applicable device-wide and can affect
all RSVP established sessions. Unauthorized access to this container can potentially
cause disruptive event(s) on all established sessions.</t>

<t>/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/
rsvp:rsvp/rsvp:globals/rsvp:sessions:
The data nodes defined in this document and under this branch are applicable to one or all RSVP-TE session(s).
Unauthorized access to this container can potentially affect the impacted RSVP session(s).</t>

<t>/rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/rsvp:rsvp/rsvp:interfaces:
The data nodes defined defined in this document and under this branch are applicable to one or all RSVP interfaces.
Unauthorized access to this container can potentially affect established session(s)
over impacted interface(s).</t>

</section>
<section anchor="acknowledgement"><name>Acknowledgement</name>

<t>The authors would like to thank Lou Berger for reviewing and providing valuable feedback
on this document.</t>

</section>
<section anchor="contributors"><name>Contributors</name>

<figure><artwork><![CDATA[
   Xia Chen
   Huawei Technologies

   Email: jescia.chenxia@huawei.com


   Raqib Jones
   Brocade

   Email: raqib@Brocade.com


   Bin Wen
   Comcast

   Email: Bin_Wen@cable.comcast.com

]]></artwork></figure>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC6020">
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6020"/>
  <seriesInfo name="DOI" value="10.17487/RFC6020"/>
</reference>
<reference anchor="RFC6241">
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6241"/>
  <seriesInfo name="DOI" value="10.17487/RFC6241"/>
</reference>
<reference anchor="RFC6991">
  <front>
    <title>Common YANG Data Types</title>
    <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
    <date month="July" year="2013"/>
    <abstract>
      <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6991"/>
  <seriesInfo name="DOI" value="10.17487/RFC6991"/>
</reference>
<reference anchor="RFC2205">
  <front>
    <title>Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification</title>
    <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
    <author fullname="L. Zhang" initials="L." surname="Zhang"/>
    <author fullname="S. Berson" initials="S." surname="Berson"/>
    <author fullname="S. Herzog" initials="S." surname="Herzog"/>
    <author fullname="S. Jamin" initials="S." surname="Jamin"/>
    <date month="September" year="1997"/>
    <abstract>
      <t>This memo describes version 1 of RSVP, a resource reservation setup protocol designed for an integrated services Internet. RSVP provides receiver-initiated setup of resource reservations for multicast or unicast data flows, with good scaling and robustness properties. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2205"/>
  <seriesInfo name="DOI" value="10.17487/RFC2205"/>
</reference>

<reference anchor="I-D.ietf-teas-yang-te">
   <front>
      <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths, and Interfaces</title>
      <author fullname="Tarek Saad" initials="T." surname="Saad">
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname="Xufeng Liu" initials="X." surname="Liu">
         <organization>Alef Edge</organization>
      </author>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
         <organization>Individual</organization>
      </author>
      <date day="2" month="November" year="2025"/>
      <abstract>
	 <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data that is independent of
   any technology or dataplane encapsulation and is divided into two
   YANG modules that cover device-specific, and device independent data.

   This model covers data for configuration, operational state, remote
   procedural calls, and event notifications.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-40"/>
   
</reference>

<reference anchor="I-D.ietf-teas-yang-rsvp">
   <front>
      <title>A YANG Data Model for Resource Reservation Protocol (RSVP)</title>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Tarek Saad" initials="T." surname="Saad">
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
         <organization>Cisco Systems, Inc.</organization>
      </author>
      <author fullname="Xufeng Liu" initials="X." surname="Liu">
         <organization>Individual</organization>
      </author>
      <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
         <organization>Individual</organization>
      </author>
      <date day="19" month="December" year="2025"/>
      <abstract>
	 <t>   This document defines a YANG data model for the configuration and
   management of the RSVP protocol.  The YANG data model covers the
   building blocks that may be augmented by other RSVP extension data
   models such as RSVP Traffic-Engineering (RSVP-TE).  It is divided
   into two modules that cover the basic and extended RSVP features.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-rsvp-20"/>
   
</reference>
<reference anchor="RFC7950">
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7950"/>
  <seriesInfo name="DOI" value="10.17487/RFC7950"/>
</reference>
<reference anchor="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8340">
  <front>
    <title>YANG Tree Diagrams</title>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="215"/>
  <seriesInfo name="RFC" value="8340"/>
  <seriesInfo name="DOI" value="10.17487/RFC8340"/>
</reference>
<reference anchor="RFC8294">
  <front>
    <title>Common YANG Data Types for the Routing Area</title>
    <author fullname="X. Liu" initials="X." surname="Liu"/>
    <author fullname="Y. Qu" initials="Y." surname="Qu"/>
    <author fullname="A. Lindem" initials="A." surname="Lindem"/>
    <author fullname="C. Hopps" initials="C." surname="Hopps"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>This document defines a collection of common data types using the YANG data modeling language. These derived common types are designed to be imported by other modules defined in the routing area.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8294"/>
  <seriesInfo name="DOI" value="10.17487/RFC8294"/>
</reference>

<reference anchor="I-D.ietf-teas-yang-te-types">
   <front>
      <title>Common YANG Data Types for Traffic Engineering</title>
      <author fullname="Tarek Saad" initials="T." surname="Saad">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
         <organization>Cisco Systems Inc</organization>
      </author>
      <author fullname="Xufeng Liu" initials="X." surname="Liu">
         <organization>Volta Networks</organization>
      </author>
      <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
         <organization>Juniper Networks</organization>
      </author>
      <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
         <organization>Individual</organization>
      </author>
      <date day="17" month="November" year="2019"/>
      <abstract>
	 <t>This document defines a collection of common data types and groupings in YANG data modeling language.  These derived common types and groupings are intended to be imported by modules that model Traffic Engineering (TE) configuration and state capabilities.
	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-types-13"/>
   
</reference>
<reference anchor="RFC8349">
  <front>
    <title>A YANG Data Model for Routing Management (NMDA Version)</title>
    <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
    <author fullname="A. Lindem" initials="A." surname="Lindem"/>
    <author fullname="Y. Qu" initials="Y." surname="Qu"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
      <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8349"/>
  <seriesInfo name="DOI" value="10.17487/RFC8349"/>
</reference>
<reference anchor="RFC3688">
  <front>
    <title>The IETF XML Registry</title>
    <author fullname="M. Mealling" initials="M." surname="Mealling"/>
    <date month="January" year="2004"/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="81"/>
  <seriesInfo name="RFC" value="3688"/>
  <seriesInfo name="DOI" value="10.17487/RFC3688"/>
</reference>
<reference anchor="RFC6242">
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
    <date month="June" year="2011"/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6242"/>
  <seriesInfo name="DOI" value="10.17487/RFC6242"/>
</reference>
<reference anchor="RFC8341">
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="91"/>
  <seriesInfo name="RFC" value="8341"/>
  <seriesInfo name="DOI" value="10.17487/RFC8341"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC3209">
  <front>
    <title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
    <author fullname="D. Awduche" initials="D." surname="Awduche"/>
    <author fullname="L. Berger" initials="L." surname="Berger"/>
    <author fullname="D. Gan" initials="D." surname="Gan"/>
    <author fullname="T. Li" initials="T." surname="Li"/>
    <author fullname="V. Srinivasan" initials="V." surname="Srinivasan"/>
    <author fullname="G. Swallow" initials="G." surname="Swallow"/>
    <date month="December" year="2001"/>
    <abstract>
      <t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels. A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3209"/>
  <seriesInfo name="DOI" value="10.17487/RFC3209"/>
</reference>
<reference anchor="RFC2210">
  <front>
    <title>The Use of RSVP with IETF Integrated Services</title>
    <author fullname="J. Wroclawski" initials="J." surname="Wroclawski"/>
    <date month="September" year="1997"/>
    <abstract>
      <t>This note describes the use of the RSVP resource reservation protocol with the Controlled-Load and Guaranteed QoS control services. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="2210"/>
  <seriesInfo name="DOI" value="10.17487/RFC2210"/>
</reference>
<reference anchor="RFC4920">
  <front>
    <title>Crankback Signaling Extensions for MPLS and GMPLS RSVP-TE</title>
    <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
    <author fullname="A. Satyanarayana" initials="A." surname="Satyanarayana"/>
    <author fullname="A. Iwata" initials="A." surname="Iwata"/>
    <author fullname="N. Fujita" initials="N." surname="Fujita"/>
    <author fullname="G. Ash" initials="G." surname="Ash"/>
    <date month="July" year="2007"/>
    <abstract>
      <t>In a distributed, constraint-based routing environment, the information used to compute a path may be out of date. This means that Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineered (TE) Label Switched Path (LSP) setup requests may be blocked by links or nodes without sufficient resources. Crankback is a scheme whereby setup failure information is returned from the point of failure to allow new setup attempts to be made avoiding the blocked resources. Crankback can also be applied to LSP recovery to indicate the location of the failed link or node.</t>
      <t>This document specifies crankback signaling extensions for use in MPLS signaling using RSVP-TE as defined in "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, and GMPLS signaling as defined in "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3473. These extensions mean that the LSP setup request can be retried on an alternate path that detours around blocked links or nodes. This offers significant improvements in the successful setup and recovery ratios for LSPs, especially in situations where a large number of setup requests are triggered at the same time. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4920"/>
  <seriesInfo name="DOI" value="10.17487/RFC4920"/>
</reference>
<reference anchor="RFC5420">
  <front>
    <title>Encoding of Attributes for MPLS LSP Establishment Using Resource Reservation Protocol Traffic Engineering (RSVP-TE)</title>
    <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
    <author fullname="D. Papadimitriou" initials="D." surname="Papadimitriou"/>
    <author fullname="JP. Vasseur" initials="JP." surname="Vasseur"/>
    <author fullname="A. Ayyangar" initials="A." surname="Ayyangar"/>
    <date month="February" year="2009"/>
    <abstract>
      <t>Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) may be established using the Resource Reservation Protocol Traffic Engineering (RSVP-TE) extensions. This protocol includes an object (the SESSION_ATTRIBUTE object) that carries a Flags field used to indicate options and attributes of the LSP. That Flags field has eight bits, allowing for eight options to be set. Recent proposals in many documents that extend RSVP-TE have suggested uses for each of the previously unused bits.</t>
      <t>This document defines a new object for RSVP-TE messages that allows the signaling of further attribute bits and also the carriage of arbitrary attribute parameters to make RSVP-TE easily extensible to support new requirements. Additionally, this document defines a way to record the attributes applied to the LSP on a hop-by-hop basis.</t>
      <t>The object mechanisms defined in this document are equally applicable to Generalized MPLS (GMPLS) Packet Switch Capable (PSC) LSPs and to GMPLS non-PSC LSPs.</t>
      <t>This document replaces and obsoletes the previous version of this work, published as RFC 4420. The only change is in the encoding of the Type-Length-Variable (TLV) data structures. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5420"/>
  <seriesInfo name="DOI" value="10.17487/RFC5420"/>
</reference>
<reference anchor="RFC7570">
  <front>
    <title>Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)</title>
    <author fullname="C. Margaria" initials="C." role="editor" surname="Margaria"/>
    <author fullname="G. Martinelli" initials="G." surname="Martinelli"/>
    <author fullname="S. Balls" initials="S." surname="Balls"/>
    <author fullname="B. Wright" initials="B." surname="Wright"/>
    <date month="July" year="2015"/>
    <abstract>
      <t>RFC 5420 extends RSVP-TE to specify or record generic attributes that apply to the whole of the path of a Label Switched Path (LSP). This document defines an extension to the RSVP Explicit Route Object (ERO) and Record Route Object (RRO) to allow them to specify or record generic attributes that apply to a given hop.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7570"/>
  <seriesInfo name="DOI" value="10.17487/RFC7570"/>
</reference>
<reference anchor="RFC4859">
  <front>
    <title>Codepoint Registry for the Flags Field in the Resource Reservation Protocol-Traffic Engineering (RSVP-TE) Session Attribute Object</title>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="April" year="2007"/>
    <abstract>
      <t>This document provides instructions to IANA for the creation of a new codepoint registry for the flags field in the Session Attribute object of the Resource Reservation Protocol Traffic Engineering (RSVP-TE) signaling messages used in Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) signaling. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4859"/>
  <seriesInfo name="DOI" value="10.17487/RFC4859"/>
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
LEq7Enz9O3x9QsLFSlhAViYi/h/r8msiotcAAA==

-->

</rfc>

