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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC7950 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC7446 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7446.xml">
<!ENTITY RFC7699 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7699.xml">
<!ENTITY RFC6241 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY I-D.ietf-teas-yang-te SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-yang-te.xml">
<!ENTITY I-D.ietf-ccamp-flexigrid-yang SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ccamp-flexigrid-yang.xml">
<!ENTITY RFC9094 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9094.xml">
<!ENTITY RFC8040 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8040.xml">
<!ENTITY RFC8341 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml">
<!ENTITY RFC3688 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3688.xml">
<!ENTITY RFC6020 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6020.xml">
<!ENTITY RFC6163 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6163.xml">
<!ENTITY RFC7698 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7698.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-ccamp-wdm-tunnel-yang-02" category="std" consensus="true" submissionType="IETF">

  <front>
    <title abbrev="WDM Tunnel YANG Model">A YANG Data Model for WDM Tunnels</title>

    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Belotti" fullname="Sergio Belotti">
      <organization>Nokia</organization>
      <address>
        <email>Sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="G." surname="Galimberti" fullname="G. Galimberti">
      <organization>Individual</organization>
      <address>
        <email>ggalimbe56@gmail.com</email>
      </address>
    </author>
    <author initials="J.E.L.d.V." surname="Mendez" fullname="Jorge E. Lopez de Vergara Mendez">
      <organization>Naudit HPCN</organization>
      <address>
        <email>jorge.lopez_vergara@uam.es</email>
      </address>
    </author>
    <author initials="D.P." surname="Burrero" fullname="Daniel Perdices Burrero">
      <organization>Universidad Autonoma de Madrid</organization>
      <address>
        <email>daniel.perdices@uam.es</email>
      </address>
    </author>

    <date year="2024" month="July" day="07"/>

    <area>Routing</area>
    <workgroup>CCAMP Working Group</workgroup>
    <keyword>next generation</keyword> <keyword>unicorn</keyword> <keyword>sparkling distributed ledger</keyword>

    <abstract>


<t>This document defines a YANG data model for the provisioning and management of Traffic Engineering (TE) tunnels and Label Switched Paths (LSPs) in Optical Networks (Wavelength Switched Optical Networks (WSON) and Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks).</t>

<t>The YANG data model defined in this document conforms to the Network Management Datastore Architecture (NMDA).</t>



    </abstract>


  </front>

  <middle>


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

<t>Transport networks have evolved from traditional fixed-grid Wavelength Switched Optical Networks (WSON) <xref target="RFC6163"/> to more scalable and flexible elastic optical networks. These utilize flexi-grid Dense Wavelength Division Multiplexing (DWDM) technologies <xref target="RFC7698"/> to optimize bandwidth usage. Current DWDM Optical Network deployments may include fixed-grid WSON, flexi-grid DWDM, or a combination of both.</t>

<t>In the optical domain, a WDM tunnel typically originates and concludes at a pair of transponders using one or more transceivers dependent upon the data rate and encoding type of the transceivers. These transponders are then connected to an intermediate line system composed of optical switches and multiplexers, including Reconfigurable Optical Add-Drop Multiplexers (ROADMs) and add-drop multiplexers, complemented by optical amplifiers to boost the transmission distance. The optical wavelength can be routed from the transponder or an incoming fiber, through multiplexing, to various outgoing fibers in the DWDM network. At optical nodes, wavelengths may undergo conversion via optical-electrical-optical (OEO) regenerators, depending on the switching setup and fiber configuration.</t>

<t>Optical services, transmitted via analog signals, require careful provisioning across the network to maintain signal quality and prevent interference between different wavelength channels. The technology within optical nodes, like tunable transceivers or Colorless, Directionless and Contentionless Flexi-grid (CDC-F) ROADMs, introduces specific constraints that can limit WDM tunnel path options. These constraints must be factored into WDM tunnel provisioning and pre-computation. Additionally, assessing the end-to-end optical performance-measuring metrics like Generalized Signal-to-noise Ratio (G-SNR), Bit Error Rate (BER), and Q-factor - is crucial to ensure transmission quality and receiver signal integrity.</t>

<t>This draft introduces a YANG <xref target="RFC7950"/> data model for setting up and managing TE tunnels and LSPs in DWDM Optical Networks. It aims to provide an intent-based interface used by a control entity such as a Software-defined Network (SDN) controller at its northbound to establish services between endpoints, typically optical transponders. Clients can utilize this model to either partially or fully delegate service provisioning to the SDN controller, while still capable to express additional constraints to guide its operation. Service provisioning can be as simple as identifying the source and destination transponders and delegate the rest of determination to the SDN controller, or as explicit as specifying a complete detailed path complete with tuned wavelengths and transceiver details.</t>

<t>This document identifies the WDM tunnel components, parameters and their values, and characterizes the features and the performances of the WDM elements. An application example is provided towards the end of the document to understand their utility better.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL</bcp14>
NOT", "<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>

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

<t>Refer to <xref target="RFC7446"/> and <xref target="RFC7699"/> for the key terms used in this document.</t>

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

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

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

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

</section>
<section anchor="overview"><name>Overview</name>

<t>The YANG data model in this draft builds upon the generic TE tunnel model from <xref target="I-D.ietf-teas-yang-te"/>. This base model is suitable for all TE-enabled networks and includes universal TE tunnel elements like node addresses, tunnel termination points (TTPs), and path-level constraints such as explicit path hops, label restrictions, and path diversity. The current model enhances <xref target="I-D.ietf-teas-yang-te"/> by incorporating WDM-specific attributes and constraints relevant to WDM tunnels, including definitions for:</t>

<t><list style="symbols">
  <t>Network-scope optical transceiver configuration constraints, e.g., operational modes, transceiver tuning constraints</t>
  <t>Network-scope WDM path routing policies for influencing WDM TE path selection. For exmaple,  whether or not using regenerator or wavelength conversion is allowed, whether or not wavelength retuing is allowed for tunable transceivers, etc.</t>
  <t>Network-scope optical performance constraints, e.g. the generalized Signal-to-noise (G-SNR) margin and delta power of a feasible optical path</t>
  <t>Path-scope WDM layer constraints and transceiver configurations for working and protection path within a WDM tunnel</t>
  <t>List of WDM nodes, links, and optical wavelength that constitute an end-to-end WDM path</t>
  <t>Other relevant optical attributes which characterize the optical signal</t>
</list></t>

<t>The attributes described above are optional, allowing the model to support both simplified and fully-explicit WDM tunnel provisioning to meet diverse client requirements.</t>

<t>Additionally, the YANG model provides the status of a WDM tunnel, which includes:</t>

<t><list style="symbols">
  <t>Computed paths for various roles such as working, protection, and restoration, indicating potential optical paths confirmed by the SDN controller via pre-computation.</t>
  <t>Actual LSPs for each tunnel path, representing the optical paths currently established in the network.</t>
</list></t>

<section anchor="integrated-vs-external-optical-transponder"><name>Integrated vs. External Optical Transponder</name>

<t>In optical networks built with traditional chassis-based DWDM optical equipment, optical transponder (OTs) are typically inserted into the chassis installed as cards. WDM tunnels are established between pairs of OTs, with the SDN controller serving as the central entity for provisioning and managing these tunnels.</t>

<t>In scenarios like data center interconnects (DCI), optical transponders may be externally mounted on a 'pizza box' and linked via dedicated fiber or wavelength multiplexer/demultiplexer to the optical line system. These external OTs could be managed by the same SDN controller or a different entity, such as an orchestrator. Consequently, a WDM tunnel might be composed of several segments joined to create a continuous end-to-end tunnel.</t>

<t>The YANG data model offers a cohesive interface for managing WDM tunnels and tunnel segments, irrespective of transponder location.</t>

</section>
</section>
<section anchor="example-of-use"><name>Example of Use</name>

<t>To illustrate the model's application, consider an optical network with various transponders, switches, and links. A depicted topology outlines two WDM tunnel scenarios. In the first, an end-to-end WDM tunnel (WDM Tunnel 1) comprises two physical paths (WDM Primary Path 1 and 2) linking two integrated optical transponders, Transponder A and E, through WSON and Flexi-grid nodes. The second scenario describes three WDM tunnel segments (WDM Tunnel Segment 2a to 2c) connecting two external OTs, External OT node X and Y, via the same nodes and links.</t>

<figure title="Topology Example" anchor="fig-topology-example"><artwork type="ascii-art"><![CDATA[
                              WDM Tunnel 1
        <===================================================>
                         WDM Primary Path 1
        <--------------------------------------------------->

            WDM Tunnel         WDM Tunnel      WDM Tunnel
            Segment 2a         Segment 2b      Segment 2c
        <=================><===============><===============>
   +----------+                                        +----------+
   | External |                                        | External |
   |    OT    |<----------+                +---------->|    OT    |
   |  node X  |           |                |           |  node Y  |
   +----------+           |                |           +----------+
                          |                |
                          |                |
   +----------+           |                |           +----------+
   |  Flexi-  |           |                |           |  Flexi-  |
   |   grid   |           |                |           |   grid   |
   |  node A  |           |                |           |  node E  |
   |          |        +--v---+        +---v--+        |          |
   |          | Link 1 |Flexi-| Link 2 | WSON | Link 3 |          |
   |          |<------>| grid |<------>|      |<------>|          |
   |......... |        |node B|        |node C|        | .........|
   | Trans- : |        +------+        +------+        | : Trans- |
   | ponder : |                                        | : ponder |
   |    A   : |              +----------+              | :    E   |
   |........: |     Link 4   |Flexi-grid|   Link 5     | :........|
   |          |              |    D     |              |          |
   |          |<------------>|   node   |<------------>|          |
   |          |              +----------+              |          |
   +----------+                                        +----------+

        <--------------------------------------------------->
                          WDM Secondary Path 1
]]></artwork></figure>

<t>To configure an end-to-end WDM tunnel to interconnect
transponders A and E, first of all we have to populate the
flexi-grid topology YANG model with all elements in the network:</t>

<t><list style="symbols">
  <t>We define the transponders within nodes A and E as tunnel termination
points (TTPs) and provide their internal local link connectivity
towards the node interfaces.  We also provide nodes A and E identifiers,
addresses and interfaces.</t>
  <t>We do the same for the nodes B, C and D, providing their
identifiers, addresses and interfaces, as well as the internal
connectivity matrix between interfaces.</t>
  <t>Then, we also define the links 1 to 5 that interconnect nodes,
indicating which WSON or flexi-grid labels are available.</t>
  <t>Other information, such as the slot frequency and granularity are
also provided.</t>
</list></t>

<t>After the nodes, links and transponders have been defined using
<xref target="I-D.ietf-ccamp-flexigrid-yang"/> and <xref target="RFC9094"/> we can
configure the tunnel from the information we have stored in the
flexi-grid topology, by querying which elements are available, and
planning the resources that have to be provided on each situation, taking into
account the global and path-specific WDM tunnel constraints.
Note that every element in the flexi-grid topology has a reference,
and this is the way in which they are called in the tunnel.</t>

<t><list style="symbols">
  <t>Depending on the case, it is possible to define either the source
and destination node ports, or the source and destination node and
transponder.  In our case, we would define a network tunnel, with
source transponder A and source node B, and destination
transponder E and destination node C.  Thus, we are going to
follow path x.</t>
  <t>Then, for each link in the path x, we indicate which channel we
are going to use, providing information about the slots, and what
nodes are connected.</t>
  <t>Finally, the flexi-grid topology has to be updated with each
element usage status each time a tunnel is created or torn down.</t>
</list></t>

</section>
<section anchor="yang-model-for-wdm-tunnel"><name>YANG Model for WDM Tunnel</name>

<section anchor="yang-tree"><name>YANG Tree</name>

<figure title="WDM Tunnel YANG tree" anchor="fig-wdm-tunnel-tree"><artwork type="ascii-art" name="ietf-wdm-tunnel.tree"><![CDATA[
module: ietf-wdm-tunnel

  augment /te:te/te:tunnels/te:tunnel:
    +--rw wdm-constraint
       +--rw transceiver-constraint
       |  +--rw operational-modes*            string
       |  +--rw otsi-carrier-frequency?       l0-types:frequency-thz
       |  +--rw tx-tune-constraints
       |  |  +--rw min-central-frequency?    frequency-thz
       |  |  +--rw max-central-frequency?    frequency-thz
       |  |  +--rw transceiver-tunability?   frequency-ghz
       |  +--rw line-coding-bitrate*          identityref
       |  +--rw tx-channel-power?             l0-types:power-dbm
       |  +--rw preferred-rx-channel-power?   l0-types:power-dbm
       |  +--rw gsnr-extra-margin?            snr
       +--rw use-regen?                     boolean
       +--rw wavelength-conversion?         boolean
       +--rw wavelength-assignment?         identityref
       +--rw guard-band-size?               l0-types:frequency-thz
       +--rw matching-fwd-rev-wavelength?   boolean
       +--rw allow-retuning?                boolean
       +--rw delta-power?                   l0-types:power-ratio
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--rw path-in-transceiver
    |  +--rw transponder-id?   uint32
    |  +--rw transceivers* [otsi-carrier-id]
    |     +--rw otsi-carrier-id               uint16
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--rw otsi-carrier-frequency?       l0-types:frequency-thz
    |     +--rw tx-tune-constraints
    |     |  +--rw min-central-frequency?    frequency-thz
    |     |  +--rw max-central-frequency?    frequency-thz
    |     |  +--rw transceiver-tunability?   frequency-ghz
    |     +--rw line-coding-bitrate*          identityref
    |     +--rw tx-channel-power?             l0-types:power-dbm
    |     +--rw preferred-rx-channel-power?   l0-types:power-dbm
    |     +--rw gsnr-extra-margin?            snr
    +--rw path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [otsi-carrier-id]
          +--rw otsi-carrier-id               uint16
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--rw otsi-carrier-frequency?       l0-types:frequency-thz
          +--rw tx-tune-constraints
          |  +--rw min-central-frequency?    frequency-thz
          |  +--rw max-central-frequency?    frequency-thz
          |  +--rw transceiver-tunability?   frequency-ghz
          +--rw line-coding-bitrate*          identityref
          +--rw tx-channel-power?             l0-types:power-dbm
          +--rw preferred-rx-channel-power?   l0-types:power-dbm
          +--rw gsnr-extra-margin?            snr
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects/te:route-object-exclude-always
            /te:type/te:numbered-node-hop/te:numbered-node-hop:
    +--rw path-in-transceiver
    |  +--rw transponder-id?   uint32
    |  +--rw transceivers* [otsi-carrier-id]
    |     +--rw otsi-carrier-id               uint16
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--rw otsi-carrier-frequency?       l0-types:frequency-thz
    |     +--rw tx-tune-constraints
    |     |  +--rw min-central-frequency?    frequency-thz
    |     |  +--rw max-central-frequency?    frequency-thz
    |     |  +--rw transceiver-tunability?   frequency-ghz
    |     +--rw line-coding-bitrate*          identityref
    |     +--rw tx-channel-power?             l0-types:power-dbm
    |     +--rw preferred-rx-channel-power?   l0-types:power-dbm
    |     +--rw gsnr-extra-margin?            snr
    +--rw path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [otsi-carrier-id]
          +--rw otsi-carrier-id               uint16
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--rw otsi-carrier-frequency?       l0-types:frequency-thz
          +--rw tx-tune-constraints
          |  +--rw min-central-frequency?    frequency-thz
          |  +--rw max-central-frequency?    frequency-thz
          |  +--rw transceiver-tunability?   frequency-ghz
          +--rw line-coding-bitrate*          identityref
          +--rw tx-channel-power?             l0-types:power-dbm
          +--rw preferred-rx-channel-power?   l0-types:power-dbm
          +--rw gsnr-extra-margin?            snr
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--rw path-in-transceiver
    |  +--rw transponder-id?   uint32
    |  +--rw transceivers* [otsi-carrier-id]
    |     +--rw otsi-carrier-id               uint16
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--rw otsi-carrier-frequency?       l0-types:frequency-thz
    |     +--rw tx-tune-constraints
    |     |  +--rw min-central-frequency?    frequency-thz
    |     |  +--rw max-central-frequency?    frequency-thz
    |     |  +--rw transceiver-tunability?   frequency-ghz
    |     +--rw line-coding-bitrate*          identityref
    |     +--rw tx-channel-power?             l0-types:power-dbm
    |     +--rw preferred-rx-channel-power?   l0-types:power-dbm
    |     +--rw gsnr-extra-margin?            snr
    +--rw path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [otsi-carrier-id]
          +--rw otsi-carrier-id               uint16
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--rw otsi-carrier-frequency?       l0-types:frequency-thz
          +--rw tx-tune-constraints
          |  +--rw min-central-frequency?    frequency-thz
          |  +--rw max-central-frequency?    frequency-thz
          |  +--rw transceiver-tunability?   frequency-ghz
          +--rw line-coding-bitrate*          identityref
          +--rw tx-channel-power?             l0-types:power-dbm
          +--rw preferred-rx-channel-power?   l0-types:power-dbm
          +--rw gsnr-extra-margin?            snr
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--rw path-in-transceiver
    |  +--rw transponder-id?   uint32
    |  +--rw transceivers* [otsi-carrier-id]
    |     +--rw otsi-carrier-id               uint16
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--rw otsi-carrier-frequency?       l0-types:frequency-thz
    |     +--rw tx-tune-constraints
    |     |  +--rw min-central-frequency?    frequency-thz
    |     |  +--rw max-central-frequency?    frequency-thz
    |     |  +--rw transceiver-tunability?   frequency-ghz
    |     +--rw line-coding-bitrate*          identityref
    |     +--rw tx-channel-power?             l0-types:power-dbm
    |     +--rw preferred-rx-channel-power?   l0-types:power-dbm
    |     +--rw gsnr-extra-margin?            snr
    +--rw path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [otsi-carrier-id]
          +--rw otsi-carrier-id               uint16
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--rw otsi-carrier-frequency?       l0-types:frequency-thz
          +--rw tx-tune-constraints
          |  +--rw min-central-frequency?    frequency-thz
          |  +--rw max-central-frequency?    frequency-thz
          |  +--rw transceiver-tunability?   frequency-ghz
          +--rw line-coding-bitrate*          identityref
          +--rw tx-channel-power?             l0-types:power-dbm
          +--rw preferred-rx-channel-power?   l0-types:power-dbm
          +--rw gsnr-extra-margin?            snr
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [transceiver-id]
    |     +--ro otsi-carrier-id?          uint16
    |     +--ro transceiver-id            uint32
    |     +--ro otsi-carrier-frequency?   union
    |     +--ro rx-channel-power?         power-dbm-or-null
    |     +--ro rx-total-power?           power-dbm-or-null
    |     +--ro estimated-gsnr?           snr
    |     +--ro estimated-eol-gsnr?       snr
    |     +--ro estimated-lowest-gsnr?    snr
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [transceiver-id]
          +--ro otsi-carrier-id?          uint16
          +--ro transceiver-id            uint32
          +--ro otsi-carrier-frequency?   union
          +--ro rx-channel-power?         power-dbm-or-null
          +--ro rx-total-power?           power-dbm-or-null
          +--ro estimated-gsnr?           snr
          +--ro estimated-eol-gsnr?       snr
          +--ro estimated-lowest-gsnr?    snr
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:path-route-objects
            /te:path-route-object/te:type/te:numbered-node-hop
            /te:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [transceiver-id]
    |     +--ro otsi-carrier-id?          uint16
    |     +--ro transceiver-id            uint32
    |     +--ro otsi-carrier-frequency?   union
    |     +--ro rx-channel-power?         power-dbm-or-null
    |     +--ro rx-total-power?           power-dbm-or-null
    |     +--ro estimated-gsnr?           snr
    |     +--ro estimated-eol-gsnr?       snr
    |     +--ro estimated-lowest-gsnr?    snr
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [transceiver-id]
          +--ro otsi-carrier-id?          uint16
          +--ro transceiver-id            uint32
          +--ro otsi-carrier-frequency?   union
          +--ro rx-channel-power?         power-dbm-or-null
          +--ro rx-total-power?           power-dbm-or-null
          +--ro estimated-gsnr?           snr
          +--ro estimated-eol-gsnr?       snr
          +--ro estimated-lowest-gsnr?    snr
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [transceiver-id]
    |     +--ro otsi-carrier-id?          uint16
    |     +--ro transceiver-id            uint32
    |     +--ro otsi-carrier-frequency?   union
    |     +--ro rx-channel-power?         power-dbm-or-null
    |     +--ro rx-total-power?           power-dbm-or-null
    |     +--ro estimated-gsnr?           snr
    |     +--ro estimated-eol-gsnr?       snr
    |     +--ro estimated-lowest-gsnr?    snr
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [transceiver-id]
          +--ro otsi-carrier-id?          uint16
          +--ro transceiver-id            uint32
          +--ro otsi-carrier-frequency?   union
          +--ro rx-channel-power?         power-dbm-or-null
          +--ro rx-total-power?           power-dbm-or-null
          +--ro estimated-gsnr?           snr
          +--ro estimated-eol-gsnr?       snr
          +--ro estimated-lowest-gsnr?    snr
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [transceiver-id]
    |     +--ro otsi-carrier-id?          uint16
    |     +--ro transceiver-id            uint32
    |     +--ro otsi-carrier-frequency?   union
    |     +--ro rx-channel-power?         power-dbm-or-null
    |     +--ro rx-total-power?           power-dbm-or-null
    |     +--ro estimated-gsnr?           snr
    |     +--ro estimated-eol-gsnr?       snr
    |     +--ro estimated-lowest-gsnr?    snr
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [transceiver-id]
          +--ro otsi-carrier-id?          uint16
          +--ro transceiver-id            uint32
          +--ro otsi-carrier-frequency?   union
          +--ro rx-channel-power?         power-dbm-or-null
          +--ro rx-total-power?           power-dbm-or-null
          +--ro estimated-gsnr?           snr
          +--ro estimated-eol-gsnr?       snr
          +--ro estimated-lowest-gsnr?    snr
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information
            /te:lsp-actual-route-information/te:type
            /te:numbered-node-hop/te:numbered-node-hop:
    +--ro path-in-transceiver
    |  +--ro transponder-id?   uint32
    |  +--ro transceivers* [transceiver-id]
    |     +--ro otsi-carrier-id?          uint16
    |     +--ro transceiver-id            uint32
    |     +--ro otsi-carrier-frequency?   union
    |     +--ro rx-channel-power?         power-dbm-or-null
    |     +--ro rx-total-power?           power-dbm-or-null
    |     +--ro pre-fec-ber
    |     |  +--ro timestamp?   yang:timestamp
    |     |  +--ro value?       decimal64
    |     +--ro q-factor
    |        +--ro timestamp?   yang:timestamp
    |        +--ro value?       l0-types:decimal-2-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [transceiver-id]
          +--ro otsi-carrier-id?          uint16
          +--ro transceiver-id            uint32
          +--ro otsi-carrier-frequency?   union
          +--ro rx-channel-power?         power-dbm-or-null
          +--ro rx-total-power?           power-dbm-or-null
          +--ro pre-fec-ber
          |  +--ro timestamp?   yang:timestamp
          |  +--ro value?       decimal64
          +--ro q-factor
             +--ro timestamp?   yang:timestamp
             +--ro value?       l0-types:decimal-2-or-null
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information
            /te:lsp-actual-route-information/te:type
            /te:numbered-link-hop/te:numbered-link-hop:
    +--ro e2e-mc-path-id*   uint16
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information
            /te:lsp-actual-route-information/te:type
            /te:unnumbered-link-hop/te:unnumbered-link-hop:
    +--ro e2e-mc-path-id*   uint16
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:explicit-route-objects
            /te:route-object-include-exclude/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:globals/te:named-path-constraints
            /te:named-path-constraint/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:optimizations/te:algorithm/te:metric
            /te:optimization-metric/te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  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:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path/te:optimizations
            /te:algorithm/te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:explicit-route-objects/te:route-object-exclude-always
            /te:type/te:label/te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  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:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-in-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-start/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-end/te:te-label
            /te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:path-out-segment/te:label-restrictions
            /te:label-restriction/te:label-step/te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:primary-reverse-path
            /te:computed-paths-properties/te:computed-path-properties
            /te:path-properties/te:path-route-objects
            /te:path-route-object/te:type/te:label/te:label-hop
            /te:te-label/te:technology:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  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:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-paths
            /te:secondary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-exclude-objects
            /te:route-object-exclude-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:optimizations/te:algorithm
            /te:metric/te:optimization-metric
            /te:explicit-route-include-objects
            /te:route-object-include-object/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:explicit-route-objects
            /te:route-object-exclude-always/te:type/te:label
            /te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  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:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--rw dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--rw subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw (single-or-super-channel)?
                +--:(single)
                |  +--rw flexi-n?              l0-types:flexi-n
                |  +--rw flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--rw subcarrier-flexi-n* [flexi-n]
                |     +--rw flexi-n    l0-types:flexi-n
                |     +--rw flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--rw frequency-slots
                      +--rw frequency-slot* [flexi-n]
                         +--rw flexi-n    l0-types:flexi-n
                         +--rw flexi-m?   l0-types:flexi-m
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-in-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction
            /te:label-start/te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-end
            /te:te-label/te:technology:
    +--:(wdm)
       +--rw (grid-type)?
          +--:(fixed-dwdm)
          |  +--rw dwdm-n?    l0-types:dwdm-n
          +--:(cwdm)
          |  +--rw cwdm-n?    l0-types:cwdm-n
          +--:(flexi-grid)
             +--rw flexi-n?   l0-types:flexi-n
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:path-out-segment
            /te:label-restrictions/te:label-restriction/te:label-step
            /te:technology:
    +--:(wdm)
       +--rw (l0-grid-type)?
          +--:(fixed-dwdm)
          |  +--rw wson-dwdm-channel-spacing?    identityref
          +--:(cwdm)
          |  +--rw wson-cwdm-channel-spacing?    identityref
          +--:(flexi-grid)
             x--rw flexi-grid-channel-spacing?   identityref
             +--rw flexi-ncfg?                   identityref
             +--rw flexi-n-step?                 uint8
  augment /te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths
            /te:secondary-reverse-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties
            /te:path-route-objects/te:path-route-object/te:type
            /te:label/te:label-hop/te:te-label/te:technology:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
  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:
    +--:(wdm)
       +--ro (grid-type)?
          +--:(fixed-dwdm)
          |  +--ro (fixed-single-or-super-channel)?
          |     +--:(single)
          |     |  +--ro dwdm-n?               l0-types:dwdm-n
          |     +--:(multi)
          |        +--ro subcarrier-dwdm-n*    l0-types:dwdm-n
          +--:(cwdm)
          |  +--ro cwdm-n?                     l0-types:cwdm-n
          +--:(flexi-grid)
             +--ro (single-or-super-channel)?
                +--:(single)
                |  +--ro flexi-n?              l0-types:flexi-n
                |  +--ro flexi-m?              l0-types:flexi-m
                x--:(super)
                |  x--ro subcarrier-flexi-n* [flexi-n]
                |     +--ro flexi-n    l0-types:flexi-n
                |     +--ro flexi-m?   l0-types:flexi-m
                +--:(multi)
                   +--ro frequency-slots
                      +--ro frequency-slot* [flexi-n]
                         +--ro flexi-n    l0-types:flexi-n
                         +--ro flexi-m?   l0-types:flexi-m
]]></artwork></figure>

</section>
<section anchor="yang-code"><name>YANG Code</name>

<figure title="WDM Tunnel YANG module" anchor="fig-wdm-tunnel-yang"><sourcecode type="yang" markers="true" name="ietf-wdm-tunnel@2024-07-02.yang"><![CDATA[
module ietf-wdm-tunnel {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-wdm-tunnel";
  prefix "wdm-tnl";

  import ietf-te {
    prefix "te";
    reference
      "RFC YYYY: A YANG Data Model for Traffic Engineering Tunnels,
      Label Switched Paths and Interfaces.";
  }
  /* RFC Ed.: replace YYYY with the number assigned
     to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/
  
  import ietf-layer0-types {
    prefix "l0-types";
  }

  import ietf-yang-types {
    prefix "yang";
  }

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

     Editor:   Jorge E. Lopez de Vergara
               <jorge.lopez_vergara@uam.es>

     Editor:   Daniel Perdices
               <daniel.perdices@naudit.es>

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

     Editor:   Italo Busi
               <italo.busi@nokia.com>

     Editor:   Aihua Guo
               <aihuaguo.ietf@gmail.com>";

  description
    "This module defines a YANG data model for configuring
     and managing Wavelength-Division Multiplexing (WDM) switched
     optical tunnels.

    The model fully conforms to the Network Management 
    Datastore Architecture (NMDA).
    
    Copyright (c) 2021 IETF Trust and the persons
    identified as authors of the code.  All rights reserved.

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

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

  revision "2024-07-02" {
    description
      "Updated revision with combined WSON and Flexi-grid tunnel
       YANG model";

    reference
      "RFC XXXX: YANG data model for WDM tunnels";
    // RFC Ed.: replace XXXX with actual RFC number, update date 
    // information and remove this note
  }

  /*
   * Groupings
   */
  grouping additional-transceiver-configuration-constraints {
    description
      "This grouping defines additional optional constraints for
       transceiver configurations related to tunnel selection.
       These constraints further limit the resources available
       to the tunnel. All constraints operate inclusively, using
       an AND logic. For example, if a specific frequency range
       is selected, the tunnel must also be constrained to match
       only that range.

       When these constraints are combined with the operational
       mode, the list of operational modes should exclude any
       modes that cannot satisfy the additional constraints.
       For instance, if the frequency is restricted to the C-band,
       the list of operational modes should not include any modes
       applicable only to the L-band.";

    leaf otsi-carrier-frequency {
        type l0-types:frequency-thz;
        description
          "OTSi carrier frequency, i.e. configured transmitter
           frequency.";
    }

    container tx-tune-constraints {
      description
        "The permissible tuning frequency range for the
         transmitter.";

      uses l0-types:transmitter-tuning-range;
    }

    leaf-list line-coding-bitrate {
      type identityref {
        base l0-types:line-coding;
      }
      description
        "The list of the bit rate/line coding of the optical 
        tributary signal that constrains the configuration of
        the transceiver.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }

    leaf tx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel transmit power.";
    }
        
    leaf preferred-rx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel received power.";
    }
        
        uses l0-types:l0-path-constraints;
  }

  grouping transceiver-constraints {
    description
      "This grouping defines constraints for transceiver
       configurations";

    leaf-list operational-modes {
      type string { 
        length "1..255";
      }
      description
        "List of operational mode ids of the transceiver.";
    }
    
        uses additional-transceiver-configuration-constraints;
  }

  grouping transceiver-config {
    description
      "This grouping defines explicit transceiver
       configurations.";

    leaf transponder-id {
      type uint32;
      description "transponder identifier";
    }

    list transceivers {
      key "otsi-carrier-id";
      description
        "List of transceivers used within the transponder.";

      leaf otsi-carrier-id {
        type uint16;
        description
          "OTSi carrier identifier associated with the
           transceiver.";
      }
      leaf transceiver-id {
        type uint32;
        description
        "transceiver identifier";
      }

      uses transceiver-constraints;
    }
  }

  grouping path-transceiver-config {
    description
      "This grouping defines a set of transceivers on a node,
       serving as either starting transceivers, terminating
       transceivers, or regenerators. The position of each
       transceiver is determined by the direction of the path.
       For instance, consider the following uni-directional
       path with nodes labeled A, B, and C, where a, b1, b2,
       and c correspond to transceivers on the nodes:
          A(a) --> (b1)B(b2) --> (c)C

       - Use path-out-transceiver for the starting transceiver
         a and the regenerator transceiver b2.
       - Use path-in-transceiver for the terminating transceiver
         c and the regenerator transceiver b1.";

    container path-in-transceiver {
      description
        "Constraints for incoming direction transceiver
         configurations";

      uses transceiver-config;
    }

    container path-out-transceiver {
      description
        "Constraints for outgoing direction transceiver
         configurations.";

      uses transceiver-config;
    }
  }

  grouping transceiver-measured-parameters {
    description
          "Measured transceiver parameters.";
  
    container pre-fec-ber {
      description
            "Timestamp and value of the Pre-FEC Bit Error Rate (BER)
         of the received signal.";

      leaf timestamp {
        type yang:timestamp;
        description
          "Timestamp associated with the Pre-FEC BER.";
      }

      leaf value {
        type decimal64 {
          fraction-digits 18;
        }
        description
          "Pre-FEC BER of the received signal.";
      }
    }

    container q-factor {
      description
            "Timestamp and value of the estimated Q-factor based on
         the pre-FEC BER.";

      leaf timestamp {
        type yang:timestamp;
        description
          "Timestamp associated with the Q-factor.";
      }

      leaf value {
        type l0-types:decimal-2-or-null;
        units "dB";
        description
          "Estimated Q-factor based on the pre-FEC BER.";
      }
    }
  }
  
  grouping transceiver-state {
    description
      "This grouping includes common transceiver state
       information.";

    leaf transponder-id {
      type uint32;
      description "transponder identifier";
    }

    list transceivers {
      key "transceiver-id";
      description
        "List of transceivers used within the transponder.";

      leaf otsi-carrier-id {
        type uint16;
        description
          "OTSi carrier identifier associated with the
           transceiver.";
      }
      leaf transceiver-id {
        type uint32;
        description
        "transceiver identifier";
      }

      leaf otsi-carrier-frequency {
        type union {
          type l0-types:frequency-thz;
          type empty;
        }
        description
          "OTSi carrier frequency, equivalent to the
          actual configured transmitter frequency, when known, or
          an empty value when unknown.";
      }

      uses l0-types:common-transceiver-readonly-param;
    }
  }

  grouping e2e-media-channel-info {
    description
      "This grouping includes end-to-end media channel path id
       information.";

    leaf-list e2e-mc-path-id {
      type uint16;
      description
        "The list of the possible end-to-end Media Channel
        (e2e-MC) paths associated with the OTSi which have
        different optical impairments.

        This list is meaningful in case the OTSi can be associated
        with multiple end-to-end Media Channel (e2e-MC) paths
        (e.g., when OPS protection is configured).

        The list can be empty when the OTSi has only one
        e2e-MC path.";
    }
  }

  grouping path-transceiver-state {
    description
      "This grouping defines the state of transceivers on a
       node functioning as starting, terminating transceivers,
       or regenerators.";

    container path-in-transceiver {
      description
        "Transceiver state on the incoming direction.";

      uses transceiver-state;
    }

    container path-out-transceiver {
      description
        "Transceiver state on the outgoing direction.";

      uses transceiver-state;
    }
  }
  
  grouping global-transceiver-constraint {
    description
      "This grouping defines the constraints for transceiver
       configurations.";

    container transceiver-constraint {
      description
        "Constraints for transceiver configurations";

      uses transceiver-constraints;
    }
  }

  grouping wdm-constraint {
    description
      "Grouping for WDM tunnel constraints";

    container wdm-constraint {
      description
        "WDM tunnel constraints.";

      uses global-transceiver-constraint;
      
      leaf use-regen {
        type boolean;
        default false;
        description
          "Indicate whether or not regenerators (e.g. 3R) should be
           considered. When this parameter is set to true, the
           tunnel path may include a regen when the path is not
           feasible for direct optical reach.";
      }

      leaf wavelength-conversion {
        when '../use-regen = "true"' {
          description
            "Regenerator must be enabled for wavelength conversion
             to be considered.";
        }
        type boolean;
        default false;
        description
          "Indicate whether or not wavelength conversion is allowed
           along the tunnel path. Applicable only when 3R
           regeneration is enabled.";
      }

      uses l0-types:l0-tunnel-attributes;

      leaf guard-band-size {
        type l0-types:frequency-thz;
        description
          "Guard band size in THz.";
      }

      leaf matching-fwd-rev-wavelength {
        type boolean;
        default true;
        description
          "Indicate whether or not the assigned channels for
           forward and reverse wavelength path must be the same.";
      }

      leaf allow-retuning {
        type boolean;
        default false;
        description
          "Indicate whether or not re-tuning is allowed when one or
           more paths of a WDM tunnel is being restored. Typically,
           wavelength retuning is not preferred for wavelength
           planning considerations.";
      }
      leaf delta-power {
        type l0-types:power-ratio;
        description
          "Delta power in dB indicating the per-channel power
           deviation from the nominal power per channel at the
           output of an OMS.";
      }
    }
  }

  /*
   * Data nodes
   */

  /*
   * Global constraints for WDM tunnel
   */
  augment "/te:te/te:tunnels/te:tunnel" {
    description
      "Augment with additional parameters required for WDM
       tunnel configurations.";
    uses wdm-constraint;
  }

  /*
   * Transceiver constraints for primary path
   * Applicable to starting, terminating and regenerator
   * transceivers.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE primary path with transceiver configurations.";
      
    uses path-transceiver-config;
  }

  /*
   * Transceiver constraints for primary reverse path
   * Applicable to starting, terminating and regenerator
   * transceivers.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:primary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE primary reverse path with transceiver
       configurations.";
      
    uses path-transceiver-config;
  }

  /*
   * Transceiver constraints for secondary path
   * Applicable to starting, terminating and regenerator
   * transceivers.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/"
        + "te:secondary-path/te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE secondary path with transceiver configurations.";
      
    uses path-transceiver-config;
  }

  /*
   * Transceiver constraints for secondary reverse path
   * Applicable to starting, terminating and regenerator
   * transceivers.
   */
  augment "/te:te/te:tunnels/te:tunnel/"
        + "te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/"
        + "te:explicit-route-objects/"
        + "te:route-object-exclude-always/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE secondary reverse path with transceiver
       configurations.";
      
    uses path-transceiver-config;
  }

  /*
   * Computed transceiver properties for primary path.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE computed primary path with transceiver
       properties.";
      
    uses path-transceiver-state;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";

    uses l0-types:l0-path-properties;
  }

  /*
   * Computed transceiver properties for primary reverse path.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:primary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE computed primary path with transceiver
       properties.";
      
    uses path-transceiver-state;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:primary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:primary-paths/"
        + "te:primary-path/te:primary-reverse-path/"
        + "te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Computed transceiver properties for secondary path.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/"
        + "te:secondary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE computed primary path with transceiver
       properties.";
      
    uses path-transceiver-state;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/"
        + "te:secondary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:secondary-paths/"
        + "te:secondary-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Computed transceiver properties for secondary reverse path.
   */
  augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE computed primary path with transceiver
       properties.";
      
    uses path-transceiver-state;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  augment "/te:te/te:tunnels/te:tunnel/te:secondary-reverse-paths/"
        + "te:secondary-reverse-path/te:computed-paths-properties/"
        + "te:computed-path-properties/te:path-properties/"
        + "te:path-route-objects/te:path-route-object/"
        + "te:type/te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional estimated parameters.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Actual transceiver state.
   */
  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE LSP with WDM path state.";
      
    uses path-transceiver-state;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-in-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional measured parameters.";
      
    uses transceiver-measured-parameters;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:path-out-transceiver/wdm-tnl:transceivers" {
    description
      "Augment transceiver with additional measured parameters.";
      
    uses transceiver-measured-parameters;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-link-hop/te:numbered-link-hop" {
    description
      "Augment TE LSP with end-to-end media channel
       information.";

    uses e2e-media-channel-info;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:unnumbered-link-hop/te:unnumbered-link-hop" {
    description
      "Augment TE LSP with end-to-end media channel
       information.";

    uses e2e-media-channel-info;
  }

  /*
   * Augment TE label range information
   */

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

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

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

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

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

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

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

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

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

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

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

  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/"
        + "te:explicit-route-objects/"
        + "te:route-object-include-exclude/te:type/te:label/"
        + "te:label-hop/te:te-label/te:technology" {
    description
      "Augment TE label hop for the explicit route objects included
      or excluded by the path computation with the named path
      constraint.";
    case wdm {
      uses l0-types:wdm-label-hop;
    }
  }
  augment "/te:te/te:globals/te:named-path-constraints/"
        + "te:named-path-constraint/te:path-in-segment/"
        + "te:label-restrictions/"
        + "te:label-restriction/te:label-start/"
        + "te:te-label/te:technology" {
    description
      "Augment TE label range start for the ingress segment
      of the named path constraint.";
    case wdm {
      uses l0-types:wdm-label-start-end;
    }
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<t>The configuration, state, and action data defined in this document
are designed to be accessed via a management protocol with a secure
transport layer, such as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.
The NETCONF access control model <xref target="RFC8341"/> provides the means to
restrict access for particular NETCONF users to a preconfigured
subset of all available NETCONF protocol operations and content.</t>

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

<t><list style="symbols">
  <t>/te:te/te:tunnels/te:tunnel</t>
  <t>/te:te/.../te:te-bandwidth/te:technology</t>
  <t>/te:te/.../te:type/te:label/te:label-hop/te:te-label/te:technology</t>
  <t>/te:te/.../te:label-restrictions/te:label-restriction/te:label-
start/te:te-label/te:technology</t>
  <t>/te:te/.../te:label-restrictions/te:label-restriction/te:label-
end/te:te-label/te:technology</t>
  <t>/te:te/.../te:label-restrictions/te:label-restriction/</t>
</list></t>

<t>Editors note: we are using simplified description by folding similar
branches to avoid repetition.</t>

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

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

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

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

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

<t>RFC Editor: Please replace XXXX with the RFC number assigned to this document.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC7950;
&RFC2119;
&RFC8174;
&RFC7446;
&RFC7699;
&RFC6241;
&I-D.ietf-teas-yang-te;
&I-D.ietf-ccamp-flexigrid-yang;
&RFC9094;
&RFC8040;
&RFC8341;
&RFC3688;
&RFC6020;


    </references>

    <references title='Informative References'>

&RFC6163;
&RFC7698;


    </references>


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

<t>This work is also partially funded by the Spanish State Research
Agency under the project AgileMon (AEI PID2019-104451RB-C21) and by
the Spanish Ministry of Science, Innovation and Universities under
the program for the training of university lecturers (Grant number:
FPU19/05678).</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="D." surname="King" fullname="Daniel King">
      <organization>Old Dog Consulting</organization>
      <address>
        <email>daniel@olddog.co.uk</email>
      </address>
    </contact>
    <contact initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street>H1, Xiliu Beipo Village, Songshan Lake</street>
          <city>Dongguan</city>
          <country>China</country>
        </postal>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </contact>
    <contact initials="I." surname="Busi" fullname="Italo Busi">
      <organization>Huawei Technologies</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </contact>
    <contact initials="O." surname="Gonzalez de Dios" fullname="Oscar Gonzalez de Dios">
      <organization>Telefonica</organization>
      <address>
        <email>oscar.gonzalezdedios@telefonica.com</email>
      </address>
    </contact>
    <contact initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </contact>
    <contact initials="D." surname="Beller" fullname="Dieter Beller">
      <organization>Nokia</organization>
      <address>
        <email>Dieter.Beller@nokia.com</email>
      </address>
    </contact>
    <contact initials="R." surname="Vilalta" fullname="Ricard Vilalta">
      <organization>CTTC</organization>
      <address>
        <email>ricard.vilalta@cttc.es</email>
      </address>
    </contact>
    <contact initials="Y." surname="Lee" fullname="Young Lee">
      <organization>Samsung</organization>
      <address>
        <email>younglee.tx@gmail.com</email>
      </address>
    </contact>
    <contact initials="B.Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </contact>
    <contact initials="D.M." surname="Vallinoto" fullname="Daniel Michaud Vallinoto">
      <organization>Universidad Autonoma de Madrid</organization>
      <address>
        <email>daniel.michaud@estudiante.uam.es</email>
      </address>
    </contact>
    <contact initials="Z." surname="Ali" fullname="Zafar Ali">
      <organization>Cisco</organization>
      <address>
        <email>zali@cisco.com</email>
      </address>
    </contact>
    <contact initials="E.L." surname="Rouzic" fullname="Esther Le Rouzic">
      <organization>Orange</organization>
      <address>
        <email>esther.lerouzic@orange.com</email>
      </address>
    </contact>
    <contact initials="J." surname="Meuric" fullname="Julien Meuric">
      <organization>Orange</organization>
      <address>
        <email>julien.meuric@orange.com</email>
      </address>
    </contact>
    <contact initials="G." surname="Grammel" fullname="Gert Grammel">
      <organization>Juniper</organization>
      <address>
        <email>ggrammel@juniper.net</email>
      </address>
    </contact>
    <contact initials="R." surname="Manzotti" fullname="Roberto Manzotti">
      <organization>Cisco</organization>
      <address>
        <email>manzoro@gmail.com</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
d8Ln7URESLEmHp6I0hmKfEpNlBRl+qM99zRopeTGViO6C6wDJoYB0wfQQBhn
du9U8eXDSi7OWApd09EZUbTsw+KtUCqKUcJlDi5HcsQ+pQAlgTsV8bV1wO0d
bwhO0SsUexG+kS19iA55VzcLzc7wRB4ai5axGucljdM30BAKDgNkqfSKJV3B
58ciLcCE0FqIFAuibPLhh6JR07vIw14fH0mmiZdCALH0IeAZj0E5oCNRKEqs
7mWPvsaiT4pxE3sSlr3HdYNo8fd2nrrHKjBPJWTfKB7ojc5fs3CCQpBYyYzF
YSE/hlE4LWVjtfEUXY+oVXhHoXuk3VAS4wG2G8qMnNXwTkK3dhYsfQx5aunD
ImK08em8+RvbQpOAgRmOvIGEmCJk7pnkqjQFSkEwy8ClC6Zd5CNG9qnOZiwg
BFJlb0SIEjGNTq0QVY7U3T/+zTtmL/pPvv+uvwUwo1KGb/ub/a1uQ55oBmZb
Zxafgl1U5FgIi+55wXD6w7kmQjyhaWq6hQEwIlIapOlWMlP09ZKbZysRJM1g
IVtNU4U/aDfG8ptifVdExFp4vWxArQVPm6zhrho8bXxSrmKhoKdQsCJJxFMY
8GM5W7WQYN3Nfn/rm2+6F3KNl3MgF/ywSNVb7PdTuS4o5LxsjnKu7KHbsmI3
p7LPl3c1IFDzWRwFMDLklxVB43bl11stZsq6VrdytZPUfBUlbLFTqvGdOGPd
SiiSQXehOxhtVciB8FViIKNSXYopC7Wbcc+apzXTzSfLBbhy2ljciX1JGaDJ
U+zA1gqDn2z2bP23c1fqYY6E7Oy0oZFCJ9pi5/h6aeJV8yTwuLqNcloZ1rWI
awTIbyCFM5PB1TDl/mDWkjJkOrdUcxRY9uLaFNbBmZXlVhsA/iRiLCJ0cViC
96lWMItTqaMVE7zMTysSTIFrRR6UOlS5YCATHZk0PqBc5qSCKFWJ3kEJYRyG
8SnyD3mCV5ApM1gkpEwnIryjnSIYeLvHnqkV+g4s8kESkP312HAT/tsqxIW3
fRgQIgVZP+V/NQlTJRJJDyzD3F7j68zzfmZrw831Z2vDLf3NX98pcnOP/Zaq
idIxFltGOmtqVU45Ci8qJJYmKrIebvVbRpNR62CWytvH888fb7NAhzK1bBtz
YWq5U4tzkJ3HU7L2wkra+WsNfu1+CQ3nZMKtClmKX+g8jpfmt54Nz2d4UYib
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
sa6sfa6+KC+ysXTnTLdSY7vjcr9Ldn4bcq9X0xuX7rA51/YDV1uid8JQb1ui
1Xrf/BLffbDZ20WDK0n6jtnyFSU9b3m3sFx5XYuPGzxQbtQyR1kLfyhpGfUB
oVJh5r2YxCDT7DPFmaag2S3e86fXL1inV9ovf8yjWN/ors1VDr15A9RbPHE4
T/HAZe3Z/BXXqn7M3Gh3FdWqWTRPWNM7zldAtytYfTm3SYmz6keDG3tKV9an
Qlmifg2lmwvrhgbEmtzn874bVxHM5sYUhNVLp54L/kxvez/8Ndir+4mYfV49
iM8Yn26q5Hk7KHbpEuld8JKbU9HnQjGnntVAsc+hh4uA2HUXE/FdSlP9k3nU
mofjOIE8c4pfpgLlvLCTp9s0E3WzslpqGVb9+e1bydft2RXv5NVT0wSqmfy5
ebtd6UzMj/nYC+7rXYjdIRsx67SlFnV30UbMau++2ogrvdRVeM+Vdz8rLHdW
hddU5F/BSkrLPvhN5LYrr5CVqJs4ZdxGleRqUr+NZcV17YStXk3kLnvAtSpk
FSogThnXiEefR+i3gUZ344mnz54229ly+YvvSgBmAXr3EuGLnI5zVa/bqnq1
HTdxBuVKZJcukd1Tg7qGetrKxJmbKK5p4Zkw5ZRfr8etuvavXpy71yZw7+t5
V8Lt21y73Yr2Vqn45zS38pXCK6roViqGn/OpppUtK95/37qvNUinuduFxZtX
0cqi4vzyZv3mueXLlorn4jVIs7x5m2uNJSqaq1A3WP5pSVe4/GyFS923/anP
B20priJ5ryzFHd0rrOEhqfBeH+C7q4q8v2W/K2rkWldIK6CXlSjo3YRO7q5K
Pm+l7sqyv57l6O29sGX1anD3AKLuXXXN6eQW62Z3FqOu4cDfAy2PrVrifNlX
MblC2e0VylartLqCFuQKaA/CglxhraUeszqntm5HwQ+k7Haf1PwQinKrc3xh
BfW1YsU6p6sVrOKtxOGS1XmF7SpX9+6d/9zjqp/T1QpWA+8J1rkq4dWrhDe/
Uqff22pMP53pe9f8e1u3IXDFlJG7EvjLozdXFeenzn/g0/k4YF+M5Nijn6oj
V/LOwPFZJrNQ/NTF31k8psvsj+1XL9g0DvJQdFka54kPaoal6pQn70DJP3Wz
JK/ewTcf/tSVIhtZ5J9uPdp67D361nu01ceRuqDZL9iR8PNEZmdsBzBOBiJR
hbVO55jMKwIWc3Wtp37yscc4RAtOiMcCnnGQ60hGsAiVEYhIpiyI/ZxgiicC
hS7HeDeL2RBl6gOQwdcTyRlnUx7xsSAVgHdmsR+H+of30JbzRHTo9/RmMSQT
IT8TCTCR+3A7Za/2jndev3rOPn78r8PnO0+2Hm9++oRr4sO9I/vGd48eP/r0
qU/TMV0UEzi7LIEBQbQgZd38a6IDzJyAMFLS+VQAC8B/x2C9IYCGMoNQJv08
5ElBHuwgwfYwiVkijAzBSdN8mAryXR6GjJ9wCQYSlnwVIkCcUnogYSOjIKI+
KQVkinLlTP2yHFIjLeCvJKYNXVi2Axd4hn07p6BwHHjDTwRXf4EEBP3F1mRf
9Hta9QxNq8dOJxKELkkcHRiC52G23mcM2AEfsIbH49xDshuyJWAkFfBnJk8E
6uYkDyOYGQzTAQbTeCpYJLLTOHkHKciJTOIITSEFym+BRWHLYU30x8CWCGTm
Kd7WOyDirM4BWg84rP7NZxKpULbq84hN+AmJTow58tQRoxGhaVTwUQ5ZzA/F
TYE2H2aJEEon5ZAd/Ar3ZVJMFvxpw8xVhvBt0Ol4jC0Io/b9fr+vwWwIpE9l
oH4fuAS0tsYVkLwYLraQaUl7Fmc6iGtqJXHjw2ACfBODdDp7YFQxuGwEtjJg
p0rjeQorTJbK6SyUIwmWbIUPrLeN4jDQLcCNk84QgMqfCOX4J7EMIAbPREY/
H9pHpN3ffrXdgrIWYEKPf+fAWaraAqFEjCUkZioewYhhfIpj/na4nyoXF6wb
pV00TdUUQj96gLm3v3f8nP3z4CU71He7Gue+fvLddwCL7HlBU42AcRcp2616
tdH1SAagQFaabxHARCm4gbqAxwHLk2iAYWhAv4CaDt5Pw0GUDjD8DGrhCfto
LjmIAgSVQZAZoA+y/b2jF3gfZjJgrza2f1AJkRkVx0J0AgfHuWL0S2fcF33F
zCWFbEFnKWzqc6Dw9BWOYwT65NHWo/MFqlotIdBBKVCc1oC1SK2Y79LyhvA0
ku8HTP9cLl6CK4DbERIDftk/4aOliF+VpwzYm1Bg9gMWHsK41Kr8FQxsqIMT
T8voX8kNwFA8z2ND7r9D39j230XxaSgCSsdSSI7M76b+1B3xMBWYrJAaCaRR
12Eaq+ALsRS8MY+sOvjRjEcynbAjTFjAqlLBE3/S2R7DxM4YNk30A0gxZdPb
YxmKA/Drte29ffZmf3fr0eb33uajx4+/2Tx85u1sba4T6A/POjb5Axkpl4MY
fORLlFqP7UdRfKKq79jlt4h+fFjiskON3NEjj0FDRa5JL6dGWwBSuelyxkLg
DlIHwKa1F+QWSiyDzvM3v21+v/Homyfffrfe7/x/LXYMlu8GAgA=

-->

</rfc>

