<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ccamp-fgotn-yang-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Fine grain OTN YANG">YANG Data Models for fine grain Optical Transport Network</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-fgotn-yang-01"/>
    <author initials="Y." surname="Tan" fullname="Yanxia Tan">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>tanyx11@chinaunicom.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Zheng" fullname="Yanlei Zheng">
      <organization>China Unicom</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>zhengyanlei@chinaunicom.cn</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="C." surname="Yu" fullname="Chaode Yu">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>yuchaode@huawei.com</email>
      </address>
    </author>
    <author initials="X." surname="Zhao" fullname="Xing Zhao">
      <organization>CAICT</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhaoxing@caict.ac.cn</email>
      </address>
    </author>
    <date year="2026" month="July" day="29"/>
    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 95?>
<t>This document defines YANG data models to describe the topology and tunnel information of a fine grain Optical Transport Network. The YANG data models defined in this document are designed to meet the requirements for efficient transmission of sub-1Gbit/s client signals in transport network.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-ccamp-wg.github.io/draft-ietf-ccamp-fgotn-yang/draft-ietf-ccamp-fgotn-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ccamp-fgotn-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CCAMP Working Group Working Group mailing list (<eref target="mailto:ccamp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ccamp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ccamp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-fgotn-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 98?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t>Optical Transport Networks (OTN) is a mainstream layer 1 technology for the transport network. Over the years, it has continued to evolve, to improve its transport functions for the emerging requirements. The topology and tunnel information in the OTN has already been defined by generic traffic-engineering models and technology-specific models, including <xref target="I-D.ietf-ccamp-otn-topo-yang"/> and <xref target="I-D.ietf-ccamp-otn-tunnel-model"/>.</t>
      <t>In the latest version of OTN, ITU-T G.709/Y.1331 Edition 6.5 <xref target="ITU-T_G.709"/>, the fine grain OTN (fgOTN) is introduced for the efficient transmission of low rate client signals (e.g., sub-1G).</t>
      <t>This document presents the control interface requirements of fgOTN, and defines three YANG data models for fgOTN topology, fgOTN tunnel, and fgOTN types. The topology model can capture topological and resource-related information pertaining to fgOTN. The fgOTN tunnel YANG data model defined in this document is used for the provisioning and management of fgOTN Traffic Engineering (TE) tunnels and Label Switched Paths (LSPs). The fgOTN types model contains a collection of YANG data types considered generally useful for fgOTN networks.</t>
      <t>Furthermore, this document also imports the generic Layer 1 types defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
      <t>The YANG data models defined in this document conform to the Network Management Datastore Architecture (NMDA) defined in <xref target="RFC8342"/>.</t>
      <section anchor="terminology-and-notations">
        <name>Terminology and Notations</name>
        <t>Some of the key terms used in this document are listed as follow.</t>
        <ul spacing="normal">
          <li>
            <t>fgTS: fine grain Tributary Slot.</t>
          </li>
          <li>
            <t>fgODUflex: fine grain Optical channel Data Unit flex.</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC7950"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>client</t>
          </li>
          <li>
            <t>server</t>
          </li>
          <li>
            <t>augment</t>
          </li>
          <li>
            <t>data model</t>
          </li>
          <li>
            <t>data node</t>
          </li>
        </ul>
        <t>The following terms are defined in <xref target="RFC6241"/> and are not redefined here:</t>
        <ul spacing="normal">
          <li>
            <t>configuration data</t>
          </li>
          <li>
            <t>state data</t>
          </li>
        </ul>
        <t>The terminology for describing YANG data models is found in <xref target="RFC7950"/>.</t>
      </section>
      <section anchor="tree-diagram">
        <name>Tree Diagram</name>
        <t>A simplified graphical representation of the data model is used in <xref target="fgotn-tree"/> of this document. The meaning of the symbols in this diagram is defined in <xref target="RFC8340"/>.</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="prefixes-in-model-names">
        <name>Prefixes in Model Names</name>
        <t>In this documents, names of data nodes and other data model objects are prefixed using the standard prefix associated with the corresponding YANG imported modules, as shown in the following table.</t>
        <table anchor="tab-prefixes">
          <name>Prefixes and corresponding YANG modules</name>
          <thead>
            <tr>
              <th align="left">Prefix</th>
              <th align="left">Yang Module</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">l1-types</td>
              <td align="left">ietf-layer1-types</td>
              <td align="left">[RFC YYYY]</td>
            </tr>
            <tr>
              <td align="left">otnt</td>
              <td align="left">ietf-otn-topology</td>
              <td align="left">[RFC ZZZZ]</td>
            </tr>
            <tr>
              <td align="left">te</td>
              <td align="left">ietf-te</td>
              <td align="left">[RFC KKKK]</td>
            </tr>
            <tr>
              <td align="left">otn-tnl</td>
              <td align="left">ietf-otn-tunnel</td>
              <td align="left">[RFC JJJJ]</td>
            </tr>
            <tr>
              <td align="left">fgotnt</td>
              <td align="left">ietf-fgotn-topology</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">fgotn-tnl</td>
              <td align="left">ietf-fgotn-tunnel</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">fgotn-types</td>
              <td align="left">ietf-fgotn-types</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <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-ccamp-otn-topo-yang"/>.
Please replace KKKK with the RFC numbers assigned to <xref target="I-D.ietf-teas-yang-te"/>.
Please replace JJJJ with the RFC numbers assigned to <xref target="I-D.ietf-ccamp-otn-tunnel-model"/>.
Please remove this note.</t>
      </section>
    </section>
    <section anchor="fine-grain-optical-transport-network-scenarios-overview">
      <name>Fine grain Optical Transport Network Scenarios Overview</name>
      <t>OTN network will cover a larger scope of networks, it may include the backbone network, metro core, metro aggregation, metro access, and even the OTN CPE in the customers' networks <xref target="ITU-T_G.709.20"/>. In general, the metro OTN networks support both fgODUflex and ODUk switching.  At the boundary nodes (e.g., metro-core nodes) of the metro OTN networks, the fgODUflexes to other metro OTN networks are multiplexed into ODUk of backbone networks. Therefore, the backbone OTN network could only support ODUk switching.</t>
      <t>The typical scenarios for fgOTN is to provide low bit rate private line or private network services for customers. The interface function requirements of fgOTN mainly include topology resource reporting and service provisioning. Three scenarios that require special consideration are listed based on the characteristics of fgOTN.</t>
      <section anchor="retrieve-server-tunnels-scenario-of-fgotn">
        <name>Retrieve Server Tunnels Scenario of fgOTN</name>
        <t><xref target="fig-multiplexing"/> below shows an example of scenario to retrieve server tunnels for multi-domain fgOTN service.
In this example, some small bandwidth fgOTN service are aggregated by the access ring (10G), and then aggregated into a bigger bandwidth in metro ring (100G).
The allocation of TS to support fgOTN switching maybe different in access ring and metro ring.
All link bandwidth information that supports fgOTN should be reported to MDSC by the PNC controller. E.g. there could be three ODU0 allocated in the access ring while there could be two ODU2 are allocated in the metro ring to support fgOTN switching. In this example, the server layer ODUk tunnel for fgOTN tunnel from node A to node E is ODU0, and the server layer tunnel from node E to node G is ODU2. The server layer tunnel for fgOTN tunnel will include one ODU0 tunnel and one ODU2 tunnel.</t>
        <figure anchor="fig-multiplexing">
          <name>The Scenario to Retrieve Server Tunnels</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="496" viewBox="0 0 496 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 8,128 L 8,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 8,240" fill="none" stroke="black"/>
                <path d="M 8,304 L 8,336" fill="none" stroke="black"/>
                <path d="M 32,64 L 32,128" fill="none" stroke="black"/>
                <path d="M 32,240 L 32,304" fill="none" stroke="black"/>
                <path d="M 56,32 L 56,64" fill="none" stroke="black"/>
                <path d="M 56,128 L 56,160" fill="none" stroke="black"/>
                <path d="M 56,208 L 56,240" fill="none" stroke="black"/>
                <path d="M 56,304 L 56,336" fill="none" stroke="black"/>
                <path d="M 128,128 L 128,160" fill="none" stroke="black"/>
                <path d="M 128,208 L 128,240" fill="none" stroke="black"/>
                <path d="M 152,160 L 152,208" fill="none" stroke="black"/>
                <path d="M 176,128 L 176,160" fill="none" stroke="black"/>
                <path d="M 176,208 L 176,240" fill="none" stroke="black"/>
                <path d="M 248,128 L 248,160" fill="none" stroke="black"/>
                <path d="M 248,208 L 248,240" fill="none" stroke="black"/>
                <path d="M 272,160 L 272,208" fill="none" stroke="black"/>
                <path d="M 296,128 L 296,160" fill="none" stroke="black"/>
                <path d="M 296,208 L 296,240" fill="none" stroke="black"/>
                <path d="M 336,48 L 336,136" fill="none" stroke="black"/>
                <path d="M 368,128 L 368,160" fill="none" stroke="black"/>
                <path d="M 368,208 L 368,240" fill="none" stroke="black"/>
                <path d="M 392,160 L 392,208" fill="none" stroke="black"/>
                <path d="M 416,128 L 416,160" fill="none" stroke="black"/>
                <path d="M 416,208 L 416,240" fill="none" stroke="black"/>
                <path d="M 8,32 L 56,32" fill="none" stroke="black"/>
                <path d="M 56,48 L 88,48" fill="none" stroke="black"/>
                <path d="M 8,64 L 56,64" fill="none" stroke="black"/>
                <path d="M 8,128 L 56,128" fill="none" stroke="black"/>
                <path d="M 128,128 L 176,128" fill="none" stroke="black"/>
                <path d="M 248,128 L 296,128" fill="none" stroke="black"/>
                <path d="M 368,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 56,144 L 72,144" fill="none" stroke="black"/>
                <path d="M 112,144 L 128,144" fill="none" stroke="black"/>
                <path d="M 176,144 L 248,144" fill="none" stroke="black"/>
                <path d="M 296,144 L 368,144" fill="none" stroke="black"/>
                <path d="M 416,144 L 488,144" fill="none" stroke="black"/>
                <path d="M 8,160 L 56,160" fill="none" stroke="black"/>
                <path d="M 128,160 L 176,160" fill="none" stroke="black"/>
                <path d="M 248,160 L 296,160" fill="none" stroke="black"/>
                <path d="M 368,160 L 416,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 56,208" fill="none" stroke="black"/>
                <path d="M 128,208 L 176,208" fill="none" stroke="black"/>
                <path d="M 248,208 L 296,208" fill="none" stroke="black"/>
                <path d="M 368,208 L 416,208" fill="none" stroke="black"/>
                <path d="M 56,224 L 72,224" fill="none" stroke="black"/>
                <path d="M 112,224 L 128,224" fill="none" stroke="black"/>
                <path d="M 176,224 L 248,224" fill="none" stroke="black"/>
                <path d="M 296,224 L 368,224" fill="none" stroke="black"/>
                <path d="M 416,224 L 488,224" fill="none" stroke="black"/>
                <path d="M 8,240 L 56,240" fill="none" stroke="black"/>
                <path d="M 128,240 L 176,240" fill="none" stroke="black"/>
                <path d="M 248,240 L 296,240" fill="none" stroke="black"/>
                <path d="M 368,240 L 416,240" fill="none" stroke="black"/>
                <path d="M 8,304 L 56,304" fill="none" stroke="black"/>
                <path d="M 56,320 L 88,320" fill="none" stroke="black"/>
                <path d="M 8,336 L 56,336" fill="none" stroke="black"/>
                <path d="M 72,144 L 112,224" fill="none" stroke="black"/>
                <path d="M 88,48 L 128,128" fill="none" stroke="black"/>
                <path d="M 72,224 L 112,144" fill="none" stroke="black"/>
                <path d="M 88,320 L 128,240" fill="none" stroke="black"/>
                <g class="text">
                  <text x="32" y="52">A</text>
                  <text x="220" y="68">Domain</text>
                  <text x="256" y="68">1</text>
                  <text x="412" y="68">Domain</text>
                  <text x="448" y="68">2</text>
                  <text x="64" y="100">10G</text>
                  <text x="32" y="148">B</text>
                  <text x="152" y="148">E</text>
                  <text x="272" y="148">G</text>
                  <text x="392" y="148">I</text>
                  <text x="212" y="180">100G</text>
                  <text x="460" y="180">100G</text>
                  <text x="32" y="228">C</text>
                  <text x="152" y="228">F</text>
                  <text x="272" y="228">H</text>
                  <text x="392" y="228">J</text>
                  <text x="64" y="276">10G</text>
                  <text x="32" y="324">D</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
      +-----+
      |  A  +---+                              |
      +--+--+    \            Domain 1         |      Domain 2
         |        \                            |
         |  10G    \                           |
         |          \                          |
      +--+--+        +-----+        +-----+    |   +-----+
      |  B  +-+    +-+  E  +--------+  G  +--------+  I  +---------
      +-----+  \  /  +--+--+        +--+--+        +--+--+
                \/      |     100G     |              |      100G
                /\      |              |              |
      +-----+  /  \  +--+--+        +--+--+        +--+--+
      |  C  +-+    +-+  F  +--------+  H  +--------+  J  +---------
      +--+--+        +-----+        +-----+        +-----+
         |          /
         |  10G    /
         |        /
      +--+--+    /
      |  D  +---+
      +-----+

]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="multi-layer-path-splicing-scenario-of-fgotn">
        <name>Multi-layer Path Splicing Scenario of fgOTN</name>
        <t>Some operators that would like to provide the paths when there could be different switching capabilities of nodes in their LSP, so that the MDSC coordinator can clearly display multi-layer paths and the relationship between primary-path and secondary-path. In the current network, not all nodes in the operator network support fgOTN, as shown in figure 2, node f1, f2, f3 and f4 support fgOTN, node N-f5 and node N-f6 do not support fgOTN. To present the end-to-end multi-layer primary-path and secondary-path of the services on the client side, it is necessary to complete the end-to-end path splicing based on the the ODU tunnel information associated with the fgotn tunnel.</t>
        <t>In <xref target="fig-service"/>, assuming that the server layer ODUk tunnel for the fgOTN primary tunnel from node f1 to node f2 is ODU0, the server layer tunnel from node f2 to node f3 is ODU2, and the server layer tunnel from node f3 to node f4 is ODU1. Assuming the server layer ODUk tunnel for the fgOTN secondary tunnel from node f1 to node f2 is ODU2. We need to setup four server layer ODUk tunnels before setting up an fgODUflex tunnel with a primary path and a secondary path to provide protection. To support multi-layer path splicing, we should make some extension on the dependency tunnel structure or on the path element, such as extending the working roles and index of the tunnels.</t>
        <figure anchor="fig-service">
          <name>Multi-layer Path Splicing Scenario of fgOTN</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="376" viewBox="0 0 376 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
                <path d="M 56,112 L 56,144" fill="none" stroke="black"/>
                <path d="M 88,32 L 88,64" fill="none" stroke="black"/>
                <path d="M 88,192 L 88,224" fill="none" stroke="black"/>
                <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
                <path d="M 144,192 L 144,224" fill="none" stroke="black"/>
                <path d="M 232,192 L 232,224" fill="none" stroke="black"/>
                <path d="M 240,32 L 240,64" fill="none" stroke="black"/>
                <path d="M 288,32 L 288,64" fill="none" stroke="black"/>
                <path d="M 288,192 L 288,224" fill="none" stroke="black"/>
                <path d="M 320,112 L 320,144" fill="none" stroke="black"/>
                <path d="M 368,112 L 368,144" fill="none" stroke="black"/>
                <path d="M 88,32 L 136,32" fill="none" stroke="black"/>
                <path d="M 240,32 L 288,32" fill="none" stroke="black"/>
                <path d="M 56,48 L 88,48" fill="none" stroke="black"/>
                <path d="M 136,48 L 240,48" fill="none" stroke="black"/>
                <path d="M 288,48 L 320,48" fill="none" stroke="black"/>
                <path d="M 88,64 L 136,64" fill="none" stroke="black"/>
                <path d="M 240,64 L 288,64" fill="none" stroke="black"/>
                <path d="M 56,80 L 120,80" fill="none" stroke="black"/>
                <path d="M 240,80 L 320,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 56,112" fill="none" stroke="black"/>
                <path d="M 320,112 L 368,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 56,144" fill="none" stroke="black"/>
                <path d="M 320,144 L 368,144" fill="none" stroke="black"/>
                <path d="M 56,176 L 112,176" fill="none" stroke="black"/>
                <path d="M 248,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 88,192 L 144,192" fill="none" stroke="black"/>
                <path d="M 232,192 L 288,192" fill="none" stroke="black"/>
                <path d="M 56,208 L 88,208" fill="none" stroke="black"/>
                <path d="M 144,208 L 232,208" fill="none" stroke="black"/>
                <path d="M 288,208 L 320,208" fill="none" stroke="black"/>
                <path d="M 88,224 L 144,224" fill="none" stroke="black"/>
                <path d="M 232,224 L 288,224" fill="none" stroke="black"/>
                <path d="M 24,144 L 56,208" fill="none" stroke="black"/>
                <path d="M 40,144 L 56,176" fill="none" stroke="black"/>
                <path d="M 320,80 L 336,112" fill="none" stroke="black"/>
                <path d="M 320,48 L 352,112" fill="none" stroke="black"/>
                <path d="M 24,112 L 56,48" fill="none" stroke="black"/>
                <path d="M 40,112 L 56,80" fill="none" stroke="black"/>
                <path d="M 320,176 L 336,144" fill="none" stroke="black"/>
                <path d="M 320,208 L 352,144" fill="none" stroke="black"/>
                <g class="text">
                  <text x="116" y="52">f2</text>
                  <text x="268" y="52">f3</text>
                  <text x="180" y="84">primary-path</text>
                  <text x="36" y="132">f1</text>
                  <text x="348" y="132">f4</text>
                  <text x="180" y="180">secondary-path</text>
                  <text x="116" y="212">N-f5</text>
                  <text x="260" y="212">N-f6</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                   +-----+            +-----+
               +---+  f2 +------------+  f3 +---+
              /    +-----+            +-----+    \
             / +-------- primary-path ----------+ \
            / /                                  \ \
         +-+-+-+                                +-+-+-+
         |  f1 |                                |  f4 |
         +-+-+-+                                +-+-+-+
            \ \                                  / /
             \ +------- secondary-path ---------+ /
              \    +------+          +------+    /
               +---+ N-f5 +----------+ N-f6 +---+
                   +------+          +------+
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="hitless-bandwidth-adjustment-scenario-of-fgotn">
        <name>Hitless Bandwidth Adjustment Scenario of fgOTN</name>
        <t><xref target="ITU-T_G.709"/> defines the data plane procedure to support fgODUflex hitless resizing. The support of management of hitless resizing of fgODUflex needs to be carefully considered.</t>
        <t>The range of fgOTN service's Bandwidth on Demand (BoD) cannot exceed its server layer's bandwidth.</t>
        <t>The client needs to know how many bandwidth of a link is allocated for fgOTN. When performs hitless resizing, the client sends the fgODUflex identifier and the target bandwidth to the source node controller. After receiving the network management configuration information, the source node triggers the bandwidth adjustment. During the hitless bandwidth adjustment process, it is necessary to reserve or mark the corresponding bandwidth resources first, and then trigger the bandwidth adjustment actions.</t>
        <t>Another point to note is that when performing bidirectional hitless resizing for fgODUflex service, the adjustment should be initiated by the client side to a single network management system. Specifically, the adjustment is first performed in the Node 1 to Node 6 direction, and then the reverse direction (Node 6 to Node 1) is automatically triggered for adjustment. For bidirectional hitless resizing, the adjustment shall be regarded as successful only when both directions are completed. If only one direction succeeds while the other fails, the controller may issue a command to perform forced bandwidth adjustment to ensure consistent status in both directions (which may be hit-impairing).</t>
        <t>When 1+1 protection is configured for fgODUflex, if hitless bandwidth adjustment is performed on fgODUflex, both the working path and the protection path shall initiate the adjustment protocol and signaling transmission. Each node shall check the signaling delivered by both the working path and the protection path simultaneously during state processing.</t>
        <t>Both single domain and multi-domain hitless resizing should be supported. For single domain and multi-domain hitless resizing scenario, the source controller alone report the bandwidth adjustment status to the MDSC coordinator upon completion.</t>
        <figure anchor="fig-hitless">
          <name>Hitless Resizing Scenario of fgOTN</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="592" viewBox="0 0 592 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,240 L 8,288" fill="none" stroke="black"/>
                <path d="M 48,128 L 48,176" fill="none" stroke="black"/>
                <path d="M 64,240 L 64,288" fill="none" stroke="black"/>
                <path d="M 112,240 L 112,288" fill="none" stroke="black"/>
                <path d="M 152,128 L 152,176" fill="none" stroke="black"/>
                <path d="M 168,240 L 168,288" fill="none" stroke="black"/>
                <path d="M 192,280 L 192,336" fill="none" stroke="black"/>
                <path d="M 216,240 L 216,288" fill="none" stroke="black"/>
                <path d="M 240,128 L 240,176" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,80" fill="none" stroke="black"/>
                <path d="M 272,240 L 272,288" fill="none" stroke="black"/>
                <path d="M 288,80 L 288,128" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,288" fill="none" stroke="black"/>
                <path d="M 336,32 L 336,80" fill="none" stroke="black"/>
                <path d="M 344,128 L 344,176" fill="none" stroke="black"/>
                <path d="M 376,240 L 376,288" fill="none" stroke="black"/>
                <path d="M 408,280 L 408,336" fill="none" stroke="black"/>
                <path d="M 424,240 L 424,288" fill="none" stroke="black"/>
                <path d="M 432,128 L 432,176" fill="none" stroke="black"/>
                <path d="M 480,240 L 480,288" fill="none" stroke="black"/>
                <path d="M 528,240 L 528,288" fill="none" stroke="black"/>
                <path d="M 536,128 L 536,176" fill="none" stroke="black"/>
                <path d="M 584,240 L 584,288" fill="none" stroke="black"/>
                <path d="M 248,32 L 336,32" fill="none" stroke="black"/>
                <path d="M 128,48 L 248,48" fill="none" stroke="black"/>
                <path d="M 336,48 L 448,48" fill="none" stroke="black"/>
                <path d="M 248,80 L 336,80" fill="none" stroke="black"/>
                <path d="M 48,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 240,128 L 344,128" fill="none" stroke="black"/>
                <path d="M 432,128 L 536,128" fill="none" stroke="black"/>
                <path d="M 48,176 L 152,176" fill="none" stroke="black"/>
                <path d="M 240,176 L 344,176" fill="none" stroke="black"/>
                <path d="M 432,176 L 536,176" fill="none" stroke="black"/>
                <path d="M 16,224 L 576,224" fill="none" stroke="black"/>
                <path d="M 8,240 L 64,240" fill="none" stroke="black"/>
                <path d="M 112,240 L 168,240" fill="none" stroke="black"/>
                <path d="M 216,240 L 272,240" fill="none" stroke="black"/>
                <path d="M 320,240 L 376,240" fill="none" stroke="black"/>
                <path d="M 424,240 L 480,240" fill="none" stroke="black"/>
                <path d="M 528,240 L 584,240" fill="none" stroke="black"/>
                <path d="M 64,256 L 112,256" fill="none" stroke="black"/>
                <path d="M 168,256 L 216,256" fill="none" stroke="black"/>
                <path d="M 272,256 L 320,256" fill="none" stroke="black"/>
                <path d="M 376,256 L 424,256" fill="none" stroke="black"/>
                <path d="M 480,256 L 528,256" fill="none" stroke="black"/>
                <path d="M 64,272 L 112,272" fill="none" stroke="black"/>
                <path d="M 168,272 L 216,272" fill="none" stroke="black"/>
                <path d="M 272,272 L 320,272" fill="none" stroke="black"/>
                <path d="M 376,272 L 424,272" fill="none" stroke="black"/>
                <path d="M 480,272 L 528,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 64,288" fill="none" stroke="black"/>
                <path d="M 112,288 L 168,288" fill="none" stroke="black"/>
                <path d="M 216,288 L 272,288" fill="none" stroke="black"/>
                <path d="M 320,288 L 376,288" fill="none" stroke="black"/>
                <path d="M 424,288 L 480,288" fill="none" stroke="black"/>
                <path d="M 528,288 L 584,288" fill="none" stroke="black"/>
                <path d="M 448,48 L 484,120" fill="none" stroke="black"/>
                <path d="M 88,128 L 128,48" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="584,224 572,218.4 572,229.6" fill="black" transform="rotate(0,576,224)"/>
                <polygon class="arrowhead" points="24,224 12,218.4 12,229.6" fill="black" transform="rotate(180,16,224)"/>
                <g class="text">
                  <text x="292" y="52">MDSC</text>
                  <text x="100" y="148">Controller</text>
                  <text x="292" y="148">Controller</text>
                  <text x="484" y="148">Controller</text>
                  <text x="96" y="164">1</text>
                  <text x="288" y="164">2</text>
                  <text x="480" y="164">3</text>
                  <text x="284" y="212">End-to-end</text>
                  <text x="352" y="212">fgOTN</text>
                  <text x="408" y="212">service</text>
                  <text x="36" y="260">node</text>
                  <text x="140" y="260">node</text>
                  <text x="244" y="260">node</text>
                  <text x="348" y="260">node</text>
                  <text x="452" y="260">node</text>
                  <text x="556" y="260">node</text>
                  <text x="32" y="276">1</text>
                  <text x="136" y="276">2</text>
                  <text x="240" y="276">3</text>
                  <text x="344" y="276">4</text>
                  <text x="448" y="276">5</text>
                  <text x="552" y="276">6</text>
                  <text x="36" y="308">source</text>
                  <text x="536" y="308">destination</text>
                  <text x="84" y="324">Domain</text>
                  <text x="120" y="324">1</text>
                  <text x="292" y="324">Domain</text>
                  <text x="328" y="324">2</text>
                  <text x="492" y="324">Domain</text>
                  <text x="528" y="324">3</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                                 +----------+
                  +--------------+   MDSC   +-------------+
                 /               |          |              \
                /                +----+-----+               \
               /                      |                      \
              /                       |                       \
        +----+-------+          +-----+------+          +-----+------+
        | Controller |          | Controller |          | Controller |
        |     1      |          |     2      |          |     3      |
        +------------+          +------------+          +------------+

                                 End-to-end fgOTN service
    <--------------------------------------------------------------------->
   +------+     +------+     +------+     +------+     +------+     +------+
   | node +-----+ node +-----+ node +-----+ node +-----+ node +-----+ node |
   |  1   +-----+  2   +-----+  3   +-----+  4   +-----+  5   +-----+  6   |
   +------+     +------+  |  +------+     +------+   | +------+     +------+
    source                |                          |          destination
          Domain 1        |         Domain 2         |       Domain 3
                          |                          |
]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="yang-data-model-for-fine-grain-optical-transport-network-overview">
      <name>YANG Data Model for fine grain Optical Transport Network Overview</name>
      <t>In order to provide fgOTN capabilities, this document defines two extension YANG data models augmenting to OTN topology and OTN tunnel YANG model, as defined in <xref target="I-D.ietf-ccamp-otn-topo-yang"/> and <xref target="I-D.ietf-ccamp-otn-tunnel-model"/>.</t>
      <t>As defined in Annex M of <xref target="ITU-T_G.709"/>, fgOTN is defining a new path layer network which complements the existing OTN. Therefore:</t>
      <ul spacing="normal">
        <li>
          <t>A single network topology instance is used to report both OTN and fgOTN topology information: fgOTN technology-specific attributes are therefore defined in the fgOTN topology model as augmentations of the OTN topology model, but without defining a new network type for fgOTN.</t>
        </li>
        <li>
          <t>The OTN tunnel model can be used to setup either an OTN or an fgOTN tunnel: fgOTN technology-specific attributes are therefore defined in the fgOTN tunnel model as augmentations of the OTN tunnel model, which are applicable only when the OTN tunnel is an fgOTN tunnel.</t>
        </li>
      </ul>
      <t>In other words, the same switching-capability and encoding types can be used for ODUk and fgODUflex. Accordingly, additional parameters are required to identify fgODUflex tunnels. This document defines a new YANG module ietf-fgotn-types containing fgOTN-specific type definitions. In order to identify the fgODUflex tunnel, a new identity fgODUflex based on the odu-type in <xref target="I-D.ietf-ccamp-layer1-types"/> is defined in ietf-fgotn-types YANG module.</t>
    </section>
    <section anchor="yang-data-model-for-fgotn-topology">
      <name>YANG Data Model for fgOTN Topology</name>
      <section anchor="fine-grain-otn-topology-data-model-overview">
        <name>Fine Grain OTN Topology Data Model Overview</name>
        <t>This document aims to describe the data model for fine grain OTN topology. The YANG module presented in this document augments from OTN topology data model, i.e., the ietf-otn-topology, as specified in <xref target="I-D.ietf-ccamp-otn-topo-yang"/>. In section 6 of <xref target="I-D.ietf-ccamp-otn-topo-yang"/>, the guideline for augmenting OTN topology model was provided, and in this draft, we augment the OTN topology model to describe the topology characteristics of fgOTN.</t>
        <t>Common types, identities and groupings defined in <xref target="I-D.ietf-ccamp-layer1-types"/> is reused in this document.</t>
        <t><xref target="RFC8345"/> defines an abstract (generic, or base) YANG data model for network/service topologies and inventories, and provides the fundamental model for <xref target="RFC8795"/>. OTN topology module in <xref target="I-D.ietf-ccamp-otn-topo-yang"/> augments from the TE topology YANG model defined in <xref target="RFC8795"/>. <xref target="fig-fgotn-topology-relationship"/> shows the augmentation relationship.</t>
        <figure anchor="fig-fgotn-topology-relationship">
          <name>Relationship between fgOTN topology and OTN topology model</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="384" viewBox="0 0 384 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
                <path d="M 72,336 L 72,368" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,176" fill="none" stroke="black"/>
                <path d="M 80,240 L 80,272" fill="none" stroke="black"/>
                <path d="M 104,72 L 104,104" fill="none" stroke="black"/>
                <path d="M 128,32 L 128,64" fill="none" stroke="black"/>
                <path d="M 152,104 L 152,144" fill="none" stroke="black"/>
                <path d="M 160,184 L 160,240" fill="none" stroke="black"/>
                <path d="M 160,280 L 160,336" fill="none" stroke="black"/>
                <path d="M 168,104 L 168,144" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 216,72 L 216,104" fill="none" stroke="black"/>
                <path d="M 240,144 L 240,176" fill="none" stroke="black"/>
                <path d="M 240,240 L 240,272" fill="none" stroke="black"/>
                <path d="M 248,336 L 248,368" fill="none" stroke="black"/>
                <path d="M 376,32 L 376,64" fill="none" stroke="black"/>
                <path d="M 8,32 L 128,32" fill="none" stroke="black"/>
                <path d="M 184,32 L 376,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 128,64" fill="none" stroke="black"/>
                <path d="M 184,64 L 376,64" fill="none" stroke="black"/>
                <path d="M 80,144 L 240,144" fill="none" stroke="black"/>
                <path d="M 80,176 L 240,176" fill="none" stroke="black"/>
                <path d="M 80,240 L 240,240" fill="none" stroke="black"/>
                <path d="M 80,272 L 240,272" fill="none" stroke="black"/>
                <path d="M 72,336 L 248,336" fill="none" stroke="black"/>
                <path d="M 72,368 L 248,368" fill="none" stroke="black"/>
                <path d="M 104,104 L 152,104" fill="none" stroke="black"/>
                <path d="M 168,104 L 216,104" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="224,72 212,66.4 212,77.6" fill="black" transform="rotate(270,216,72)"/>
                <polygon class="arrowhead" points="168,280 156,274.4 156,285.6" fill="black" transform="rotate(270,160,280)"/>
                <polygon class="arrowhead" points="168,184 156,178.4 156,189.6" fill="black" transform="rotate(270,160,184)"/>
                <polygon class="arrowhead" points="112,72 100,66.4 100,77.6" fill="black" transform="rotate(270,104,72)"/>
                <g class="text">
                  <text x="68" y="52">ietf-network</text>
                  <text x="280" y="52">ietf-network-topology</text>
                  <text x="212" y="132">Augments</text>
                  <text x="156" y="164">ietf-te-topology</text>
                  <text x="204" y="212">Augments</text>
                  <text x="160" y="260">ietf-otn-topology</text>
                  <text x="204" y="308">Augments</text>
                  <text x="160" y="356">ietf-fgotn-topology</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
    +--------------+      +-----------------------+
    | ietf-network |      | ietf-network-topology |
    +--------------+      +-----------------------+
                ^             ^
                |_____   _____|
                      | |
                      | | Augments
             +--------+-+--------+
             | ietf-te-topology  |
             +-------------------+
                       ^
                       | Augments
                       |
             +---------+---------+
             | ietf-otn-topology |
             +-------------------+
                       ^
                       | Augments
                       |
            +----------+----------+
            | ietf-fgotn-topology |
            +---------------------+
]]></artwork>
          </artset>
        </figure>
        <t>The entities, TE attributes and OTN attributes, such as nodes, termination points and links, are still applicable for describing an fgOTN topology and the model presented in this document only specifies technology-specific attributes/information. The fgOTN-specific attributes including the fgTS, can be used to represent the bandwidth and label information. At the same time, it is necessary to extend the encoding and switching-capability enumeration values in <xref target="I-D.ietf-teas-rfc8776-update"/> to identify that the current Tunnel Termination Point (TTP) is a termination point of an fgOTN tunnel.</t>
      </section>
      <section anchor="bandwidth-augmentation">
        <name>Bandwidth Augmentation</name>
        <t>Building upon the OTN topology model, the odu-list structure within the OTN topology YANG module is leveraged to represent the maximum link bandwidth and unreserved bandwidth for fgOTN. As an illustration, if an OTU2 port supports fgOTN, fgOTN is enabled across the entire port. In this case, the odu-type shall be set to ietf-fgotn-types:fgODUflex, with the associated number equal to 952. When a portion of fgts on the port is occupied, the value of maximum link bandwidth remains unchanged, while the number representing available bandwidth decreases accordingly.</t>
        <sourcecode type="json"><![CDATA[
  "ietf-otn-topology:odulist": [{
    "odu-type": "ietf-fgotn-types:fgODUflex",
    "number": 952
  }]
]]></sourcecode>
      </section>
      <section anchor="label-augmentation">
        <name>Label Augmentation</name>
        <t>The model augments the label-restriction list with fgOTN technology-specific label information using the otn-label-range-info grouping defined in <xref target="I-D.ietf-ccamp-layer1-types"/>.</t>
        <sourcecode type="yangtree"><![CDATA[
  augment /nw:networks/tet:te/tet:templates/tet:link-template
          /tet:te-link-attributes/tet:label-restrictions
          /tet:label-restriction:
    +--rw fgts-range* [odu-type odu-ts-number]
        +--rw odu-type           identityref
        +--rw odu-ts-number?     fgotnt:ts-list
        +--rw fgts-reserved?     fgotnt:ts-list
        +--rw fgts-unreserved?   fgotnt:ts-list
]]></sourcecode>
        <t>The fgts-range list is used to describe the availability of fgOTN timeslot in the server ODUk, including the fgts-reserved and fgts-unreserved. The odu-ts-number is used to indicate the index of server ODUk channel.</t>
      </section>
    </section>
    <section anchor="yang-data-model-for-fgotn-tunnel">
      <name>YANG Data Model for fgOTN Tunnel</name>
      <section anchor="fine-grain-otn-tunnel-data-model-overview">
        <name>Fine Grain OTN Tunnel Data Model Overview</name>
        <t>This document aims to describe the data model for fgOTN tunnel. The fgOTN tunnel model augments to OTN tunnel <xref target="I-D.ietf-ccamp-otn-tunnel-model"/> with fgOTN-specific parameters, including the bandwidth information and label information. <xref target="fig-fgotn-tunnel-relationship"/> shows the augmentation relationship.</t>
        <figure anchor="fig-fgotn-tunnel-relationship">
          <name>Relationship between fgOTN and OTN tunnel model</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="176" viewBox="0 0 176 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,224 L 8,256" fill="none" stroke="black"/>
                <path d="M 16,32 L 16,64" fill="none" stroke="black"/>
                <path d="M 16,128 L 16,160" fill="none" stroke="black"/>
                <path d="M 96,72 L 96,128" fill="none" stroke="black"/>
                <path d="M 96,168 L 96,224" fill="none" stroke="black"/>
                <path d="M 160,128 L 160,160" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
                <path d="M 168,224 L 168,256" fill="none" stroke="black"/>
                <path d="M 16,32 L 168,32" fill="none" stroke="black"/>
                <path d="M 16,64 L 168,64" fill="none" stroke="black"/>
                <path d="M 16,128 L 160,128" fill="none" stroke="black"/>
                <path d="M 16,160 L 160,160" fill="none" stroke="black"/>
                <path d="M 8,224 L 168,224" fill="none" stroke="black"/>
                <path d="M 8,256 L 168,256" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="104,168 92,162.4 92,173.6" fill="black" transform="rotate(270,96,168)"/>
                <polygon class="arrowhead" points="104,72 92,66.4 92,77.6" fill="black" transform="rotate(270,96,72)"/>
                <g class="text">
                  <text x="96" y="52">ietf-te</text>
                  <text x="140" y="100">Augments</text>
                  <text x="88" y="148">ietf-otn-tunnel</text>
                  <text x="140" y="196">Augments</text>
                  <text x="88" y="244">ietf-fgotn-tunnel</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                +------------------+
                |      ietf-te     |
                +------------------+
                          ^
                          | Augments
                          |
                +---------+-------+
                | ietf-otn-tunnel |
                +-----------------+
                          ^
                          | Augments
                          |
               +----------+--------+
               | ietf-fgotn-tunnel |
               +-------------------+
]]></artwork>
          </artset>
        </figure>
        <t>It's also worth noting that the fgOTN tunnel provisioning is usually based on the fgOTN topology. Therefore the fgOTN tunnel model is usually used together with fgOTN topology model specified in this document. The OTN tunnel model also imports a few type modules, including ietf-layer1-types and ietf-te-types.</t>
        <t>A new identity based on odu-type should be defined in fgotn-types yang module to indicate the fgODUflex tunnel.</t>
      </section>
      <section anchor="bandwidth-augmentation-1">
        <name>Bandwidth Augmentation</name>
        <t>The model augment TE bandwidth information of fgOTN tunnel.</t>
        <sourcecode type="yangtree"><![CDATA[
  augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology
          /otn-tnl:otn/otn-tnl:otn-bandwidth:
    +--rw fgoduflex-bandwidth?   string
]]></sourcecode>
        <t>The string value fgoduflex-bandwidth is used to indicate the bandwidth of this fgOTN tunnel.</t>
      </section>
      <section anchor="label-augmentation-1">
        <name>Label Augmentation</name>
        <t>The module augments TE label-hop for the explicit route objects included or excluded by the path computation of the primary-paths and secondary-paths using the fgts-numbers. The fgts-numbers is used to specify fgTS information on inter-domain ports of the routing path. When specifying the fgotn time slot in the routing constraint information, the ODU time slot must also be specified. We also augment the TE label-hop for the record route of the LSP using the fgts-numbers.</t>
      </section>
    </section>
    <section anchor="yang-data-model-for-fgotn-types">
      <name>YANG Data Model for fgOTN types</name>
      <figure anchor="fgotn-types-yang">
        <name>fgOTN types YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-fgotn-types@2026-02-27.yang"><![CDATA[
module ietf-fgotn-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-fgotn-types";
  prefix fgotn-types;

  import ietf-layer1-types {
    prefix l1-types;
    reference
      "This module defines Layer 1 YANG types.";
  }

  /* Note: The RFC Editor will replace YYYY with the number assigned
     to the RFC once draft-ietf-ccamp-layer1-types becomes an RFC.*/

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      ID-draft editor:
        Yanxia Tan (tanyx11@chinaunicom.cn);
        Yanlei Zheng (zhengyanlei@chinaunicom.cn);
        Italo Busi (italo.busi@huawei.com);
        Chaode Yu (yuchaode@huawei.com);
        Xing Zhao (zhaoxing@caict.ac.cn);
    ";
  description
    "This module contains a collection of YANG data types considered
     generally useful for fine grain Optical Transport Network
     (fgOTN) networks.

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

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

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

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

  revision 2026-02-27 {
    description
      "initial version";
    reference
      "RFC XXXX: YANG Data Models for fine grain Optical Transport
                 Network";
  }

  identity fgODUflex {
    base l1-types:odu-type;
    description
      "fgODUflex type (fine grain flexible bit rate, resizable).";
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="fgotn-tree">
      <name>YANG Tree for fgOTN topology</name>
      <t><xref target="fig-fgotn-topo-tree"/> below shows the tree diagram of the YANG data model defined in module "ietf-fgotn-topology" (<xref target="fgotn-topology-yang"/>).</t>
      <figure anchor="fig-fgotn-topo-tree">
        <sourcecode type="yangtree" name="ietf-fgotn-topology.tree"><![CDATA[
module: ietf-fgotn-topology

  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction:
    +--rw fgts-range* [odu-type odu-ts-number]
       +--rw odu-type           identityref
       +--rw odu-ts-number      fgotnt:ts-list
       +--rw fgts-reserved?     fgotnt:ts-list
       +--rw fgts-unreserved?   fgotnt:ts-list
]]></sourcecode>
      </figure>
    </section>
    <section anchor="yang-data-model-for-fgotn-topology-1">
      <name>YANG Data Model for fgOTN topology</name>
      <figure anchor="fgotn-topology-yang">
        <name>fgOTN topology YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-fgotn-topology@2026-07-23.yang"><![CDATA[
module ietf-fgotn-topology {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-fgotn-topology";
  prefix fgotnt;

  import ietf-network {
    prefix nw;
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }
  import ietf-network-topology {
    prefix nt;
    reference
      "RFC8345: A YANG Data Model for Network Topologies";
  }
  import ietf-te-topology {
    prefix tet;
    reference
      "RFC 8795: YANG Data Model for Traffic Engineering (TE)
                 Topologies";
  }
  import ietf-layer1-types {
    prefix l1-types;
    reference
      "RFC YYYY: A YANG Data Model for Layer 1 Types";
  }

  /* Note: The RFC Editor will replace YYYY with the number assigned
     to the RFC once draft-ietf-ccamp-layer1-types becomes an RFC.*/

  import ietf-otn-topology {
    prefix otnt;
    reference
      "RFC ZZZZ: A YANG Data Model for Optical Transport Network
                 Topology";
  }

  /* Note: The RFC Editor will replace ZZZZ with the number assigned
     to the RFC once draft-ietf-ccamp-otn-topo-yang becomes an RFC.*/

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      ID-draft editor:
        Yanxia Tan (tanyx11@chinaunicom.cn);
        Yanlei Zheng (zhengyanlei@chinaunicom.cn);
        Italo Busi (italo.busi@huawei.com);
        Chaode Yu (yuchaode@huawei.com);
        Xing Zhao (zhaoxing@caict.ac.cn);
    ";
  description
    "This module defines a YANG data model for fgOTN-specific
     extension based on existing network topology models. The model
     fully conforms to the Network Management Datastore Architecture
     (NMDA).

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

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

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

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.";

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

  revision 2026-07-23 {
    description
      "initial version";
    reference
      "RFC XXXX: YANG Data Models for fine grain Optical Transport
                 Network";
  }

  typedef ts-list {
    type string {
      pattern '([1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?'
            + '(,[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?)*)?';
    }
    description
      "A list of Tributary Slots (TS) ranging between 1 and 4095.

       If multiple values or ranges are given, they all MUST be
       disjoint and MUST be in ascending order.

       For example 1-20,25,50-1000.";
    reference
      "RFC 7139: GMPLS Signaling Extensions for Control
                 of Evolving G.709 Optical Transport Networks";
  }

  augment "/nw:networks/nw:network/nt:link/tet:te"
        + "/tet:te-link-attributes/tet:label-restrictions"
        + "/tet:label-restriction" {
    when "./otnt:otn-label-range/otnt:range-type = 'trib-slot'" {
      description
        "Valid only when range-type represented by trib-slot.";
    }
    description
      "specific augmentation of fgOTN label";
    list fgts-range {
      key "odu-type odu-ts-number";
      description
        "This structure is used to describe the availability of
         fgOTN timeslot in the server ODUk";
      leaf odu-type {
        type identityref {
          base l1-types:odu-type;
        }
        description
          "The granularity of server ODUk";
      }
      leaf odu-ts-number {
        type fgotnt:ts-list;
        description
          "The index of server ODUk channel";
      }
      leaf fgts-reserved {
        type fgotnt:ts-list;
        description
          "The reserved fgOTN timeslot in this server ODUk";
      }
      leaf fgts-unreserved {
        type fgotnt:ts-list;
        description
          "The unreserved fgOTN timeslot in this server ODUk";
      }
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="yang-tree-for-fgotn-tunnel">
      <name>YANG Tree for fgOTN tunnel</name>
      <t><xref target="fig-fgotn-tunnel-tree"/> below shows the tree diagram of the YANG data model defined in module "ietf-fgotn-tunnel" (<xref target="fgotn-tunnel-yang"/>).</t>
      <figure anchor="fig-fgotn-tunnel-tree">
        <sourcecode type="yangtree" name="ietf-fgotn-tunnel.tree"><![CDATA[
module: ietf-fgotn-tunnel

  augment /te:te/te:tunnels/te:tunnel/te:te-bandwidth/te:technology
            /otn-tnl:otn/otn-tnl:otn-bandwidth:
    +--rw fgoduflex-bandwidth?   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-tnl:otn
            /otn-tnl:otn-label:
    +--rw fgts-numbers?   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-tnl:otn
            /otn-tnl:otn-label:
    +--rw fgts-numbers?   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-tnl:otn
            /otn-tnl:otn-label:
    +--rw fgts-numbers?   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-tnl:otn
            /otn-tnl:otn-label:
    +--rw fgts-numbers?   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-tnl:otn
            /otn-tnl:otn-label:
    +--ro fgts-numbers?   string
]]></sourcecode>
      </figure>
    </section>
    <section anchor="yang-data-model-for-fgotn-tunnel-1">
      <name>YANG Data Model for fgOTN tunnel</name>
      <figure anchor="fgotn-tunnel-yang">
        <name>fgOTN tunnel YANG module</name>
        <sourcecode type="yang" markers="true" name="ietf-fgotn-tunnel@2026-02-27.yang"><![CDATA[
module ietf-fgotn-tunnel {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-fgotn-tunnel";
  prefix fgotn-tnl;

  import ietf-te {
    prefix te;
    reference
      "RFC KKKK: A YANG Data Model for Traffic Engineering Tunnels,
                 Label Switched Paths and Interfaces";
  }
  import ietf-fgotn-types {
    prefix fgotn-types;
    reference
      "RFC XXXX: YANG Data Models for fine grain Optical Transport
       Network";
  }

  /* Note: The RFC Editor will replace KKKK with the number assigned
     to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/

  import ietf-otn-tunnel {
    prefix otn-tnl;
    reference
      "RFC JJJJ: OTN Tunnel YANG Model";
  }

  /* Note: The RFC Editor will replace JJJJ with the number assigned
     to the RFC once draft-ietf-ccamp-otn-tunnel-model becomes
     an RFC.*/

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "
      ID-draft editor:
        Yanxia Tan (tanyx11@chinaunicom.cn);
        Yanlei Zheng (zhengyanlei@chinaunicom.cn);
        Italo Busi (italo.busi@huawei.com);
        Chaode Yu (yuchaode@huawei.com);
        Xing Zhao (zhaoxing@caict.ac.cn);
    ";
  description
    "This module defines a YANG data model for fgOTN-specific
     extension based on existing network topology models. The model
     fully conforms to the Network Management Datastore Architecture
     (NMDA).

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

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

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

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

  revision 2026-02-27 {
    description
      "initial version";
    reference
      "RFC XXXX: YANG Data Models for fine grain Optical Transport
                 Network";
  }

  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:te-bandwidth/te:technology/"
        + "otn-tnl:otn/otn-tnl:otn-bandwidth" {
    description
      "augmentation of fgOTN tunnel on bandwidth structure";
    leaf fgoduflex-bandwidth {
      when 'derived-from-or-self(../otn-tnl:odu-type,'
         + '"fgotn-types:fgODUflex")' {
        description
          "Applicable when odu-type is fgODUflex.";
      }
      type string;
      description
        "Augment TE bandwidth of the fgOTN tunnel";
    }
  }

  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-tnl:otn"
        + "/otn-tnl:otn-label" {
    description
      "augmentation of fgOTN label";
    leaf fgts-numbers {
      type string;
      description
        "Augment fgOTN timeslot information of this 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/otn-tnl:otn"
        + "/otn-tnl:otn-label" {
    description
      "augmentation of fgOTN label";
    leaf fgts-numbers {
      type string;
      description
        "Augment fgOTN timeslot information of this 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/otn-tnl:otn"
        + "/otn-tnl:otn-label" {
    description
      "augmentation of fgOTN label";
    leaf fgts-numbers {
      type string;
      description
        "fgOTN timeslot information of this 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/otn-tnl:otn"
        + "/otn-tnl:otn-label" {
    description
      "augmentation of fgOTN label";
    leaf fgts-numbers {
      type string;
      description
        "fgOTN timeslot information of this 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/otn-tnl:otn"
        + "/otn-tnl:otn-label" {
    description
      "augmentation of fgOTN label";
    leaf fgts-numbers {
      type string;
      description
        "fgOTN timeslot information of this label hop";
    }
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="manageability-considerations">
      <name>Manageability Considerations</name>
      <t>&lt;Add any manageability considerations&gt;</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>&lt;Add any security considerations&gt;</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>&lt;Add any IANA considerations&gt;</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ITU-T_G.709" target="https://www.itu.int/rec/T-REC-G.709/">
          <front>
            <title>Interfaces for the optical transport network</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date year="2024" month="March"/>
          </front>
          <seriesInfo name="ITU-T Recommendation G.709, Amendment 3" value=""/>
        </reference>
        <reference anchor="ITU-T_G.709.20" target="https://www.itu.int/rec/T-REC-G.709.20/">
          <front>
            <title>Overview of fine grain OTN</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date year="2025" month="May"/>
          </front>
          <seriesInfo name="ITU-T Recommendation G.709.20, Amendment 1" value=""/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-topo-yang">
          <front>
            <title>A YANG Data Model for Optical Transport Network Topology</title>
            <author fullname="Haomian Zheng" initials="H." surname="Zheng">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Individual</organization>
            </author>
            <author fullname="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Oscar Gonzalez de Dios" initials="O. G." surname="de Dios">
              <organization>Telefonica</organization>
            </author>
            <date day="16" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for representing, retrieving,
   and manipulating Optical Transport Network (OTN) topologies.  It is
   independent of control plane protocols and captures topological and
   resource-related information pertaining to OTN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-otn-topo-yang-21"/>
        </reference>
        <reference anchor="I-D.ietf-ccamp-otn-tunnel-model">
          <front>
            <title>A YANG Data Model for Optical Transport Network (OTN) Tunnels and Label Switched Paths</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="Sergio Belotti" initials="S." surname="Belotti">
              <organization>Nokia</organization>
            </author>
            <author fullname="Victor Lopez" initials="V." surname="Lopez">
              <organization>Nokia</organization>
            </author>
            <author fullname="Yunbin Xu" initials="Y." surname="Xu">
              <organization>CAICT</organization>
            </author>
            <date day="27" month="May" year="2026"/>
            <abstract>
              <t>   This document describes the YANG data model for tunnels in OTN TE
   networks.  The model can be used to do the configuration in order to
   establish the tunnel in OTN network.  This work is independent with
   the control plane protocols.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-layer1-types-19"/>
        </reference>
        <reference anchor="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="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="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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-teas-yang-te">
          <front>
            <title>A YANG Data Model for Traffic Engineering Tunnels, Label Switched Paths, and Interfaces</title>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Rakesh Gandhi" initials="R." surname="Gandhi">
              <organization>Cisco Systems Inc</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Alef Edge</organization>
            </author>
            <author fullname="Vishnu Pavan Beeram" initials="V. P." surname="Beeram">
              <organization>Juniper Networks</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <date day="26" month="March" year="2026"/>
            <abstract>
              <t>   This document defines a YANG data model for the provisioning and
   management of Traffic Engineering (TE) tunnels, Label Switched Paths
   (LSPs), and interfaces.  The model covers data pertinent to TE
   tunnels, TE LSPs, and TE interfaces that are independent of any
   technology or dataplane encapsulation.  The model is divided into two
   YANG modules that address both device-specific and device-independent
   data, supporting configuration, operational state, Remote Procedure
   Calls (RPCs), and event notifications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-yang-te-44"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8345">
          <front>
            <title>A YANG Data Model for Network Topologies</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="J. Medved" initials="J." surname="Medved"/>
            <author fullname="R. Varga" initials="R." surname="Varga"/>
            <author fullname="N. Bahadur" initials="N." surname="Bahadur"/>
            <author fullname="H. Ananthakrishnan" initials="H." surname="Ananthakrishnan"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines an abstract (generic, or base) YANG data model for network/service topologies and inventories. The data model serves as a base model that is augmented with technology-specific details in other, more specific topology and inventory data models.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8345"/>
          <seriesInfo name="DOI" value="10.17487/RFC8345"/>
        </reference>
        <reference anchor="RFC8795">
          <front>
            <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <author fullname="I. Bryskin" initials="I." surname="Bryskin"/>
            <author fullname="V. Beeram" initials="V." surname="Beeram"/>
            <author fullname="T. Saad" initials="T." surname="Saad"/>
            <author fullname="H. Shah" initials="H." surname="Shah"/>
            <author fullname="O. Gonzalez de Dios" initials="O." surname="Gonzalez de Dios"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8795"/>
          <seriesInfo name="DOI" value="10.17487/RFC8795"/>
        </reference>
        <reference anchor="I-D.ietf-teas-rfc8776-update">
          <front>
            <title>Common YANG Data Types for Traffic Engineering</title>
            <author fullname="Italo Busi" initials="I." surname="Busi">
              <organization>Huawei</organization>
            </author>
            <author fullname="Aihua Guo" initials="A." surname="Guo">
              <organization>Futurewei Technologies</organization>
            </author>
            <author fullname="Xufeng Liu" initials="X." surname="Liu">
              <organization>Individual</organization>
            </author>
            <author fullname="Tarek Saad" initials="T." surname="Saad">
              <organization>Cisco Systems Inc.</organization>
            </author>
            <author fullname="Igor Bryskin" initials="I." surname="Bryskin">
              <organization>Individual</organization>
            </author>
            <date day="12" month="June" year="2026"/>
            <abstract>
              <t>   This document defines a collection of commonly used Traffic
   Engineering (TE) specific data types, identities, and groupings in
   YANG data modeling language.  These derived common data types,
   identities, and groupings are intended to be imported by other
   modules that model configuration and state for TE constructs, such as
   TE Topologies, TE Tunnels, TE Policies, TE Paths, TE Label Switched
   Paths (LSPs), and TE interfaces.

   This document obsoletes RFC 8776.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teas-rfc8776-update-24"/>
        </reference>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
      </references>
    </references>
    <?line 879?>

<section anchor="multi-domain-fgotn-hitless-resizing-process">
      <name>Multi-domain fgOTN Hitless Resizing Process</name>
      <t>The process of multi-domain fgOTN hitless resizing include five steps. The source controller alone report the hitless bandwidth adjustment status to the MDSC coordinator. To be noted that, the resizing process is divided into two directions, and the resizing is considered successful when both directions have been adjusted.</t>
      <t>Step 1: The MDSC coordinator sends an resizing command to the source node (Node1) via Controller 1.</t>
      <t>Step 2: Controller 1 will report a bandwidth adjustment starting status notification, e.g. ietf-te-types:lsp-bandwidth-modifying, to the MDSC.</t>
      <t>Step 3: Node 1 to node 6 will modify their configuration in the forward direction through data plane node by node. The detail of this process can reference to Annex O.2 of <xref target="ITU-T_G.709"/>.</t>
      <t>Step 4: At the same time, the reverse direction bandwidth resizing will be triggered auotmatically by the data plane in node 6. Controller 3 needs to report an bandwidth adjustment starting status notification, ietf-te-types:lsp-bandwidth-modifying, to the MDSC.</t>
      <t>Step 5: After the reverse direction (Node 6 to Node 1) resizing is completed, Controller 1 will report an ending status notification, ietf-te-types:lsp-bandwidth-modified-ok, to the MDSC.</t>
      <t>If the hitless resizing fails, the source controller (i.e., Controller 1) needs to report an bandwidth adjustment failure status notification, ietf-te-types:lsp-bandwidth-modify-failed, to the MDSC coordinator.</t>
      <t>During the whole process, all domain controllers, including the intermediate domain Controller 2, need to report the notifications of topology and tunnel resource changes to the MDSC.</t>
    </section>
    <section anchor="json-examples">
      <name>JSON Examples</name>
      <t>This appendix contains an example of an instance data tree in JSON
encoding <xref target="RFC7951"/>.</t>
      <t>The example instantiates the "ietf-fgotn-topology" model for the OTN
topology depicted in <xref target="fig-example"/> below.</t>
      <figure anchor="fig-example">
        <name>Example of fgOTN topology</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="440" viewBox="0 0 440 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,96 L 40,128" fill="none" stroke="black"/>
              <path d="M 72,48 L 72,96" fill="none" stroke="black"/>
              <path d="M 72,128 L 72,176" fill="none" stroke="black"/>
              <path d="M 104,96 L 104,128" fill="none" stroke="black"/>
              <path d="M 176,32 L 176,64" fill="none" stroke="black"/>
              <path d="M 176,160 L 176,192" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,64" fill="none" stroke="black"/>
              <path d="M 240,160 L 240,192" fill="none" stroke="black"/>
              <path d="M 336,96 L 336,128" fill="none" stroke="black"/>
              <path d="M 368,48 L 368,96" fill="none" stroke="black"/>
              <path d="M 368,128 L 368,176" fill="none" stroke="black"/>
              <path d="M 400,96 L 400,128" fill="none" stroke="black"/>
              <path d="M 176,32 L 240,32" fill="none" stroke="black"/>
              <path d="M 72,48 L 176,48" fill="none" stroke="black"/>
              <path d="M 240,48 L 368,48" fill="none" stroke="black"/>
              <path d="M 176,64 L 240,64" fill="none" stroke="black"/>
              <path d="M 40,96 L 104,96" fill="none" stroke="black"/>
              <path d="M 336,96 L 400,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 40,112" fill="none" stroke="black"/>
              <path d="M 400,112 L 432,112" fill="none" stroke="black"/>
              <path d="M 40,128 L 104,128" fill="none" stroke="black"/>
              <path d="M 336,128 L 400,128" fill="none" stroke="black"/>
              <path d="M 176,160 L 240,160" fill="none" stroke="black"/>
              <path d="M 72,176 L 176,176" fill="none" stroke="black"/>
              <path d="M 240,176 L 368,176" fill="none" stroke="black"/>
              <path d="M 176,192 L 240,192" fill="none" stroke="black"/>
              <g class="text">
                <text x="152" y="36">(1)</text>
                <text x="264" y="36">(2)</text>
                <text x="208" y="52">NE2</text>
                <text x="88" y="84">(2)</text>
                <text x="352" y="84">(2)</text>
                <text x="16" y="100">(1)</text>
                <text x="424" y="100">(1)</text>
                <text x="72" y="116">NE1</text>
                <text x="368" y="116">NE4</text>
                <text x="88" y="148">(3)</text>
                <text x="352" y="148">(3)</text>
                <text x="208" y="180">NE3</text>
                <text x="152" y="196">(1)</text>
                <text x="264" y="196">(2)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                   (1) +-------+ (2)
          +------------+  NE2  +---------------+
          |            +-------+               |
          |(2)                              (2)|
  (1) +---+---+                            +---+---+ (1)
  ----+  NE1  |                            |  NE4  +----
      +---+---+                            +---+---+
          |(3)                              (3)|
          |            +-------+               |
          +------------+  NE3  +---------------+
                   (1) +-------+ (2)
]]></artwork>
        </artset>
      </figure>
      <t>In this network example:</t>
      <ul spacing="normal">
        <li>
          <t>nodes NE1, NE2, and NE4 support fgOTN switching, while node NE3 does not support fgOTN;</t>
        </li>
        <li>
          <t>all the links are OTU2 links</t>
        </li>
      </ul>
      <t>The topology examples, show how the topology changes in three different steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>No OTN or fgOTN tunnels are setup in the network;</t>
        </li>
        <li>
          <t>The following ODUk tunnels are setup as server layer tunnels to support fgOTN tunnels:
  - an ODU1 tunnel between NE1 and NE2;
          </t>
          <ul spacing="normal">
            <li>
              <t>two ODU0 server layer tunnels between NE2 and NE4;</t>
            </li>
            <li>
              <t>one ODU1 server layer tunnel between NE1 and NE4 (through the NE1-NE3-NE4 path)</t>
            </li>
          </ul>
        </li>
        <li>
          <t>The following fgOTN tunnels are setup in the network:
  - a 20M protected fgOTN tunnel between NE1 and NE4 with:
          </t>
          <ul spacing="normal">
            <li>
              <t>a workting path setup through the NE1-NE2 ODU1 tunnel and the NE2-NE4 ODU0 tunnel;</t>
            </li>
            <li>
              <t>a protectin path setup through the NE1-NE3-NE4 ODU1 tunnel;
      - an 20M unprotected fgOTN tunnel throught the same NE2-NE4 ODU0 tunnel used by the other fgOTN tunnel.</t>
            </li>
          </ul>
        </li>
      </ol>
      <sourcecode type="json"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "example:otn-topology-example-1",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-otn-topology:otn-topology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "client-id": 2,
          "provider-id": 1,
          "topology-id": "otn-topology-example-1"
        },
        "ietf-te-topology:te": {},
        "ietf-network-topology:link": [
          {
            "link-id": "example:link/NE1-2/NE2-1",
            "source": {
              "source-node": "NE1",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE2",
              "dest-tp": "1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE2 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE2-1/NE1-2",
            "source": {
              "source-node": "NE2",
              "source-tp": "1"
            },
            "destination": {
              "dest-node": "NE1",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE2 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE1-3/NE3-1",
            "source": {
              "source-node": "NE1",
              "source-tp": "3"
            },
            "destination": {
              "dest-node": "NE3",
              "dest-tp": "1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE3 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE3-1/NE1-3",
            "source": {
              "source-node": "NE3",
              "source-tp": "1"
            },
            "destination": {
              "dest-node": "NE1",
              "dest-tp": "3"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE3 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE4-2/NE2-2",
            "source": {
              "source-node": "NE4",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE2",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE2 and Node NE4 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE2-2/NE4-2",
            "source": {
              "source-node": "NE2",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE4",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE2 and Node NE4 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE4-3/NE3-2",
            "source": {
              "source-node": "NE4",
              "source-tp": "3"
            },
            "destination": {
              "dest-node": "NE3",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "oper-status": "up",
              "te-link-attributes": {
                "admin-status": "up",
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE3 and Node NE4 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE3-2/NE4-3",
            "source": {
              "source-node": "NE3",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE4",
              "dest-tp": "3"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "ff"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 1
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 4
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 8
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE3 and Node NE4 (\
                                                  forward direction)"
              }
            }
          }
        ],
        "node": [
          {
            "node-id": "example:NE1",
            "ietf-te-topology:te-node-id": "192.0.0.1",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "name": "Node NE1"
              }
            },
            "ietf-network-topology:termination-point": [
            {
                "tp-id": "example:NE1-1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-otn-topology:client-svc": {},
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 1 of Node NE1"
                }
            },   
            {
                "tp-id": "example:NE1-2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 2 of Node NE1"
                }
              },
              {
                "tp-id": "example:NE1-3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 3 of Node NE1"
                }
              }
            ]
          },
          {
            "node-id": "example:NE2",
            "ietf-te-topology:te-node-id": "192.0.0.2",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "name": "Node NE2"
              }
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:NE2-1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 1 of Node NE2"
                }
              },
              {
                "tp-id": "example:NE2-2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 2 of Node NE2"
                }
              }
            ]
          },
          {
            "node-id": "example:NE3",
            "ietf-te-topology:te-node-id": "192.0.0.3",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "name": "Node NE3"
              }
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:NE3-1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 1 of Node NE3"
                }
              },
              {
                "tp-id": "example:NE3-2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 2 of Node NE3"
                }
              }
            ]
          },
          {
            "node-id": "example:NE4",
            "ietf-te-topology:te-node-id": "192.0.0.4",
            "ietf-te-topology:te": {
              "te-node-attributes": {
                "name": "Node NE4"
              }
            },
            "ietf-network-topology:termination-point": [
            {
                "tp-id": "example:NE4-1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "ietf-otn-topology:client-svc": {},
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 1 of Node NE4"
                }
            },   
            {
                "tp-id": "example:NE4-2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 2 of Node NE4"
                }
              },
              {
                "tp-id": "example:NE4-3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {
                  "interface-switching-capability": [
                    {
                      "encoding": "ietf-te-types:lsp-encoding-oduk",
                      "switching-capability": "ietf-te-types:\
                                                       switching-otn"
                    }
                  ],
                  "name": "Interface 3 of Node NE4"
                }
              }
            ]
          }
        ]
      },
      {
        "network-id": "example:otn-topology-example-2",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-otn-topology:otn-topology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "client-id": 2,
          "provider-id": 1,
          "topology-id": "otn-topology-example-2"
        },
        "ietf-te-topology:te": {},
        "ietf-network-topology:link": [
          {
            "link-id": "example:link/NE1-2/NE2-1",
            "source": {
              "source-node": "NE1",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE2",
              "dest-tp": "1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "odu-ts-number": "1-2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-238"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE2 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE2-1/NE1-2",
            "source": {
              "source-node": "NE2",
              "source-tp": "1"
            },
            "destination": {
              "dest-node": "NE1",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "odu-ts-number": "1-2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-238"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE2 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE1-3/NE3-1",
            "source": {
              "source-node": "NE1",
              "source-tp": "3"
            },
            "destination": {
              "dest-node": "NE3",
              "dest-tp": "1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "odu-ts-number": "1-2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-238"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE3 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE3-1/NE1-3",
            "source": {
              "source-node": "NE3",
              "source-tp": "1"
            },
            "destination": {
              "dest-node": "NE1",
              "dest-tp": "3"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc"
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE1 and Node NE3 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE4-2/NE2-2",
            "source": {
              "source-node": "NE4",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE2",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "odu-ts-number": "1",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-119"
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "odu-ts-number": "2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-119"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE2 and Node NE4 (\
                                                  reverse direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE2-2/NE4-2",
            "source": {
              "source-node": "NE2",
              "source-tp": "2"
            },
            "destination": {
              "dest-node": "NE4",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "odu-ts-number": "1",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-119"
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "odu-ts-number": "2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-119"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                    "ietf-otn-topology:otn-bandwidth": {
                      "odulist": [
                        {
                          "odu-type": "ietf-layer1-types:ODU2",
                          "number": 1
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "number": 4
                        },
                        {
                          "odu-type": "ietf-layer1-types:ODU0",
                          "number": 8
                        },
                        {
                          "odu-type": "ietf-fgotn-types:fgODUflex",
                          "number": 952
                        }
                      ]
                    }
                  }
                },
                "unreserved-bandwidth": [
                  {
                    "priority": 7,
                    "te-bandwidth": {
                      "ietf-otn-topology:otn-bandwidth": {
                        "odulist": [
                          {
                            "odu-type": "ietf-layer1-types:ODU2",
                            "number": 0
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU1",
                            "number": 3
                          },
                          {
                            "odu-type": "ietf-layer1-types:ODU0",
                            "number": 6
                          },
                          {
                            "odu-type": "ietf-fgotn-types:fgODUflex",
                            "number": 952
                          }
                        ]
                      }
                    }
                  }
                ],
                "name": "Link between Node NE2 and Node NE4 (\
                                                  forward direction)"
              }
            }
          },
          {
            "link-id": "example:link/NE4-3/NE3-2",
            "source": {
              "source-node": "NE4",
              "source-tp": "3"
            },
            "destination": {
              "dest-node": "NE3",
              "dest-tp": "2"
            },
            "ietf-te-topology:te": {
              "oper-status": "up",
              "te-link-attributes": {
                "admin-status": "up",
                "interface-switching-capability": [
                  {
                    "encoding": "ietf-te-types:lsp-encoding-oduk",
                    "switching-capability": "ietf-te-types:switching\
                                                                -otn"
                  }
                ],
                "label-restrictions": {
                  "label-restriction": [
                    {
                      "index": 1,
                      "restriction": "inclusive",
                      "ietf-otn-topology:otn-label-range": {
                        "range-type": "trib-slot"
                      },
                      "label-start": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 1
                          }
                        }
                      },
                      "label-end": {
                        "te-label": {
                          "ietf-otn-topology:otn-label": {
                            "ts": 8
                          }
                        }
                      },
                      "label-step": {
                        "generic": 1
                      },
                      "range-bitmap": "fc",
                      "ietf-fgotn-topology:fgts-range": [
                        {
                          "odu-type": "ietf-layer1-types:ODU1",
                          "odu-ts-number": "1-2",
                          "fgts-reserved": "",
                          "fgts-unreserved": "1-238"
                        }
                      ]
                    }
                  ]
                },
                "max-link-bandwidth": {
                  "te-bandwidth": {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      