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


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

]>


<rfc ipr="trust200902" docName="draft-ietf-ccamp-otn-tunnel-model-21" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="OTN Tunnel YANG Model">OTN Tunnel YANG Model</title>

    <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="2024" month="June" day="06"/>

    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<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 title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://haomianzheng.github.io/ccamp-client-pm-yang/draft-zheng-ccamp-client-pm-yang.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
        Common Control and Measurement Plane 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/ccamp-client-pm-yang"/>.</t>
    </note>


  </front>

  <middle>


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

<t>OTN transport 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>

<t>The YANG module ietf-otn-tunnel defined in this document conforms to
the Network Management Datastore Architecture (NMDA) defined in
<xref target="RFC8342"/>.</t>

<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>

<t><list style="symbols">
  <t>client</t>
  <t>server</t>
  <t>augment</t>
  <t>data model</t>
  <t>data node</t>
</list></t>

<t>The following terms are defined in <xref target="RFC6241"/> and are not redefined
here:</t>

<t><list style="symbols">
  <t>configuration data</t>
  <t>state data</t>
</list></t>

<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>

<texttable title="Prefixes and corresponding YANG modules" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>l1-types</c>
      <c>ietf-layer1-types</c>
      <c>[RFC YYYY]</c>
      <c>otn-tnl</c>
      <c>ietf-otn-tunnel</c>
      <c>RFC XXXX</c>
      <c>te</c>
      <c>ietf-te</c>
      <c>[RFC ZZZZ]</c>
</texttable>

<t>RFC Editor Note: Please replace XXXX with the number assigned to the
RFC once this draft becomes an RFC.  Please replace YYYY with the RFC
numbers assigned to <xref target="I-D.ietf-ccamp-layer1-types"/>.  Please replace
ZZZZ with the RFC numbers assigned to <xref target="I-D.ietf-teas-yang-te"/>.</t>

</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 title="Relationship between OTN and TE tunnel models" anchor="fig-overview"><artwork type="ascii-art"><![CDATA[
                           +----------------+
              TE generic   |     ietf-te    |
                           +----------------+
                                    ^
                                    |
                                    | Augments
                                    |
                           +--------+--------+
              OTN          | ietf-otn-tunnel |
                           +-----------------+
]]></artwork></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-tree"><name>OTN Tunnel YANG Tree</name>

<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-always
            /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-always
            /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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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-always
            /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-always
            /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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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-always
            /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-always
            /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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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-always
            /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-always
            /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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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-always
            /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-always
            /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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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 (range-type)?
             +--:(trib-port)
             |  +--rw tpn?   otn-tpn
             +--:(trib-slot)
                +--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-record-route-information
            /te:lsp-record-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="otn-tunnel-yang-code"><name>OTN Tunnel YANG Code</name>

<figure anchor="fig-otn-tunnel-yang"><sourcecode type="yang" markers="true" name="ietf-otn-tunnel@2023-10-12.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";
    revision-date "2021-02-20";
    reference
      "I-D.ietf-teas-yang-te-19: A YANG Data Model for Traffic
      Engineering Tunnels and Interfaces. ";
  }

  import ietf-layer1-types {
    prefix "l1-types";
    reference 
      "I-D.ietf-ccamp-layer1-types: 
      A YANG Data Model for Layer 1 Types. ";
  }

  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.

    The model fully conforms to the Network Management 
    Datastore Architecture (NMDA).
    
    Copyright (c) 2023 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).

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

  revision "2023-10-12" {
    description
      "Initial version";
    reference
      "RFC XXXX: OTN Tunnel YANG Model";
    // RFC Ed.: replace XXXX with actual RFC number, update date
    // information and remove this note
  }

 /*
  * 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 primay 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 primay 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 primay 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 primay 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-always/"
        + "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-always/"
        + "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-always/"
        + "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-always/"
        + "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 primay 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 primay 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 primay 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 primay 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 primay 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 primay 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-always/"
        + "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-always/"
        + "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 primay 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 primay 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 primay 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 primay 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 primay 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 primay 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-always/"
        + "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-always/"
        + "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-always/"
        + "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-always/"
        + "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-record-route-information/"
        + "te:lsp-record-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="security-considerations"><name>Security Considerations</name>

<t>The YANG module specified in this document defines a schema for data
that is designed to be accessed via network management protocols such
as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
is the secure transport layer, and the mandatory-to-implement secure
transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
is HTTPS, and the mandatory-to-implement secure transport is TLS
<xref target="RFC8446"/>.</t>

<t>The NETCONF access control model <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 may 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.  Considerations in Section 10 of
<xref target="I-D.ietf-teas-yang-te"/> are also applicable to their subtrees in the
module defined in this document.</t>

<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.  Considerations in Section 10 of
<xref target="I-D.ietf-teas-yang-te"/> are also applicable to their subtrees in the
module defined in this document.</t>

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

<t>This document requests IANA to register the following URIs in the "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688"/>. Following the format in <xref target="RFC3688"/>, the following registrations are requested.</t>

<figure><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></figure>

<t>This document requests IANA to register the following YANG modules in the "IANA Module Names" <xref target="RFC6020"/>. Following the format in <xref target="RFC6020"/>, the following registrations are requested:</t>

<figure><artwork><![CDATA[
      name:         ietf-otn-tunnel
      namespace:    urn:ietf:params:xml:ns:yang:ietf-otn-tunnel
      prefix:       otn-tnl
      reference:    RFC XXXX
]]></artwork></figure>

<t>RFC Editor Note: Please replace XXXX with the number assigned to the
RFC once this draft becomes an RFC.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

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

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

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

<reference anchor='RFC8342' target='https://www.rfc-editor.org/info/rfc8342'>
  <front>
    <title>Network Management Datastore Architecture (NMDA)</title>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'/>
    <author fullname='P. Shafer' initials='P.' surname='Shafer'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <author fullname='R. Wilton' initials='R.' surname='Wilton'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8342'/>
  <seriesInfo name='DOI' value='10.17487/RFC8342'/>
</reference>


<reference anchor='I-D.ietf-ccamp-otn-topo-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-otn-topo-yang-18'>
   <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>IBM Corporation</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='19' month='April' year='2024'/>
      <abstract>
	 <t>   This document describes a YANG data model to describe the topologies
   of an Optical Transport Network (OTN).  It is independent of control
   plane protocols and captures topological and resource-related
   information pertaining to OTN.  This model enables clients, which
   interact with a transport domain controller, for OTN topology-related
   operations such as obtaining the relevant topology resource
   information.


	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-otn-topo-yang-18'/>
   
</reference>

<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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='I-D.ietf-ccamp-layer1-types' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-layer1-types-18'>
   <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='23' month='February' year='2024'/>
      <abstract>
	 <t>   This document defines a collection of common common data types,
   identities, and groupings in the YANG data modeling language.  These
   derived common 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-18'/>
   
</reference>

<reference anchor='RFC7139' target='https://www.rfc-editor.org/info/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='RFC8040' target='https://www.rfc-editor.org/info/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='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/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='RFC8341' target='https://www.rfc-editor.org/info/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>

<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/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='RFC6020' target='https://www.rfc-editor.org/info/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>




    </references>

    <references title='Informative References'>



<reference anchor='RFC8340' target='https://www.rfc-editor.org/info/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' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-transport-nbi-app-statement-17'>
   <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' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-actn-yang-11'>
   <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>




    </references>


<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>TODO acknowledge.</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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
Y92TibHfMxahwkmbB15HGtj06BiThNbVphn6nXgms/QjKZvdFthELmMv8kLv
00y2drxENwmQeTFv0qcSndrrZVKQIkX6qdpMUYpERYLidavH2Svwcxyzr1jA
0oztmfa6+0MZ14j7n8SUxCw3r8iZSMQvAsW7Ocg5wNNek7aBR39W5p8zrMz/
YZp/FMshamGbGEqyRnG48pacYeUtlbcs4C2+GkaoS13ZpT0c/yMRm/wj6uLU
MdICpWU7fml68g29Us33SnVzr1Tf7pVqmV6pbscr1U28Ut2KV6rb9kq1bK9U
q/LK7H0scELVojS3lflYlekmmFWZrsp0c3zqiiSnJ7LcrAxYsvh0iqwyYJUB
H3AG1MJXdCvDTH8dJ6hOcjnDKr89zPx2A4+pTnNVLpsxqcplt5HLisXkXA+d
d5Krclspsyq3PYTcdmMPqnJdletmTKpy3Y1y3TJv2bCXZOhpkX7zYXLm1J1B
uvTqyMfS3Fe4B2giM7r7ggouNXnLEA1NzDG6P24rZSY7nlk9uoPpu7mkUSxV
jJGcdW6xd6B0lZhK61dpfSkNxXETL1fvAhBUyl5U2ZVp35W2F+qVVw6wnpAU
3KTC5FqY3KDlVhU6q1B4lQm+XeM3PnlXJr8OAFQusAACyzpdTZOJz/SlJOqe
AAjhpV/k9nhwzi9KuBapPPGZvgYmUmIrLbaeIzQLzoGK0oaUfX/ttvEU8xSl
KMxUab/WEYUlNCMk5/aQoQECkGjJyNwDazYFFvftPJHBU+GyFh2gWRPtV6Zu
Q++PR/GsvLdK3+Xy6PuFM/vuKXQlsI3x0IGa3Wo3+uccer05cI0uCvqi5SSX
Cqz1BIu+WViG1nURmmL04GFaRp1WxcDNwqsKgpuJVhUFl9ixpMc0DuUXniue
B306uA2G9GYoSP3TXIqzPEdUUtdnJ6j8+VmTbErPW+7tA6zr1x3O7OS1GJzj
1BWcN4Kz6l9sMABVp2KdPsCfU48vo5h46HXE8mFCUV6BtO4gUQldVd+rv2Gm
6j1sBk5Vz2GzUKp6DRv4GBNLMFawl17NCvIZZrKMglzNdk61QEGuFizI1Z0W
5DMeezHWephmU9KImNF6mJ5b9ZVWfgpbOehV92ktQL8Sp6pHdf9gqjpZm3e/
/pwzYNVK2Vwwq67YvYGy6p3dFWzL+K5NFU/vJ5pVQL0/WFYR9Q5wu72HL073
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
N9VkspPlvTeZqh80D9cHBuj97fpsPKzL+uhiTXs7ZbcE3FrpvAnorE0np0Lm
yh8KuuW+zbcisLojzNI++1vPLs19cI3lorMuPZkKmduJWncGwOpi1l3dPW8J
FniMzbQ7rbAiLxbio2/vT9yav7k19kJ3G1Z9uRX35W78BZ7KwKouXmVgS+35
rVV2upUOYKrKPLtVNnFl23ATjGIJTcQHYhkPo/P4jTF/9UfGFWG5bn3KCsfN
6mp+M14r7G7e7ZfT1roH+oDc7l53TCsc1yd+3gle6x4+Z7djJwev7raWdGjH
G7BXN2lX3QO5TgN2jdoYN/hebNVmveM2azb5G54Adu8Np2qf3mPDqW6FLG13
PWRY7/0NkZsO7j1vTn4zPMs/kK0FSGvTdbw1gDYanjtvJi4BhiUehFf5FKD1
7BLeozh2P9t/FUBr0tfb+Ei2jPsnH3T7bk1L8hs/AKxq5K28kbeWneC1NKiq
wfcADapq/F3RG1q/O91WjPoD6gveS+wfTNtw7e7nWEvw1rCdWAG3mNetrNG4
TnferNNjmte9AXlvHeu+NyYr4FYVEu8KoPWKiFUjc2mNzLtqFwQ6KnMWHaWD
QNxXcTfv9eQ/DlA6aTb1qpVv5cowcMp/e/phKZrF//6DV732tcUe9WTfI2Ln
Zd4FQgPTKol9CIDT75DHn4DrTw0TJ6JRHKHnb/7UoN+fL8zfG/3ye5NYNSyQ
j9ip8JNYmgt2gFgnuyJ2nT0abGNnxV+k15HwZU/i/CpDZn91vav8xGqqK3oy
xC450/5ADLnVVpcbXq+ZATf0Y/ZQtOyHmGwU6wjGfR9hDW/PJGehMOcq/sSG
POR9YTnCTY3yVYDIl/iDeo1rdvyqffD++DX7+vUPJ68Pfnj6fPfyko7VJ69O
iwMvdp7vXF42GSP5A3WOOJ1PDfiFiOs1iJNGzyQWzCDq6kihmrHDW/bH5Wkc
4mAPCsHKKE8Oo8CJ5qZhZ/k88Dt1vE4HIgjY49PTX56M5Hw6KU4u8UieX9rt
D6cLLs3GVm6/PYXBuK0/f/4D1srAy3btdE0PYzWxCghO2HQ645nVIrR9BvCd
WoYC3AFTvZbluIwDoRohk0s/CXic8y9iAGOPaTID9BH5Sgg7hsxd4NjRwsYr
DhXxMy7hBoEo5ZKhX69RsHYmaXVDe4Aisi1CF5z+z8Jk2BExMSerY6GizTir
HJlr0ZitWXKC8RzmT4Js+7Hg7i/oR9i/2GPZFM0t5rbByNW22PlA+gPmbKhe
wyI8CcwThzB8vyAAfUmgI+xTcMm1SAkCfxp5Jmi7Z0kQYndYByYQwoWHIncF
EZ7JWIWEugbrXyEkNZlzZTwWzT4EE11pPCfdE1ikIpnGZaCfXECsSn+v02pW
2KoFkSpkA35m1Sf6nKSq10SvZ7NKmEsyWhRyjEcJ0uxpym13B9q3hnjkHTZt
9DGCaxu38BeMzCIVaJhGRB0zq18nsYzJOkwshHZgQZAUp0kMs5BjLeCUNJbG
YIDXtSwLey8DfgqTem0GKOwKTI6MM4IE0RIuCnfkcFHsKHM0EilznRQvinZ9
YbbonxS3Laxar4XKILb6Vq9PWAmQa6f8R+xo/3i/NG8UU0Ms/p0gjGhHjSVj
0ZcoN1027akAMRHHfvb3k6NsfdYIdYOEcqSoYciIs7GjV+3X7OO7t+wkHW2k
sezZDy9eUKR9nfN0K1DhQJyLVFsTq6crZZEmFpncoms369Kyy+eQtMWSOGyR
nlEdxnyoW5+HQSvULVJ4ayL1ZvNSeclIoDTDfdOySeHo1embjAb7arHj7f0f
U5tOZaA1ydjgsbRzyvA64r5oZpLdVOsFzxhp385550zgmJbKNPzDztOdqzXs
qK6h4dakhml/raymYzPUmSvBUt4AD6SnnvycrWPHw3wQYwgOYcodu2If8Rqp
m668QvBFxDhGRG2xD4Ggyi8WUQCZLHXh525ceuJ6VANZPyMuCouk7hXznkFw
Qi0vLNYYttbneR7rcP+Tc7t9/1OozgPRtVWqpmrR8Rfdnxo9OLlwxV37/eF7
hJ+MmIzl/wGRJM7HsjUBAA==

-->

</rfc>

