<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ccamp-otn-tunnel-model-26" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="OTN Tunnel Model">A YANG Data Model for Optical Transport Network (OTN) Tunnels and Label Switched Paths</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-tunnel-model-26"/>
    <author initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>H1, Huawei Xiliu Beipo Village, Songshan Lake</street>
          <city>Dongguan</city>
          <region>Guangdong</region>
          <code>523808</code>
          <country>China</country>
        </postal>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </author>
    <author initials="Y." surname="Xu" fullname="Yunbin Xu">
      <organization>CAICT</organization>
      <address>
        <email>xuyunbin@caict.ac.cn</email>
      </address>
    </author>
    <date year="2026" month="August" day="13"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <abstract>
      <?line 99?>

<t>This document describes the YANG data model for tunnels in OTN TE
networks.  The model can be used to do the configuration in order to
establish the tunnel in OTN network.  This work is independent with
the control plane protocols.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://haomianzheng.github.io/IETF-ACTN-YANG-Model/draft-ietf-ccamp-otn-tunnel-model.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ccamp-otn-tunnel-model/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CCAMP Working Group Working Group mailing list (<eref target="mailto:ccamp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccamp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccamp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/haomianzheng/IETF-ACTN-YANG-Model"/>.</t>
    </note>
  </front>
  <middle>
    <?line 106?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>OTN networks, specified in <xref target="ITU-T_G.709"/>, can carry various
types of client signals.  In many cases, the client signal is carried
over an OTN tunnel across connected domains in a multi-domain
network.</t>
      <t>This document provides YANG model for creating OTN tunnel.  The model
augments the generic TE Tunnel model specified in
<xref target="I-D.ietf-teas-yang-te"/>.</t>
      <section anchor="editorial-note-to-be-removed-by-rfc-editor">
        <name>Editorial Note (To be removed by RFC Editor)</name>
        <ul empty="true">
          <li>
            <t>Note to the RFC Editor: This section is to be removed prior to publication.</t>
          </li>
        </ul>
        <t>This document contains placeholder values that need to be replaced
with finalized values at the time of publication.  This note
summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>YYYY --&gt; the assigned RFC number fpr <xref target="I-D.ietf-ccamp-layer1-types"/></t>
          </li>
          <li>
            <t>ZZZZ --&gt; the assigned RFC number for <xref target="I-D.ietf-teas-yang-te"/></t>
          </li>
          <li>
            <t>2026-05-19 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>Refer to <xref target="I-D.ietf-ccamp-otn-topo-yang"/> for the OTN specific terms
terms used in this document.</t>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not redefined
here:</t>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined
here:</t>
        <ul spacing="normal">
          <li>
            <t>configuration data</t>
          </li>
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The terminology for describing YANG data models is found in
<xref target="RFC7950"/>.</t>
      </section>
      <section anchor="tree-diagram">
        <name>Tree Diagram</name>
        <t>A simplified graphical representation of the data model is used in
<xref target="yang-tree"/> of this this document.  The meaning of the symbols in these
diagrams is defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="prefix-in-data-node-names">
        <name>Prefix 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 the following table.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">YANG module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">l1-types</td>
              <td align="left">ietf-layer1-types</td>
              <td align="left">[RFC YYYY]</td>
            </tr>
            <tr>
              <td align="left">otn-tnl</td>
              <td align="left">ietf-otn-tunnel</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">te</td>
              <td align="left">ietf-te</td>
              <td align="left">[RFC ZZZZ]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="otn-tunnel-model-description">
      <name>OTN Tunnel Model Description</name>
      <section anchor="overview-of-otn-tunnel-model">
        <name>Overview of OTN Tunnel Model</name>
        <t>This document aims to describe the data model for OTN tunnel.  The
OTN tunnel model is using TE tunnel <xref target="I-D.ietf-teas-yang-te"/> as a
basic model and augments it with OTN-specific parameters, including
the bandwidth information and label information.  <xref target="fig-overview"/> shows the
augmentation relationship.</t>
        <figure anchor="fig-overview">
          <name>Relationship between OTN and TE tunnel models</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="264" viewBox="0 0 264 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 112,32 L 112,64" fill="none" stroke="black"/>
                <path d="M 112,144 L 112,176" fill="none" stroke="black"/>
                <path d="M 184,72 L 184,144" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,64" fill="none" stroke="black"/>
                <path d="M 256,144 L 256,176" fill="none" stroke="black"/>
                <path d="M 112,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 112,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 112,144 L 256,144" fill="none" stroke="black"/>
                <path d="M 112,176 L 256,176" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="192,72 180,66.4 180,77.6" fill="black" transform="rotate(270,184,72)"/>
                <g class="text">
                  <text x="12" y="52">TE</text>
                  <text x="56" y="52">generic</text>
                  <text x="184" y="52">ietf-te</text>
                  <text x="228" y="116">Augments</text>
                  <text x="16" y="164">OTN</text>
                  <text x="184" y="164">ietf-otn-tunnel</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                           +----------------+
              TE generic   |     ietf-te    |
                           +----------------+
                                    ^
                                    |
                                    | Augments
                                    |
                           +--------+--------+
              OTN          | ietf-otn-tunnel |
                           +-----------------+
]]></artwork>
          </artset>
        </figure>
        <t>It is also worth noting that the OTN tunnel provisioning is usually
based on the OTN topology.  Therefore the OTN tunnel model is usually
used together with OTN topology model specified in
<xref target="I-D.ietf-ccamp-otn-topo-yang"/>.  The OTN tunnel model also imports a
few type modules, including ietf-layer1-types, ietf-te-types and
ietf-inet-types.  The OTN-specific attributes in <xref target="RFC7139"/>, including
the Tributary Slot (TS) and Tributary Port Number (TPN), can be used
to represent the bandwidth and label information.  These attributes
have been specified in <xref target="I-D.ietf-ccamp-layer1-types"/> and used in this
document for augmentation of the generic TE tunnel model.</t>
        <t>More scenarios and model applications can be found in
<xref target="I-D.ietf-ccamp-transport-nbi-app-statement"/> and
<xref target="I-D.ietf-teas-actn-yang"/>.</t>
      </section>
      <section anchor="bandwidth-augmentation">
        <name>Bandwidth Augmentation</name>
        <t>The model augments all the occurrences of the te-bandwidth container
with the OTN technology specific attributes using the otn-link-
bandwidth and otn-path-bandwidth groupings defined in
<xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
      </section>
      <section anchor="label-augmentation">
        <name>Label Augmentation</name>
        <t>The model augments all the occurrences of the label-restriction list
with OTN technology specific attributes using the otn-label-range-
info grouping defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
        <t>Moreover, the model augments all the occurrences of the te-label
container with the OTN technology specific attributes using the otn-
label-start-end, otn-label-hop and otn-label-step groupings defined
in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
      </section>
    </section>
    <section anchor="yang">
      <name>OTN Tunnel YANG Code</name>
      <figure anchor="fig-otn-tunnel-yang">
        <sourcecode type="yang" markers="true" name="ietf-otn-tunnel@2026-05-19.yang"><![CDATA[
module ietf-otn-tunnel {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
  prefix otn-tnl;

  import ietf-te {
    prefix te;
    reference
      "RFC ZZZZ: A YANG Data Model for Traffic Engineering Tunnels
                 and Interfaces.";
  }
  import ietf-layer1-types {
    prefix l1-types;
    reference
      "RFC YYYY: Common YANG Data Types for Layer 1 Networks.";
  }

  organization
    "IETF CCAMP Working Group";
  contact
    "WG Web:   <http://tools.ietf.org/wg/ccamp/>
     WG List:  <mailto:ccamp@ietf.org>

     Editor:   Haomian Zheng
               <mailto:zhenghaomian@huawei.com>

     Editor:   Italo Busi
               <mailto:italo.busi@huawei.com>

     Editor:   Sergio Belotti
               <mailto:sergio.belotti@nokia.com>

     Editor:   Victor Lopez
               <mailto:victor.lopez@nokia.com>

     Editor:   Yunbin Xu
               <mailto:xuyunbin@caict.ac.cn>";
  description
    "This module defines a model for OTN Tunnel Services.

     Copyright (c) 2026 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 Revised 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).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision 2026-05-19 {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Optical Transport Network
                 (OTN) Tunnels and Label Switched Paths";
  }

  /*
   * Data nodes
   */
  /*
   * Augment TE bandwidth
   */

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the named path constraint.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the tunnel.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the primary path.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of primary path's computed path
       properties.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the primary reverse path.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the primary reverse path's computed
       path properties.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the secondary path.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the secondary path's computed path
       properties.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the secondary reverse path.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:te-bandwidth/te:technology" {
    description
      "Augment TE bandwidth of the secondary reverse path's computed
       path properties.";
    case otn {
      uses l1-types:otn-path-bandwidth;
    }
  }

  /*
   * Augment TE label range information
   */

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-in-segment/"
        + "te:label-restrictions/te:label-restriction" {
    description
      "Augment TE label range information for the ingress segment
       of the named path constraint.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-out-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the egress segment
       of the named path constraint.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the ingress segment
       of the primary path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the egress segment
       of the primary path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the ingress segment
       of the primary reverse path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the egress segment
       of the primary reverse path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the ingress segment
       of the secondary path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the egress segment
       of the secondary path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the ingress segment
       of the secondary reverse path.";
    uses l1-types:otn-label-range-info;
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction" {
    description
      "Augment TE label range information for the egress segment
       of the secondary reverse path.";
    uses l1-types:otn-label-range-info;
  }

  /*
   * Augment TE label.
   */

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
       excluded by the path computation with the named path
       constraint.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
       or excluded by the path computation with the named path
       constraint.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-in-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-in-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the ingress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-in-segment/"
        + "te:label-restrictions/te:label-restriction/"
        + "te:label-step/te:technology" {
    description
      "Augment TE label range step for the ingress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-out-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the egress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-out-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-out-segment/"
        + "te:label-restrictions/te:label-restriction/"
        + "te:label-step/te:technology" {
    description
      "Augment TE label range step for the egress segment
       of the named path constraint.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-exclude-objects/"
        + "te:route-object-exclude-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects excluded by the path computation of the primary
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-include-objects/"
        + "te:route-object-include-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects included by the path computation of the primary
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
       excluded by the path computation of the primary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
       or excluded by the path computation of the primary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the ingress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the ingress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the egress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the primary path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the route object of the computed
       primary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-exclude-objects/"
        + "te:route-object-exclude-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects excluded by the path computation of the primary
       reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-include-objects/"
        + "te:route-object-include-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects included by the path computation of the primary
       reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/"
        + "te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
       excluded by the path computation of the primary reverse
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/"
        + "te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
       or excluded by the path computation of the primary reverse
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the ingress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the ingress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the egress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the egress segment
       of the primary reverse path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/te:type/"
        + "te:label/te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the route object of the computed
       primary reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-exclude-objects/"
        + "te:route-object-exclude-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects excluded by the path computation of the
       secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-include-objects/"
        + "te:route-object-include-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects included by the path computation of the
       secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
       excluded by the path computation of the secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
       or excluded by the path computation of the secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the ingress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the ingress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the egress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the egress segment
       of the secondary path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-paths/te:secondary-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/"
        + "te:path-properties/te:path-route-objects/"
        + "te:path-route-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the route object of the computed
       secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-exclude-objects/"
        + "te:route-object-exclude-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects excluded by the path computation of the
       secondary reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:optimizations/te:algorithm/te:metric/"
        + "te:optimization-metric/"
        + "te:explicit-route-include-objects/"
        + "te:route-object-include-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the optimization of the explicit
       route objects included by the path computation of the
       secondary reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
       excluded by the path computation of the secondary reverse
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
       or excluded by the path computation of the secondary reverse
       path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the ingress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the ingress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the egress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-end/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range end for the egress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-start-end;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:path-out-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-step/te:technology" {
    description
      "Augment TE label range step for the egress segment
       of the secondary reverse path.";
    case otn {
      uses l1-types:otn-label-step;
    }
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/te:secondary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/"
        + "te:path-properties/te:path-route-objects/"
        + "te:path-route-object/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the route object of the computed
       secondary reverse path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

  augment "/te:te/te:lsps/"
        + "te:lsp/te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the record route of the LSP.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns"
registry within the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI: urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
   Registrant Contact: The IESG
   XML: N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG
Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters"
registry group.</t>
      <artwork><![CDATA[
   Name:         ietf-otn-tunnel
   Maintained by IANA?  N
   Namespace:    urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
   Prefix:       otn-tnl
   Reference:    RFC XXXX
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section is modeled after the template described in <xref section="3.7" sectionFormat="of" target="RFC9907"/>.</t>
      <t>The "ietf-otn-tunnel" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have to
use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default).
These data nodes can be considered sensitive or vulnerable in some network environments.
Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations.
Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-bandwidth"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific information under any occurrence of the tet:te-bandwidth container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology/otnt:otn/otnt:otn-bandwidth"). By configuring the OTN bandwidth attributes, an attacker may create an unauthorized OTN traffic path. By removing or modifying it, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-label-range"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific label range information under any occurrence of the tet:label-restriction container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:path-in-segment/te:label-restrictions/te:label-restriction/otnt:otn-label-range"). By configuring the OTN label range attributes, an attacker may create an unauthorized OTN traffic path. By removing or modifying, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-label"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific label information under any occurrence of the tet:te-label container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:explicit-route-objects/te:route-object-include-exclude/te:type/te:label/te:label-hop/te:te-label/te:technology/otnt:otn/otnt:otn-label"). By configuring, removing or modifying the OTN label attributes, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
        </li>
      </ul>
      <t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.
It is thus important to control read access (e.g., via get, get-config, or
notification) to these data nodes.
Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-bandwidth"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific information under any occurrence of the tet:te-bandwidth container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology/otnt:otn/otnt:otn-bandwidth"). Unauthorized access to this data node can disclose the OTN bandwidth information of OTN tunnels and LSPs.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-label-range"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific label range information under any occurrence of the tet:label-restriction container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:path-in-segment/te:label-restrictions/te:label-restriction/otnt:otn-label-range"). Unauthorized access to this data node can disclose the state information of OTN tunnels and LSPs.</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>
          <t>"otnt:otn-label"</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>This subtree specifies the configurations of OTN technology-specific label information under any occurrence of the tet:te-label container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:explicit-route-objects/te:route-object-include-exclude/te:type/te:label/te:label-hop/te:te-label/te:technology/otnt:otn/otnt:otn-label"). Unauthorized access to this data node can disclose the state information of OTN tunnels and LSPs.</t>
        </li>
      </ul>
      <t>This YANG module does not define RPC operations.</t>
      <t>This YANG module uses groupings from other YANG modules that
define nodes that may be considered sensitive or vulnerable
in network environments. Refer to the Security Considerations
of <xref target="I-D.ietf-ccamp-layer1-types"/> for information as to which nodes may
be considered sensitive or vulnerable in network environments.</t>
      <t>Finally, the YANG module described in this document augments the "ietf-te" YANG module <xref target="I-D.ietf-teas-yang-te"/> by adding data nodes. The security considerations for the subtrees described in those RFCs apply equally to the new data nodes that this module adds.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ITU-T_G.709">
          <front>
            <title>Interfaces for the optical transport network</title>
            <author>
              <organization>ITU-T Recommendation G.709</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ITU-T G.709" value=""/>
        </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="26" month="March" year="2026"/>
            <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 pertinent to TE
   tunnels, TE LSPs, and TE interfaces that are independent of any
   technology or dataplane encapsulation.  The model is divided into two
   YANG modules that address both device-specific and device-independent
   data, supporting configuration, operational state, Remote Procedure
   Calls (RPCs), and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-44"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-layer1-types">
          <front>
            <title>Common YANG Data Types for Layer 1 Networks</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="16" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a collection of common data types, identities,
   and groupings in the YANG data modeling language.  These derived
   common data types, identities, and groupings are intended to be
   imported by modules that model Layer 1 configuration and state
   capabilities.  The Layer 1 types are representative of Layer 1 client
   signals applicable to transport networks, such as Optical Transport
   Networks (OTN).  The Optical Transport Network (OTN) data structures
   are included in this document as Layer 1 types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-layer1-types-19"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-topo-yang">
          <front>
            <title>A YANG Data Model for Optical Transport Network Topology</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Individual</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="16" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for representing, retrieving,
   and manipulating Optical Transport Network (OTN) topologies.  It is
   independent of control plane protocols and captures topological and
   resource-related information pertaining to OTN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-topo-yang-21"/>
        </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="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="RFC7139">
          <front>
            <title>GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks</title>
            <author fullname="F. Zhang" initials="F." role="editor" surname="Zhang"/>
            <author fullname="G. Zhang" initials="G." surname="Zhang"/>
            <author fullname="S. Belotti" initials="S." surname="Belotti"/>
            <author fullname="D. Ceccarelli" initials="D." surname="Ceccarelli"/>
            <author fullname="K. Pithewan" initials="K." surname="Pithewan"/>
            <date month="March" year="2014"/>
            <abstract>
              <t>ITU-T Recommendation G.709 [G709-2012] introduced new Optical channel Data Unit (ODU) containers (ODU0, ODU4, ODU2e, and ODUflex) and enhanced Optical Transport Network (OTN) flexibility.</t>
              <t>This document updates the ODU-related portions of RFC 4328 to provide extensions to GMPLS signaling to control the full set of OTN features, including ODU0, ODU4, ODU2e, and ODUflex.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7139"/>
          <seriesInfo name="DOI" value="10.17487/RFC7139"/>
        </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="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 anchor="sec-informative-references">
        <name>Informative References</name>
        <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="I-D.ietf-ccamp-transport-nbi-app-statement">
          <front>
            <title>Transport Northbound Interface Applicability Statement</title>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Daniel King" initials="D." surname="King">
              <organization>Old Dog Consulting</organization>
            </author>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Yunbin Xu" initials="Y." surname="Xu">
              <organization>CAICT</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document provides an analysis of the applicability of the YANG
   models defined by the IETF (in particular in the Traffic Engineering
   Architecture and Signaling (TEAS) and Common Control and Measurement
   Plane (CCAMP) working groups) to support ODU transit services,
   transparent client services, and Ethernet Private Line/Ethernet
   Virtual Private Line (EPL/EVPL) services over Optical Transport
   Network (OTN) in single and multi-domain network scenarios.

   This document also describes how existing YANG models can be used
   through several worked examples and JSON fragments.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-transport-nbi-app-statement-17"/>
        </reference>
        <reference anchor="I-D.ietf-teas-actn-yang">
          <front>
            <title>Applicability of YANG models for Abstraction and Control of Traffic Engineered Networks</title>
            <author fullname="Young Lee" initials="Y." surname="Lee">
              <organization>Samsung</organization>
            </author>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei</organization>
            </author>
            <author fullname="Daniele Ceccarelli" initials="D." surname="Ceccarelli">
              <organization>Cisco</organization>
            </author>
            <author fullname="Bin Yeong Yoon" initials="B. Y." surname="Yoon">
              <organization>ETRI</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <date day="7" month="March" year="2023"/>
            <abstract>
              <t>   Abstraction and Control of TE Networks (ACTN) refers to the set of
   virtual network operations needed to orchestrate, control and manage
   large-scale multi-domain TE networks, so as to facilitate network
   programmability, automation, efficient resource sharing, and end-to-
   end virtual service aware connectivity and network function
   virtualization services.

   This document explains how the different types of YANG models
   defined in the Operations and Management Area and in the Routing
   Area are applicable to the ACTN framework. This document also shows
   how the ACTN architecture can be satisfied using classes of data
   model that have already been defined, and discusses the
   applicability of specific data models that are under development. It
   also highlights where new data models may need to be developed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-actn-yang-11"/>
        </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="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </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="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
      </references>
    </references>
    <?line 1350?>

<section anchor="yang-tree">
      <name>OTN Tunnel YANG Tree</name>
      <t>This appendix presents the complete tree of the YANG data model defined in module "ietf-otn-tunnel.yang", defined in <xref target="yang"/>. See <xref target="RFC8340"/> for an explanation of the symbols used.</t>
      <figure anchor="fig-otn-tunnel-tree">
        <artwork type="ascii-art" name="ietf-otn-tunnel.tree"><![CDATA[
module: ietf-otn-tunnel

  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:te-bandwidth
            /te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects/te:route-object-exclude-always
            /te:type/te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:path-route-objects
            /te:path-route-object/te:type/te:label/te:label-hop
            /te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information
            /te:lsp-actual-route-information/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
]]></artwork>
      </figure>
    </section>
    <section anchor="json-examples">
      <name>JSON Examples</name>
      <t>This appendix contains an example of an instance data tree in JSON
encoding <xref target="RFC7951"/>.</t>
      <t>The example instantiates the "ietf-otn-tunnel" model to setup an protected ODU2 tunnel between nodes D1 and D2 within the OTN topology shown in Figure 2 of <xref section="B" sectionFormat="of" target="I-D.ietf-ccamp-otn-topo-yang"/>. The protected ODU2 tunnel has a primary LSP, instatiating the D1-D2 primary TE and a secondary LSP, instantiating the D1-D3-D2 secondary TE path.</t>
      <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-te:te": {
    "tunnels": {
      "tunnel": [
        {
          "name": "OTN Tunnel Example",
          "encoding": "ietf-te-types:lsp-encoding-oduk",
          "switching-type": "ietf-te-types:switching-otn",
          "source": {
            "node-id": "example:D1",
            "te-node-id": "192.0.0.1"
          },
          "destination": {
            "node-id": "example:D2",
            "te-node-id": "192.0.0.2"
          },
          "bidirectional": true,
          "protection": {
            "protection-type": "ietf-te-types:lsp-protection-unidir-\
                                                            1-plus-1"
          },
          "network-id": "example:otn-topology-example",
          "te-topology-identifier": {
            "topology-id": "otn-topology-example"
          },
          "te-bandwidth": {
            "ietf-otn-tunnel:otn-bandwidth": {
              "odu-type": "ietf-layer1-types:ODU2"
            }
          },
          "primary-paths": {
            "primary-path": [
              {
                "name": "primary-path-1",
                "path-scope": "ietf-te-types:path-scope-end-to-end",
                "co-routed": true,
                "computed-paths-properties": {
                  "computed-path-properties": [
                    {
                      "k-index": 1,
                      "path-properties": {
                        "path-route-objects": {
                          "path-route-object": [
                            {
                              "index": 1,
                              "unnumbered-link-hop": {
                                "node-id": "192.0.0.1",
                                "link-tp-id": 2,
                                "node-id-uri": "example:D1",
                                "link-tp-id-uri": "example:D1-2",
                                "hop-type": "strict",
                                "direction": "outgoing"
                              }
                            },
                            {
                              "index": 2,
                              "label-hop": {
                                "te-label": {
                                  "ietf-otn-tunnel:otn-label": {
                                    "tpn": 10,
                                    "tsg": "ietf-layer1-types:tsg-1.\
                                                                25G",
                                    "ts-list": "1-8"
                                  }
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                },
                "lsps": {
                  "lsp": [
                    {
                      "tunnel-name": "OTN Tunnel Example",
                      "node": "192.0.0.1",
                      "lsp-id": 1
                    }
                  ]
                },
                "candidate-secondary-paths": {
                  "candidate-secondary-path": [
                    {
                      "secondary-path": "secondary-path-1"
                    }
                  ]
                }
              }
            ]
          },
          "secondary-paths": {
            "secondary-path": [
              {
                "name": "secondary-path-1",
                "path-scope": "ietf-te-types:path-scope-end-to-end",
                "computed-paths-properties": {
                  "computed-path-properties": [
                    {
                      "k-index": 1,
                      "path-properties": {
                        "path-route-objects": {
                          "path-route-object": [
                            {
                              "index": 1,
                              "unnumbered-link-hop": {
                                "node-id": "192.0.0.1",
                                "link-tp-id": 3,
                                "node-id-uri": "example:D1",
                                "link-tp-id-uri": "example:D1-3",
                                "hop-type": "strict",
                                "direction": "outgoing"
                              }
                            },
                            {
                              "index": 2,
                              "label-hop": {
                                "te-label": {
                                  "ietf-otn-tunnel:otn-label": {
                                    "tpn": 10,
                                    "tsg": "ietf-layer1-types:tsg-1.\
                                                                25G",
                                    "ts-list": "11-18"
                                  }
                                }
                              }
                            },
                            {
                              "index": 3,
                              "unnumbered-link-hop": {
                                "node-id": "192.0.0.3",
                                "link-tp-id": 2,
                                "node-id-uri": "example:D3",
                                "link-tp-id-uri": "example:D3-2",
                                "hop-type": "strict",
                                "direction": "outgoing"
                              }
                            },
                            {
                              "index": 4,
                              "label-hop": {
                                "te-label": {
                                  "ietf-otn-tunnel:otn-label": {
                                    "tpn": 20,
                                    "tsg": "ietf-layer1-types:tsg-1.\
                                                                25G",
                                    "ts-list": "21-28"
                                  }
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    },
    "lsps": {
      "lsp": [
        {
          "tunnel-name": "OTN Tunnel Example",
          "lsp-id": 1,
          "node": "192.0.0.1",
          "origin-type": "ingress",
          "lsp-actual-route-information": {
            "lsp-actual-route-information": [
              {
                "index": 1,
                "unnumbered-link-hop": {
                  "node-id": "192.0.0.1",
                  "link-tp-id": 2,
                  "node-id-uri": "example:D1",
                  "link-tp-id-uri": "example:D1-2"
                }
              },
              {
                "index": 2,
                "label-hop": {
                  "te-label": {
                    "ietf-otn-tunnel:otn-label": {
                      "tpn": 10,
                      "tsg": "ietf-layer1-types:tsg-1.25G",
                      "ts-list": "1-8"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "tunnel-name": "OTN Tunnel Example",
          "lsp-id": 2,
          "node": "192.0.0.1",
          "origin-type": "ingress",
          "lsp-actual-route-information": {
            "lsp-actual-route-information": [
              {
                "index": 1,
                "unnumbered-link-hop": {
                  "node-id": "192.0.0.1",
                  "link-tp-id": 3,
                  "node-id-uri": "example:D1",
                  "link-tp-id-uri": "example:D1-3"
                }
              },
              {
                "index": 2,
                "label-hop": {
                  "te-label": {
                    "ietf-otn-tunnel:otn-label": {
                      "tpn": 10,
                      "tsg": "ietf-layer1-types:tsg-1.25G",
                      "ts-list": "11-18"
                    }
                  }
                }
              },
              {
                "index": 3,
                "unnumbered-link-hop": {
                  "node-id": "192.0.0.3",
                  "link-tp-id": 2,
                  "node-id-uri": "example:D3",
                  "link-tp-id-uri": "example:D3-2"
                }
              },
              {
                "index": 4,
                "label-hop": {
                  "te-label": {
                    "ietf-otn-tunnel:otn-label": {
                      "tpn": 20,
                      "tsg": "ietf-layer1-types:tsg-1.25G",
                      "ts-list": "21-28"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Yu Chaode for his comments and discussions during the development of this document.</t>
      <t>The authors would like to thank Radek Krejci for his YANG Doctor eview.</t>
      <t>The authors would like to thank Dhruv Dhody for his Routing Area Directorate review.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="A." surname="Guo" fullname="Aihua Guo">
        <organization>Futurewei</organization>
        <address>
          <email>aihuaguo.ietf@gmail.com</email>
        </address>
      </contact>
      <contact initials="A." surname="Sharma" fullname="Anurag Sharma">
        <organization>Google</organization>
        <address>
          <email>ansha@google.com</email>
        </address>
      </contact>
      <contact initials="R." surname="Rao" fullname="Rajan Rao">
        <organization>Infinera</organization>
        <address>
          <email>rrao@infinera.com</email>
        </address>
      </contact>
      <contact initials="Y." surname="Li" fullname="Yunbo Li">
        <organization>China Mobile</organization>
        <address>
          <email>liyunbo@chinamobile.com</email>
        </address>
      </contact>
      <contact initials="D." surname="Beller" fullname="Dieter Beller">
        <organization>Nokia</organization>
        <address>
          <email>dieter.beller@nokia.com</email>
        </address>
      </contact>
      <contact initials="Y." surname="Zheng" fullname="Yanlei Zheng">
        <organization>China Unicom</organization>
        <address>
          <email>zhengyanlei@chinaunicom.cn</email>
        </address>
      </contact>
      <contact initials="X." surname="Zhang" fullname="Xian Zhang">
        <organization>Huawei Technologies</organization>
        <address>
          <email>Huawei Technologies</email>
        </address>
      </contact>
      <contact initials="L." surname="Wang" fullname="Lei Wang">
        <organization>China Mobile</organization>
        <address>
          <email>wangleiyj@chinamobile.com</email>
        </address>
      </contact>
      <contact initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
        <organization>Telefonica</organization>
        <address>
          <email>oscar.gonzalezdedios@telefonica.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
xbmxoZpa5Pmae+WxCPJOo8qlerjbZOba+OQls2zjtXw1HrmmVDI3RaivnL81
ciuFUyoCGbpa0CqViZUeOq1aGZ1PHhP2mj3RI8M+4MRHx8wjNJaSeaqwqiDy
DXtc7Lsp9rNshqokXoSjM0GWw16xIu4uPWMs6exKmTpdZ+uKyjVkZl5f11dF
N4CZ89QyG6i+dWnMpnJ+s3R9FZxfvOjZIJWuLy7XlKWboaurZmmxopm/iNlI
rV2tQ7gWqzdNm6/J6knFXvtWarsylPiMj67J2I1ADMK1D6lXwPJXXfEZHw8U
Lg/O+LlRENh2JrsJ4hqokdmOYc1VCncjQHwQKROZJZ8Rgekz9sxQlpJh6aWf
KlEQNdUMlvZGAbIHpsbVTjr3Sjf2sg3PbtGsk1zNY58ile86CtaSmDVkAPo+
SPdqHZmZIGN3S0/81TXarilS42wJ+zLaOXNLJ3uC8Q7JCHZzYxIC3I185u1q
TpiHj8Ne31LE6JYFIVbgx5bdCF2NI7t643QT7OTmZHRbjqyRz5o4slsRxDx+
bNntRXw7yNA+/k7QPOirCPLNIX4ZCmT01EnuBJhS+p5WXAuVZ+brSrP4/FZT
eadbS6koJvgzs/liIzRFsuCN9AVS+E1VmbSYW6jy20iVSWvCO6syTY+mIsQ7
Lr072onZWBku6ZbAOvZbriWMBdLftRfJerRXGnGspptyTb6vovhY1s2zNWye
bLQVLFUka9EracSxTK90W2xfhU+6nQfA6Xoxna4brRrOqnLofOo8/kV66dny
zcuK53m4rmmRrUmL7Iq/OWn0q+mn3Wf9WkLzbW3C0I104iz3sjDWiL/cvVt3
+S+hlXe3leAetP+u5b1XWeKtRH7r1StsZLcBjcVrCmklDcbb/PHUGnch7759
3d2WZSO71TrH2xDS2vrG9eqGppVHrTqMVWDlDdB1aCQs/sPMps+5oj5nOvnK
r4e6J4rTNDDvmOI0jwWOFeI+yfBuPxy4qZK8wz3Ca4pkqVXUGghmPZp/jVBW
2dW7NveXU7Ou7v0xa9iuuwMWcff6cI1QVtlg21g3tYTOWa0sazpr0zPvyW20
VaTb87TR1i2Bvuq7oZqG2to01NarI7vuCtU02u6JQjUNuLq2zRo9CrYaEd+X
/tydEvS9aN+tz8MQayiwdWvrNcJax3bfWjyqsj4v3l3rNuCds6C73B5shLWO
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
Eh15mDxAfpwYOBE/P+ORmI6eQArbxW3uPKvBOcJ6q0wtyxRqZLRixM8Dxf1M
sqlUqyayYGLdKHuj7HdM2QspbSUglPPbxjQa08gDNKaRmcbEx44qMxd4/1dl
7pUMUE01QHVlA1TXNUC1PANUN2GA6goGqG7AANXNGqBargGq1Rhg7Vv6SiZT
Y09NAGsCWBPAJtjP9NilS8FrUmCrLl0NfE1gawJbHuBOB7bSOzIq9lF6YUZT
eDVx6z7FrcXNoym+mhjVxKgbilGFH2JNMcZphVcTswqomph1d2PWVc2liWFN
DGti2FVj2BIfdig9jFeZOOeTeZk92ZiWez6vGPBoKG8/JWi6VJwS635RP2p0
tBgv3UDq+M/TIEeRxDeknWeIUxW9eWbnfj7fcPtGenvzPF86m/UNk2cyuVHl
m+byPG3qRt/XShIzX4/SiOL6PbAmbblNRjd+/hqcvmqJ3Kj4KhnfqPwt1UT1
vyKqzF/kXcMTBDb150Uzu7RlzFYOozBlF/1CYRRWQcaimtaxjTVJCEFRg8L+
OjJ+1m+5Gs7Pw/klefYJ88z7Km+I3ZNZ/WMmCb0h/BsPitCvIGm4Ny/38G2I
NexbjGVlLGvKtyWkBffbbJfAwPtst0tl3zob7hJaNvMci1JBUncsSjVZKh2t
M1+2OuG9qHc4Z1pvIZaOs5kv822EeAUhNjXeBjD8Htd263PTcUo+eO1IvZZB
eul8w7f/N1xbXNvKr+Hf9OzvfpZra8S4TSrT1pJtd7w8u51HQOl65QVlldE0
26mX2vWzHTVRe9XsbEfNl+2oW8x2Jvz8uFCtVbDUHUtaX61Vpjb1dxnsnki6
KdJXKelZ0pn0zsdi8V4NYld4/2MjiDkE0VT4KxZL0wbYJObej17BivT2zjUU
bvMJ4MYB3A53Gw9wc7y9py7gxt4aVG1lzO52TM+2r9+VW/u+xuJPvE++41yZ
3PQwVpS5r69Um37FbUq1ebBgQ5jetB6uy/V7+dD4evGuUDZcP3e6l5zbuJua
q/vJ5P011ebpg/Vg3T0w1uYphPWs1q/6492met+k5HfdpdxU86uUclPdb6gQ
mmp/2VJoqv+14+UdqjDWhpMbXHCs+m0zjWnfSAl8v2276SZswmuum+5CRZ6B
Hmn7X/sfl3txwoOssMtOL6+yYwrwTaeyq+IhHr3tXHTYgxPZz521TUeKM4gg
eD67i6+m+L5yFjiCtC7xbPL/Ov5wyF595njGuC6fQw4mEnMZanMUOMHgMeDw
DQZjHnrCnEFOK8qQkDki9BSdx24OFP/2xTc7l5dtRC0yJGZ6LHks8se+jyls
2XPNY8W0iJMRrgnWBPIAe2MfDn7eZQaQ9UR8JkRoj2M/2AFInx3ssjMZD+g4
d0Hnr8dqRHJkeqDOkH72WvaTSLBd3NHFxV6655/w+4/ZafOeBxQbwgCDmx6Y
jpupp2fAgV3MPnXE3h1/3DK7xc0iV5Cggx0XKExhuq+IZs4yn5SbFpbnPcGp
Y0iYjE4jPYn9dw3G8X3xww4/dF912Ff//IoFMhTsLAIBI0rwTXjQPXv+7Ytd
Vpr0veNcgA4auZAltDrsgrSyZR1vNpANwcg/MsW9yKlwC9UQrrZQFF3DKKt0
ra08XKo8CGuXpjfhabLw9Kqr/ORTcaIGeXsDvIbg1enj6yDL0lSVRJ7I7Sal
GTTKlT7isnrbOdgpTMWNCzcHt/Nit/0Y/rfTykFdFlYDLQV5kmOab8nd+Zbc
nbxkT/oyEhTZOcoojhJRALCaXEvS+NoEzqJgckBJiKu5/yxgWfSz446CRLtT
2BgK49+KzErtFC3dFXUKhmSnAMbdnkgRVbedA8IFahFPJC5/hkUVdcnVEdGT
wWFC+jrIjPcBPxfRjuU/Op9WYcrlRMIKj07WyXp8uWDL5lMmLGfX+Zlu2UgM
bryiPVWnQuNrmLsDo/E/dUg8ZcK7X6PFGciE9K2Gs9UJRfgyAyaxwWICbQx9
8Rkm7lQJy7NhJlF54EKSOBW+bsbEXczaTYZy5p4ySFDnZNgTEfASAs0nTKhm
0Gsn1nrQWcvBPFolHpmpu3NMsAu5SSSnuvUZq1Xnu2UvXYsBGJIZsim25pmV
OW9yREncVxggZ8y7nHr9cvqyc+vETJ63stR6Pk1Ik++5oCf40kUQ4JIjZOzO
49mSMOC6X++H4YK7075e3MPP7jdv5tAKSwvVBGQ37vNZKoGf6WoxD8QMxZpy
9V8Tr02aVT9eN1rFXaPiLawwJ4UBuLa4x7cV15zZbWEquqL5HB6SZlzczpL5
4UHWIaGCE27pIYyJsXLChMU5V5lfGinmfgtv1pn2PQ9fzI9msaFK9gI5UmWD
N5clNSnQvUyBnqw0BXrSpEC1kE0KtOjniinQjruzHknQklRrpjkv1d3MZb5L
q7gWXK06/55WXE/vjLvZ3XB3swtF/3q4m/WpueZPu53yX+aqNZNypVapzgo3
FxarwnLlVLGjPLUga6lI9mWuBx72I6F1FfOku5DVWmIG9ByVxZS8dIHQMH/u
OYf7XzC/nNVUm61iZaxT2FRD8ExvOds/Xskjzky5Znm9aT5rrr5QnUVXx65k
0VvLNdPdxkyznV/BTGuzyKWa6ZPGTK9tppNrlysa6gIMr9GQa+plfXZ/nfAx
E2NthbBUNtWk3ivWy8kp9LL0ckqSe4MBpJgSOvj/S/O4k/OA7XmfQnUWCJ+e
H9PORSfV1O9bJzzQ9GATPp/Dk3igIs3OVBL4LJCfBD5OFA94+In9lrD9AQdd
Y+DLGT705Kkh4aNncXypvURrfECS+UmUPn/ji1MRqBE9t6ZOYAjm+cpLcKA9
e9Ej7otP7L8j8bsns3V/2zt8ww6UF8N3cSrF2RyIDgZRcgr/Kv88w3MEsQnp
3IsEZwdUwKqIx4JFFuv/A2LUXdEpVgEA

-->

</rfc>
