<?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 RFC9094 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9094.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 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 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-01" 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="March" day="01"/>

    <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 Wavelength Switched Optical Networks (WSON) systems <xref target="RFC6163"/> based on only fixed-grid wavelength switching, towards elastic optical networks,
based on flexi-grid Dense Wavelength Division Multiplexing (DWDM) transmission and switching technologies <xref target="RFC7698"/>. Such technology aims
at increasing transport network scalability and flexibility, allowing bandwidth usage optimization.</t>

<t>While <xref target="RFC9094"/> <xref target="I-D.ietf-ccamp-flexigrid-yang"/> focus on flexi-grid objects such as nodes, transponders
and links, this document presents a YANG <xref target="RFC7950"/> model for the provisioning and management of Traffic Engineering (TE) tunnels and Label Switched Paths (LSPs) in DWDM Optical Networks, which can be Wavelength Switched Optical Networks (WSON) networks or Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks, or a mix of these two networks. This YANG module defines the path from a source transponder or node to the destination through several intermediate nodes in such a WDM optical network.</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 generic TE tunnel attributes, such as source and destination node addresses, source and destination tunnel termination points (TTPs), are already defined by the base data model in <xref target="I-D.ietf-teas-yang-te"/>. The present model defines a WDM tunnel by augmenting the base model with the following
WDM technology-specific constructs:</t>

<t><list style="symbols">
  <t>Global WDM layer constraints that influence the TE path selection, e.g., whether wavelength conversion or regeneration is considered</t>
  <t>Global transponder/transceiver configuration constraints, e.g., operational modes, tuning constraints of the transceiver</t>
  <t>Global optical performance constraints, e.g. generalized Signal-to-noise (G-SNR) margin of a feasible optical path</t>
  <t>Path-scope WDM layer constraints, e.g. identities of transceivers assigned to the primary or secondary path</t>
  <t>List of links that defines the path</t>
  <t>Other optical attributes</t>
</list></t>

<t>Each path can be a segment path (only defined by the source and destination nodes or link termination points)
or an end-to-end path (additionally needs source and destination transponders). Therefore, all the attributes
are optional to support both situations.</t>

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

<t>In order to explain how this model is used, the following
example is provided.  An optical network usually has multiple transponders,
switches (nodes) and links. <xref target="fig-topology-example"/> shows a simple
topology, where two physical paths interconnect two optical
transponders via a combination of both WSON and Flexi-grid wavelength
switched nodes and links.</t>

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

   +----------+                                        +----------+
   |  Flexi-  |                                        |  Flexi-  |
   |   grid   |                                        |   grid   |
   |  node A  |                                        |  node E  |
   |          |        +------+        +------+        |          |
   |          | 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
]]></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 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* [lane-id]
    |     +--rw lane-id                       uint8
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--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 path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [lane-id]
          +--rw lane-id                       uint8
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--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
  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* [lane-id]
    |     +--rw lane-id                       uint8
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--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 path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [lane-id]
          +--rw lane-id                       uint8
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--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
  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* [lane-id]
    |     +--rw lane-id                       uint8
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--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 path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [lane-id]
          +--rw lane-id                       uint8
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--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
  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* [lane-id]
    |     +--rw lane-id                       uint8
    |     +--rw transceiver-id?               uint32
    |     +--rw operational-modes*            string
    |     +--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 path-out-transceiver
       +--rw transponder-id?   uint32
       +--rw transceivers* [lane-id]
          +--rw lane-id                       uint8
          +--rw transceiver-id?               uint32
          +--rw operational-modes*            string
          +--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
  augment /te:te/te:tunnels/te:tunnel/te:primary-paths
            /te:primary-path/te:computed-paths-properties
            /te:computed-path-properties/te:path-properties:
    +--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:
    +--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:
    +--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:
    +--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: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* [lane-id]
    |     +--ro lane-id             uint8
    |     +--ro transceiver-id?     uint32
    |     +--ro rx-channel-power?   power-dbm-or-null
    |     +--ro rx-total-power?     power-dbm-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id             uint8
          +--ro transceiver-id?     uint32
          +--ro rx-channel-power?   power-dbm-or-null
          +--ro rx-total-power?     power-dbm-or-null
  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* [lane-id]
    |     +--ro lane-id             uint8
    |     +--ro transceiver-id?     uint32
    |     +--ro rx-channel-power?   power-dbm-or-null
    |     +--ro rx-total-power?     power-dbm-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id             uint8
          +--ro transceiver-id?     uint32
          +--ro rx-channel-power?   power-dbm-or-null
          +--ro rx-total-power?     power-dbm-or-null
  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* [lane-id]
    |     +--ro lane-id             uint8
    |     +--ro transceiver-id?     uint32
    |     +--ro rx-channel-power?   power-dbm-or-null
    |     +--ro rx-total-power?     power-dbm-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id             uint8
          +--ro transceiver-id?     uint32
          +--ro rx-channel-power?   power-dbm-or-null
          +--ro rx-total-power?     power-dbm-or-null
  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* [lane-id]
    |     +--ro lane-id             uint8
    |     +--ro transceiver-id?     uint32
    |     +--ro rx-channel-power?   power-dbm-or-null
    |     +--ro rx-total-power?     power-dbm-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id             uint8
          +--ro transceiver-id?     uint32
          +--ro rx-channel-power?   power-dbm-or-null
          +--ro rx-total-power?     power-dbm-or-null
  augment /te:te/te:lsps/te:lsp/te:lsp-actual-route-information:
    +--ro wdm-path-state
       +--ro gsnr?   l0-types: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* [lane-id]
    |     +--ro lane-id             uint8
    |     +--ro transceiver-id?     uint32
    |     +--ro rx-channel-power?   power-dbm-or-null
    |     +--ro rx-total-power?     power-dbm-or-null
    +--ro path-out-transceiver
       +--ro transponder-id?   uint32
       +--ro transceivers* [lane-id]
          +--ro lane-id             uint8
          +--ro transceiver-id?     uint32
          +--ro rx-channel-power?   power-dbm-or-null
          +--ro rx-total-power?     power-dbm-or-null
  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@2023-10-22.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";
  }

  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 "2023-10-22" {
    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.";

    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.";
    }
  }

  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 "lane-id";
      description
        "List of transceivers for all lanes.";

      leaf lane-id {
        type uint8;
        must '. >= 1' {
          error-message
            "Lane identifier must be greater than or equal to 1.";
        }
        description
          "Lane identifier starting from 1.";
      }
      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-state {
    description
      "This grouping includes common transceiver state
       information.";

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

    list transceivers {
      key "lane-id";
      description
        "List of transceivers for all lanes.";

      leaf lane-id {
        type uint8;
        must '. >= 1' {
          error-message
            "Lane identifier must be greater than or equal to 1.";
        }
        description
          "Lane identifier starting from 1.";
      }
      leaf transceiver-id {
        type uint32;
        description
        "transceiver identifier";
      }

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

  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;
      uses l0-types:l0-path-constraints;
      
      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.";
      }
    }
  }

  grouping wdm-path-state {
    description
      "Grouping for WDM path state.";

    container wdm-path-state {
      config false;
      description
        "WDM path state.";

      leaf gsnr {
        type l0-types:snr;
        description
          "Actual received GSNR for the WDM path.";
      }
    }
  }

  /*
   * 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 path 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" {
    description
      "Augment TE computed primary path with WDM properties.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Computed path 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" {
    description
      "Augment TE computed primary reverse path with WDM
       properties.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Computed path 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" {
    description
      "Augment TE computed secondary path with WDM properties.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * Computed path 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" {
    description
      "Augment TE computed secondary reverse path with WDM
       properties.";
      
    uses l0-types:l0-path-properties;
  }

  /*
   * 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;
  }

  /*
   * 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;
  }

  /*
   * 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;
  }

  /*
   * 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;
  }

  /*
   * WDM path state
   */
  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information" {
    description
      "Augment TE LSP to with WDM path state.";
      
    uses wdm-path-state;
  }

  /*
   * 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 to with WDM path state.";
      
    uses path-transceiver-state;
  }

  /*
   * 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'>

&RFC9094;
&I-D.ietf-ccamp-flexigrid-yang;
&RFC7950;
&RFC2119;
&RFC8174;
&RFC7446;
&RFC7699;
&RFC6241;
&I-D.ietf-teas-yang-te;
&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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
1b57uQtZ5Am4tfjvTOYuAxzkkigTr1omizcpHFRTue/rAjitpqeVmU5iOcbN
LJSkam1EK4i+7YslBZFFdFcdzRWUu5Tc6MsiihH1PZXNbmEGf8XDfpW7sx9B
0ui2yCOZ6n3USQjhO2gy+dntxsUFVH26X5Gu3vOeuVQo7bhU7Iza8qU0nIe0
e6bp/HPli031TvfMHExVNMxi9sr1Jqyj+ObY3dtF7anuDU0s+ot4K6f2qozv
CgdKLlYDCWart/JdxwXb3VdIaNfKLYDCrv66pxqv/G5nIyu4aYCf+Q3VRs8l
vqG6mPC9QgaNOE3ZZUGuTdCNGlbZ/HLCNg1gJaLqKmmm6R1GhnxLiqri+G0E
uFXQQFv0ukXvaAfIqwj/UuFl5ZRx2w5hJiwPLVo0R13weQb1fvm3ga8zQ5gT
pFoShPmab996vZLSv46oZS1keQt5IOHSqv4qqn+QQduaRNUkqtsA87RsPoqj
Lox5j9pYbOqHJ2+xflGmqJWtifrkqpsfjUnpzYfGkbq5VnzZ+S3X+DYKE8vJ
ckFDMejTKV79TaPaA1jUFk2LdNUBExIwPnHAb5wdaUqkrVnhm+VDPpvyX+yp
bIvJcsZci60sGQ6BJp4TMR8Rp89R0xSU+MspVLZ/inweLVqziGORzRQ6uAV5
Go+5W0SgFza5HumKuxHuxRXPavJbz3dbY4xhsXcq07kWS9M4r2zOrqAoTWNd
WftcfVEusiS7d6ZbyVrvudzvk53fhdzry8zmyvL+mnNtCb7aEr0XhnrXEq2u
g2cvfR+Czd4tGlxJ0vfMlq8o6VnLu7lL5etafNzgxn+ulhnKmvtcz2XUB4RK
heVfcycGmWafKc40Bc1u8d1bvX7Buo/SfvnsuWJ9o7s2VzkePksD1Fuc1Jyl
eOCy9kWVFdfqRb85tgJq1Szm3yKgp/isgG5XsPpyYZMSZ9VvXDRqrVfWp0JZ
on4NpZuFdUMD4o873J733biKYDY3piCgbdWz6K9KtPfDHy+4up+Iye3qQdxi
fLqpkufdoNilS6T3wUtuTkW3hWJWPauBYrehh0VA7LqLifh94bF+KDS15sEw
iiHPHOOHsUA5z+3k6DbNRD1fWS21DKv+Wsyd5Ovm7HIV51PTBKqZ/IV5u1np
jPPHVZoL7utdiN0jG8nXaUst6u6jjeSrvYdqI7b0UlfhA1few6yw3FsVXlOR
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

-->

</rfc>

