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


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

]>


<rfc ipr="trust200902" docName="draft-ietf-ccamp-otn-tunnel-model-22" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="OTN Tunnel Model">A YANG Data Model for Optical Transport Network (OTN) Tunnels and Label Switched Paths</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="December" day="03"/>

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

    <abstract>


<?line 98?>

<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>
        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/IETF-ACTN-YANG-Model"/>.</t>
    </note>


  </front>

  <middle>


<?line 105?>

<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.folded"><![CDATA[
module: ietf-otn-tunnel

  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:te-bandwidth
            /te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:te-bandwidth/te:technology:
    +--:(otn)
       +--rw otn-bandwidth
          +--rw odu-type?                     identityref
          +--rw (oduflex-type)?
             +--:(generic)
             |  +--rw nominal-bit-rate        union
             +--:(cbr)
             |  +--rw client-type             identityref
             +--:(gfp-n-k)
             |  +--rw gfp-n                   uint8
             |  +--rw gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--rw flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--rw flexe-aware-n           uint16
             +--:(packet)
                +--rw opuflex-payload-rate    union
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:te-bandwidth/te:technology:
    +--:(otn)
       +--ro otn-bandwidth
          +--ro odu-type?                     identityref
          +--ro (oduflex-type)?
             +--:(generic)
             |  +--ro nominal-bit-rate        union
             +--:(cbr)
             |  +--ro client-type             identityref
             +--:(gfp-n-k)
             |  +--ro gfp-n                   uint8
             |  +--ro gfp-k?                  gfp-k
             +--:(flexe-client)
             |  +--ro flexe-client            flexe-client-rate
             +--:(flexe-aware)
             |  +--ro flexe-aware-n           uint16
             +--:(packet)
                +--ro opuflex-payload-rate    union
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw otn-label-range
       +--rw range-type?      otn-label-range-type
       +--rw tsg?             identityref
       +--rw odu-type-list*   identityref
       +--rw priority?        uint8
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects/te:route-object-exclude-always
            /te:type/te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:path-route-objects
            /te:path-route-object/te:type/te:label/te:label-hop
            /te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?       otn-tpn
          +--rw tsg?       identityref
          +--rw ts-list?   string
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(otn)
       +--rw otn-label
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(otn)
       +--rw otn-label-step
          +--rw tpn?   otn-tpn
          +--rw ts?    otn-ts
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information
            /te:lsp-actual-route-information/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(otn)
       +--ro otn-label
          +--ro tpn?       otn-tpn
          +--ro tsg?       identityref
          +--ro ts-list?   string
]]></artwork></figure>

</section>
<section anchor="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@2024-03-21.yang"><![CDATA[
module ietf-otn-tunnel {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-otn-tunnel";
  prefix "otn-tnl";

  import ietf-te {
    prefix "te";
    reference
      "RFC ZZZZ: A YANG Data Model for Traffic Engineering Tunnels
      and Interfaces.";
  }
  /* Note: The RFC Editor will replace ZZZZ with the number assigned
     to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/

  import ietf-layer1-types {
    prefix "l1-types";
    reference 
      "RFC YYYY: Common YANG Data Types for Layer 1 Networks.";
  }
  /* Note: The RFC Editor will replace YYYY with the number assigned
     to the RFC once draft-ietf-ccamp-layer1-types becomes an RFC.*/

  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) 2024 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 "2024-03-21" {
    description
      "Initial version";
    reference
      "RFC XXXX: A YANG Data Model for Optical Transport Network
      (OTN) Tunnels and Label Switched Paths";
    // 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/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
      excluded by the path computation with the named path
      constraint.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

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

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

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

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

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

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

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

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

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

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

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

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
      of the 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/"
        + "te:route-object-exclude-always/"
        + "te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
      excluded by the path computation of the primary reverse
      path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

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

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:primary-paths/te:primary-path/"
        + "te:primary-reverse-path/"
        + "te:path-in-segment/te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
      of the 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/"
        + "te:route-object-exclude-always/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects always
      excluded by the path computation of the secondary path.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  augment "/te:te/te:lsps/"
        + "te:lsp/te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the record route of the LSP.";
    case otn {
      uses l1-types:otn-label-hop;
    }
  }
}
]]></sourcecode></figure>

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

<t>IANA is requested to register the following URI in the "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688"/>:</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>IANA is requested to register the following YANG module in the "YANG Module Names" subregistry <xref target="RFC6020"/> within the "YANG Parameters" registry.</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>

<ul empty="true"><li>
  <t>RFC Editor Note: Please replace XXXX with the number assigned to the RFC once this draft becomes an RFC.</t>
</li></ul>

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

<t>This section is modeled after the template described in Section 3.7
of <xref target="I-D.ietf-netmod-rfc8407bis"/>.</t>

<t>The "ietf-te-types" and the "ietf-te-packet-types" YANG modules define data models that are
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have to
use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</t>

<t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content.</t>

<t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable (i.e., config true, which is the default).
These data nodes can be considered sensitive or vulnerable in some network environments.
Write operations (e.g., edit-config) to these data nodes without proper protection can have a negative effect on network operations.
Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>

<t><list style="symbols">
  <t>"otnt:otn-bandwidth"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific information under any occurrence of the tet:te-bandwidth container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology/otnt:otn/otnt:otn-bandwidth"). By configuring the OTN bandwidth attributes, an attacker may create an unauthorized OTN traffic path. By removing or modifying it, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
</li></ul>

<t><list style="symbols">
  <t>"otnt:otn-label-range"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific label range information under any occurrence of the tet:label-restriction container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:path-in-segment/te:label-restrictions/te:label-restriction/otnt:otn-label-range"). By configuring the OTN label range attributes, an attacker may create an unauthorized OTN traffic path. By removing or modifying, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
</li></ul>

<t><list style="symbols">
  <t>"otnt:otn-label"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific label information under any occurrence of the tet:te-label container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:explicit-route-objects/te:route-object-include-exclude/te:type/te:label/te:label-hop/te:te-label/te:technology/otnt:otn/otnt:otn-label"). By configuring, removing or modifying the OTN label attributes, a malicious attacker may cause OTN traffic to be disabled or misrouted.</t>
</li></ul>

<t>Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments.
It is thus important to control read access (e.g., via get, get-config, or
notification) to these data nodes.
Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>

<t><list style="symbols">
  <t>"otnt:otn-bandwidth"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific information under any occurrence of the tet:te-bandwidth container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology/otnt:otn/otnt:otn-bandwidth"). Unauthorized access to this data node can disclose the OTN bandwidth information of OTN tunnels and LSPs.</t>
</li></ul>

<t><list style="symbols">
  <t>"otnt:otn-label-range"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific label range information under any occurrence of the tet:label-restriction container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:path-in-segment/te:label-restrictions/te:label-restriction/otnt:otn-label-range"). Unauthorized access to this data node can disclose the state information of OTN tunnels and LSPs.</t>
</li></ul>

<t><list style="symbols">
  <t>"otnt:otn-label"</t>
</list></t>

<ul empty="true"><li>
  <t>This subtree specifies the configurations of OTN technology-specific label information under any occurrence of the tet:te-label container, as defined in <xref target="I-D.ietf-teas-yang-te"/> (e.g., "/te:te/te:tunnels/te:tunnel/te:primary-paths/te:primary-path/te:explicit-route-objects/te:route-object-include-exclude/te:type/te:label/te:label-hop/te:te-label/te:technology/otnt:otn/otnt:otn-label"). Unauthorized access to this data node can disclose the state information of OTN tunnels and LSPs.</t>
</li></ul>

<t>This YANG module does not define RPC operations.</t>

<t>This YANG module uses groupings from other YANG modules that
define nodes that may be considered sensitive or vulnerable
in network environments. Refer to the Security Considerations
of <xref target="I-D.ietf-ccamp-layer1-types"/> for information as to which nodes may
be considered sensitive or vulnerable in network environments.</t>

<t>Finally, the YANG module described in this document augments the "ietf-te" YANG module <xref target="I-D.ietf-teas-yang-te"/> by adding data nodes. The security considerations for the subtrees described in those RFCs apply equally to the new data nodes that this module adds.</t>

</section>


  </middle>

  <back>


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

    <references title='Normative References' anchor="sec-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">
   <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="9" month="October" 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-37"/>
   
</reference>

<reference anchor="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">
   <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>Alef Edge</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="7" month="November" year="2024"/>
      <abstract>
	 <t>   This document defines a YANG data model for representing, retrieving,
   and manipulating Optical Transport Network (OTN) topologies.  It is
   independent of control plane protocols and captures topological and
   resource-related information pertaining to OTN.

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

<reference anchor="RFC7950">
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="August" year="2016"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7950"/>
  <seriesInfo name="DOI" value="10.17487/RFC7950"/>
</reference>

<reference anchor="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">
   <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">
  <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="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">
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6020"/>
  <seriesInfo name="DOI" value="10.17487/RFC6020"/>
</reference>

<reference anchor="RFC8341">
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="91"/>
  <seriesInfo name="RFC" value="8341"/>
  <seriesInfo name="DOI" value="10.17487/RFC8341"/>
</reference>




    </references>

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



<reference anchor="RFC8340">
  <front>
    <title>YANG Tree Diagrams</title>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="215"/>
  <seriesInfo name="RFC" value="8340"/>
  <seriesInfo name="DOI" value="10.17487/RFC8340"/>
</reference>


<reference anchor="I-D.ietf-ccamp-transport-nbi-app-statement">
   <front>
      <title>Transport Northbound Interface Applicability Statement</title>
      <author fullname="Italo Busi" initials="I." surname="Busi">
         <organization>Huawei</organization>
      </author>
      <author fullname="Daniel King" initials="D." surname="King">
         <organization>Old Dog Consulting</organization>
      </author>
      <author fullname="Haomian Zheng" initials="H." surname="Zheng">
         <organization>Huawei</organization>
      </author>
      <author fullname="Yunbin Xu" initials="Y." surname="Xu">
         <organization>CAICT</organization>
      </author>
      <date day="10" month="July" year="2023"/>
      <abstract>
	 <t>   This document provides an analysis of the applicability of the YANG
   models defined by the IETF (in particular in the Traffic Engineering
   Architecture and Signaling (TEAS) and Common Control and Measurement
   Plane (CCAMP) working groups) to support ODU transit services,
   transparent client services, and Ethernet Private Line/Ethernet
   Virtual Private Line (EPL/EVPL) services over Optical Transport
   Network (OTN) in single and multi-domain network scenarios.

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

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-transport-nbi-app-statement-17"/>
   
</reference>


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

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

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


<reference anchor="I-D.ietf-netmod-rfc8407bis">
   <front>
      <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
      <author fullname="Andy Bierman" initials="A." surname="Bierman">
         <organization>YumaWorks</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
         <organization>Huawei</organization>
      </author>
      <date day="13" month="November" year="2024"/>
      <abstract>
	 <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.  The document also updates RFC 6020 by
   clarifying how modules and their revisions are handled by IANA.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-21"/>
   
</reference>

<reference anchor="RFC8040">
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname="A. Bierman" initials="A." surname="Bierman"/>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="K. Watsen" initials="K." surname="Watsen"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8040"/>
  <seriesInfo name="DOI" value="10.17487/RFC8040"/>
</reference>

<reference anchor="RFC4252">
  <front>
    <title>The Secure Shell (SSH) Authentication Protocol</title>
    <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
    <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
    <date month="January" year="2006"/>
    <abstract>
      <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4252"/>
  <seriesInfo name="DOI" value="10.17487/RFC4252"/>
</reference>

<reference anchor="RFC8446">
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
    <date month="August" year="2018"/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8446"/>
  <seriesInfo name="DOI" value="10.17487/RFC8446"/>
</reference>

<reference anchor="RFC9000">
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9000"/>
  <seriesInfo name="DOI" value="10.17487/RFC9000"/>
</reference>




    </references>

</references>


<?line 2099?>

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

<t>We would like to thank Yu Chaode for his comments and discussions.</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:
H4sIAAAAAAAAA+1da3PbNtb+rhn/B6zyYePWlHPbNqtu2zjOZT2TOH5tdZv2
vQ1EQhLWFMElQDtK6v3t+xyApKirZUe2JJua3dQCgYNznnPFESV6nrdVM9KE
osl+2qoxtsd+2zt8y15xw9l7FYiQdVTCPsRG+jxkrYRHOlaJYYfCnKvklD38
0DrcZq00ikSoGY8C9o63serkXBq/JwJ2xE1Pb9V4u52IsybD9Gy2I79V87kR
XZUMmkybYKu2VQuUH/E+GAoS3jGeFKbj+T7vx54ykWfsYq9Pi70Qa7XZqum0
3ZdaSxWZQYyVB69bbxh7wHioVZPVZRSIWOCfyNR3WF0E0qhE8pDeHOy9xH8g
Y/3guPWmvlWL0n5bJE3wAeL4j68iLSKd6iYzSSq2apDiKQRKBAfpY5UaGXWx
juDoJiqNMbq/v/f+iP2KEVxjb2kUM85ElBJFxop5qt9XEdsH34kKLXzvBddp
IvrglR2FPBJ1WuDEqo9TZKzPZYgLFp8XBFVDJV17hSd+D1d6xsS6ubtLE2lI
nolGPm+XBnbbiTrXYteS2LVLu9L00jYt5qovefS5J6LuLoHq7e23Dj0yEc+q
r04K46npqcQK5tE/jDn9/d2tZr/TcncBm2I85edCspbwe5EKVVcK7a5qkwhh
MOHxTj7powxlyl4KGSv2DxmGvCt22ImKuroHyu/4qXBLfWlgQa9woZvyyI0l
oguLaLK3GOkGKufBB+NN9pcnT58/ep6PpFAA1u/3ZMTdmHDIWtEzGF70LE8N
X/UnZD0wPFTsZarlIoJmxCUtarSxaB7pE5FADmAQKmPK5A/VqRzlVtupjbab
+iKiCVNp/kP6cAH2TsXi81yKZ3ZiI6SJc+j9lkZtGbGPaYnY/t7BfmuE2Kd0
YOe98DnINrjf8CMyIJ/sX7ZTM82K9iSwgQ5VifSb1MBHANgIeU4zu6my9v2i
S4NTmd2L0oR32UmPJ31eovpWqW4oRklGsLMXXXthKq1j/k/Y4TEvc3cQdWQk
klEgk4SrFzK7MhNDxd6VNWztEYGyLcf4CiUhqV74NKFvr0+l+QpQiIRsJxTJ
XEUHdiaZDmbO0XRLeS+FtxcEIijRmxjNqI6Nj1D66GIDXyw2ZARnXB8h/A4T
fh0lOxPIc8wLhRz881IoP2ifJ7CR6DMPxWcWCICrMuZkhOzwoTHjqkNIhKKj
IqTRkf0VUW10s3WACatemGKu4wRJScFUDWK39Y+D1i9e6//fNr5/9Nemo5al
8IMIOuxwX2ibtk1PMJWlblOk7silbrewFLuH9kvk2bHA3khDSIOIoszu5qbZ
xMjeU/JgTx49eZQFb5FAGbBwlVPIlmzVaHDI/1bN8zzG24j23Df0vtWTmiHt
pzbrBUL7iAaQgfi35UhA5Ui/KEdMVm4g4th64jUAckLpBmMtrHJzfRhYW7BU
ow4xCjtYiog2HdlFCLBygYZKAviIgQujmODtUOqenei2yXfJdrAbgF1b/Uji
oagtGGqeHsopt4fN6DFlcBYnyihfhbqRS9+XQUCWuFV7QEpLVJD6xA6N0GYT
2tI7TMfClx0JWcDRly8lI7i42LGywpSSATvjiVQpbI+KBs1Uh/mhJPa07Eao
iCDBQYTCIRpggRagbDkuzyHBiJgkt1VnQIc7EDJIuJ8orUnKSPgGHAUK5hxZ
jUBRaWik54YKzTQmFQ1YziS07XQ8VK+P0oqKqtKOZbVSwdElAs5AugIRVfqw
grywdJTKcG3Vvnz504H3ymYGz6DE8gZwfPx1cZExJgou0lAwO29YbsImKXBb
5M2IDGRMsG1tzYfYyQvj9zxCrWLnUDGtkdsE26MCzAAyZC/28PD9q73tEmnL
5fGb/edPnz3J+HrwAIEj6Usb6wa2QDxUxlqupuvHomNNl5XlKxXLKlZW0ouL
IiAQqBk2PkO46JOl0H+cn4xLWMDTUWGozkktbjYK4DIsjvXv//qXR9iL+KTr
kTKowrJZW7WeSLIAwDJ7y94gdpxRfrJvMu1m74auXx6IMHAlxr578uzxgoyN
hAfaLWcSuItigHY2JdUQvFnkIlbGwpYmj+qgzCzr2YFV6Bm1L5IG7ybchvw9
+GI/Dp0JYzDu2TieiDgROJA4IyDvJqWWAqQsFEn7ODMHaQhv50o9pt/MswSP
iO+Mnh7028pFWLzVwDpwnFlBRtD92VlsSZKjBNc/0VV7jDwEW+wQOdRa7MGY
fe3Y9GrDVKFZd5BU2DkpS6ba/4TraHv2QvCgTcAEqmdSPTFtsIwnQXaNca2V
LznFJ4rMNIdqzQT4xSoKCjUBZkRazHLOj4DINdM9dR5l8pdNDPlBWEH/yOW0
rz9Gwkf59QezTioiX9Ci8LHn4rK9ZP015AORlIbtlf/5b+DKfsPrf2mZ9eYo
ZKVlpfBU2guLPuJFa4woc5GFPjb+yrf6HS9s9aXJHkBIL8NXu9Lix/pR/p5U
MwXEDLv6hQ1LoPfanrIpXKFYOAoRcwUZb4jqxHJY6IS5EzepC8nHpWqrKqKi
AFtmMNQNQDpHVWK5IFFhvGOUCbAhZUzJD/R6hP5kuCwrAaY8TnirRviMUGaX
EZ6SZx5MNEDYKxs04jz7w38+IBaeSXFOPjHZLxnPolza7FOUTePxwPZvxhJp
VmSU06UNG6RN5NHswmxZyEEQBdtcI4e49Tay5nlZulqI9vWKXBNzxA86ZMDB
ZOSHKRmPS5ptrD6XAVYUpSJiG5EMbTepNAoBvnxBgPZUhhK4IV/VzmYyFhyB
RIQuVfZkbOH/N17g3ZfS44nJi96pr2+9sde349MBVF57kBfZc8DQx/74SurT
X/+32LT5mw+nsb1MY8sgW8j07UyhyOpKu4+HsStiRvRJoy5olW0iD1rHJQNA
6DDnQrg6lkxraOguRbvQdWDIFahxSCU+LBKlgksw3BT1U7bOFrDUdaQJ1oFS
HoYD6xgIByoaLkAhRmWCcz+EUqoGx6iV/DAjkx1cusJmwtyjCmKXFrpTC8Es
4U9sbEV2qdA6d4dgRDQcZsXCaSfT1k5u+lkWA7449tEQCgXjBocbD2MCN67x
I3Sphnz81J5oxmJEy07kOOCchKjeHrZOtp0ai/Ej25h2yeRh6+hwe6d8AgQV
Naye2GjYmRVqWlT8lLhEqcjPsJDsaOw8Nj+h2B3KBbbtc7sIThF6JG5lRVjp
ZFPWlI1k78mAtC8iOuy5pJypMUbN6Durz8UvF54/j7FZnDS9qI2oGMeerXOJ
Gcf16CKbB3Bsj3JrynLWywLKvZIkeaGcsZanB1i36034fprYykjnMsOChlqh
UzSnhtlWrUi81m7z7s+ATbOkYUVIph/K6NQjlyzrmi7E3PRKm9mePBbq8RPZ
/EIhk9996vF1slsD9GCfkMR2A1go6dONoeNfSW5HDVoSnmvBFCKOHY8uF5Cs
jWKraxVcSZuWDdfitapk19fkVs3JBAOFuYoo2CkJ2lNxodl8mogntUpQLCY0
JZXh8WmierNVLx3aphUWLmY2xzMcTS0OuGwXlbER9G83VG3EX/qTTkOBs036
5AnuKSfy88x5juLQqN37HOKsy4c82nwInrYLohhJzi1yxcryhtnlILXw/Dw1
OUtqgEkzQGqbXPoQazuh+GTXb/88luUtP1ms2x679kdOIlI4afPQa0sDmx4e
Y9LIutokQb+dzCTmeg+Wm0WEKHjsxF7knc4ka69PwSaFZp7PW3Q6BVM7Po0L
AlJ4ToSZrJQnlSeUxy2Os3fg5zhmX7KBnTMiM8n6+LtpVGPun4oJjllhXrEz
kZgPQsWDQsmFgie9JmsDD/+szL8gWJn//TT/OJF91MI2MUzJGuXLlbcUBCtv
qbxlAW/xVT9GXerKLu3h+B+LxBQfUZeXjkwtzbRkR4cmF1/TK9V8r1TX90r1
9V6plumV6ma8Ul3HK9WNeKW6aa9Uy/ZKtSqvzN8nAidULabmtmk+VmW6MWJV
pqsy3RyfuiTJ6bEsNysDTtl8MkVWGbDKgPc4A2rhK7qVYaa/jk6oTnIFwSq/
3c/8dg2PqU5zVS6bsajKZTeRy8rF5FwPnXeSq3LbVGJVbrsPue3aHlTluirX
zVhU5bpr5bpl3rJhh2TkaZF982F85cSdQXrq6NDHstxXugdoLDO6+4JKLjV+
yxBdGltjdHfUVqaZ7Ghm9egOpm/mTo0TqRJcKUgXFnsLoKvUVKhfhvpSGoqj
Jj4d3gVUUIG9KNiVad8W2gv1yisHWE+VlNyk0smVdHKNlltV6KwC8CoTfD3i
1z55Vya/DgqoXGABDSzzdCU+0deQqF8C6IVXfHV7nED5sic+0Te+cLIPz/nA
WQKkLJQxS3M9FWe9J/v+yh3iCeKZQuIoR81+gyOOpswZKm1uu9hoqyuaS/bk
fptmDTXgvnMnck1UKliLvs6shfaLUDeI+xzMfy50ojcHx+GgiIJJKhWKV0SR
vmE3DcarQjdBaH3xW0YhUbnzkoCs/HnJMK6/Qy+jO0Q/ideXn3mBCA+7VCT3
+vSmLwiXSSrlVZ6bNKXMykvYqxW87u09rLbWXZ15PXy16rlS51eoszo5bhTy
1YlxnT4enVNMLiOvr21KXz5+qCgr9L7C+kR8F0vHe30GXCsAN+/st6bw3Y8z
323dAGsnjNRPU0fzMmmG/pZRJqnZ5qwWKJPUgmWSutUyacZXvUeOgJNkphwI
ZxwBJ9dW5/uV18YrV3rVBVgLpV+qp1LEndMdmJLsyvqpNLJ8jVQ9hLVRUNVp
2EyU71U/YmWWfEe7Frd7O3QVGm4Z5io23ALI9zs43NxPPU12TBboqsyv2pfS
DtyI/sk1vhIw++PyydVVr2S2gm/nDLDWCq76IitRcHWHxMahX3U41u0rhLMW
btwHsCvEcOQEspSi6/4iuKEfw67yO6n33oWr+yjWDML748TV/RQjl9avH3Dt
70tX/QG2kRX0Bii86heshcKr/sHGa6PqJ6z777XcwcPJyjG9c2eVNUJ0448u
q/+BoMrlbwDUyuerfsUG/yB61b+YVcCFOtbZf7P/eNw3KQ+Lw2JHJX0+I7DO
mX0LxfAqsaRHzbuH03dkt/RsefuYeoZMc66SU49+NeTH+tjj5xs0pdFRYSCC
+own2u+rYPhE+wGnHd3D7MefZc++ELs0wyPXAvDscePxDzRIm+uY+4LV0yRq
0kKYfML7uvmpHzYj3aRlzTGCdbs2Bg7yE6vb8cgO0rDsxyoxjgcj3N7DyUa4
xYxhQCQi8gtPqh+/2We/49Vke07CV9xw9h5ihgw2w1oJ73Skz15HXRkJQSBn
gBTuzKOAHURGJB3IpBturwv6Z/cbdqhgN6zVE4x2eh1IA6LnMgzBSxwSCLQ7
RkyPGcyK0n5bJIxrLbuRyFOaUfYikVDgngXgCsc8Jy7XnsUZgrcR0QAuWKK5
jW92J+EJ+UAkj+0PBOpxoMJsfAIuNoLXb3g1YQr9PrQ6BK1lSRJo72gP9pgd
CmtuV8eEdvgKTHyf9+NRSWcgo5Iuj7I+laNbP3jdesP29/feH7FfwTwp/C2i
SOxkQMYwCC3Z3F/fsl9Fu4k//9YzJm7u7hqlQt0gLhqgvXve3bXM7P6UcY0V
7+CyWPK3PpehUU17/UW+4ifHF14OF6L9d676Eoz/3hMuXI68cjqf6WrPTX3R
S/m5kA3IPI3ggeGhYi9TLWdSkzSl0caUS2idiKQrQUyEypjZ9LSd1mi7aS8i
dSr5LJL/QCFCVoS8+XkmwTM7qRHSpPnkfkujtozYx3QmrU/pwM554XNQbXC/
4Uc/5bElENpPZFyykFZPapaFvQCeE5Fd0UAWM0pBE+iAUUSFnC+y+mxmGoYD
sidKTTo358xl2Hse8a6wSdEtJBfTkEiwvcTvSaQik+LNw8P3r/a2G26O+3df
xYNEdnuGPfS32ZNHT54xa9OtJNXGRivaCDWJLm5ydVmmI0UAL0M2Nj2VaKY6
dqYPdhuM7ZF/ElkNN4U6z0RQSHUsAkkZqJ0STHaPVCMnREyrNIFz0ggARq3F
rLg7zrtV4tbTGyRqQgZc+NYddxhQBpd9aVBesThNdMoBh1E7lpxObW3kCGTo
hcA6wsYIxoDU+iq0E4CRHRcsxJnUeP/y5BXc0M5167UwxBhYAs8nwhbC7FnD
zzEYAvhnzd6JLg/ZUaJAbHij8LEIwTeiBXix018pPyUFZtcfUoTQFCKIDDJt
ESQyrm2Vsl1gyqyZ5cnT8oH3NtzmKRf4IKPTNYqCH/H6AZLkyS2PjtJoEXas
ZZLNsdCyHykj83RFCxLhpGF1shjv0VPvyeN6niAmfIDiZCSNBKGMw/kplnib
lWI/gK4PQki1kbaJKnOCnMJDONR2nnWt7t9RbcVOYDZ+D+o8oio9Z2B3N0sr
jWaRT2h7Z3GuLLQzXFrZYWkc0ANdguKRM6BQKhjthonoqzPhVADkRJbO8J/d
b+jvb5xQEYSy6s7zi7uKy3tZhdt6zUYfZJTPzEvg+rAGvvTn4Hbrw5D2LdU5
M34ObmLa7AcxzVX5NCFyD7E7M9qZDXdu5ErxObwSRVtOnVF80CwvOJpUz1mu
C7rZwosh0tMgmjwA3oasWb28BsKN3M2/OzZwK1hkG1rNbyAis7+5MH/q/JP+
jSNfRv3PlOkca6z89YwhOxuol6lf679Ne8423lS7Xgy/DbX+WXoqeULhBJSQ
1ssTxu6n2p0YuhX8ii3XxsKvgcsG2+8o/psRw2d01hedeMu4rlsEXzp6d8L6
Vxm/p53ObNvePaKFjX/IcBtnNTPx8f3kygU/yVtUOzNEtodzUpaMuqCq2dgn
iwsd/Ca1krFpH3RDu/0w37GWDmz5e9+LIHv5nGXhLFYI8w1UoGNWvGp051ux
lWWsFlpXUC/95YJ1sdlNAXWhs9JG2vPUGmizVbBp1r8yFVzjPLVZNj7jCLvO
2G6M8a4FtqPnpCucjDbVjtcgVnwd5hto30vAfOY5snFrx8aJaTN+/HRi3lW+
xjNLeXNvlbuaOkFqqMBMBGZ5ZJkIbPR3WjOWA9YeuKzrTkjURXDmMLyNqDhB
5Wuv+UFlIfRiraE10/FlXw5aDyVnXBZ9IMy+R5q+ZhPo8jnDoOy+djCt1/fV
6nUh2W6wlB7S4pqye9JXAe6evuhXHG9QWyBf6WqerqZqZ8bCyR+DvJ4DifjW
dSJWFeqW35ZdWaz7ij7u5rjPTerrFmNdpav1i3W3pJNFQ93yu52LPJN0/qqF
HzG74IFv1u/m3u5ZoCxhru9cvJzC6DHh0jPB6N1COZEr3xJwxYPAZpnM2A+v
LHh+3FSTyU+Wd95kqg7QVIXeF03e3T7PxutzWR9PrGk3Z9rH/jdWLG+Cdtam
d1Np5tLHdtxwp+ZrNbC6Q8vSPt9bz77MXXCN5WpnXbowlWZuJmrdmgJWF7Nu
6w55O2GB3/GZdKcVVuTlQnz4Xf+x2+83t8Ze6I7CqhO34k7ctb+kUxlY1ber
DGw5Xb61Sks30vPLMCzSWmUMsxuFm2ANS2gb3hOTuB+9xq+M8qs/JK5Il+vW
maz0uFl9zK/W1wr7mbf7lbO17nreI7e70z3SSo/rEz9vRV/rHj6v9WD4GRq/
7MHwC7RlV931uErLdY0aF9f4tmvVWL3lxmq++Ct+1+vOG07VML3DhlPd7jja
57qX+rzzNz1uulbveDvyq9Wz/CPYWihpbfqMN6agjVbPrbcPl6CGJR59V/lr
PuvZF7xDcexuNvwqBa1JJ2/jI9ky7pG81w27NS3Jr/1DXlXrbuWtu7Xs/a6l
QVUtvXtoUFWrb1ZTaP1ualuVuu9RJ/BOKv3eNArX7p6NtVTeGjYQK8Ut5nUr
ay2u09016/QDy+vecryzjnXXW5GV4lYVEm9LQesVEavW5dJal7fVIAh1PM1Z
dJxd9NwDuovuTvGz/lMXzZ69avABbBLkOnDgvzs5Wgqy+N+/8dqqfWmyBx3Z
9Wiy8zJvgNDAtEoTHwzg9NvnySn0+mPdJKmol6/Q72j+WKdn0JfWvxg++71B
pOpWkQ/Ywd7hHttHnJOBSFwfjy7YYakh7b9SBDqcWY3Cm67E3w6HjgpDdY6C
jf1yfIDCzQ7WIw1W0rabCeOjH27Prx28br1hH9+/Y8fZVSjhy5+O3+w//e75
84uLJu3rxHe4gW6TpUnUJFHghQnv6+anftiMdJNEaI6JmK/LyHNoEIIZGFKT
tcDAweuTt/kcsNFkh7t7P2Q6zaW0stCT6C2jhKSOuS8aOWdXQ+a3vcO3rK+C
NBQFQnbsvRs7JPqjgDlEvnv05NHFxQh6dt0RgSCwEVblSxrjuBHXzdwj2AyQ
CtHszGugHCeiIz/l+9jrUXER10Qioow6BGIf8RqC+JMdex1IA686VHBNdhQK
8pxExCG4svNLP/uf9ttAl2stu5GDnIaJiMIueAONBAnvGNaGE0A0UiEuN5yV
nwg/TaQZTLH0Fi1FtLQNGPwJdYkQW4BWpk8j+uAJ3u5iRRsXoZSTbMnTxvdb
NcSBL19+PvBeNSxakTAg4yUd//mzR9+3pb64aLi9oEg7A1HJhoM6+AycgvNx
KOVUmPxyyYQgISCPwAc33PGpsZQbxhOxVQN3BThtwbjvo27A2zPJLRWvzelt
n0e8K2x8Qyo0yleh3oEJ+j3Au1U7fN3a/3D4hsQhO3zy7DHskHg8fn1SvvL8
0TNYaIMci3JLTon1+BkQU1s1RD3GCdg0wQC8UccKB4aQDwDrQ9HoNnbYycnf
M3LPnvzlycXFDmu9O8k3ePbsOxrB3lu1//rlYD8b/+ujR9h42/KUbUYRlvVT
yhdITAAzMtK3Gi5QPxTmXCWnpH/E1dTpn+1ZjGyUSFRIXolg//Bwb//9duaI
z58SAFs1CHgGu9FWVX0BaZzbuxowA9vmCHgQdk9DDsPOsFTJVq2AD7wmdjEn
F/IzfqAYRAEtbD7nIeQ44xJpgoLENCo54IyKGWfMFhHQMxA/lxvQc/p/7kAg
bo0nUkFhToELTTD9crjK7Yqdw2+Ij10/Edz9RQ5i/2IPZUNAj04KRploh533
JGxJOqiwBU9Ds92w7GhR3t6Hi7aF/a1nckmCQOBPI6FUAHmWhhFka7vYqeHU
LMq0KKIzmaiIjFiD8q9gUZSRyMxLIL54jrftLGSMckDxBXk8ewqtBTXzauLN
Whemii63PIlOxxZcUcHHcEtwcRILX3ZgeGE42BlLBNCtSYRwOioxYLcoWUwO
gLT1aY6ADO17myA9VkesNbaMKB6AW3cx1YUytxXTjp3MZP2y3Wuygw+tQzas
h7xsuj/yvKU0CijqRgOmfPixjeh5zWOEaZYfH2xNj8OeEvjsiG3Bk4rIaBDk
bSmDvxBYMkXNPV64Gm7GY4p3czB2p6Cy3WAvB4XopAdinAQfcs0NPLiNWk5T
qKG3FH4TRt/hshYvaDiNKK6oRH6GSBY55BpCyxbVtEsi+ogQ2AKWCxeSnQG9
kQZUQYs+IFCpHiPPKW6VqbnIHUhNVh9YUlLbSjNojCs/O4XSgXGZ6i+fQ69i
ChOH4pu0h/lfaFu42Tn1LD8V4NmWVMbrRm3pZg1p+SZ0xTjiFq3SZmZ8Fnnl
Tx8XO4BOCVxOEROmtjMjtoxa4IjtLc9QTijtZpqCBQc2HZcS2LTSgXYayetb
tWsm9gPj6gjIIftUPtKZDiz7WcFGHOW1V2YGVO12BcIu/sly/44tnSJlbHYm
g5xaDVQpfD1T+C/leJkp26qPjny5HmzBBjP2Q6XFlDRfhiRHzrFp9fnu5EhX
GXbFGfaaitaGEuu1FVxlvjXKfLdiAq3xhBUoaBr5Ie+vHB/tjx7tpqyxTd0u
8ImRHHDyT1SfKfCSjHZs6BhNrRlL1yUMe7KeyJGzzr5bNRlNT4/smJpseSts
ZofLtqaGJuT7vB97tguTdaRhSNS3KKPHLeruIO+YBr9btYUP6zPS+VbtjYyG
uXVEBeXWmlO38lPbpco+atAjXbKRxtg8H2kPGA8CSuClTG/bwTpHzB9BrGj0
Fwl/jDcyuuM3+zCqOA4HTPwrJZFyPUTivFwdWGVbeTJWwUwWiDwP+ck/dQ3K
Pf80UucowZys9AmAa9mI4Md6h4dauIb9r4KdqzQMWChPhduTR6fst5Tt9zj5
BnFP2/mq71Cz5QqcJdXaWnPtP3ttoDj7NwEA

-->

</rfc>

