<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc strict="no" ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC3688 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml">
<!ENTITY RFC6020 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6020.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY RFC6242 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6242.xml">
<!ENTITY RFC7581 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7581.xml">
<!ENTITY RFC7665 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7665.xml">
<!ENTITY RFC7698 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7698.xml">
<!ENTITY RFC7699 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7699.xml">
<!ENTITY RFC7950 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC8040 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8040.xml">
<!ENTITY RFC8049 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8049.xml">
<!ENTITY RFC8340 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8340.xml">
<!ENTITY RFC8341 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8341.xml">
<!ENTITY RFC8342 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8342.xml">
<!ENTITY RFC8345 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8345.xml">
<!ENTITY RFC8363 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8363.xml">
<!ENTITY RFC8446 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8446.xml">
<!ENTITY RFC8453 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8453.xml">
<!ENTITY RFC8454 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8454.xml">
<!ENTITY RFC8466 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8466.xml">
<!ENTITY RFC8639 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8639.xml">
<!ENTITY RFC8640 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8640.xml">
<!ENTITY RFC8641 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8641.xml">
<!ENTITY RFC8650 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8650.xml">
<!ENTITY RFC8795 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8795.xml">
<!ENTITY RFC9093 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9093.xml">
]>

<rfc category="std" docName="draft-ietf-ccamp-flexigrid-yang-13" ipr="trust200902">

<front>

<title abbrev="Flexi-Grid YANG">A YANG Data Model for Flexi-Grid Optical Networks</title>

<author initials="J.E." surname="Lopez de Vergara" fullname="Jorge E. Lopez de Vergara Mendez">
  <organization>Naudit HPCN</organization>
  <address>
    <email>jorge.lopez_vergara@uam.es</email>
  </address>
</author>

<author initials="D." surname="Perdices Burrero" fullname="Daniel Perdices Burrero">
  <organization>Universidad Autonoma de Madrid</organization>
  <address>
    <email>daniel.perdices@uam.es</email>
  </address>
</author>

<author initials="D." surname="King" fullname="Daniel King">
  <organization>Old Dog Consulting</organization>
  <address>
    <email>daniel@olddog.co.uk</email>
  </address>
</author>

<author initials="Y." surname="Lee" fullname="Young Lee">
  <organization>Samsung</organization>
  <address>
    <email>younglee.tx@gmail.co</email>
  </address>
</author>

<author initials="H." surname="Zheng" fullname="Haomian Zheng">
  <organization>Huawei Technologies</organization>
  <address>
    <email>zhenghaomian@huawei.com</email>
  </address>
</author>

<date year="2022" />

<workgroup>CCAMP Working Group</workgroup>

<keyword>Flexi-Grid</keyword>

<abstract>

  <t>This document defines a YANG module for managing flexi-grid optical
     networks.  The model defined in this document specifies a flexi-grid
     traffic engineering database that is used to describe the topology of
     a flexi-grid network.  It is based on and augments existing YANG
     models that describe network and traffic engineering topologies.</t>

  <t>The YANG data model defined in this document conforms to the Network
     Management Datastore Architecture (NMDA).</t>

</abstract>

</front>

<middle>

<section anchor="INTRO" title="Introduction">

  <t>The flexible grid (flexi-grid) optical network technology defined by
     the International Telecommunication Union Telecommunication
     Standardization Sector (ITU-T) and documented in Recommendation
     ITU-T_G.694.1 <xref target="ITU-T_G.694.1" /> and ITU-T_G.872 <xref target="ITU-T_G.872" />
     provides an enhanced Dense Wavelength Division Multiplexing (DWDM) 
     grid by defining a set of nominal central frequencies, slot widths, and the concept of the
     "frequency slot". This technology increases both transport
     network scalability and flexibility, allowing the optimization of
     bandwidth usage.</t>

  <t><xref target="RFC7698" /> provides a framework for GMPLS-Based control of
     flexi-grid DWDM networks while <xref target="RFC7699" /> defines
     generalized labels for the use of GMPLS in flexi-grid networks.</t>
     
  <t><xref target="RFC8363" /> provides extensions to the OSPF-TE protocol so as to support GMPLS control of flexi-grid
     networks.</t>

  <t>This document presents a YANG data model <xref target="RFC7950" /> for flexi-grid
     objects in the dynamic optical network, including nodes, transponders
     and links, as well as how such links interconnect nodes. This model is
     independent of control plane protocols.</t>

  <t>This document identifies the flexi-grid components, parameters, and
     their values. It characterizes the features and the performances of
     the flexi-grid elements. For this, it augments <xref target="RFC8795" />, 
	  and imports the generic Layer 0 types and use of "media-channel" defined in 
	  <xref target="RFC9093" />.</t>
	  
	<t>An application example in Section 4 is also provided to better understand
	  the utility of this YANG model.</t> 
 
  <t>A partner document defines a second YANG module that described flexi-
     grid tunnels, i.e., the paths from source to destination
     through a number of intermediate nodes
     <xref target="I-D.ietf-ccamp-flexigrid-tunnel-yang" />.</t>
  
  <t>Impairment-aware traffic engineering topology is described in 
     <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang" />.</t>
     
  <t>The YANG data model defined in this document conforms to the Network
     Management Datastore Architecture (NMDA) <xref target="RFC8342" />.</t>

</section>

<section anchor="TERM" title="Terminology">

  <t>Refer to <xref target="RFC7698" /> 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:

     <list style="symbols">

        <t>client</t>

        <t>server</t>

        <t>augment</t>

        <t>data model</t>

        <t>data node</t>

     </list></t>

  <t>The following terms are defined in <xref target="RFC6241" /> and are not
     redefined here:

     <list style="symbols">

        <t>configuration data</t>

        <t>state data</t>

     </list></t>

  <t>The terminology for describing YANG data models is found in
     <xref target="RFC7950" />.</t>

</section>

<section anchor="TREE" title="Tree Diagram">

  <t>A simplified graphical representation of the data model is used in
     this document.  The meaning of the symbols in these diagrams is defined
     in <xref target="RFC8340" />.</t>

  <section anchor="NODENAMES" title="Prefixes in Data Node Names">

     <t>In this document, names of data nodes and other data model objects
        are prefixed using the standard prefix associated with the
        corresponding YANG imported modules, as shown in <xref target="PrefixTab" />.
        It uses prefixes from <xref target="RFC9093" />,
        <xref target="RFC8345" />, and <xref target="RFC8795" />.</t>

     <figure title="Prefixes and Corresponding YANG modules" anchor="PrefixTab">
       <artwork>
         <![CDATA[
      +-------------+-------------------------+-----------------+
      | Prefix      | YANG module             | Reference       |
      +-------------+-------------------------+-----------------+
      | l0-types    | ietf-layer0-types       | [RFC9093]       |
      | flexgt      | ietf-flexi-grid-topology| RFC XXXX        |
      | nw          | ietf-network            | [RFC8345]       |
      | nt          | ietf-network-topology   | [RFC8345]       |
      | tet         | ietf-te-topology        | [RFC8795]       |
      +-------------+-------------------------+-----------------+
         ]]>
       </artwork>
     </figure>

     <t>Please replace XXXX with the RFC number assigned to this document. Please remove this note.</t>

  </section>

</section>


<section anchor="EXAMPLES" title="Example of Use">

   <t>In order to explain how this model is used, we provide the following
      example.  An optical network usually has multiple transponders,
      switches (nodes) and links. Figure 2 shows a simple topology.</t>

   <figure anchor="egfig" title="Topology Example" align="left" alt="" width="" height="">
      <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height="">
         <![CDATA[
   +----------+                                        +----------+
   |  Flexi-  |                                        | Flexi-   |
   |   grid   |                                        |  grid    |
   |  node A  |                                        | node E   |
   |          |        +------+        +------+        |          |
   |          | Link 1 |Flexi-| Link 2 |Flexi-| Link 3 |          |
   |          |<------>| grid |<------>| grid |<------>|          |
   |......... |        |node B|        |node C|        | .........|
   | Trans- : |        +------+        +------+        | : Trans- |
   | ponder : |                                        | : ponder |
   |    A   : |              +----------+              | :    E   |
   |........: |     Link 4   |Flexi-grid|   Link 5     | :........|
   |          |<------------>|   node   |<------------>|          |
   |          |              |    D     |              |          |
   |          |              +----------+              |          |
   +----------+                                        +----------+
         ]]>
      </artwork>
   </figure>

   <t>In order to configure a network media channel 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:

      <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 the identifiers, addresses and interfaces of nodes A and B.</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 flexi-grid labels are available.</t>

         <t>Other information, such as the slot frequency and granularity are
            also provided.</t>

      </list></t>
</section>

<section anchor="FLEXGTMODEL" title="YANG Data Model for Flexi-Grid Topology">

  <section anchor="OVERVIEW" title="Flexi-Grid Topology Data Model Overview">


    <t>This document describes the data model for flexi-grid topology. As a
       classic traffic engineering (TE) technology, flexi-grid provides WDM
       switching in transport network.  Therefore the YANG
       module presented in this document augments from a more generic
       TE network topology data model, i.e., the ietf-te-topology, as specified in <xref target="RFC8795" />, 
       following the guidelines provided in section 6 of <xref target="RFC8795" />.</t>

    <t>Common types, identities, and groupings defined in <xref target="RFC9093" />
       are reused in this document.</t>

    <t>The figure below shows the augmentation relationship between YANG models.</t>

    <figure title="Relationship between Flexi-Grid and TE topology models" anchor="Augments">
       <artwork>
         <![CDATA[
                     +-------------------------+
        TE generic   |    ietf-te-topology     |
                     +-------------------------+
                                  ^
                                  |
                                  | Augments
                                  |
                     +------------+-------------+
        Flexi-Grid   | ietf-flexi-grid-topology |
                     +--------------------------+
         ]]>
       </artwork>
     </figure>


     <t>The entities and TE attributes, such as node, termination points and
        links, are still applicable for describing a flexi-grid topology and the
        model presented in this document only specifies the technology-
        specific attributes/information.</t>
        
        
     <t>The flexi-grid specific attributes and label format is defined in <xref target="RFC7699" />, 
        including the grid type, channel spacing, slot width granularity, n and m 
        parameters.  A collection of common data types have also been specified in <xref target="RFC9093" />,
        and used in this document for augmentation of the generic TE topology model.</t>

     <t>The YANG module ietf-flexi-grid-topology defined in this document conforms
        to the Network Management Datastore Architecture (NMDA) defined in
        <xref target="RFC8342" />.</t>

  </section>
      
  <section anchor="ATTAUG" title="Augmentations for Flexi-Grid Topology and Node">

     <t>There are a few characteristics augmenting to the generic TE
        topology.</t>


     <t>Following the guidelines in <xref target="RFC8795" />, a 
        flexi-grid-topology network-type is specified as the 
        indicator of flexi-grid in the topology as shown in Figure 4.</t>

    <figure title="Flexi-Grid Topology Augmentation" anchor="FlexGridAugments">
       <artwork>
         <![CDATA[
       
       augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
         +--rw flexi-grid-topology!
         ]]>
       </artwork>
     </figure>

     <t>A flexi-grid-node presence container is specified, augmenting the
        generic TE node attributes, to indicate that the TE node is a Flexi-Grid node as shown in Figure 5.</t>

    <figure title="Flex-Grid Node Augmentation" anchor="FlexiGridNodeAugments">
       <artwork>
         <![CDATA[
       
       augment /nw:networks/nw:network/nw:node/tet:te
               /tet:te-node-attributes:
         +--rw flexi-grid-node!
         ]]>
       </artwork>
     </figure>

     <t>It is assumed that all the flexi-grid nodes are reconfigurable.</t>   
        
  </section>

  <section anchor="BWAUG" title="Bandwidth Augmentation">

     <t>No bandwidth augmentations are needed for this YANG module.</t>

     <t>As described in Section 4.2 of <xref target="RFC7699" />,
        there is some overlap between bandwidth and label in Layer 0.</t>

     <t>The flexi-grid label resource information described in section 5.4,
        is sufficient to also describe the spectrum resources within a flexi-grid network.
        Therefore, the model does not define any augmentation for the te-bandwidth 
        containers defined in <xref target="RFC8795" />.</t>
        
  </section>

  <section anchor="LBLAUG" title="Label Augmentation">

     <t>The model augments all the occurrences of the label-restriction list in <xref target="RFC8795"/>
        with flexi-grid technology specific attributes using the flexi-grid-label-range-info
        grouping defined in <xref target="RFC9093" />.</t>
       
     <t>Moreover, following the guidelines in <xref target="RFC8795" />, the model augments
        all the occurrences of the te-label container with the flexi-grid technology
        specific attributes using the flexi-grid-label-start-end, flexi-grid-label-hop and
        flexi-grid-label-step groupings defined in <xref target="RFC9093" />. </t>
        
  </section>

</section>

 <section anchor="tree" title="YANG Model (Tree Structure) for Flexi-Grid Topology" toc="default">
   <t>
   <figure anchor="treefigure" title="" suppress-title="true" align="left" alt="" width="" height="">
    <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height="">
<![CDATA[
module: ietf-flexi-grid-topology

  augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
    +--rw flexi-grid-topology!
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes:
    +--rw flexi-grid-node!
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction:
    +--ro grid-type?    identityref
    +--ro priority?     uint8
    +--ro flexi-grid
       +--ro slot-width-granularity?   identityref
       +--ro min-slot-width-factor?    uint16
       +--ro max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction:
    +--ro grid-type?    identityref
    +--ro priority?     uint8
    +--ro flexi-grid
       +--ro slot-width-granularity?   identityref
       +--ro min-slot-width-factor?    uint16
       +--ro max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction:
    +--ro grid-type?    identityref
    +--ro priority?     uint8
    +--ro flexi-grid
       +--ro slot-width-granularity?   identityref
       +--ro min-slot-width-factor?    uint16
       +--ro max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:information-source-entry/tet:label-restrictions
            /tet:label-restriction:
    +--ro grid-type?    identityref
    +--ro priority?     uint8
    +--ro flexi-grid
       +--ro slot-width-granularity?   identityref
       +--ro min-slot-width-factor?    uint16
       +--ro max-slot-width-factor?    uint16
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction:
    +--rw grid-type?    identityref
    +--rw priority?     uint8
    +--rw flexi-grid
       +--rw slot-width-granularity?   identityref
       +--rw min-slot-width-factor?    uint16
       +--rw max-slot-width-factor?    uint16
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-start/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-end/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:underlay/tet:primary-path/tet:path-element/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:underlay/tet:backup-path/tet:path-element/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:optimizations/tet:algorithm/tet:metric
            /tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:optimizations/tet:algorithm/tet:metric
            /tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:path-properties/tet:path-route-objects
            /tet:path-route-object/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:underlay/tet:primary-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:underlay/tet:backup-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:optimizations/tet:algorithm
            /tet:metric/tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:optimizations/tet:algorithm
            /tet:metric/tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:path-properties
            /tet:path-route-objects/tet:path-route-object/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-start/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-end/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:label-restrictions/tet:label-restriction
            /tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-grid-channel-spacing?   identityref
       +--ro flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:underlay/tet:primary-path/tet:path-element/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:underlay/tet:backup-path/tet:path-element/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:optimizations/tet:algorithm/tet:metric
            /tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:optimizations/tet:algorithm/tet:metric
            /tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:path-properties/tet:path-route-objects
            /tet:path-route-object/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-grid-channel-spacing?   identityref
       +--ro flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-grid-channel-spacing?   identityref
       +--ro flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:underlay/tet:primary-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:underlay/tet:backup-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:optimizations/tet:algorithm
            /tet:metric/tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:optimizations/tet:algorithm
            /tet:metric/tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:path-properties
            /tet:path-route-objects/tet:path-route-object/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:underlay
            /tet:primary-path/tet:path-element/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:underlay
            /tet:backup-path/tet:path-element/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:optimizations
            /tet:algorithm/tet:metric/tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:optimizations
            /tet:algorithm/tet:metric/tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities/tet:path-properties
            /tet:path-route-objects/tet:path-route-object/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:underlay
            /tet:primary-path/tet:path-element/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:underlay/tet:backup-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:optimizations
            /tet:algorithm/tet:metric/tet:optimization-metric
            /tet:explicit-route-exclude-objects
            /tet:route-object-exclude-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:optimizations
            /tet:algorithm/tet:metric/tet:optimization-metric
            /tet:explicit-route-include-objects
            /tet:route-object-include-object/tet:type/tet:label
            /tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities
            /tet:local-link-connectivity/tet:path-properties
            /tet:path-route-objects/tet:path-route-object/tet:type
            /tet:label/tet:label-hop/tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--ro (single-or-super-channel)?
          +--:(single)
          |  +--ro flexi-n?              l0-types:flexi-n
          |  +--ro flexi-m?              l0-types:flexi-m
          +--:(super)
             +--ro subcarrier-flexi-n* [flexi-n]
                +--ro flexi-n    l0-types:flexi-n
                +--ro flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:underlay/tet:primary-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:underlay/tet:backup-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:information-source-entry/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:information-source-entry/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--ro flexi-n?   l0-types:flexi-n
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:information-source-entry/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--ro flexi-grid-channel-spacing?   identityref
       +--ro flexi-n-step?                 uint8
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:underlay/tet:primary-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:underlay/tet:backup-path
            /tet:path-element/tet:type/tet:label/tet:label-hop
            /tet:te-label/tet:technology:
    +--:(flexi-grid)
       +--rw (single-or-super-channel)?
          +--:(single)
          |  +--rw flexi-n?              l0-types:flexi-n
          |  +--rw flexi-m?              l0-types:flexi-m
          +--:(super)
             +--rw subcarrier-flexi-n* [flexi-n]
                +--rw flexi-n    l0-types:flexi-n
                +--rw flexi-m?   l0-types:flexi-m
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-start/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-end/tet:te-label
            /tet:technology:
    +--:(flexi-grid)
       +--rw flexi-n?   l0-types:flexi-n
  augment /nw:networks/tet:te/tet:templates/tet:link-template
            /tet:te-link-attributes/tet:label-restrictions
            /tet:label-restriction/tet:label-step/tet:technology:
    +--:(flexi-grid)
       +--rw flexi-grid-channel-spacing?   identityref
       +--rw flexi-n-step?                 uint8
]]> 
    </artwork>
   </figure>
   </t>
  </section>
  <!--  tree END  --> 


<section anchor="YANGCode" title="The YANG Code for Flexi-grid topology">

   <figure>
      <artwork>
         <![CDATA[
<CODE BEGINS> file "ietf-flexi-grid-topology@2022-07-04.yang"
module ietf-flexi-grid-topology {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-flexi-grid-topology";
  prefix "flexgt";

  import ietf-network {
    prefix "nw";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  import ietf-network-topology {
    prefix "nt";
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }

  import ietf-te-topology {
    prefix "tet";
    reference
      "RFC 8795: YANG Data Model for Traffic Engineering
       (TE) Topologies";
  }

  import ietf-layer0-types {
    prefix "l0-types";
    reference
      "RFC 9093: A YANG Data Model for Layer 0 Types";
  }

  organization
     "IETF CCAMP Working Group";
  contact
    "WG Web: <https://datatracker.ietf.org/wg/ccamp/>
     WG List: <mailto:ccamp@ietf.org>

     Editor: Jorge E. Lopez de Vergara
             <mailto:jorge.lopez_vergara@uam.es>

     Editor: Daniel Perdices
             <mailto:daniel.perdices@uam.es>

     Editor: Haomian Zheng
             <mailto:zhenghaomian@huawei.com>

     Editor: Daniel King
             <mailto:d.king@lancaster.ac.uk>

     Editor: Young Lee
             <mailto:younglee.tx@gmail.com>";

  description
    "This module provides a YANG data model for the routing and
     wavelength assignment (RWA) Traffic Engineering (TE)
     topology in flexi-grid optical networks. The YANG model
     described in this document is a flexi-grid technology-specific
     YANG model augmenting the generic TE topology module
     (ietf-te-topology, RFC 9795) based on RFC 7698 and RFC 7699.

     Copyright (c) 2022 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 2022-07-04 {
    description
      "Initial Version";
    reference
      "RFC XXXX: A YANG Data Model for Flexi-Grid Optical Networks";
    // RFC Ed.: replace XXXX with actual RFC number, update date
    // information and remove this note
  }

  /*
   * Data nodes
   */

  augment "/nw:networks/nw:network/nw:network-types"
        + "/tet:te-topology" {
    description
      "Augment network types to define flexi-grid topology type.";
    container flexi-grid-topology {
      presence
        "Its presence identifies the flexi-grid topology type.";
      description
        "Introduce new network type for flexi-grid topology.";
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te"
        + "/tet:te-node-attributes" {
    when "/nw:networks/nw:network/nw:network-types"
       + "/tet:te-topology/flexgt:flexi-grid-topology" {
      description
      "Augmentation parameters apply only for networks with
       flexi-grid topology type.";
    }
    description "Augment TE node attributes.";
    container flexi-grid-node {
      presence "The TE node is a flexi-grid node.";
      description
        "Introduce new TE node type for flexi-grid node.";
    }
  }

  /*
   * Augment TE label range information
   */

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the TE node
       connectivity matrices.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the source Link
       Termination Point (LTP) of the connectivity matrix entry.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the destination LTP
       of the connectivity matrix entry.";
    uses l0-types:flexi-grid-label-range-info;
  }
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/"
        + "tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the TE node
       connectivity matrices information source.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the source LTP
       of the connectivity matrix entry information source.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the destination LTP
       of the connectivity matrix entry information source.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the Tunnel
      Termination Point (TTP) Local Link Connectivities.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the TTP
       Local Link Connectivity entry.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the TE link.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction" {
    when "../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range information for the TE link
       information source.";
    uses l0-types:flexi-grid-label-range-info;
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction" {
    description
      "Augment TE label range information for the TE link template.";
    uses l0-types:flexi-grid-label-range-info;
  }

  /*
   * Augment TE label
   */

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TE node
       connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/"
        + "tet:label-restriction/tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TE node
       connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:label-restrictions/"
        + "tet:label-restriction/tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TE node
       connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:underlay/tet:primary-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path of the
       TE node connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:underlay/tet:backup-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path of the
       TE node connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the TE node connectivity
       matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the TE node connectivity
       matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the TE node connectivity matrices.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the source LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the source LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the source LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the destination LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the destination LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/"
        + "tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the destination LTP
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:primary-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:backup-path/tet:path-element/"
        + "tet:type/tet:label/tet:label-hop/"
        + "tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:optimizations/"
        + "tet:algorithm/tet:metric/tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:optimizations/"
        + "tet:algorithm/tet:metric/tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the connectivity matrix entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TE node connectivity
       matrices information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TE node connectivity
       matrices information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/"
        + "tet:connectivity-matrices/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TE node connectivity
       matrices information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the TE node connectivity matrices of the information
       source entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the TE node connectivity matrices of the information
       source entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the TE node connectivity matrices
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the TE node connectivity matrices
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the TE node connectivity matrices information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the source LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }
  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the source LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:from/tet:label-restrictions/"
        + "tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the source LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the destination LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the destination LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:to/tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the destination LTP
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the connectivity matrix entry
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the connectivity matrix entry
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the connectivity matrix entry information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
      + "tet:tunnel-termination-point/"
      + "tet:local-link-connectivities/"
      + "tet:label-restrictions/tet:label-restriction/"
      + "tet:label-start/"
      + "tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TTP
       Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/"
        + "tet:te-label/tet:technology"{
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TTP
       Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/"
        + "tet:technology"{
    when "../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TTP
       Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the TTP Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the TTP Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the TTP Local Link
       Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the TTP Local Link
       Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the TTP Local Link Connectivities.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TTP
       Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TTP
       Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TTP
       Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the TTP Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the TTP Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-exclude-objects/"
        + "tet:route-object-exclude-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects excluded
       by the path computation of the TTP Local Link
       Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:optimizations/tet:algorithm/tet:metric/"
        + "tet:optimization-metric/"
        + "tet:explicit-route-include-objects/"
        + "tet:route-object-include-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the explicit route objects included
       by the path computation of the TTP Local Link
       Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity/"
        + "tet:path-properties/tet:path-route-objects/"
        + "tet:path-route-object/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the computed path route objects
       of the TTP Local Link Connectivity entry.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }
  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay primary path
       of the TE link.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    when "../../../../../../../../"
       + "nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label hop for the underlay backup path
       of the TE link.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TE link.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TE link.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TE link.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range start for the TE link
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    when "../../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range end for the TE link
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te/"
        + "tet:information-source-entry/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    when "../../../../../../nw:network-types/tet:te-topology/"
       + "flexgt:flexi-grid-topology" {
      description
        "Augmentation parameters apply only for networks with
         flexi-grid topology type.";
    }
    description
      "Augment TE label range step for the TE link
       information source.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:underlay/tet:primary-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    description
      "Augment TE label hop for the underlay primary path
       of the TE link template.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:underlay/tet:backup-path/tet:path-element/tet:type/"
        + "tet:label/tet:label-hop/tet:te-label/tet:technology" {
    description
      "Augment TE label hop for the underlay backup path
       of the TE link template.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-hop;
    }
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-start/tet:te-label/tet:technology" {
    description
      "Augment TE label range start for the TE link template.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-end/tet:te-label/tet:technology" {
    description
      "Augment TE label range end for the TE link template.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-start-end;
    }
  }

  augment "/nw:networks/tet:te/tet:templates/"
        + "tet:link-template/tet:te-link-attributes/"
        + "tet:label-restrictions/tet:label-restriction/"
        + "tet:label-step/tet:technology" {
    description
      "Augment TE label range step for the TE link template.";
    case flexi-grid {
      uses l0-types:flexi-grid-label-step;
    }
  }
}
<CODE ENDS>
         ]]>
      </artwork>
   </figure>
</section>

<section anchor="SECURITY" title="Security Considerations">

   <t>The YANG module specified in this document defines a schema for data
       that is designed to be accessed via network management protocols
       such as NETCONF <xref target="RFC6241" /> or RESTCONF
       <xref target="RFC8040" />.  The lowest NETCONF layer is the secure
       transport layer, and the mandatory-to-implement secure transport is
       Secure Shell (SSH) <xref target="RFC6242" />.  The lowest RESTCONF
       layer is HTTPS, and the mandatory-to-implement secure transport is
       Transport Layer Security (TLS) <xref target="RFC8446" />.</t>

   <t>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. The
	   NETCONF Protocol SSH <xref target="RFC6242" /> describes a
	   method for invoking and running NETCONF within a SSH  session as an SSH subsystem. The 
	   Network Configuration Access  Control Model (NACM) <xref target="RFC8341" /> 
	   provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset
	   of all available NETCONF or RESTCONF protocol operations and
	   content.</t>

   <t>A number of configuration data nodes defined in this document are
      writable/deletable (i.e., "config true"). These data nodes may be
      considered sensitive or vulnerable in some network environments.</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>

   <figure>
      <artwork>
         <![CDATA[
   /nw:networks/nw:network/nw:network-types/tet:te-topology
   /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes
   /nw:networks/nw:network/nw:node/nt:termination-point/tet:te
   /nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes
   /te-connectivity-matrices/te-connectivity-matrix/tet:path-
   constraints/tet:te-bandwidth/tet:technology
   /nw:networks/nw:network/nw:node/tet:te
   /tet:tunnel-termination-point/tet:local-link-connectivities
   /tet:label-restrictions/tet:label-restriction
         ]]>
      </artwork>
   </figure>
</section>

<section anchor="IANA" title="IANA Considerations">

   <t>IANA is requested to assigned a new URI from the "IETF XML Registry"
      <xref target="RFC3688" /> as follows:</t>

   <figure>
      <artwork>
         <![CDATA[
      URI: urn:ietf:params:xml:ns:yang:ietf-flexi-grid-topology
      Registrant Contact: The IESG
      XML: N/A; the requested URI is an XML namespace.
         ]]>
      </artwork>
   </figure>

   <t>IANA is requested to assign a new YANG module name in the "YANG
      Module Names" registry <xref target="RFC6020" /> as follows:</t>

   <figure>
      <artwork>
         <![CDATA[
      Name: ietf-flexi-grid-topology
      Namespace: urn:ietf:params:xml:ns:yang:ietf-flexi-grid-topology
      Prefix: flexgt
      Reference: RFC XXXX
         ]]>
      </artwork>
   </figure>
</section>

<section anchor="CONT" title="Contributors">

   <t>This work was developed by several additional people, who due to
      frontpage author restrictions, are listed below:</t>

  <t>
  Oscar Gonzalez de Dios
  <vspace blankLines="0" /> 
  Telefonica I+D/GCTO
  <vspace blankLines="0" /> 
  Email: oscar.gonzalezdedios@telefonica.com
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Gabriele Galimberti
  <vspace blankLines="0" /> 
  Cisco
  <vspace blankLines="0" /> 
  Email: ggalimbe@cisco.com
  <vspace blankLines="0" /> 
  </t>
 
   <t>
  Sergio Belotti
  <vspace blankLines="0" /> 
  Nokia
  <vspace blankLines="0" /> 
  Email: sergio.belotti@nokia.com
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Zafar Ali
  <vspace blankLines="0" /> 
  Cisco
  <vspace blankLines="0" /> 
  Email: zali@cisco.com
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Daniel Michaud Vallinoto
  <vspace blankLines="0" /> 
  Universidad Autonoma de Madrid
  <vspace blankLines="0" /> 
  Email: daniel.michaud@estudiante.uam.es
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Steven Hill, 
  <vspace blankLines="0" /> 
  MTN Group Technology
  <vspace blankLines="0" /> 
  Email: Steven.Hill@mtn.com
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Victor Lopez
  <vspace blankLines="0" /> 
  Nokia
  <vspace blankLines="0" /> 
  Email: victor.lopez@nokia.comm
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Italo Busi
  <vspace blankLines="0" /> 
  Huawei
  <vspace blankLines="0" /> 
  Email: Italo.Busi@huawei.com
  <vspace blankLines="0" /> 
  </t>
  
  <t>
  Aihua Guo
  <vspace blankLines="0" /> 
  Futurewei
  <vspace blankLines="0" /> 
  Email: aihuaguo.ietf@gmail.com
  <vspace blankLines="0" /> 
  </t>
<!--
   <figure>
      <artwork>
         <![CDATA[
       o Oscar Gonzalez de Dios, Telefonica I+D/GCTO
       o Gabriele Galimberti, Cisco Photonics Srl
       o Sergio Belotti, Nokia
       o Zafar Ali, Cisco Systems
       o Daniel Michaud Vallinoto, Universidad Autonoma de Madrid
       o Steven Hill, MTN Group Technology
       o Victor Lopez, Nokia
	    o Italo Busi, Huawei 
	    o Aihua Guo, Futurewei
         ]]>
      </artwork>
   </figure>
   -->
</section>

<section anchor="ACK" title="Acknowledgments">

   <t>The work presented in this document has been partially funded
      by the European Commission under the project H2020 METRO-HAUL
      (Metro High bandwidth, 5G Application-aware optical network, with
      edge storage, compUte and low Latency), Grant Agreement number:
      761727.</t>
      
   <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>

   <t>Thanks to Adrian Farrel for reviewing this document and assisting
      with conversion to XML.</t>

</section>

</middle>

<back>

<references title="Normative References">
  &RFC3688;
  &RFC6020;
  &RFC6241;
  &RFC6242;
  &RFC7699;
  &RFC7950;
  &RFC8040;
  &RFC8341;
  &RFC8342;
  &RFC8345;
  &RFC8363;
  &RFC8446;
  &RFC8795;
  &RFC9093;

</references>

<references title="Informative References">
  &RFC7698;
  &RFC8340;

  <?rfc include='reference.I-D.ietf-ccamp-flexigrid-tunnel-yang'?>

  <?rfc include='reference.I-D.ietf-ccamp-optical-impairment-topology-yang'?>


  <reference anchor="ITU-T_G.694.1">
    <front>
    <title>
    Spectral grids for WDM applications: DWDM frequency grid
    </title>
    <author>
    <organization>International Telecommunication Union</organization>
       </author>
    <date month="February" year="2012"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.694.1"/>
  </reference>

  <reference anchor="ITU-T_G.872">
    <front>
    <title>
    Architecture of optical transport networks
    </title>
    <author>
    <organization>International Telecommunication Union</organization>
       </author>
    <date month="November" year="2010"/>
    </front>
    <seriesInfo name="ITU-T Recommendation" value="G.872, Amendment 1"/>
  </reference>

</references>

</back>
</rfc>