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

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


<rfc ipr="trust200902" docName="draft-ietf-ccamp-wdm-tunnel-yang-07" 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." surname="de Vergara 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="2026" month="April" day="23"/>

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

    <abstract>


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

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



    </abstract>


  </front>

  <middle>


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

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

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

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

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

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

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

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL</bcp14>
NOT", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</section>
<section anchor="r-regenerators"><name>3R Regenerators</name>

<t>A desired optical path may span a distance beyond the reach of a single optical transponder. In that case, one or more 3R regenerators can be deployed at intermediate nodes, reamplifying, reshaping, and retiming the optical signal before transmission continues. This scenario is described in detail in Section 2.7 of <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>. Deploying 3R regeneration is costly because it requires additional transponders; consequently, at most a single regenerator is typically used to regenerate the optical signals of an end-to-end optical tunnel.</t>

<t>According to <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>, there are multiple ways to implement a 3R regenerator:
 - Back-to-back (bi-directional) regeneration, where two optical transponders are connected back-to-back; each transceiver receives and transmits the optical signal for the same segment of the end-to-end tunnel, operating in both directions.
 - Uni-directional regeneration, where two transponders are used with one performing 3R regeneration in the forward direction (source to destination) and the other performing 3R regeneration in the reverse direction.</t>

<t>When an optical signal is regenerated, it can be terminated and restored at different protocol layers depending on the transponder's capabilities. For example, if the transponder supports OTN, the signal can be regenerated at the OTU layer or at the ODU layer after the OTU overhead has been stripped; if the transponder supports Ethernet clients, the signal can be terminated at the Ethernet layer, which commonly occurs in the back-to-back configuration. Typically, the signal is regenerated at the lowest possible layer to minimize processing delay and complexity, but termination layer may be chosen deliberately during network planning for specific scenarios. To ensure correct transmission, the termination method used between the source and the receiving transponder at the regenerator node must match the method used between the sending transponder at the regenerator node and the destination transponder (or the receiving transponder at the next regenerator node).</t>

<t>The termination of an optical signal occurs at the reference point immediately before inverse multiplexing in the transmitting direction or immediately after inverse multiplexing in the receiving direction for the corresponding transceiver, and this applies to the entire OTSiG used by the optical tunnel. For 3R regeneration, to identify the transceiver configuration associated with these reference points consistently between uni-directional and bi-directional regeneration, the following definitions are used in this draft:
 - Forward direction: the direction of the optical path from the source to the destination.
 - Reverse direction: the direction of the optical path from the destination back to the source.
 - Incoming transponder: for back-to-back regeneration, the transponder in the regenerator that receives from and transmits toward the same segment of the optical path toward the source; for uni-directional regeneration, the transponder that performs regeneration in the forward direction of the optical path.
 - Outgoing transponder: for back-to-back regeneration, the transponder in the regenerator that receives from and transmits toward the same segment of the optical path toward the destination; for uni-directional regeneration, the transponder that performs regeneration in the reverse direction of the optical path.</t>

<t>Utilizing the figures in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> for 3R regeneration, <xref target="fig-back2back"/> and <xref target="fig-unidir"/> further illustrate the aforementioned reference points for back-to-back regeneration and uni-directional regeneration, respectively.</t>

<figure title="Reference Points in Back-to-back 3R Regeneration" anchor="fig-back2back"><sourcecode type="aasvg"><![CDATA[
                          Forward Direction
  |------------------------------>---------------------------------|
                          Reverse Direction
  |------------------------------<---------------------------------|

            Incoming Transponder     Outgoing Transponder          D
            +-------------------+   +--------------------+         E
  S         |Transceiver        |   |         Transceiver|         S
  O         |-----------+ +-----|   |-----+ +------------|         T
  U ------->|Receiver   |-|Sig. |-->|Sig. |-| Transmitter|-------> I
  R         |-----------+ |     |   |     | +------------|         N
  C <-------|Transmitter|-|Proc.|<--|Proc.|-|    Receiver|<------- A
  E         |-----------+ +-----|   |-----+ +------------|         T
            +-------------------+   +--------------------+         I
                                                                   O
                                                                   N
]]></sourcecode></figure>

<figure title="Reference Points in Uni-directional 3R Regeneration" anchor="fig-unidir"><sourcecode type="aasvg"><![CDATA[
                          Forward Direction
  |------------------------------>---------------------------------|
                          Reverse Direction
  |------------------------------<---------------------------------|

                           Incoming Transponder
                           3R in forward direction
                         +-----------------------+
                         |Transceiver            |
                         |-----------+ +--------+|
                 ------->|Receiver   |-|Sig. --+||
                         |-----------+ |       |||
                     +---|Transmitter|-|Proc.<-+||
                     |   |-----------+ +--------+|
                     |   +-----------------------+                 E
  S                  |                                             S
  O                  +------------------------------------>        T
  U                                                                I
  R              <-----------------------------------+             N
  C                                                  |             A
  E                      +-----------------------+   |             T
                         |            Transceiver|   |             I
                         |+--------+ +-----------|   |             O
                         ||+->Sig. |-|Transmitter|---+             N
                         |||       | +-----------|
                         ||+--Proc.|-|Receiver   |<--------
                         |+--------+ +-----------|
                         +-----------------------+
                          Outgoing Transponder
                          3R in reverse direction

]]></sourcecode></figure>

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

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

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

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

        <--------------------------------------------------->
                          WDM Secondary Path 1
]]></sourcecode></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[
{::include-fold yang/trees/ietf-wdm-tunnel.tree}
]]></artwork></figure>

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

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

  import ietf-te {
    prefix te;
    reference
      "RFC YYYY: A YANG Data Model for Traffic Engineering Tunnels,
       Label Switched Paths and Interfaces.";
  }

  /* RFC Ed.: replace YYYY with the number assigned
     to the RFC once draft-ietf-teas-yang-te becomes an RFC.*/

  import ietf-layer0-types {
    prefix l0-types;
  }
  import ietf-yang-types {
    prefix yang;
  }

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

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

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

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

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

     Editor:   Aihua Guo
               <aihuaguo.ietf@gmail.com>";
  description
    "This module defines a YANG data model for configuring
     and managing Wavelength-Division Multiplexing (WDM) switched
     optical tunnels.

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

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

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

  revision 2026-02-27 {
    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
  }

  /*
   * Identities
   */

  identity otsig-termination-type {
    description
      "Digital termination type applicable to OTSiG";
  }

  identity otsi-lane-termination-type {
    description
      "Digital termination type applicable to a single OTSi.
       The termination of an optical signal occurs at the
       reference point immediately before inverse multiplexing
       in the transmitting direction or immediately after
       inverse multiplexing in the receiving direction.";
  }

  identity digital-mapping-type {
    description
      "Digital mapping type for the client payload of
       transceivers";
  }

  identity inverse-mux-type {
    description
      "Inverse multiplexing type";
  }

  identity otsig-regeneration-layer {
    description
      "Level of 3R regeneration";
  }

  //TBD: types to be added
  /*
   * Groupings
   */

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

       When these constraints are combined with the operational
       mode, the list of operational modes should exclude any
       modes that cannot satisfy the additional constraints.
       For instance, if the frequency is restricted to the C-band,
       the list of operational modes should not include any modes
       applicable only to the L-band.";
    leaf otsi-carrier-frequency {
      type l0-types:frequency-thz;
      description
        "OTSi carrier frequency, i.e. configured transmitter
         frequency.";
    }
    container tx-tune-constraints {
      description
        "The permissible tuning frequency range for the
         transmitter.";
      uses l0-types:transceiver-tuning-range;
    }
    leaf-list line-coding-bitrate {
      type identityref {
        base l0-types:line-coding;
      }
      description
        "The list of the bit rate/line coding of the optical
         tributary signal that constrains the configuration of
         the transceiver.";
      reference
        "ITU-T G.698.2 section 7.1.2";
    }
    leaf tx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel transmit power.";
    }
    leaf preferred-rx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel received power.";
    }
    uses l0-types:path-constraints;
  }

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

  grouping transceiver-common-config {
    description
      "This grouping specifies common configurations
       for transceivers.";
    leaf transceiver-id {
      type uint32;
      description
        "Transceiver identifier";
    }
    leaf otsi-carrier-id {
      type uint16;
      description
        "OTSi carrier identifier associated with the
         transceiver.";
    }
    leaf otsi-carrier-frequency {
      type l0-types:frequency-thz;
      description
        "OTSi carrier frequency, i.e. configured transmitter
         frequency.";
    }
    leaf tx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel transmit power.";
    }
  }

  grouping regenerator-incoming-outgoing-common-state {
    description
      "This grouping specifies common states
       for incoming and outgoing transceivers
       associated with a regenerator group.";
    leaf operational-mode {
      type string {
        length "1..255";
      }
      description
        "Operational mode of the transceiver.";
    }
    leaf line-coding-bitrate {
      type identityref {
        base l0-types:line-coding;
      }
      description
        "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";
    }
  }

  grouping regenerator-incoming-outgoing-common-config {
    description
      "This grouping specifies common configurations
       for incoming and outgoing transceivers
       associated with a regenerator group.";
    uses regenerator-incoming-outgoing-common-state;
    leaf preferred-rx-channel-power {
      type l0-types:power-dbm;
      description
        "The preferred channel received power.";
    }
    uses l0-types:path-constraints;
  }

  grouping transponder-digital-termination-config {
    description
      "This grouping specifies the configuration of
       digital layer termination applicable to the
       transceivers.";
    container digital-terminations {
      description
        "Digital layer termination applicable to the transceivers.";
      list digital-termination {
        key "index";
        description
          "Sequence of digital layer terminations.";
        leaf index {
          type uint8;
          description
            "An index number used to identify entries in the list,
             organized in ascending order of their values.";
        }
        leaf termination-type {
          type identityref {
            base otsig-termination-type;
          }
          description
            "Digital layer termination before/after inverse
             multiplexing in the tx/rx direction of the transceiver,
             that applies to the whole OTSiG, also applicable to
             the special case when there is a single OTSi in the
             OTSiG, i.e. without inverse multiplexing.";
        }
        leaf mapping-type {
          type identityref {
            base digital-mapping-type;
          }
          description
            "Identifies the type of digital mapping of the
             client payload.";
        }
      }
    }
  }

  grouping transceiver-inverse-multiplexing-config {
    description
      "This grouping specifies inverse-multiplexing configurations
       applicable to multi-carrier transceivers.";
    container inverse-multiplexing {
      presence "When present, it indicates that the transceiver
                supports inverse multiplexing.";
      description
        "Transceiver configuration for inverse multiplexing.";
      leaf inverse-mux-type {
        type identityref {
          base inverse-mux-type;
        }
        description
          "Type of inverse multiplexing.";
      }
      leaf otsi-lane-termination-type {
        type identityref {
          base otsi-lane-termination-type;
        }
        description
          "Digital layer termination before/after inverse
           multiplexing in the rx/tx direction of the
           transceiver, that applies to a single OTSi within
           the inverse multiplexing group.";
      }
      container additional-transceivers {
        description
          "Configuration for additional transceivers with
           an index value 1 and higher within the same
           inverse multiplexing group.";
        leaf index {
          type uint8 {
            range "1..max";
          }
          description
            "The index of the transceiver in the inverse
             multiplexing group starting from value 1.";
        }
        uses transceiver-common-config;
      }
    }
  }

  grouping transceiver-config {
    description
      "This grouping specifies configurations for transceivers
       at source, destination nodes, as well as at regenerator
       nodes with a single pair of regenerator.";
    leaf transponder-id {
      type uint32;
      description
        "transponder identifier";
    }
    uses transponder-digital-termination-config;
    container transceiver {
      description
        "Specifies transceiver configurations. The attributes
         specified in this container, excluding those within
         the inverse-multiplexing container, apply to a single
         transceiver when inverse multiplexing is not supported,
         as well as to the first transceiver, identified by an
         index value of 0 when inverse multiplexing is enabled.

         Attributes within the inverse-multiplexing container
         are applicable exclusively to transceivers with an
         index value of 1 or higher, belonging to the same
         inverse multiplexing group.";
      uses transceiver-common-config;
      uses regenerator-incoming-outgoing-common-config;
      uses transceiver-inverse-multiplexing-config;
    }
  }

  grouping multi-regen-transceiver-config {
    description
      "This grouping specifies configurations for transceivers
       at at regenerator nodes with multiple pairs of
       regenerators.";
    leaf transponder-id {
      type uint32;
      description
        "transponder identifier";
    }
    container transceiver {
      description
        "Specifies transceiver configurations at a regenerator
         node with multiple pairs of regenerators.";
      uses transceiver-common-config;
    }
  }

  grouping regenerator-common-config {
    description
      "This grouping defines a set of common attributes
       applicable to 3R regenerators.";
    leaf regen-group-id {
      type uint32;
      description
        "3R group identifier.";
    }
    leaf regeneration-layer {
      type identityref {
        base otsig-regeneration-layer;
      }
      description
        "Indicate the chosen level of digital layer
         regeneration, e.g. ODU, FlexOnM, before/after inverse
         multiplexing in the tx/rx direction, that applies to
         the whole OTSiG. It also applies to the case when
         there is only one OTSi in the OTSiG, i.e. without
         inverse multiplexing, in which case the number of
         OTSis in the OTSiGs before/after the regenerator
         may be different.";
    }
  }

  grouping path-transceiver-config {
    description
      "This grouping defines a set of transceivers on a node,
       serving as either source transceivers, destination
       transceivers, or regenerators.";
    choice node-position {
      description
        "The relative position of the node within the path.";
      case source {
        container source-transponder {
          description
            "Constraints for configuring transceivers at the
             source node transponder.";
          uses transceiver-config;
        }
      }
      case destination {
        container destination-transponder {
          description
            "Constraints for configuring transceivers at the
             source node transponder.";
          uses transceiver-config;
        }
      }
      case regenerator {
        container regenerator {
          description
            "Constraints for configuring transponders at the
             regenerator node with a pair of transponder as
             regenerator.

             The forward direction refers to the direction of
             the optical path traversing from the source to the
             destination, while the reverse direction refers to
             direction of the optical path, traveling from the
             destination back to the source.

             For uni-directional regenerators, one transponder,
             labeled 'incoming', regenerates signals in the
             forward direction, while another transponder,
             labeled 'outgoing', handles signal regeneration
             in the reverse direction.

             For bi-directional, or back-to-back regenerators,
             one transponder, labeled 'incoming', receives and
             transmits signal from/to the same segment of the
             optical path toward the source, while another
             transponder, labeled 'outgoing', receives and
             transmits signal from/to the same segment of the
             optical path toward the destination.";
          uses regenerator-common-config;
          container incoming-transponder {
            description
              "Constraints for transceiver configurations in the
               incoming direction of the regenerator.";
            uses transceiver-config;
          }
          container outgoing-transponder {
            description
              "Constraints for transceiver configurations at the
               outgoing direction of the regenerator";
            uses transceiver-config;
          }
        }
      }
      case regenerators {
        container regenerators {
          description
            "Constraints for configuring transponders at the
             regenerator node with multiple transponder pairs
             (therefore, in multiple regenerator groups) as
             regenerators. A such example is described in
             ITU-T G.798 Amd.3 for FlexOxR.

             The forward direction refers to the direction of
             the optical path traversing from the source to the
             destination, while the reverse direction refers to
             direction of the optical path, traveling from the
             destination back to the source.

             For uni-directional regenerators, mulitple
             transponders, labeled 'incoming', together regenerate
             signals in the forward direction, while another
             multiple transponders, labeled 'outgoing', handles
             signal regeneration in the reverse direction.

             For bi-directional, or back-to-back regenerators,
             mulitple transponder, labeled 'incoming', receive and
             transmits signal from/to the same segment of the
             optical path toward the source, while another
             multiple transponder, labeled 'outgoing', receives and
             transmits signal from/to the same segment of the
             optical path toward the destination.";
          container common-incoming {
            description
              "Common configuration for transponders in the incoming
               direction.";
            uses regenerator-incoming-outgoing-common-config;
          }
          container common-outgoing {
            description
              "Common configuration for transponders in the outgoing
               direction.";
            uses regenerator-incoming-outgoing-common-config;
          }
          list regenerator {
            key "index";
            description
              "A list of regenerators used at the regenerator
               node.";
            leaf index {
              type uint8;
              description
                "An index number used to identify a regenerator
                 in the list, organized in ascending order of their
                 values.";
            }
            uses regenerator-common-config;
            container incoming-transponder {
              description
                "Constraints for transceiver configurations in the
                 incoming direction of the regenerator.";
              uses multi-regen-transceiver-config;
            }
            container outgoing-transponder {
              description
                "Constraints for transceiver configurations at the
                 outgoing direction of the regenerator";
              uses multi-regen-transceiver-config;
            }
          }
        }
      }
    }
  }

  grouping transceiver-measured-parameters {
    description
      "Measured transceiver parameters.";
    container pre-fec-ber {
      description
        "Timestamp and value of the Pre-FEC Bit Error Rate (BER)
         of the received signal.";
      leaf timestamp {
        type yang:timestamp;
        description
          "Timestamp associated with the Pre-FEC BER.";
      }
      leaf value {
        type decimal64 {
          fraction-digits 18;
        }
        description
          "Pre-FEC BER of the received signal.";
      }
    }
    container q-factor {
      description
        "Timestamp and value of the estimated Q-factor based on
         the pre-FEC BER.";
      leaf timestamp {
        type yang:timestamp;
        description
          "Timestamp associated with the Q-factor.";
      }
      leaf value {
        type l0-types:decimal-2-or-unknown;
        units "dB";
        description
          "Estimated Q-factor based on the pre-FEC BER.";
      }
    }
  }

  grouping transceiver-state {
    description
      "This grouping specifies transceiver state parameters
       at source, destination nodes, as well as at regenerator
       nodes with a single pair of regenerator.";
    leaf transponder-id {
      type uint32;
      description
        "transponder identifier";
    }
    uses transponder-digital-termination-config;
    container transceiver {
      description
        "Specifies transceiver states. The attributes
         specified in this container, excluding those within
         the inverse-multiplexing container, apply to a single
         transceiver when inverse multiplexing is not supported,
         as well as to the first transceiver, identified by an
         index value of 0 when inverse multiplexing is enabled.

         Attributes within the inverse-multiplexing container
         are applicable exclusively to transceivers with an
         index value of 1 or higher, belonging to the same
         inverse multiplexing group.";
      uses transceiver-common-config;
      uses regenerator-incoming-outgoing-common-state;
      uses l0-types:common-transceiver-readonly-param;
      uses transceiver-inverse-multiplexing-config;
    }
  }

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

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

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

  grouping path-transceiver-state {
    description
      "This grouping defines a set of transceivers on a node,
       serving as either source transceivers, destination
       transceivers, or regenerators.";
    choice node-position {
      description
        "The relative position of the node within the path.";
      case source {
        container source-transponder {
          description
            "Transceiver states at the source node transponder.";
          uses transceiver-state;
        }
      }
      case destination {
        container destination-transponder {
          description
            "Transceiver states at the destination node
             transponder.";
          uses transceiver-state;
        }
      }
      case regenerator {
        container regenerator {
          description
            "The states of a regenerator node with a pair of
             transponder as regenerator.

             The forward direction refers to the direction of
             the optical path traversing from the source to the
             destination, while the reverse direction refers to
             direction of the optical path, traveling from the
             destination back to the source.

             For uni-directional regenerators, one transponder,
             labeled 'incoming', regenerates signals in the
             forward direction, while another transponder,
             labeled 'outgoing', handles signal regeneration
             in the reverse direction.

             For bi-directional, or back-to-back regenerators,
             one transponder, labeled 'incoming', receives and
             transmits signal from/to the same segment of the
             optical path toward the source, while another
             transponder, labeled 'outgoing', receives and
             transmits signal from/to the same segment of the
             optical path toward the destination.";
          uses regenerator-common-config;
          container incoming-transponder {
            description
              "Constraints for transceiver configurations in the
               incoming direction of the regenerator.";
            uses transceiver-state;
          }
          container outgoing-transponder {
            description
              "Constraints for transceiver configurations at the
               outgoing direction of the regenerator";
            uses transceiver-state;
          }
        }
      }
      case regenerators {
        container regenerators {
          description
            "Regenerator states at a regenerator node formed by
             multiple parallel regenerators. A such example is
             described in ITU-T G.798 Amd.3 for FlexOxR.

             The forward direction refers to the direction of
             the optical path traversing from the source to the
             destination, while the reverse direction refers to
             direction of the optical path, traveling from the
             destination back to the source.

             For uni-directional regenerators, mulitple
             transponders, labeled 'incoming', together regenerate
             signals in the forward direction, while another
             multiple transponders, labeled 'outgoing', handles
             signal regeneration in the reverse direction.

             For bi-directional, or back-to-back regenerators,
             mulitple transponder, labeled 'incoming', receive and
             transmits signal from/to the same segment of the
             optical path toward the source, while another
             multiple transponder, labeled 'outgoing', receives and
             transmits signal from/to the same segment of the
             optical path toward the destination.";
          container common-incoming {
            description
              "Common configuration for transponders in the incoming
               direction.";
            uses regenerator-incoming-outgoing-common-state;
          }
          container common-outgoing {
            description
              "Common configuration for transponders in the outgoing
               direction.";
            uses regenerator-incoming-outgoing-common-state;
          }
          list regenerator {
            key "index";
            description
              "A list of regenerators used at the
               regenerator node.";
            leaf index {
              type uint8;
              description
                "An index number used to identify a regenerator
                 in the list, organized in ascending order of their
                 values.";
            }
            uses regenerator-common-config;
            container incoming-transponder {
              description
                "Constraints for transceiver configurations in the
                 incoming direction of the regenerator.";
              uses multi-regen-transceiver-config;
            }
            container outgoing-transponder {
              description
                "Constraints for transceiver configurations at the
                 outgoing direction of the regenerator";
              uses multi-regen-transceiver-config;
            }
          }
        }
      }
    }
  }

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

  grouping wdm-constraint {
    description
      "Grouping for WDM tunnel constraints";
    container wdm-constraint {
      description
        "WDM tunnel constraints.";
      uses global-transceiver-constraint;
      leaf use-regen {
        type boolean;
        default "false";
        description
          "Indicate whether or not regenerators (e.g. 3R) should be
           considered. When this parameter is set to true, the
           tunnel path may include a regen when the path is not
           feasible for direct optical reach.";
      }
      /*
      leaf-list regen-levels {
        when '../use-regen = "true"' {
          description
            "Regenerator must be enabled for the regen levels
             to be considered.";
        }
        //type l0-types:regen-level;
        type string;
        description
          "Indicate the levels of 3R regeration permitted by
           the tunnel.";
      }
       */
      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:tunnel-attributes;
      leaf guard-band-size {
        type l0-types:frequency-thz;
        description
          "Guard band size in THz.";
      }
      leaf matching-fwd-rev-wavelength {
        type boolean;
        default "true";
        description
          "Indicate whether or not the assigned channels for
           forward and reverse wavelength path must be the same.";
      }
      leaf allow-retuning {
        type boolean;
        default "false";
        description
          "Indicate whether or not re-tuning is allowed when one or
           more paths of a WDM tunnel is being restored. Typically,
           wavelength retuning is not preferred for wavelength
           planning considerations.";
      }
      leaf delta-power {
        type l0-types:power-ratio;
        description
          "Delta power in dB indicating the per-channel power
           deviation from the nominal power per channel at the
           output of an OMS.";
      }
    }
  }

  /*
   * Data nodes
   */
  /*
   * Global constraints for WDM tunnel
   */

  augment "/te:te/te:tunnels/te:tunnel" {
    description
      "Augment with additional parameters required for WDM
       tunnel configurations.";
    uses wdm-constraint;
    //uses digital-layer-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-include-exclude/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE primary explicit path (include or exclude)
       with transceiver configurations.";
    uses path-transceiver-config;
  }

  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 explicit path (exclude always)
       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-include-exclude/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE primary reverse explicit path (include or exclude)
       with transceiver configurations.";
    uses path-transceiver-config;
  }

  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 explicit path (exclude always)
       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-include-exclude/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE secondary explicit path (include or exclude)
       with transceiver configurations.";
    uses path-transceiver-config;
  }

  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 explicit path (exclude always)
       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-include-exclude/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop" {
    description
      "Augment TE secondary reverse explicit path (include or
       exclude) with transceiver configurations.";
    uses path-transceiver-config;
  }

  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 explicit path (exclude always)
       with transceiver configurations.";
    uses path-transceiver-config;
  }

  /*
   * Computed transceiver properties for primary path.
   */

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

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

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

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

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

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

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

  /*
   * Computed transceiver properties for primary reverse path.
   */

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

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

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

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

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

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

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

  /*
   * Computed transceiver properties for secondary path.
   */

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

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

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

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

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

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

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

  /*
   * Computed transceiver properties for secondary reverse path.
   */

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

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

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

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

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

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

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

  /*
   * Actual transceiver state.
   */

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

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

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

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:node-position/wdm-tnl:regenerator/"
        + "wdm-tnl:regenerator/"
        + "wdm-tnl:incoming-transponder/wdm-tnl:transceiver" {
    description
      "Augment regen incoming transceiver with additional measured
       parameters.";
    uses transceiver-measured-parameters;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:node-position/wdm-tnl:regenerator/"
        + "wdm-tnl:regenerator/"
        + "wdm-tnl:outgoing-transponder/wdm-tnl:transceiver" {
    description
      "Augment regen outgoing transceiver with additional measured
       parameters.";
    uses transceiver-measured-parameters;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:node-position/wdm-tnl:regenerators/"
        + "wdm-tnl:regenerators/wdm-tnl:common-incoming" {
    description
      "Augment regen incoming transceiver with additional measured
       parameters.";
    uses transceiver-measured-parameters;
  }

  augment "/te:te/te:lsps/te:lsp/"
        + "te:lsp-actual-route-information/"
        + "te:lsp-actual-route-information/te:type/"
        + "te:numbered-node-hop/te:numbered-node-hop/"
        + "wdm-tnl:node-position/wdm-tnl:regenerators/"
        + "wdm-tnl:regenerators/wdm-tnl:common-outgoing" {
    description
      "Augment regen outgoing transceiver with additional measured
       parameters.";
    uses transceiver-measured-parameters;
  }

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

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

  /*
   * Augment TE label range information
   */

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

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

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

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

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

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

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

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

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

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

  /*
   * Augment TE label.
   */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</section>


  </middle>

  <back>

    <references title='Normative References'>

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


    </references>

    <references title='Informative References'>

&RFC6163;
&RFC7698;


    </references>


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

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

</section>

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

  </back>

<!-- ##markdown-source:
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
7ane9mSbhDsz2/PzJnuduV6k4vKLdFx+Z0pOu482aciVdFuvk62ORjJZ2bpZ
LZcBa1W0q0gq2UblDqyrc+07cNyWKi/k519/YTvTsPcjTZvcmrOjlbptHv5G
1C0QOCpmMW+VyXmzIinSsbi30WjfilHpaOILla/buIlb82btINVw0+ALXxRT
w9k11LBC6MK6eIlUcRPal1wnGzErlbHWeJfQO/UcMKOAlKjV8WjRfVX3VI6S
mc9V47r4aday8nWt7W5noqr7rz5RSnhq8wtbkp0umPiOPirh6GLKQarfZVOd
MSrR6mRb9jvx05wYNR/CRRKkWiLE6mPnTS2WKlXvo547hZ8v88ncStRLmsEX
4OfapvAVjWE54/lbJPMQdinz+OaQ0GwiX81IviYO2gzo+VvkU+7jFVmhR+VT
eGHSIxrCqm/kyw5GTMN6ChJecDvigTe8aANnEE3xptbpjPIl9CYhIuwd9PFy
f5e9iAq2n2VAjyMM6K+/2D/aMNPX2JXJtEItVrKFCj1KJeOGqsXoXy9M77Sg
rZ+sMADvH7WkAon5VWAIeRBN/fjJY4dZR3ixMwYrabMiZ1uWvLswzceC5EIE
GWaxCfhvb+QHtnq4LPXQopgSfv5TdSWuBU4rm/KzJqx9Raop8C5DMp2ZLWnn
bXsgqsvkQ5KeJgYe8A2Acmvhi4sTh/fb0dWOpUXW+RXPmdgLXXRhlruCe5UG
466Za+5aizM9q/SXVfqLafr101+sIzHVYyjyDXuwjPsh7joLK+Imk2b4NryO
1Uf0ORwsKrOoIJPH/J3Lvak3ffqGXOBIe9dWxRpb4IgjtwRL4NFu9BVOZ1YP
k+vSkRZwbwi4XQGc4YB1HPrN7oa8HaFJf4nkWdquxyKdpq25U1e5/ebCudxe
G4Q6AhDLb3EfT+SPSrpAWycAyHObdBWtgcL04UZB2yZWmY89z9641xWr+vDd
Md0CLM3nyCQ88XDDhVviVcLFp7PiXJ+SECBjjUaVFmFaCiicHfMFkg8upUpX
uQc3n3swqGlLFV+42h67I+vuIq+gfUJVg8p1GG92ijeeRYCsI6eDxawuSgxo
nRsuhlViwCoxYJUYsEoM+BYTAyrC+yHnBcyZ6tdKCziytJRRxg3aCz0FclFd
TFgp5BnWlHclbMOOfU2g6+371Y79ase+mbdWO/arHftvZcd+QfV37zfs587z
Tvbrq5OsqsDVfr36rPbrV/v1t7ZfL25NqnYup3zZQGQxqRROXqT6ZH1nfy4w
LaHExek0b1vDKX/VhC682mUR/KhS2ZUK+DZ2atNu7Ltlui13Wrlzm0tbZxsc
XhdcVt2FHqYpvGDtNwOpfWBKtjYCQ5NfvOl8YC5XErYriffCVQsUmmc/Hm2o
MspDZxkF8hpqHvZUDWpxmYLYLBYVrwuxTVaKCtN2c4knMm+mdD+XrM8sgDDR
fLFfQxuMdvsR98VeCtJSrGFtM2V42VJ9W19UTGf2Bo9YxHQ+1HYWafDve71N
Q4LfcRO55GvfX96npBrfuE0hdid1+XrRsRi8YjrqcuASw41lMzY33ZwEazJP
XYYRtRoXZwvSoAIppjq9tJPMZSKuH4xtZH31GuaxLr1BPTs117TAHE/k9Rxf
E/0GAmYguAoNbnc9NoJJNcDwVjXuOBw+7ihbVBBbM2ynUt6ccPvjkd3SdQ7N
LnqNjJVq3uKiMJOx4AivcQkeC9VQ93KwwFoTaRoryLYi6hX2yoZ0cw32CibO
4I+PLRk8VD8f7YzRaQhsdOJZ6FxYohLXXZmASA51OZfagXauRcCPigiIC1OE
U26BKkSkZGLlO7ZMmfgC5iqLtn89vSHruVu8KTgNg+TubKd4O4nY1aY9Iktp
RniQXJRNEHdc9tjgfIYiPT53ggsWdvRcZQ6KKbfprnO7ub7vUq3uanVGB6ch
jwu/Ugy0uRwo9XMhEvewP1H7E/k3fGFfiEoaD00Cla2Ar9mwh/wkkg6ritEl
aM378l1srXMd6sYvmL2zspBXzRy+OW7NKVPXi9Ald4m6MIHkuL55RNztWbUt
DUFlC/jHL0WkY22z4P2C0//F7UPmz7V2w21HNhfbh6Ywl5XCimIkUmQHENSk
jT3WYN2SQHMtPPHD5ib9pFLAqF5E5SUHSwPXsHXwMcuiKd4JgDwv3t5xSnWo
QlldU5ZN1sWtOLp/c8v/XQ67+JeEhPJZ8s01zRc/gJhzf8W3+RlCGRUeWM0F
91K6KKzezP7VU3dPyptCaHhYILVGwrnnoUd5CZN0ttn0cAGOGOxr/Cp4hcBc
VwYlXdVCf+rkYZFC016IyuaOlkoUmgOWB/dylp4fn/rn+V2iXt8TQ5DcCtov
s/CUTr1vC1B9l/CL59VG922VKmI8pNV6a4S6wyXdQqclWdo5hyfhcmhVDUsL
t7i/3yfNarC83Kv161DgDhZjKwGWbhkuiY5tp7wtm+dxyINQtnW6tC5gBYVa
x19/AS8hze50qd+95t1Np7OyqJ76zPA+ILyqt+bV3rolHEiAxOueAaXW0nnT
fhF7rTyqjYq/u1zS9LTWjnjjhtlBzcPBc43YChAzqfn01gkHt2gMPyRauc0x
UFQkcd85S7GpnoqsouYW9XMPuplFngU4o340pBYT0+dvNXPUjms3XDJkUL1i
j1thDytvq7lZy3mSKzKKnR254pZ7xy2WUdzc7MIXmjKNrshLYgdWZw2t2Okb
ZKemnK1rsVPTnX8rdrp37JRfyE+5blbJS15JnhWrXMAqSkgsqVS5ir9sB8qW
YwfpIbHmQ3euvzmCrjzwFQ+t3PQVS91jllr58iueu388t3L4Vzy3igqs+Om+
8tMDCh24yW5fJUPtIfHc/YsJfNv0Wrn8KxZZefQrjlkGw2PlsK9YajlY6hvx
x1csdQWW+nbd7RW7fB12eZDe9DW34q95TuGB8eJ99rJX9Ft53SuWWXnhKw5a
Yg5aeeUrFlt6FvvmvPQVi6289hX73BP2uSde/E5QlNCvPSZ5ePN99Dif5fLf
GkHgmedTr5Jw1q1/l3tZUbfa6Cad5NfH7wSSsZIeOchi+tfzge8Dfu6jE6ru
076A+21aNVzB/S1Rbkl9wRUhvxWXbEXpb8UzWlH6ITgoKyo+BD/hm6FiHCUf
alRUDy/pArRdY67Gbri+nLDYfIv68iKvTBrR1/B4ORCofVUzJN0Ox4B7x9zu
da7TKi6DIbwnwOAySmGVWaxzWdNrOiwRJZ68VK5OFgTPw8r6WUT3HQlqV58u
ht6WueqrTUAWQJ+5uuFOgaIuEcc5CM/WzKE5VoCSScKIg13IxTeNUGDgy2D0
wlduBr38jrB7cfFG9/xL5UFzgM3i2TtF6nyepXmcO/fdLyEubXZdXg5dflwu
ci7r/jGvk/B0zxF/rzj9LhBfTY2sPbrPDF05ErfcKL0frHrXKHW3Alt/ehhc
e7cC4Vqovm/cfE1Utzl68zcjb8oNqb51g8XMFWFayCUdcOhGvEV/B5MkjdPx
+WUICB0ZkqmS5gQgk+DLkuYKDAkv3i9pLgAV2/iCAUS6sOPpqLZ1hyfw8Ta9
cKqvbmujPcApWnyZs8qWia5tFwssEWEliDrkZ+4LedDUvVo05sJXjLil2zTq
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

-->

</rfc>

