<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 2.7.0) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-ccamp-rfc9093-bis-10" category="std" consensus="true" submissionType="IETF" obsoletes="9093" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="L0 Common YANG Types">Common YANG Data Types for Layer 0 Networks</title>

    <author initials="S." surname="Belotti" fullname="Sergio Belotti" role="editor">
      <organization>Nokia</organization>
      <address>
        <email>sergio.belotti@nokia.com</email>
      </address>
    </author>
    <author initials="I." surname="Busi" fullname="Italo Busi" role="editor">
      <organization>Huawei</organization>
      <address>
        <email>italo.busi@huawei.com</email>
      </address>
    </author>
    <author initials="D." surname="Beller" fullname="Dieter Beller" role="editor">
      <organization>Nokia</organization>
      <address>
        <email>dieter.beller@nokia.com</email>
      </address>
    </author>
    <author initials="E." surname="Le Rouzic" fullname="Esther Le Rouzic">
      <organization>Orange</organization>
      <address>
        <email>esther.lerouzic@orange.com</email>
      </address>
    </author>
    <author initials="A." surname="Guo" fullname="Aihua Guo">
      <organization>Futurewei Technologies</organization>
      <address>
        <email>aihuaguo.ietf@gmail.com</email>
      </address>
    </author>

    <date year="2024" month="June" day="25"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<t>This document defines a collection of common data types, identities, and groupings
in the YANG data modeling language. 
These common types and groupings, derived from the built-in YANG data types, identities,
and groupings are intended to be imported by modules that model Layer 0
configuration and state capabilities, such as Wavelength Switched Optical Networks (WSONs) and
flexi-grid Dense Wavelength Division Multiplexing (DWDM) networks.</t>

<t>This document obsoletes RFC 9093 by replacing the YANG module it contained with a new revision that includes additional YANG data types, identities and groupings.</t>



    </abstract>



  </front>

  <middle>


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

<t>YANG <xref target="RFC7950"/> is a data modeling language used to model
   configuration data, state data, Remote Procedure Calls, and
   notifications for network management protocols such as the Network
   Configuration Protocol (NETCONF) <xref target="RFC6241"/>.  The YANG language
   supports a small set of built-in data types and provides mechanisms
   to derive other types from the built-in types.</t>

<t>This document introduces a collection of common data types derived
   from the built-in YANG data types.  The derived types and groupings
   are designed to be the common types applicable for modeling Traffic
   Engineering (TE) features as well as non-TE features (e.g., physical
   network configuration aspects) for Layer 0 optical networks in
   model(s) defined outside of this document.  The applicability of
   Layer 0 types specified in this document includes Wavelength Switched
   Optical Networks (WSONs) <xref target="RFC6163"/> <xref target="ITU-T_G.694.1"/> and <xref target="ITU-T_G.694.2"/>, and flexi-grid Dense
   Wavelength Division Multiplexing (DWDM) networks <xref target="RFC7698"/>
   <xref target="ITU-T_G.694.1"/>.</t>

<t>This document adds new type definitions to the YANG modules and
   obsoletes <xref target="RFC9093"/>.  For further details, see the revision
   statements of the YANG module in <xref target="yang-code"/> or the summary in
   <xref target="changes-bis"/>.</t>

<t>This document obsoletes <xref target="RFC9093"/> by replacing it in its entirety. It
provides a new revision of the YANG module contained in that RFC,
and retains the data types previously defined, but also adds new type
definitions to the YANG module.
For further details, see <xref target="changes-bis"/>.</t>

<t>The YANG data model in this document conforms to the Network
   Management Datastore Architecture defined in <xref target="RFC8342"/>.</t>

<section anchor="terminology-and-notations"><name>Terminology and Notations</name>

<t>Refer to <xref target="RFC7446"/> and <xref target="RFC7581"/> for the key terms used in this
   document, and the terminology for describing YANG data models can be
   found in <xref target="RFC7950"/>.</t>

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

</section>
<section anchor="prefix-in-data-node-names"><name>Prefix in Data Node Names</name>

<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 module.</t>

<texttable title="Prefixes and corresponding YANG module" anchor="tab-prefixes">
      <ttcol align='left'>Prefix</ttcol>
      <ttcol align='left'>YANG module</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>l0-types</c>
      <c>ietf-layer0-types</c>
      <c>RFC XXXX</c>
</texttable>

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

</section>
</section>
<section anchor="layer-0-types-module-contents"><name>Layer 0 Types Module Contents</name>

<t>This document defines a YANG module for common Layer 0 types, ietf-
   layer0-types.  This module is used for WSON and flexi-grid DWDM
   networks.  The "ietf-layer0-types" module contains the following YANG
   reusable YANG data types, identities and groupings:</t>

<t>l0-grid-type:</t>

<ul empty="true"><li>
  <t>A base YANG identity for the grid type as defined in <xref target="RFC6205"/> and
     <xref target="RFC7699"/>.</t>
</li></ul>

<t>cwdm-ch-spc-type:</t>

<ul empty="true"><li>
  <t>A base YANG identity for the Coarse Wavelength Division
     Multiplexing (CWDM) channel-spacing type as defined in <xref target="RFC6205"/>.</t>
</li></ul>

<t>dwdm-ch-spc-type:</t>

<ul empty="true"><li>
  <t>A base YANG identity for the DWDM channel-spacing type as defined
     in <xref target="RFC6205"/>.</t>
</li></ul>

<t>flexi-ncfg-type:</t>

<ul empty="true"><li>
  <t>A base YANG identity for the DWDM flexi-grid Nominal Central Frequency Granularity (NCFG) 
      type as defined in <xref target="RFC7699"/>.</t>
</li></ul>

<ul empty="true"><li>
  <t>Note that the only value for NCFG standardized in <xref target="ITU-T_G.694.1"/> is 6.25GHz.</t>
</li></ul>

<t>flexi-slot-width-granularity:</t>

<ul empty="true"><li>
  <t>A base YANG identity for the DWDM flexi-grid Slot Width Granularity (SWG) type, as defined in <xref target="RFC7699"/>.</t>
</li></ul>

<ul empty="true"><li>
  <t>Note that the only value for SWG standardized in <xref target="ITU-T_G.694.1"/> is 12.5GHz.</t>
</li></ul>

<t>fec-type:</t>

<ul empty="true"><li>
  <t>A base YANG identity from which specific FEC (Forward Error Correction) type identities are derived.</t>
</li></ul>

<t>line-coding:</t>

<ul empty="true"><li>
  <t>A base YANG identity from which specific identities defining the bit rate/line coding of optical tributary signals are derived.</t>
</li></ul>

<t>wavelength-assignment:</t>

<ul empty="true"><li>
  <t>A base YANG identity from which for Wavelength selection method, as defined in <xref target="RFC7689"/>.</t>
</li></ul>

<t>otu-type:</t>

<ul empty="true"><li>
  <t>This specifies the type of OTU, including the types specified in <xref target="ITU-T_G.709"/>.</t>
</li></ul>

<ul empty="true"><li>
  <t>Since <xref target="ITU-T_G.Sup43"/> does not guarantee interoperability in the data plane, the type of OTUk defined in <xref target="ITU-T_G.Sup43"/> can be defined in vendor-specific YANG modules using the otu-type identity, defined in this document, as the base.</t>
</li></ul>

<t>operational-mode:</t>

<ul empty="true"><li>
  <t>A YANG data type used to identify an organization (e.g., vendor) specific mode for transceiver capability description, as defined in Section 2.5.2 of <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/></t>
</li></ul>

<t>wson-label-start-end:</t>

<ul empty="true"><li>
  <t>The WSON label range was defined in <xref target="RFC6205"/>, and the generic
     topology model defines the label-start/label-end in <xref target="RFC8795"/>.
     This grouping shows the WSON-specific label-start and label-end
     information. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wson-label-hop:</t>

<ul empty="true"><li>
  <t>The WSON label range was defined in <xref target="RFC6205"/>, and the generic
     topology model defines the label-hop in <xref target="RFC8795"/>.  This grouping
     shows the WSON-specific label-hop information. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>l0-label-range-info:</t>

<ul empty="true"><li>
  <t>A YANG grouping that defines the Layer 0 label range information
     applicable for WSON as defined in <xref target="RFC6205"/>. The label range info is defined per priority <xref target="RFC4203"/>. This grouping is
     used in the flexi-grid DWDM by adding more flexi-grid-specific
     parameters. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wson-label-step:</t>

<ul empty="true"><li>
  <t>A YANG grouping that defines label steps for WSON as defined in
     <xref target="I-D.ietf-teas-rfc8776-update"/>. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>flexi-grid-label-start-end:</t>

<ul empty="true"><li>
  <t>The flexi-grid label range was defined in <xref target="RFC7699"/>, and the
  generic topology model defines the label-start/label-end in
  <xref target="RFC8795"/>.  This grouping shows the flexi-grid-specific label-
  start and label-end information which is used to describe the range of available nominal central frequencies. See <xref target="label-range"/> for more details.</t>
</li></ul>

<ul empty="true"><li>
  <t>As described in section 3.1 of <xref target="RFC8363"/>, the range of available nominal central frequencies are advertised for m=1, which means that for an available central frequency n, the frequency slot from central frequency n-1 to central frequency n+1 is available.</t>
</li></ul>

<t>flexi-grid-label-hop:</t>

<ul empty="true"><li>
  <t>The flexi-grid label range was defined in <xref target="RFC8363"/>, and the
     generic topology model defines the label-hop in <xref target="RFC8795"/>.  This
     grouping shows the WSON-specific label-hop information. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>flexi-grid-label-range-info:</t>

<ul empty="true"><li>
  <t>A YANG grouping that defines flexi-grid label range information as
     defined in <xref target="RFC8363"/>. See <xref target="label-range"/> for more details. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>flexi-grid-label-step:</t>

<ul empty="true"><li>
  <t>A YANG grouping that defines flexi-grid label steps as defined in
     <xref target="I-D.ietf-teas-rfc8776-update"/>. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wdm-label-start-end:</t>

<ul empty="true"><li>
  <t>A YANG grouping that combines the definition of label-start/label-end information
    that was defined separately in wson-label-start-end and flexi-grid-label-start-end,
    to support optical network scenarios that contain both fixed- and flexi-grid
    links. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wdm-label-hop:</t>

<ul empty="true"><li>
  <t>A YANG grouping that combines the definition of label hop information
    that was defined separately in wson-label-hop and flexi-grid-label-hop,
    to support optical network scenarios that contain both fixed- and flexi-grid
    links. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wdm-label-range-info:</t>

<ul empty="true"><li>
  <t>A YANG grouping that combines the definition of label range information
    that was defined separately in wson-label-range-info and flexi-grid-label-range-info,
    to support optical network scenarios that contain both fixed- and flexi-grid
    links. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>wdm-label-step:</t>

<ul empty="true"><li>
  <t>A YANG grouping that combines the definition of label step information
    defined separately in wson-label-step and flexi-grid-label-step,
    to support optical network scenarios that contain both fixed- and flexi-grid
    links. See <xref target="label-range"/> for more details.</t>
</li></ul>

<t>transceiver-capabilities:</t>

<ul empty="true"><li>
  <t>A YANG grouping to define the transceiver capabilities (also called
"modes") needed to determine optical signal compatibility.</t>
</li></ul>

<t>standard-mode:</t>

<ul empty="true"><li>
  <t>A YANG grouping for the standard modes defined in <xref target="ITU-T_G.698.2"/>.</t>
</li></ul>

<t>organizational-mode:</t>

<ul empty="true"><li>
  <t>A YANG grouping to define transponder operational mode supported by
organizations or vendors, as defined in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>
</li></ul>

<t>common-explicit-mode:</t>

<ul empty="true"><li>
  <t>A YANG grouping to define the list of attributes related to optical
impairments limits in case of transceiver explicit mode, as defined in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>
</li></ul>

<t>transmitter-tuning-range:</t>

<ul empty="true"><li>
  <t>A YANG grouping that defines the transmitter tuning range, which
includes the minimum and maximum tuning frequency, as well as the
frequency tuning steps.</t>
</li></ul>

<t>common-organizational-explicit-mode:</t>

<ul empty="true"><li>
  <t>A YANG grouping to define the common capabilities attributes limit
range in case of operational mode and explicit mode.</t>
</li></ul>

<t>modulation:</t>

<ul empty="true"><li>
  <t>A base YANG identity to define the different modulation types, as defined in <xref target="ITU-T_G.Sup39"/></t>
</li></ul>

<t>snr:</t>

<ul empty="true"><li>
  <t>A YANG data type used to represent an (Optical) Signal to Noise Ratio measured over 0.1 nm resolution bandwidth, as defined in <xref target="ITU-T_G.977.1"/></t>
</li></ul>

<t>psd:</t>

<ul empty="true"><li>
  <t>A YANG data type used to represent a Power Spectral Density (PSD), as defined in <xref target="ITU-T_G.9700"/></t>
</li></ul>

<t>penalty-value:</t>

<ul empty="true"><li>
  <t>A YANG grouping to define the penalty value for multiple penalty types, such as Chromatic Dispersion (CD), Polarization Mode Dispersion (PMD), as defined in <xref target="ITU-T_G.666"/> or Polarization Dependent Loss(PDL)</t>
</li></ul>

<section anchor="label-range"><name>WDM Label and Label Range</name>

<t>As described in <xref target="RFC6205"/> and <xref target="RFC7699"/>, the WDM label represents the frequency slot assigned to a WDM Label Switched Path (LSP) on a given WDM Link, which models an Optical Multiplex Section (OMS) Media Channel Group (MCG) as described in <xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/>.</t>

<t>The same WDM label shall be assigned to the same WDM LSP on all the WDM Links on a regen-free LSP path or path segment.</t>

<t>A frequency slot is defined in <xref target="ITU-T_G.694.1"/> as a contiguous frequency range characterized by its nominal central frequency and slot width. The frequency range allocated to a frequency slot is unavailable to other frequency slots.</t>

<t>The definition of the frequency slot depends on the WDM grid type:</t>

<t><list style="symbols">
  <t>In case of CWDM fixed-grid, defined in <xref target="ITU-T_G.694.2"/>, the frequency slot is defined by a fixed CWDM channel spacing (cwdm-ch-spc-type) and by the nominal central wavelength which is computed as described in <xref target="RFC6205"/>. The formula in <xref target="RFC6205"/> is copied here for reader convenience:</t>
</list></t>

<figure><artwork><![CDATA[
      lambda = 1471 nm + n * channel spacing (measured in nm)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC6205"/> as integer (positive, negative, or 0)</t>
</li></ul>

<t><list style="symbols">
  <t>In case of DWDM fixed-grid, defined in <xref target="ITU-T_G.694.1"/>, the frequency slot is defined by a fixed DWDM channel spacing (dwdm-ch-spc-type) and by the nominal central frequency, which is computed as described in <xref target="RFC6205"/>. The formula in <xref target="RFC6205"/> is copied here for reader convenience:</t>
</list></t>

<figure><artwork><![CDATA[
      f = 193100.000 GHz + n * channel spacing (measured in GHz)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC6205"/> as integer (positive, negative, or 0)</t>
</li></ul>

<t><list style="symbols">
  <t>In case of DWDM flexible-grid, defined in <xref target="ITU-T_G.694.1"/>, the frequency slot is defined by the slot width and by the nominal central frequency, which are computed, based on the slot width granularity (SWG, fixed at 12.5GHz in <xref target="ITU-T_G.694.1"/>), and of the nominal central frequency granularity (NCFG, fixed at 6.25GHz in <xref target="ITU-T_G.694.1"/>) respectively, as described in <xref target="RFC7698"/> and <xref target="RFC7699"/>. The formulas in <xref target="RFC7699"/> can be generalized as follows:</t>
</list></t>

<figure><artwork><![CDATA[
      SW = m * SWG (measured in GHz)
      f = 193100.000 GHz + N * NCFG (measured in GHz)
]]></artwork></figure>

<ul empty="true"><li>
  <t>where 'n' is defined in <xref target="RFC7699"/> as integer (positive, negative, or 0) and 'm' is defined in <xref target="RFC7698"/> as an integer greater than or equal to 1.</t>
</li></ul>

<t>The definition of the channel spacing, NCFG and SWG in the YANG model have been generalized to support modelling of vendor-specific values (e.g., finer vendor-specific granularity for NCFG and SWG).</t>

<t>The WDM Label Range represents the frequency slots that are available for WDM LSPs to be set up over a given WDM Link.</t>

<t>The WDM Label Range is defined by augmenting the label-restriction list, defined in <xref target="I-D.ietf-teas-rfc8776-update"/>, with WDM technology-specific attributes, using the l0-label-range-info grouping (for WSON only models) or the flexi-grid-label-range-info grouping (for DWDM flexible-grid only models) or the wdm-label-range-info grouping (for models that supports both WSON and DWDM flexible-grid).</t>

<t>Each entry in the label-restriction list represents either the range of the available central wavelength values (in case of CWDM fixed-grid) or the range of the available nominal central frequencies values (in case of DWDM fixed or flexible grids): the grid-type attribute defines the type of grid for each entry of the list.</t>

<t>In case of DWDM flexible grid, each entry in the label-restriction
list represents also the range of the supported slot width values
based on the following attributes, defined based on concepts used in <xref target="RFC7699"/>:</t>

<t><list style="symbols">
  <t>slot-width-granularity, which represents the minimum space between slot widths;</t>
  <t>min-slot-width-factor: a multiplier of the slot width granularity, indicating the minimum slot width supported by each entry in the label-restriction list;</t>
  <t>max-slot-width-factor: a multiplier of the slot width granularity, indicating the maximum slot width supported by each entry in the label-restriction list.</t>
</list></t>

<t>Each entry of the label-restriction list, as defined in <xref target="I-D.ietf-teas-rfc8776-update"/>, defines a label-start, a label-end, a label-step and a range-bitmap.</t>

<t>The label-start and label-end definitions, when used for representing WDM labe range, are augmented with WDM technology-specific attributes, using the wson-label-start-end grouping (for WSON only models) or the flexi-grid-label-start-end grouping (for DWDM flexible-grid only models) or the wdm-label-start-end grouping (for models that supports both WSON and DWDM flexible-grid).</t>

<t>The label-step definition, when used for representing WDM labe range, are augmented with WDM technology-specific attributes, using the wson-label-step grouping (for WSON only models) or the flexi-grid-label-step grouping (for DWDM flexible-grid only models) or the wdm-label-step grouping (for models that supports both WSON and DWDM flexible-grid). The label-step definition for WDM depends on the WDM grid type:</t>

<t><list style="symbols" anchor="yang-tree">
  <t>For CWDM and DWDM fixed grids, it describes the channel spacing, as defined in <xref target="RFC6205"/>;</t>
  <t>For DWDM flexible grids, it describes the nominal central frequency granularity (e.g., 6,25 GHz) as well as the multiplier for the supported values of n, as defined in <xref target="RFC7699"/>.</t>
</list></t>

</section>
</section>
<section anchor="yang-tree-for-layer-0-types-groupings"><name>YANG Tree for Layer 0 Types Groupings</name>

<figure anchor="fig-yang-tree"><artwork type="ascii-art"><![CDATA[
module: ietf-layer0-types

  grouping wdm-label-start-end:
    +-- (grid-type)?
       +--:(fixed-dwdm)
       |  +-- dwdm-n?    l0-types:dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?    l0-types:cwdm-n
       +--:(flexi-grid)
          +-- flexi-n?   l0-types:flexi-n
  grouping wdm-label-step:
    +-- (l0-grid-type)?
       +--:(fixed-dwdm)
       |  +-- wson-dwdm-channel-spacing?    identityref
       +--:(cwdm)
       |  +-- wson-cwdm-channel-spacing?    identityref
       +--:(flexi-grid)
          x-- flexi-grid-channel-spacing?   identityref
          +-- flexi-ncfg?                   identityref
          +-- flexi-n-step?                 uint8
  grouping wdm-label-hop:
    +-- (grid-type)?
       +--:(fixed-dwdm)
       |  +-- (fixed-single-or-super-channel)?
       |     +--:(single)
       |     |  +-- dwdm-n?               l0-types:dwdm-n
       |     +--:(multi)
       |        +-- subcarrier-dwdm-n*    l0-types:dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?                     l0-types:cwdm-n
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              l0-types:flexi-n
             |  +-- flexi-m?              l0-types:flexi-m
             x--:(super)
             |  x-- subcarrier-flexi-n* [flexi-n]
             |     +-- flexi-n?   l0-types:flexi-n
             |     +-- flexi-m?   l0-types:flexi-m
             +--:(multi)
                +-- frequency-slots
                   +-- frequency-slot* [flexi-n]
                      +-- flexi-n?   l0-types:flexi-n
                      +-- flexi-m?   l0-types:flexi-m
  grouping wdm-label-range-info:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  grouping wson-label-start-end:
    +-- (grid-type)?
       +--:(dwdm)
       |  +-- dwdm-n?   l0-types:dwdm-n
       +--:(cwdm)
          +-- cwdm-n?   l0-types:cwdm-n
  grouping wson-label-hop:
    +-- (grid-type)?
       +--:(dwdm)
       |  +-- (single-or-super-channel)?
       |     +--:(single)
       |     |  +-- dwdm-n?              l0-types:dwdm-n
       |     +--:(super)
       |        +-- subcarrier-dwdm-n*   l0-types:dwdm-n
       +--:(cwdm)
          +-- cwdm-n?                    l0-types:cwdm-n
  grouping l0-label-range-info:
    +-- grid-type?   identityref
    +-- priority?    uint8
  grouping wson-label-step:
    +-- (l0-grid-type)?
       +--:(dwdm)
       |  +-- wson-dwdm-channel-spacing?   identityref
       +--:(cwdm)
          +-- wson-cwdm-channel-spacing?   identityref
  grouping flexi-grid-label-start-end:
    +-- flexi-n?   l0-types:flexi-n
  grouping flexi-grid-frequency-slot:
    +-- flexi-n?   l0-types:flexi-n
    +-- flexi-m?   l0-types:flexi-m
  grouping flexi-grid-label-hop:
    +-- (single-or-super-channel)?
       +--:(single)
       |  +-- flexi-n?              l0-types:flexi-n
       |  +-- flexi-m?              l0-types:flexi-m
       x--:(super)
       |  x-- subcarrier-flexi-n* [flexi-n]
       |     +-- flexi-n?   l0-types:flexi-n
       |     +-- flexi-m?   l0-types:flexi-m
       +--:(multi)
          +-- frequency-slots
             +-- frequency-slot* [flexi-n]
                +-- flexi-n?   l0-types:flexi-n
                +-- flexi-m?   l0-types:flexi-m
  grouping flexi-grid-label-range-info:
    +-- grid-type?    identityref
    +-- priority?     uint8
    +-- flexi-grid
       +-- slot-width-granularity?   identityref
       +-- min-slot-width-factor?    uint16
       +-- max-slot-width-factor?    uint16
  grouping flexi-grid-label-step:
    x-- flexi-grid-channel-spacing?   identityref
    +-- flexi-ncfg?                   identityref
    +-- flexi-n-step?                 uint8
  grouping transceiver-mode:
    +-- (mode)
       +--:(G.698.2)
       |  +--ro standard-mode?            standard-mode
       |  +--ro line-coding-bitrate*      identityref
       |  +-- min-central-frequency?    frequency-thz
       |  +-- max-central-frequency?    frequency-thz
       |  +-- transceiver-tunability?   frequency-ghz
       |  +--ro tx-channel-power-min?     power-dbm
       |  +--ro tx-channel-power-max?     power-dbm
       |  +--ro rx-channel-power-min?     power-dbm
       |  +--ro rx-channel-power-max?     power-dbm
       |  +--ro rx-total-power-max?       power-dbm
       +--:(organizational-mode)
       |  +--ro organizational-mode
       |     +--ro operational-mode?          operational-mode
       |     +--ro organization-identifier?   organization-identifier
       |     +--ro line-coding-bitrate*       identityref
       |     +--ro min-central-frequency?     frequency-thz
       |     +--ro max-central-frequency?     frequency-thz
       |     +--ro transceiver-tunability?    frequency-ghz
       |     +--ro tx-channel-power-min?      power-dbm
       |     +--ro tx-channel-power-max?      power-dbm
       |     +--ro rx-channel-power-min?      power-dbm
       |     +--ro rx-channel-power-max?      power-dbm
       |     +--ro rx-total-power-max?        power-dbm
       +--:(explicit-mode)
          +--ro explicit-mode
             +--ro min-central-frequency?    frequency-thz
             +--ro max-central-frequency?    frequency-thz
             +--ro transceiver-tunability?   frequency-ghz
             +--ro tx-channel-power-min?     power-dbm
             +--ro tx-channel-power-max?     power-dbm
             +--ro rx-channel-power-min?     power-dbm
             +--ro rx-channel-power-max?     power-dbm
             +--ro rx-total-power-max?       power-dbm
             +--ro compatible-modes
  grouping transceiver-capabilities:
    +-- supported-modes!
       +--ro supported-mode* [mode-id]
          +--ro mode-id?                        string
          +--ro (mode)
             +--:(G.698.2)
             |  +--ro standard-mode?            standard-mode
             |  +--ro line-coding-bitrate*      identityref
             |  +--ro min-central-frequency?    frequency-thz
             |  +--ro max-central-frequency?    frequency-thz
             |  +--ro transceiver-tunability?   frequency-ghz
             |  +--ro tx-channel-power-min?     power-dbm
             |  +--ro tx-channel-power-max?     power-dbm
             |  +--ro rx-channel-power-min?     power-dbm
             |  +--ro rx-channel-power-max?     power-dbm
             |  +--ro rx-total-power-max?       power-dbm
             +--:(organizational-mode)
             |  +--ro organizational-mode
             |     +--ro operational-mode?          operational-mode
             |     +--ro organization-identifier?
             |     |       organization-identifier
             |     +--ro line-coding-bitrate*       identityref
             |     +--ro min-central-frequency?     frequency-thz
             |     +--ro max-central-frequency?     frequency-thz
             |     +--ro transceiver-tunability?    frequency-ghz
             |     +--ro tx-channel-power-min?      power-dbm
             |     +--ro tx-channel-power-max?      power-dbm
             |     +--ro rx-channel-power-min?      power-dbm
             |     +--ro rx-channel-power-max?      power-dbm
             |     +--ro rx-total-power-max?        power-dbm
             +--:(explicit-mode)
                +--ro explicit-mode
                   +--ro min-central-frequency?    frequency-thz
                   +--ro max-central-frequency?    frequency-thz
                   +--ro transceiver-tunability?   frequency-ghz
                   +--ro tx-channel-power-min?     power-dbm
                   +--ro tx-channel-power-max?     power-dbm
                   +--ro rx-channel-power-min?     power-dbm
                   +--ro rx-channel-power-max?     power-dbm
                   +--ro rx-total-power-max?       power-dbm
                   +--ro compatible-modes
                      +--ro supported-application-codes*
                      |       -> ../../../../supported-mode/mode-id
                      +--ro supported-organizational-modes*
                              -> ../../../../supported-mode/mode-id
  grouping standard-mode:
    +--ro standard-mode?   standard-mode
  grouping organizational-mode:
    +--ro operational-mode?          operational-mode
    +--ro organization-identifier?   organization-identifier
  grouping penalty-value:
    +--ro penalty-value    union
  grouping explicit-mode:
    +--ro line-coding-bitrate?                identityref
    +--ro bitrate?                            uint16
    +--ro max-diff-group-delay?               decimal-2
    +--ro max-chromatic-dispersion?           decimal-2
    +--ro cd-penalty* [cd-value]
    |  +--ro cd-value         decimal-2
    |  +--ro penalty-value    union
    +--ro max-polarization-mode-dispersion?   decimal-2
    +--ro pmd-penalty* [pmd-value]
    |  +--ro pmd-value        decimal-2
    |  +--ro penalty-value    union
    +--ro max-polarization-dependant-loss     power-loss-or-null
    +--ro pdl-penalty* [pdl-value]
    |  +--ro pdl-value        power-loss
    |  +--ro penalty-value    union
    +--ro available-modulation-type?          identityref
    +--ro min-OSNR?                           snr
    +--ro rx-ref-channel-power?               power-dbm
    +--ro rx-channel-power-penalty* [rx-channel-power-value]
    |  +--ro rx-channel-power-value    power-dbm
    |  +--ro penalty-value             union
    +--ro min-Q-factor?                       decimal-2
    +--ro available-baud-rate?                decimal64
    +--ro roll-off?                           decimal64
    +--ro min-carrier-spacing?                frequency-ghz
    +--ro available-fec-type?                 identityref
    +--ro fec-code-rate?                      decimal64
    +--ro fec-threshold?                      decimal64
    +--ro in-band-osnr?                       snr
    +--ro out-of-band-osnr?                   snr
    +--ro tx-polarization-power-difference?   power-ratio
    +--ro polarization-skew?                  decimal-2
  grouping common-standard-organizational-mode:
    +--ro line-coding-bitrate*   identityref
  grouping transmitter-tuning-range:
    +-- min-central-frequency?    frequency-thz
    +-- max-central-frequency?    frequency-thz
    +-- transceiver-tunability?   frequency-ghz
  grouping common-all-modes:
    +-- min-central-frequency?    frequency-thz
    +-- max-central-frequency?    frequency-thz
    +-- transceiver-tunability?   frequency-ghz
    +--ro tx-channel-power-min?     power-dbm
    +--ro tx-channel-power-max?     power-dbm
    +--ro rx-channel-power-min?     power-dbm
    +--ro rx-channel-power-max?     power-dbm
    +--ro rx-total-power-max?       power-dbm
  grouping common-transceiver-param:
    +-- line-coding-bitrate?   identityref
    +-- tx-channel-power?      power-dbm-or-null
    +--ro rx-channel-power?      power-dbm-or-null
    +--ro rx-total-power?        power-dbm-or-null
  grouping common-transceiver-configured-param:
    +-- line-coding-bitrate?   identityref
    +-- tx-channel-power?      power-dbm-or-null
  grouping common-transceiver-readonly-param:
    +--ro rx-channel-power?   power-dbm-or-null
    +--ro rx-total-power?     power-dbm-or-null
  grouping l0-tunnel-attributes:
    +-- wavelength-assignment?   identityref
  grouping frequency-range:
    +-- lower-frequency    frequency-thz
    +-- upper-frequency    frequency-thz
  grouping l0-path-constraints:
    +-- gsnr-extra-margin?   snr
  grouping l0-path-properties:
    +--ro estimated-gsnr?          snr
    +--ro estimated-eol-gsnr?      snr
    +--ro estimated-lowest-gsnr?   snr
]]></artwork></figure>

</section>
<section anchor="yang-code"><name>YANG Module for Layer 0 Types</name>

<t>This YANG module references <xref target="RFC6205"/>, <xref target="RFC7689"/>, <xref target="RFC7699"/>, <xref target="RFC7698"/>, <xref target="RFC8363"/>, <xref target="RFC8363"/>, <xref target="RFC9093"/>, <xref target="ITU-T_G.666"/>, <xref target="ITU-T_G.694.1"/>, <xref target="ITU-T_G.694.2"/>, <xref target="ITU-T_G.698.2"/>, <xref target="ITU-T_G.709"/>, <xref target="ITU-T_G.709.2"/>, <xref target="ITU-T_G.709.3"/>, <xref target="ITU-T_G.959.1"/> <xref target="ITU-T_G.975"/>, <xref target="ITU-T_G.975.1"/>, <xref target="ITU-T_G.977.1"/>, <xref target="ITU-T_G.9700"/> and <xref target="OIF_400ZR"/>.</t>

<figure title="Layer 0 Types YANG module" anchor="fig-yang-code"><sourcecode type="yang" markers="true" name="ietf-layer0-types@2024-03-04.yang"><![CDATA[
module ietf-layer0-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types";
  prefix l0-types;

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

     Editor:  Dieter Beller
              <mailto:Dieter.Beller@nokia.com>

     Editor:  Sergio Belotti
              <mailto:Sergio.Belotti@nokia.com>

     Editor:  Italo Busi
              <mailto:Italo.Busi@huawei.com>

     Editor:  Haomian Zheng
              <mailto:zhenghaomian@huawei.com>";
  description
    "This module defines Optical Layer 0 types.  This module
     provides groupings that can be applicable to Layer 0
     Fixed Optical Networks (e.g., CWDM (Coarse Wavelength
     Division Multiplexing) and DWDM (Dense Wavelength Division
     Multiplexing)) and flexi-grid optical networks.

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

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

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

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

// RFC Ed.: replace XXXX with actual RFC number and remove
// this note

// replace the revision date with the module publication date
// the format is (year-month-day)
  revision 2024-06-19 {
    description
      "To be updated";
    reference
      "RFC XXXX: A YANG Data Model for Layer 0 Types";
  }

  revision 2021-08-13 {
    description
      "Initial version";
    reference
      "RFC 9093: A YANG Data Model for Layer 0 Types";
  }

/*
 * Identities
 */

  identity l0-grid-type {
    description
      "Layer 0 grid type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable 
      (LSC), Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

    identity wson-grid-cwdm {
      base l0-grid-type;
      description
        "CWDM grid";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
        CWDM wavelength grid";
    }

    identity wson-grid-dwdm {
      base l0-grid-type;
      description
        "DWDM grid";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable 
        (LSC), Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity flexi-grid-dwdm {
      base l0-grid-type;
      description
        "Flexi-grid";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity cwdm-ch-spc-type {
    description
      "CWDM channel-spacing type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,
       
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

    identity cwdm-20nm {
      base cwdm-ch-spc-type;
      description
        "20nm channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,
        
        ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
        CWDM wavelength grid";
    }

  identity dwdm-ch-spc-type {
    description
      "DWDM channel-spacing type";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

    identity dwdm-100ghz {
      base dwdm-ch-spc-type;
      description
        "100 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-50ghz {
      base dwdm-ch-spc-type;
      description
        "50 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-25ghz {
      base dwdm-ch-spc-type;
      description
        "25 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

    identity dwdm-12p5ghz {
      base dwdm-ch-spc-type;
      description
        "12.5 GHz channel spacing";
      reference
        "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
        Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity flexi-ch-spc-type {
    status deprecated;
    description
      "Flexi-grid channel-spacing type";
  }

    identity flexi-ch-spc-6p25ghz {
      base flexi-ch-spc-type;
      status deprecated;
      description
        "6.25 GHz channel spacing";
    }

  identity flexi-ncfg-type {
    description
      "Flexi-grid Nominal Central Frequency Granularity (NCFG) 
      type";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

      ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
      DWDM frequency grid";
  }

    identity flexi-ncfg-6p25ghz {
      base flexi-ncfg-type;
      description
        "6.25 GHz Nominal Central Frequency Granularity (NCFG)";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity flexi-slot-width-granularity {
    description
      "Flexi-grid slot width granularity";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

      ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
      DWDM frequency grid";
  }

    identity flexi-swg-12p5ghz {
      base flexi-slot-width-granularity;
      description
        "12.5 GHz slot width granularity";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
        Switch Capable (LSC) Label Switching Routers,

        ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
        DWDM frequency grid";
    }

  identity modulation {
    description "base identity for modulation type";
  }

    identity DPSK {
      base modulation;
      description
        "DPSK (Differential Phase Shift Keying) modulation";
    }

    identity QPSK {
      base modulation;
      description
        "QPSK (Quadrature Phase Shift Keying) modulation";
    }

    identity DP-QPSK {
      base modulation;
      description
        "DP-QPSK (Dual Polarization Quadrature
        Phase Shift Keying) modulation";
    }

    identity QAM8 {
      base modulation;
      description
        "8QAM (8 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM8 {
      base modulation;
      description
        "DP-QAM8 (8 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

    identity QAM16 {
      base modulation;
      description
        "QAM16 (16 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM16 {
      base modulation;
      description
        "DP-QAM16 (16 symbols Dual Polarization Quadrature Amplitude 
        Modulation)";
    }

    identity QAM32 {
      base modulation;
      description
        "QAM32 (32 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM32 {
      base modulation;
      description
        "DP-QAM32 (32 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

    identity QAM64 {
      base modulation;
      description
        "QAM64 (64 symbols Quadrature Amplitude Modulation)";
    }

    identity DP-QAM64 {
      base modulation;
      description
        "DP-QAM64 (64 symbols Dual Polarization Quadrature Amplitude
        Modulation)";
    }

  identity fec-type {
    description
      "Base identity from which specific FEC
      (Forward Error Correction) type identities are derived.";
  }

    identity g-fec {
      base fec-type;
      description
        "Generic Forward Error Correction (G-FEC).";
      reference
        "ITU-T G.975 v2.0 (10/2000): Forward error correction for 
        submarine systems.";
    }

    identity super-fec {
      base fec-type;
      description
        "Super Forward Error Correction (S-FEC).";
      reference
        "ITU-T G.975.1 v1.2 (07/2013): Forward error correction for 
        high bit-rate DWDM submarine systems.";
    }

    identity no-fec {
      base fec-type;
      description
        "No FEC";
    }

    identity sc-fec {
      base fec-type;
      description
        "Staircase Forward Error Correction (SC-FEC).";
      reference
        "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach 
        interface.";
    }

    identity o-fec {
      base fec-type;
      description
        "Open Forward Error Correction (O-FEC) which reuses the 
        Bose, Chaudhuri and Hocquenghem (BCH) FEC.";
      reference
        "Clause 16.4.4 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces;

        Annex E of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces.";
    }

    identity c-fec {
      base fec-type;
      description
        "Concatenated FEC (C-FEC) that combines an outer Staircase 
        Forward Error Correction (SC-FEC) code and an inner 
        double-extended SD-FEC (128,119) Hamming code.
        
        More details are provided in clause 15/G.709.3 where it is 
        called DSH instead of concatenated FEC.";
      reference
        "Annex A of ITU-T G.709.2 v1.1 (09/2020):OTU4 long-reach 
        interface;
        
        Annex D of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces;
        
        Clause 15 of ITU-T G.709.3 v2.1 (11/2022): Flexible OTN 
        long-reach interfaces.";
    }

  identity line-coding {
    description
      "Base identity to defined the bit rate/line coding of optical 
      tributary signals.";
    reference 
      "Section 7.1.2 of ITU-T G.698.2 v3.0 (11/2018).";
  }  

    identity line-coding-NRZ-2p5G {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the optical tributary signal class NRZ 2.5G";
      reference 
        "Section 3.2.6 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-OTU1 {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the Optical channel Transport Unit order 1 (OTU1) optical 
        tributary signals";
      reference 
        "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-10G {
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the optical tributary signal class NRZ 10G";
      reference 
        "Section 3.2.7 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-NRZ-OTU2 {
      base line-coding;
      description
        "The non return to zero (NRZ) bit rate/line coding used by 
        the Optical channel Transport Unit order 2 (OTU2) optical 
        tributary signals";
      reference 
        "Section 7.2.1.2 of ITU-T G.959.1 v8.0 (07/2018).";
    }

    identity line-coding-OTL4.4-SC {
      base line-coding;
      description
        "The bit rate/line coding used by optical tributary 
        signals carrying a 100G Optical Transport Unit order 4 
        (OTU4) with Staircase Forward Error Correction (SC FEC) 
        from a group of four Optical Transport Lanes (OTL).";
      reference 
        "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
    }

    identity line-coding-FOIC1.4-SC {
      base line-coding;
      description
        "The bit rate/line coding used by optical tributary signals 
        carrying a FlexO Interface of order C1 with 4 lanes 
        (FOIC1.1) with Staircase Forward Error Correction 
        (SC FEC).";
      reference 
        "Section 3.2.1 of ITU-T G.698.2 v3.0 (11/2018).";
    }

  identity wavelength-assignment {
    description
      "Wavelength selection base";
    reference
      "RFC 7689: Signaling Extensions for Wavelength Switched 
      Optical Networks";
  }

    identity first-fit-wavelength-assignment {
      base wavelength-assignment;
      description
        "All the available wavelengths are numbered,
        and this WA (Wavelength Assignment) method chooses
        the available wavelength with the lowest index";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity random-wavelength-assignment {
      base wavelength-assignment;
      description
        "This WA method chooses an available
        wavelength randomly";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity least-loaded-wavelength-assignment {
      base wavelength-assignment;
      description
        "This WA method selects the wavelength that
        has the largest residual capacity on the most loaded
        link along the route (in multi-fiber networks)";
      reference
        "RFC 7689: Signaling Extensions for Wavelength Switched 
        Optical Networks";
    }

    identity lower-first-wavelength-assignment {
      base wavelength-assignment;
      description
        "Allocate wavelengths in ascending order, beginning from the
        lowest frequency and progressing toward the highest frequency
        within the permissible frequency range.";
    }

    identity upper-first-wavelength-assignment {
      base wavelength-assignment;
      description
        "Allocate wavelengths in decending order, beginning from the
        highest frequency and progressing toward the lowest frequency
        within the permissible frequency range.";
    }

  identity otu-type {
    description
      "Base identity from which specific OTU identities are derived";
    reference
      "ITU-T G.709: Interfaces for the Optical Transport Network";
  }

    identity OTU1 {
      base otu-type;
      description
        "OTU1 (2.66 Gb/s)";
      reference
        "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
        Transport Network (OTN)";
    }

    identity OTU2 {
      base otu-type;
      description
        "OTU2 (10.70 Gb/s)";
      reference
        "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
        Transport Network (OTN)";
    }

    identity OTU3 {
      base otu-type;
      description
        "OTU3 (43.01 Gb/s)";
      reference
        "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
        Transport Network (OTN)";
    }

    identity OTU4 {
      base otu-type;
      description
        "OTU4 (111.80 Gb/s)";
      reference
        "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
        Transport Network (OTN)";
    }

    identity OTUCn {
      base otu-type;
      description
        "OTUCn (n x 105.25 Gb/s)";
      reference
        "ITU-T G.709 v6.0 (06/2020): Interfaces for the Optical
        Transport Network (OTN)";
    }

  identity type-power-mode {
    description
      "power equalization mode used within the 
       OMS and its elements";
  }

    identity power-spectral-density {
      base type-power-mode;
      description
        "all elements must use power spectral density (W/Hz)";
    }

    identity carrier-power {
      base type-power-mode;
      description
        "all elements must use power (dBm)";
    }

/*
 * Typedefs
 */

  typedef dwdm-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       frequency.

       The nominal central frequency, 'f', is defined by:
         f = 193100.000 GHz + N x channel spacing (measured in GHz),

       where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
       frequency' for transmission over the DWDM grid, and where
       'channel spacing' is defined by the dwdm-ch-spc-type.";
    reference
      "RFC6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef cwdm-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       wavelength.

       The nominal central wavelength is defined by:
         Wavelength = 1471 nm + N x channel spacing (measured in nm)

       where 1471 nm is the conventional 'anchor wavelength' for
       transmission over the CWDM grid, and where 'channel spacing'
       is defined by the cwdm-ch-spc-type.";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

  typedef flexi-n {
    type int16;
    description
      "The given value 'N' is used to determine the nominal central
       frequency.

       The nominal central frequency, 'f', is defined by:
         f = 193100.000 GHz + N x NCFG (measured in GHz),

       where 193100.000 GHz (193.100000 THz) is the ITU-T 'anchor
       frequency' for transmission over the DWDM grid, and where
       NCFG is defined by the flexi-ncfg-type, or by the deprecated 
       flexi-ch-spc-type.";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef flexi-m {
    type uint16;
    description
      "The given value 'M' is used to determine the slot width.

       A slot width is defined by:
         slot width = M x SWG (measured in GHz),

       where SWG is defined by the flexi-slot-width-granularity.";
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,

       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef standard-mode {
    type string;
    description
      "Identifies an ITU-T G.698.2 standard application code.

      It MUST be a string with a format that follows the 
      nomenclature defined in section 5.3 of ITU-T G.698.2.";
    reference
      "ITU-T G.698.2 (11/2018)";
  }

  typedef organization-identifier {
    type string;
    description
      "vendor/organization identifier that uses a private mode
      out of already defined in G.698.2 ITU-T application-code";
    reference
      "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
      Impairment-aware Topology.";
  }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC

  typedef operational-mode {
    type string;
    description
      "Identifies an organization (e.g., vendor) specific mode.
      
      The format of the string has to be defined by the 
      organization which is responsible for defining the 
      corresponding optical interface specification.";
    reference
      "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
      Impairment-aware Topology.";
  }
// RFC Ed.: replace YYYY with actual RFC number and remove
// this note after draft-ietf-ccamp-optical-impairment-topology-yang
// is published as an RFC

  typedef frequency-thz {
    type decimal64 {
      fraction-digits 9;
    }
    units "THz";
    description
      "The DWDM frequency in THz, e.g., 193.112500000";
  }

  typedef frequency-ghz {
    type decimal64 {
      fraction-digits 6;
    }
    units "GHz";
    description
      "The DWDM frequency in GHz, e.g., 193112.500000";
  }    

  typedef snr {
    type decimal-2;
    units "dB@0.1nm";
    description
      "(Optical) Signal to Noise Ratio measured over 0.1 nm
      resolution bandwidth";
    reference
      "ITU-T G.977.1 (02/2021): Transverse compatible dense
      wavelength division multiplexing applications for repeatered
      optical fibre submarine cable systems";
  }

  typedef snr-or-null {
    type union {
      type snr;
      type empty;
    }
    description
      "(Optical) Signal to Noise Ratio measured over 0.1 nm
      resolution bandwidth, when known, or an empty value when
      unknown.";
  }

  typedef fiber-type {
    type enumeration {
      enum G.652 {
        description
          "G.652 Standard Singlemode Fiber";                 
      }
      enum G.654 {
        description
          "G.654 Cutoff Shifted Fiber";
      }
      enum G.653 {
        description "G.653 Dispersion Shifted Fiber";
      }
      enum G.655 {
        description "G.655 Non-Zero Dispersion Shifted Fiber";
      }
      enum G.656 {
        description
          "G.656 Non-Zero Dispersion for Wideband Optical Transport";
      }
      enum G.657 {
        description
          "G.657 Bend-Insensitive Fiber";
      }
    }
    description
      "ITU-T based fiber-types";
  }

  typedef decimal-2 {
    type decimal64 {
      fraction-digits 2;
    }
    description
      "A decimal64 value with two digits.";
  }

  typedef decimal-2-or-null {
    type union {
      type decimal-2;
      type empty;
    }
    description
      "A decimal64 value with two digits, when the value is known or
      an empty value when the value is not known.";
  }

  typedef power-gain {
    type decimal-2 {
      range "0..max";
    }
    units "dB";
    description
      "The gain in dB.";
  }

  typedef power-gain-or-null {
    type union {
      type power-gain;
      type empty;
    }
    description
      "The gain in dB, when it is known or an empty 
      value when the power gain/loss is not known.";
  }

  typedef power-loss {
    type decimal-2 {
      range "0..max";
    }
    units "dB";
    description
      "The power attenuation in dB.";
  }

  typedef power-loss-or-null {
    type union {
      type power-loss;
      type empty;
    }
    description
      "The power attenuation in dB, when it is known or an empty 
      value when the loss is not known.";
  }

  typedef power-ratio {
    type decimal-2;
    units "dB";
    description
      "The power difference in dB.";
  }

  typedef power-ratio-or-null {
    type union {
      type power-ratio;
      type empty;
    }
    description
      "The power difference in dB, when it is known or an empty 
      value when the difference is not known.";
  }

  typedef power-dbm {
    type decimal-2;
    units "dBm";
    description
      "The power in dBm.";
  }

  typedef power-dbm-or-null {
    type union {
      type power-dbm;
      type empty;
    }
    description
      "The power in dBm, when it is known or an empty value when the
      power is not known.";
  }

  typedef decimal-5 {
    type decimal64 {
      fraction-digits 5;
    }
    description
      "A decimal64 value with five digits.";
  }

  typedef decimal-5-or-null {
    type union {
      type decimal-5;
      type empty;
    }
    description
      "A decimal64 value with five digits, when the value is known 
      or an empty value when the value is not known.";
  }

  typedef psd {
    type decimal64 {
      fraction-digits 16;
    }
    units "W/Hz";
    description
      "The power spectral density (PSD).
      
      Typical value : 3.9 E-14, resolution 0.1nW/MHz.";
    reference
      "ITU-T G.9700 (07/2019): Fast access to subscriber terminals
      (G.fast) - Power spectral density specification";
  }

  typedef psd-or-null {
    type union {
      type psd;
      type empty;
    }
    description
      "The power spectral density (PSD), when it is known or an
      empty value when the PSD is not known.";
  }

/*
 * Groupings
 */

  grouping wdm-label-start-end {
    description
      "The WDM label-start or label-end used to specify DWDM and
       CWDM label range.";

    choice grid-type {
      description
        "Label for fixed & flexi-DWDM or CWDM grid";
      case fixed-dwdm {
        leaf dwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type l0-types:dwdm-n;
          description
            "The given value 'N' is used to determine the
             nominal central frequency.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type l0-types:cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses l0-types:flexi-grid-label-start-end;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wdm-label-step {
    description
      "Label step information for fixed & flexi-DWDM or CWDM grid";
    choice l0-grid-type {
      description
        "Grid type: DWDM, CWDM, etc.";
      case fixed-dwdm {
        leaf wson-dwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type identityref {
            base dwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (GHz), e.g., 100.000,
             50.000, 25.000, or 12.500 GHz for DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf wson-cwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type identityref {
            base cwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (nm), i.e., 20 nm
             for CWDM, which is the only value defined for CWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses flexi-grid-label-step;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid,
       RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
       Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping wdm-label-hop {
    description
      "Generic label-hop information for fixed & flexi-DWDM or
       CWDM grid";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case fixed-dwdm {
        choice fixed-single-or-super-channel {
          description
            "single or super channel";
          case single {
            leaf dwdm-n {
              type l0-types:dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case multi {
            leaf-list subcarrier-dwdm-n {
              type l0-types:dwdm-n;
              min-elements 2;
              description
                "The given values 'N' are used to determine the
                 nominal central frequency for each subcarrier
                 channel.";
              reference
                "ITU-T G.694.1 (10/2020): Spectral grids for WDM
                applications: DWDM frequency grid";
            }
          }
        }
      }
      case cwdm {
        leaf cwdm-n {
          type l0-types:cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case flexi-grid {
        uses l0-types:flexi-grid-label-hop;
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wdm-label-range-info {
    description
      "WDM label range related information";
    uses l0-label-range-info;
    container flexi-grid {
      when "derived-from-or-self(../grid-type,
          \"flexi-grid-dwdm\")" {
        description
          "Applicable only when the grid type is flexi-grid-dwdm.";
      }
      description
        "flexi-grid definition";
      leaf slot-width-granularity {
        type identityref {
          base flexi-slot-width-granularity;
        }
        default "flexi-swg-12p5ghz";
        description
          "Minimum space between slot widths. Default is 12.500
           GHz.";
        reference
          "RFC 7698: Framework and Requirements for GMPLS-Based
           Control of Flexi-Grid Dense Wavelength Division
           Multiplexing (DWDM) Networks";
      }
      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default "1";
        description
          "A multiplier of the slot width granularity, indicating
           the minimum slot width supported by an optical port.

           Minimum slot width is calculated by:
             Minimum slot width (GHz) =
               min-slot-width-factor * slot-width-granularity.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        must '. >= ../min-slot-width-factor' {
          error-message
            "Maximum slot width must be greater than or equal to
             minimum slot width.";
        }
        description
          "A multiplier of the slot width granularity, indicating
           the maximum slot width supported by an optical port.

           Maximum slot width is calculated by:
             Maximum slot width (GHz) =
               max-slot-width-factor * slot-width-granularity

           If specified, maximum slot width must be greater than or
           equal to minimum slot width.  If not specified, maximum
           slot width is equal to minimum slot width.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
    }
  }

  grouping wson-label-start-end {
    description
      "The WSON label-start or label-end used to specify WSON label
       range.";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        leaf dwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type l0-types:dwdm-n;
          description
            "The central frequency of DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf cwdm-n {
          when "derived-from-or-self(../../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type l0-types:cwdm-n;
          description
            "Channel wavelength computing input.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wson-label-hop {
    description
      "Generic label-hop information for WSON";
    choice grid-type {
      description
        "Label for DWDM or CWDM grid";
      case dwdm {
        choice single-or-super-channel {
          description
            "single or super channel";
          case single {
            leaf dwdm-n {
              type l0-types:dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case super {
            leaf-list subcarrier-dwdm-n {
              type l0-types:dwdm-n;
              description
                "The given values 'N' are used to determine the
                 nominal central frequency for each subcarrier
                 channel.";
              reference
                "ITU-T G.694.1 (10/2020): Spectral grids for WDM
                applications: DWDM frequency grid";
            }
          }
        }
      }
      case cwdm {
        leaf cwdm-n {
          type l0-types:cwdm-n;
          description
            "The given value 'N' is used to determine the nominal
             central wavelength.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping l0-label-range-info {
    description
      "Information about Layer 0 label range.";
    leaf grid-type {
      type identityref {
        base l0-grid-type;
      }
      description
        "Grid type";
    }
    leaf priority {
      type uint8;
      description
        "Priority in Interface Switching Capability Descriptor
         (ISCD).";
      reference
        "RFC 4203: OSPF Extensions in Support of Generalized
         Multi-Protocol Label Switching (GMPLS)";
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers";
  }

  grouping wson-label-step {
    description
      "Label step information for WSON";
    choice l0-grid-type {
      description
        "Grid type: DWDM, CWDM, etc.";
      case dwdm {
        leaf wson-dwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-dwdm\")" {
            description
              "Valid only when grid type is DWDM.";
          }
          type identityref {
            base dwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (GHz), e.g., 100.000,
             50.000, 25.000, or 12.500 GHz for DWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
      case cwdm {
        leaf wson-cwdm-channel-spacing {
          when "derived-from-or-self(../../grid-type,
                \"wson-grid-cwdm\")" {
            description
              "Valid only when grid type is CWDM.";
          }
          type identityref {
            base cwdm-ch-spc-type;
          }
          description
            "Label-step is the channel spacing (nm), i.e., 20 nm
             for CWDM, which is the only value defined for CWDM.";
          reference
            "RFC 6205: Generalized Labels for Lambda-Switch-Capable
             (LSC) Label Switching Routers";
        }
      }
    }
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,

       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

  grouping flexi-grid-label-start-end {
    description
      "The flexi-grid label-start or label-end used to specify
       flexi-grid label range.";
    leaf flexi-n {
      type l0-types:flexi-n;
      description
        "The given value 'N' is used to determine the nominal
        central frequency.

        As described in section 3.1 of RFC 8363, the range of 
        available nominal central frequencies are advertised for 
        m=1, which means that for an available central frequency n, 
        the frequency slot from central frequency n-1 to central 
        frequency n+1 is available.";
    }
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers,
      
      RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid 
      Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping flexi-grid-frequency-slot {
    description
      "Flexi-grid frequency slot grouping.";
    uses flexi-grid-label-start-end;
    leaf flexi-m {
      type l0-types:flexi-m;
      description
        "The given value 'M' is used to determine the slot width.";
    }
    reference
      "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
      Switch Capable (LSC) Label Switching Routers";
  }

  grouping flexi-grid-label-hop {
    description
      "Generic label-hop information for flexi-grid";
    choice single-or-super-channel {
      description
        "single or super channel";
      case single {
        uses flexi-grid-frequency-slot;
      }
      case super {
        status deprecated;
        list subcarrier-flexi-n {
          key "flexi-n";
          status deprecated;
          uses flexi-grid-frequency-slot {
            status deprecated;
          }
          description
            "List of subcarrier channels for flexi-grid super
             channel.";
        }
      }
      case multi {
        container frequency-slots {
          description
            "The top level container for the list of frequency 
            slots used for flexi-grid super channel.";
          list frequency-slot {
            key "flexi-n";
            min-elements 2;
            uses flexi-grid-frequency-slot;
            description
              "List of frequency slots used for flexi-grid super 
              channel.";
          }
        }
      }
    }
    reference
      "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid 
      Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping flexi-grid-label-range-info {
    description
      "Flexi-grid-specific label range related information";
    uses l0-label-range-info;
    container flexi-grid {
      description
        "flexi-grid definition";
      leaf slot-width-granularity {
        type identityref {
          base flexi-slot-width-granularity;
        }
        default "flexi-swg-12p5ghz";
        description
          "Minimum space between slot widths. Default is 12.500
           GHz.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of 
          Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) 
          Networks";
      }
      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default "1";
        description
          "A multiplier of the slot width granularity, indicating
           the minimum slot width supported by an optical port.

           Minimum slot width is calculated by:
             Minimum slot width (GHz) =
               min-slot-width-factor * slot-width-granularity.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        must '. >= ../min-slot-width-factor' {
          error-message
            "Maximum slot width must be greater than or equal to
             minimum slot width.";
        }
        description
          "A multiplier of the slot width granularity, indicating
           the maximum slot width supported by an optical port.

           Maximum slot width is calculated by:
             Maximum slot width (GHz) =
               max-slot-width-factor * slot-width-granularity

           If specified, maximum slot width must be greater than or
           equal to minimum slot width.  If not specified, maximum
           slot width is equal to minimum slot width.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }
    }
  }

  grouping flexi-grid-label-step {
    description
      "Label step information for flexi-grid";
    leaf flexi-grid-channel-spacing {
      type identityref {
        base flexi-ch-spc-type;
      }
      default "flexi-ch-spc-6p25ghz";
      status deprecated;
      description
        "Label-step is the nominal central frequency granularity
         (GHz), e.g., 6.25 GHz.";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
         Switch Capable (LSC) Label Switching Routers";
    }
    leaf flexi-ncfg {
      type identityref {
        base flexi-ncfg-type;
      }
      default "flexi-ncfg-6p25ghz";
      description
        "Label-step is the nominal central frequency granularity
         (GHz), e.g., 6.25 GHz.";
      reference
        "RFC 7699: Generalized Labels for the Flexi-Grid in Lambda
         Switch Capable (LSC) Label Switching Routers";
    }
    leaf flexi-n-step {
      type uint8;
      description
        "This attribute defines the multiplier for the supported
         values of 'N'.

         For example, given a grid with a nominal central frequency
         granularity of 6.25 GHz, the granularity of the supported
         values of the nominal central frequency could be 12.5 GHz.
         In this case, the values of flexi-n should be even and this
         constraint is reported by setting the flexi-n-step to 2.

         This attribute is also known as central frequency
         granularity in RFC 8363.";
      reference
        "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid
         Dense Wavelength Division Multiplexing (DWDM) Networks";
    }
  }

  grouping transceiver-mode {
    description
      "This grouping is intended to be used for reporting the
      information of a transceiver's mode.

      The attributes for the explicit mode shall be augmented when
      used with either:
      - the proper leafrefs, when explicit mode templates are used;
        or,
      - the explicit-mode grouping, when explicit mode templates
        are not used.

      The compatible-modes container shall be augmented with the 
      proper leafrefs when used: see for example the 
      transceiver-capabilities grouping below.";
    choice mode {
      mandatory true;
      description
        "Indicates whether the transceiver's mode is a standard
          mode, an organizational mode or an explicit mode.";
      case G.698.2 {
        uses standard-mode;
        uses common-standard-organizational-mode;
        uses common-all-modes;
      }
      case organizational-mode {
        container organizational-mode {
          config false;
          description
            "The set of attributes for an organizational mode";
          uses organizational-mode;
          uses common-standard-organizational-mode;
          uses common-all-modes;
        }  // container organizational-mode
      }
      case explicit-mode {
        container explicit-mode {
          config false;
          description
            "The set of attributes for an explicit mode";
          // uses explicit-mode;
          uses common-all-modes;
          container compatible-modes {
            description
              "Container for all the standard and organizational
                modes supported by the transceiver's explicit
                mode.";
          }  // container compatible-modes
        }  // container explicit-mode
      } // end of case explicit-mode
    } // end of choice
  }

  grouping transceiver-capabilities {
    description
      "This grouping is intended to be used for reporting the
      capabilities of a transceiver.
      
      The attributes for the explicit mode shall be augmented when
      used with either:
      - the proper leafrefs, when explicit mode templates are used;
        or,
      - the explicit-mode grouping, when explicit mode templates
        are not used.";

    container supported-modes {
      presence
        "When present, it indicates that the modes supported by a 
        transceiver are reported.";
      description
        "The top level container for the list supported 
        transceiver's modes.";
      list supported-mode {
        key "mode-id";
        config false;
        min-elements 1;
        description "The list of supported transceiver's modes.";
        leaf mode-id {
          type string { 
            length "1..255";
          }
          description "ID for the supported transceiver's mode.";
        }
        uses transceiver-mode {
          augment "mode/explicit-mode/explicit-mode/"
                + "compatible-modes" {
            description
              "Augments the compatible modes with the proper 
              leafrefs.";
            leaf-list supported-application-codes {
              type leafref {
                path "../../../../supported-mode/mode-id";
              }
              must "../../../../"
                  + "supported-mode[mode-id=current()]/"
                  + "standard-mode" {
                description
                  "The pointer is only for application codes
                  supported by transceiver."; 
              }
              description
                "List of pointers to the application codes
                supported by the transceiver's explicit mode.";
            }
            leaf-list supported-organizational-modes {
              type leafref {
                path "../../../../supported-mode/mode-id";
              }
              must "../../../../"
                  + "supported-mode[mode-id=current()]/"
                  + "organizational-mode" {
                description
                  "The pointer is only for organizational modes
                  supported by transceiver.";
              }
              description
                "List of pointers to the organizational modes
                  supported by the transceiver's explicit mode.";
            }
          }
        }
      }  // list supported-modes
    }  // container supported-modes
  }  // grouping transceiver-capabilities

  grouping standard-mode {
    description
      "ITU-T G.698.2 standard mode that guarantees interoperability.
       It must be an string with the following format:
       B-DScW-ytz(v) where all these attributes are conformant
       to the ITU-T recomendation";

    leaf standard-mode {
      type standard-mode;
      config false;
      description
        "G.698.2 standard mode";
    }
  }

  grouping organizational-mode {
    description
      "Transponder operational mode supported by organizations or
       vendor";

    leaf operational-mode {
      type operational-mode;
      config false;
      description
        "configured organization- or vendor-specific
         application identifiers (AI) supported by the transponder";
    }
    leaf organization-identifier {
      type organization-identifier;
      config false;
      description
        "organization identifier that uses organizational
         mode";
    }
  }

  grouping penalty-value {
    description
      "A common definition of the penalty value used for describing
      multiple penalty types (.e.g, CD, PMD, PDL).";

    leaf penalty-value {
      type union {
        type decimal-2 {
          range "0..max";
        }
        type empty;
      }
      units "dB";
      config false;
      mandatory true;
      description
        "The OSNR penalty associated with the related optical 
        impairment at the receiver, when the value is known or an 
        empty value when the value is not known.";
    }
  }

  grouping explicit-mode {
    description
      "Attributes capabilities related to explicit transceiver's
      mode.
      
      This grouping also contains the list of attributes related to
      optical impairment limits for explicit mode (min OSNR, max PMD,
      max CD, max PDL, Q-factor limit, etc.).

      In case of standard and operational mode the attributes are
      implicit.";
    leaf line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      config false;
      description
        "Bit rate/line coding of the optical tributary signal.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
    leaf bitrate {
      type uint16;
      units "Gbit/sec";
      config false;
      description
        "The gross bitrate (e.g., 100, 200) of the optical tributary
        signal.";
    }
    leaf max-diff-group-delay  {
      type decimal-2;
      units "ps";
      config false;
      description
        "Maximum Differential group delay of this mode for this 
        lane";
    }
    leaf max-chromatic-dispersion {
      type decimal-2 {
        range "0..max";
      }
      units "ps/nm";
      config false;
      description
        "Maximum acceptable accumulated chromatic dispersion (CD) 
        on the receiver";
    }
    list cd-penalty {
      key cd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        chromatic dispersion (CD) value.

        This list of pair CD and penalty values can be used to
        sample the function penalty = f(CD).";
      leaf cd-value {
        type decimal-2;
        units "ps/nm";
        config false;
        mandatory true;
        description
          "The Chromatic Dispersion (CD).";
      }
      uses penalty-value;
    }
    leaf max-polarization-mode-dispersion {
      type decimal-2 {
        range "0..max";
      }
      units "ps";
      config false;
      description
        "Maximum acceptable accumulated polarization mode
         dispersion (PMD) on the receiver";
      reference
        "ITU-T G.666 (02/2011): Characteristics of polarization
        mode dispersion compensators and of receivers that
        compensate for polarization mode dispersion";
    }
    list pmd-penalty {
      key pmd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        polarization mode dispersion (PMD) value.

        This list of pair PMD and penalty can be used to
        sample the function penalty = f(PMD).";
      leaf pmd-value {
        type decimal-2 {
          range "0..max";
        }
        units "ps";
        config false;
        mandatory true;
        description
          "The Polarization Mode Dispersion (PMD).";
      }
      uses penalty-value;
    }
    leaf max-polarization-dependent-loss {
      type power-loss-or-null;
      config false;
      mandatory true;
      description
        "Maximum acceptable accumulated accumulated polarization 
        dependent loss (PDL) on the receiver";
    }
    list pdl-penalty {
      key pdl-value;
      config false;
      description
        "Optional penalty associated with a given accumulated 
        polarization dependent loss (PDL) value.

        This list of pair PDL and penalty values can be used to
        sample the function PDL = f(penalty).";
      leaf pdl-value {
        type power-loss;
        config false;
        mandatory true;
        description
          "Maximum acceptable accumulated polarization dependent
          loss (PDL).";
      }
      uses penalty-value;
    }
    leaf available-modulation-type {
      type identityref {
        base modulation;
      }
      config false;
      description
        "Modulation type the specific transceiver in the list
         can support";
    }
    leaf min-OSNR {
      type snr;
      units "dBm";
      config false;
      description
        "min OSNR measured over 0.1 nm resolution bandwidth:
        if received OSNR at Rx-power reference point
        (rx-ref-channel-power) is lower than MIN-OSNR, an increased 
        level of bit-errors post-FEC needs to be expected";
    }
    leaf rx-ref-channel-power {
      type power-dbm;
      config false;
      description
        "The channel power used as reference for defining penalties 
        and min-OSNR";
    }
    list rx-channel-power-penalty {
      key rx-channel-power-value;
      config false;
      description
        "Optional penalty associated with a received power
        lower than rx-ref-channel-power.

        This list of pair power and penalty can be used to
        sample the function penalty = f(rx-channel-power).";
      leaf rx-channel-power-value {
        type power-dbm;
        units "dBm";
        config false;
        mandatory true;
        description
          "The Received Power.";
      }
      uses penalty-value;
    }
    leaf min-Q-factor {
      type decimal-2;
      units "dB";
      config false;
      description "min Qfactor at FEC threshold";
    }
    leaf available-baud-rate {
      type decimal64 {
        fraction-digits 1;
      }
      units "Bd";
      config false;
      description
        "Baud-rate the specific transceiver in 
        the list can support.
         Baud-rate is the unit for
         symbol rate or modulation rate 
         in symbols per second or
         pulses per second. 
         It is the number of distinct symbol
         changes (signal events) made to the 
         transmission medium
         per second in a digitally 
         modulated signal or a line code";
    }
    leaf roll-off {
      type decimal64 {
        fraction-digits 4;
        range "0..1";
      }
      config false;
      description 
        "the roll-off factor (beta with values from 0 to 1) 
        identifies how the real signal shape exceed 
        the baud rate. If=0 it is exactly matching 
        the baud rate.If=1 the signal exceeds the 
        50% of the baud rate at each side.";             
    }
    leaf min-carrier-spacing {
      type frequency-ghz;
      config false;
      description
        "This attribute specifies the minimum nominal difference
        between the carrier frequencies of two homogeneous OTSis
        (which have the same optical characteristics but the central
        frequencies) such that if they are placed next to each other
        the interference due to spectrum overlap between them can be
        considered negligible.

        In case of heterogeneous OTSi it is up to path computation
        engine to determine the minimum distance between the carrier
        frequency of the two adjacent OTSi.";
    }
    leaf available-fec-type {
      type identityref {
        base fec-type;
      }
      config false;
      description "Available FEC";
    }
    leaf fec-code-rate {
      type decimal64 {
        fraction-digits 8;
        range "0..max";
      }
      config false;
      description "FEC-code-rate";
    }
    leaf fec-threshold {
      type decimal64 {
        fraction-digits 8;
        range "0..max";
      }
      config false;
      description
        "Threshold on the BER, for which FEC 
         is able to correct errors";
    }
    leaf in-band-osnr {
      type snr;
      config false;
      description
        "The OSNR defined within the bandwidth of the transmit 
        spectral excursion (i.e.,  between the nominal central 
        frequency of the channel and the -3.0dB points of the 
        transmitter spectrum furthest from the nominal central 
        frequency) measured at reference point Ss.
        
        The in-band OSNR is referenced to an optical bandwidth of 
        0.1nm @ 193.7 THz or 12.5 GHz.";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf out-of-band-osnr {
      type snr;
      config false;
      description
        "The ratio of the peak transmitter power to the integrated 
        power outside the transmitter spectral excursion.
        
        The spectral resolution of the measurement shall be better 
        than the maximum spectral width of the peak.
        
        The out-of-band OSNR is referenced to an optical bandwidth 
        of 0.1nm @ 193.7 THz or 12.5 GHz";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf tx-polarization-power-difference {
      type power-ratio;
      config false;
      description
        "The transmitter polarization dependent power difference 
        defined as the power difference between X and Y 
        polarizations";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
    leaf polarization-skew {
      type decimal-2;
      units "ps";
      config false;
      description
        "The X-Y skew, included as a fixed value in the receiver 
        polarization mode dispersion (PMD) tolerance limits.";
      reference
        "OIF-400ZR-01.0: Implementation Agreement 400ZR";
    }
  } // grouping explicit-mode    

  grouping common-standard-organizational-mode {
    description
      "Common attributes used by standard and organizational 
      transceiver's modes.";
    
    leaf-list line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      config false;
      description
        "The list of the bit rate/line coding of the optical 
        tributary signal supported by the transceiver.

        Reporting this list is optional when the standard or 
        organization mode supports only one bit rate/line coding.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
  } // grouping common-standard-organizational-mode

  grouping transmitter-tuning-range {
    description
      "Transmitter tuning range (f_tx-min, f_tx-max)";

    leaf min-central-frequency {
      type frequency-thz;
      description
        "This parameter indicates the minimum frequency for the
        transmitter tuning range.";
    }
    leaf max-central-frequency {
      type frequency-thz;
      description
        "This parameter indicates the maximum frequency for the
        transmitter tuning range.";
    }

    leaf transceiver-tunability {
      type frequency-ghz;
      description
        "This parameter indicates the transmitter frequency fine
        tuning steps e.g 3.125GHz or 0.001GHz.";
    } 
  } // grouping transmitter-tuning-range

  grouping common-all-modes {
    description
      "Common attributes used by all transceiver's modes.";

    uses transmitter-tuning-range;
    leaf tx-channel-power-min {
      type power-dbm;
      config false;
      description "The minimum output power of this interface";
    }
    leaf tx-channel-power-max {
      type power-dbm;
      config false;
      description "The maximum output power of this interface";
    } 
    leaf rx-channel-power-min {
      type power-dbm;
      config false;
      description "The minimum input power of this interface";
    }
    leaf rx-channel-power-max {
      type power-dbm;
      config false;
      description "The maximum input power of this interface";
    }
    leaf rx-total-power-max {
      type power-dbm;
      config false;
      description
        "Maximum rx optical power for all the channels.
        
        It is applicable only to multi-channel modes.";
    }
  } // grouping common-all-modes

  grouping common-transceiver-param {
    description
      "The common parameters of an optical transceiver,
      that supplement the configured mode.";

    uses common-transceiver-configured-param;
    uses common-transceiver-readonly-param;
  }

  grouping common-transceiver-configured-param {
    description
      "The configured parameters of an optical transceiver,
      that supplement the configured mode.";

    leaf line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      description
        "Bit rate/line coding of the optical tributary signal.
        
        Support of this attribute is optional when the configured 
        mode supports only one bit rate/line coding.";
      reference 
        "ITU-T G.698.2 section 7.1.2";
    }
    leaf tx-channel-power {
      type power-dbm-or-null;
      description
        "The current channel transmit power, when the value is 
        known or an empty value when the value is not known.
        
        The empty value MUST NOT be used when this attribute is 
        configured.";
    }
  } // grouping for configured transceiver attributes out of mode

  grouping common-transceiver-readonly-param {
    description
      "The common read-only parameters of an optical transceiver,
      that supplement the configured mode.";

    leaf rx-channel-power {
      type power-dbm-or-null;
      config false;
      description
        "The current channel received power, when the value is 
        known or an empty value when the value is not known.";
    }
    leaf rx-total-power {
      type power-dbm-or-null;
      config false;
      description
        "The current total received power, when the value is known 
        or an empty value when the value is not known.";
    }
  } // grouping for read-only transceiver attributes out of mode

  grouping l0-tunnel-attributes {
    description
      "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels.";

    leaf wavelength-assignment {
      type identityref {
        base wavelength-assignment;
      }
      description "Wavelength Allocation Method";
    }
  }

  grouping frequency-range {
    description
      "This grouping defines the lower and upper bounds of a
      frequency range (e.g., a band).
        
      This grouping SHOULD NOT be used to define a frequency slot,
      which SHOULD be defined using the n and m values instead.";
    leaf lower-frequency {
      type frequency-thz;
      mandatory true;
      description
        "The lower frequency boundary of the
        frequency range.";
    }
    leaf upper-frequency {
      type frequency-thz;
      must '. > ../lower-frequency' {
        error-message
          "The upper frequency must be greater than the lower
          frequency.";
      }
      mandatory true;
      description
        "The upper frequency boundary of the
        frequency range.";
    }
  }

  grouping l0-path-constraints {
    description
      "Common attribute for Layer 0 path constraints to be used by
      Layer 0 computation.";
    leaf gsnr-extra-margin {
      type snr {
        range 0..max;
      }
      default 0;
      description
        "An additional margin to be added to the OSNR-min of the
        transceiver when checking the estimated received Generalized
        SNR (GSNR).";
    }
  }

  grouping l0-path-properties {
    description
      "Common attribute for reporting the Layer 0 computed path
      properties.";
    leaf estimated-gsnr {
      type snr;
      config false;
      description
        "The estimate received GSNR for the computed path.";
    }
    leaf estimated-eol-gsnr {
      type snr;
      config false;
      description
        "The estimate received GSNR for the computed path
         degraded at the end of life.";
    }
    leaf estimated-lowest-gsnr {
      type snr;
      config false;
      description
        "The estimate lowest received GSNR for the computed path
         among all possible wavelength channels along the same
         path.";
    }
  }
}
]]></sourcecode></figure>

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

<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 TLS
   <xref target="RFC8446"/>.</t>

<t>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.  The NETCONF protocol over
   Secure Shell (SSH) specification <xref target="RFC6242"/> describes a method for
   invoking and running NETCONF within a Secure Shell (SSH) session as
   an SSH subsystem.</t>

<t>The objects in this YANG module are common data types and groupings.
   No object in this module can be read or written to.  These
   definitions can be imported and used by other Layer 0 specific
   modules.  It is critical to consider how imported definitions will be
   utilized and accessible via RPC operations, as the resultant schema
   will have data nodes that can be writable, or readable, and will have
   a significant effect on the network operations if used incorrectly or
   maliciously.  All of these considerations belong in the document that
   defines the modules that import from this YANG module.  Therefore, it
   is important to manage access to resultant data nodes that are
   considered sensitive or vulnerable in some network environments.</t>

<t>The security considerations spelled out in the YANG 1.1 specification
   <xref target="RFC7950"/> apply for this document as well.</t>

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

<t>For the following URI in the "IETF XML Registry" <xref target="RFC3688"/>, IANA has updated the reference field to refer to this document:</t>

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

<t>This document also adds an updated YANG module to the "YANG Module
Names" registry <xref target="RFC7950"/>:</t>

<figure><artwork><![CDATA[
   Name:  ietf-layer0-types
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-layer0-types
   Prefix:  l0-types
   Reference:  RFC XXXX
]]></artwork></figure>

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

</section>


  </middle>

  <back>


    <references title='Normative References'>

<reference anchor="ITU-T_G.666" target="https://www.itu.int/rec/T-REC-G.666">
  <front>
    <title>Characteristics of polarization mode dispersion compensators and of receivers that compensate for polarization mode dispersion"</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2011" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.666" value=""/>
</reference>
<reference anchor="ITU-T_G.694.1" target="https://www.itu.int/rec/T-REC-G.694.1">
  <front>
    <title>Spectral grids for WDM applications: DWDM frequency grid</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.694.1" value=""/>
</reference>
<reference anchor="ITU-T_G.694.2" target="https://www.itu.int/rec/T-REC-G.694.2">
  <front>
    <title>Spectral grids for WDM applications: CWDM wavelength grid</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2003" month="December"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.694.2" value=""/>
</reference>
<reference anchor="ITU-T_G.698.2" target="https://www.itu.int/rec/T-REC-G.698.2">
  <front>
    <title>Amplified multichannel dense wavelength division multiplexing applications with single channel optical interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2018" month="November"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.698.2" value=""/>
</reference>
<reference anchor="ITU-T_G.709" target="https://www.itu.int/rec/T-REC-G.709">
  <front>
    <title>Interfaces for the optical transport network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="June"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709" value=""/>
</reference>
<reference anchor="ITU-T_G.709.2" target="https://www.itu.int/rec/T-REC-G.709.2">
  <front>
    <title>OTU4 long-reach interface</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2020" month="September"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709.2, Corrigendum 1" value=""/>
</reference>
<reference anchor="ITU-T_G.709.3" target="https://www.itu.int/rec/T-REC-G.709.3">
  <front>
    <title>Flexible OTN B100G long-reach interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2022" month="November"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.709.3, Amendment 1" value=""/>
</reference>
<reference anchor="ITU-T_G.959.1" target="https://www.itu.int/rec/T-REC-G.959.1">
  <front>
    <title>Optical transport network physical layer interfaces</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2018" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.959.1" value=""/>
</reference>
<reference anchor="ITU-T_G.975" target="https://www.itu.int/rec/T-REC-G.975">
  <front>
    <title>Forward error correction for submarine systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2000" month="October"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.975" value=""/>
</reference>
<reference anchor="ITU-T_G.975.1" target="https://www.itu.int/rec/T-REC-G.975.1">
  <front>
    <title>Forward error correction for high bit-rate DWDM submarine systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2013" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.975.1, Corrigendum 2" value=""/>
</reference>
<reference anchor="ITU-T_G.977.1" target="https://www.itu.int/rec/T-REC-G.977.1">
  <front>
    <title>Transverse compatible dense wavelength division multiplexing applications for repeatered optical fibre submarine cable systems</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="February"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.977.1" value=""/>
</reference>
<reference anchor="ITU-T_G.9700" target="https://www.itu.int/rec/T-REC-G.9700">
  <front>
    <title>Fast access to subscriber terminals (G.fast) - Power spectral density specification</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2019" month="July"/>
  </front>
  <seriesInfo name="ITU-T Recommendation G.9700" value=""/>
</reference>
<reference anchor="OIF_400ZR" target="https://www.oiforum.com/wp-content/uploads/OIF-400ZR-01.0_reduced2.pdf">
  <front>
    <title>Implementation Agreement 400ZR</title>
    <author >
      <organization>Optical Internetworking Forum</organization>
    </author>
    <date year="2020" month="March"/>
  </front>
  <seriesInfo name="OIF-400ZR-01.0 Implementation Agreement" value=""/>
</reference>


<reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'>
  <front>
    <title>The YANG 1.1 Data Modeling Language</title>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>

<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
  <front>
    <title>Network Configuration Protocol (NETCONF)</title>
    <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'/>
    <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'/>
    <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6241'/>
  <seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>

<reference anchor='RFC7698' target='https://www.rfc-editor.org/info/rfc7698'>
  <front>
    <title>Framework and Requirements for GMPLS-Based Control of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
    <author fullname='O. Gonzalez de Dios' initials='O.' role='editor' surname='Gonzalez de Dios'/>
    <author fullname='R. Casellas' initials='R.' role='editor' surname='Casellas'/>
    <author fullname='F. Zhang' initials='F.' surname='Zhang'/>
    <author fullname='X. Fu' initials='X.' surname='Fu'/>
    <author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'/>
    <author fullname='I. Hussain' initials='I.' surname='Hussain'/>
    <date month='November' year='2015'/>
    <abstract>
      <t>To allow efficient allocation of optical spectral bandwidth for systems that have high bit-rates, the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) has extended its Recommendations G.694.1 and G.872 to include a new Dense Wavelength Division Multiplexing (DWDM) grid by defining a set of nominal central frequencies, channel spacings, and the concept of the "frequency slot". In such an environment, a data-plane connection is switched based on allocated, variable-sized frequency ranges within the optical spectrum, creating what is known as a flexible grid (flexi-grid).</t>
      <t>Given the specific characteristics of flexi-grid optical networks and their associated technology, this document defines a framework and the associated control-plane requirements for the application of the existing GMPLS architecture and control-plane protocols to the control of flexi-grid DWDM networks. The actual extensions to the GMPLS protocols will be defined in companion documents.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7698'/>
  <seriesInfo name='DOI' value='10.17487/RFC7698'/>
</reference>

<reference anchor='RFC9093' target='https://www.rfc-editor.org/info/rfc9093'>
  <front>
    <title>A YANG Data Model for Layer 0 Types</title>
    <author fullname='H. Zheng' initials='H.' surname='Zheng'/>
    <author fullname='Y. Lee' initials='Y.' surname='Lee'/>
    <author fullname='A. Guo' initials='A.' surname='Guo'/>
    <author fullname='V. Lopez' initials='V.' surname='Lopez'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <date month='August' year='2021'/>
    <abstract>
      <t>This document defines a collection of common data types and groupings in the YANG data modeling language. These derived common types and groupings are intended to be imported by modules that model Layer 0 optical Traffic Engineering (TE) configuration and state capabilities such as Wavelength Switched Optical Networks (WSONs) and flexi-grid Dense Wavelength Division Multiplexing (DWDM) networks.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='9093'/>
  <seriesInfo name='DOI' value='10.17487/RFC9093'/>
</reference>

<reference anchor='RFC8342' target='https://www.rfc-editor.org/info/rfc8342'>
  <front>
    <title>Network Management Datastore Architecture (NMDA)</title>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'/>
    <author fullname='P. Shafer' initials='P.' surname='Shafer'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <author fullname='R. Wilton' initials='R.' surname='Wilton'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model. This document updates RFC 7950.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8342'/>
  <seriesInfo name='DOI' value='10.17487/RFC8342'/>
</reference>

<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'>
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname='S. Bradner' initials='S.' surname='Bradner'/>
    <date month='March' year='1997'/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='2119'/>
  <seriesInfo name='DOI' value='10.17487/RFC2119'/>
</reference>

<reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'>
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname='B. Leiba' initials='B.' surname='Leiba'/>
    <date month='May' year='2017'/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='14'/>
  <seriesInfo name='RFC' value='8174'/>
  <seriesInfo name='DOI' value='10.17487/RFC8174'/>
</reference>

<reference anchor='RFC6205' target='https://www.rfc-editor.org/info/rfc6205'>
  <front>
    <title>Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers</title>
    <author fullname='T. Otani' initials='T.' role='editor' surname='Otani'/>
    <author fullname='D. Li' initials='D.' role='editor' surname='Li'/>
    <date month='March' year='2011'/>
    <abstract>
      <t>Technology in the optical domain is constantly evolving, and, as a consequence, new equipment providing lambda switching capability has been developed and is currently being deployed.</t>
      <t>Generalized MPLS (GMPLS) is a family of protocols that can be used to operate networks built from a range of technologies including wavelength (or lambda) switching. For this purpose, GMPLS defined a wavelength label as only having significance between two neighbors. Global wavelength semantics are not considered.</t>
      <t>In order to facilitate interoperability in a network composed of next generation lambda-switch-capable equipment, this document defines a standard lambda label format that is compliant with the Dense Wavelength Division Multiplexing (DWDM) and Coarse Wavelength Division Multiplexing (CWDM) grids defined by the International Telecommunication Union Telecommunication Standardization Sector. The label format defined in this document can be used in GMPLS signaling and routing protocols. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6205'/>
  <seriesInfo name='DOI' value='10.17487/RFC6205'/>
</reference>

<reference anchor='RFC7699' target='https://www.rfc-editor.org/info/rfc7699'>
  <front>
    <title>Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers</title>
    <author fullname='A. Farrel' initials='A.' surname='Farrel'/>
    <author fullname='D. King' initials='D.' surname='King'/>
    <author fullname='Y. Li' initials='Y.' surname='Li'/>
    <author fullname='F. Zhang' initials='F.' surname='Zhang'/>
    <date month='November' year='2015'/>
    <abstract>
      <t>GMPLS supports the description of optical switching by identifying entries in fixed lists of switchable wavelengths (called grids) through the encoding of lambda labels. Work within the ITU-T Study Group 15 has defined a finer-granularity grid, and the facility to flexibly select different widths of spectrum from the grid. This document defines a new GMPLS lambda label format to support this flexi-grid.</t>
      <t>This document updates RFCs 3471 and 6205 by introducing a new label format.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7699'/>
  <seriesInfo name='DOI' value='10.17487/RFC7699'/>
</reference>

<reference anchor='RFC7689' target='https://www.rfc-editor.org/info/rfc7689'>
  <front>
    <title>Signaling Extensions for Wavelength Switched Optical Networks</title>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='S. Xu' initials='S.' surname='Xu'/>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='G. Martinelli' initials='G.' surname='Martinelli'/>
    <author fullname='H. Harai' initials='H.' surname='Harai'/>
    <date month='November' year='2015'/>
    <abstract>
      <t>This document provides extensions to Generalized Multiprotocol Label Switching (GMPLS) signaling for control of Wavelength Switched Optical Networks (WSONs). Such extensions are applicable in WSONs under a number of conditions including: (a) when optional processing, such as regeneration, must be configured to occur at specific nodes along a path, (b) where equipment must be configured to accept an optical signal with specific attributes, or (c) where equipment must be configured to output an optical signal with specific attributes. This document provides mechanisms to support distributed wavelength assignment with a choice of distributed wavelength assignment algorithms.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7689'/>
  <seriesInfo name='DOI' value='10.17487/RFC7689'/>
</reference>


<reference anchor='I-D.ietf-ccamp-optical-impairment-topology-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-optical-impairment-topology-yang-15'>
   <front>
      <title>A YANG Data Model for Optical Impairment-aware Topology</title>
      <author fullname='Dieter Beller' initials='D.' surname='Beller'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Esther Le Rouzic' initials='E.' surname='Le Rouzic'>
         <organization>Orange</organization>
      </author>
      <author fullname='Sergio Belotti' initials='S.' surname='Belotti'>
         <organization>Nokia</organization>
      </author>
      <author fullname='Gabriele Galimberti' initials='G.' surname='Galimberti'>
         <organization>Individual</organization>
      </author>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei Technologies</organization>
      </author>
      <date day='4' month='March' year='2024'/>
      <abstract>
	 <t>   In order to provision an optical connection through optical networks,
   a combination of path continuity, resource availability, and
   impairment constraints must be met to determine viable and optimal
   paths through the network.  The determination of appropriate paths is
   known as Impairment-Aware Routing and Wavelength Assignment (IA-RWA)
   for WSON, while it is known as Impairment-Aware Routing and Spectrum
   Assignment (IA-RSA) for SSON.

   This document provides a YANG data model for the impairment-aware TE
   topology in optical networks.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-ccamp-optical-impairment-topology-yang-15'/>
   
</reference>

<reference anchor='RFC8795' target='https://www.rfc-editor.org/info/rfc8795'>
  <front>
    <title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
    <author fullname='X. Liu' initials='X.' surname='Liu'/>
    <author fullname='I. Bryskin' initials='I.' surname='Bryskin'/>
    <author fullname='V. Beeram' initials='V.' surname='Beeram'/>
    <author fullname='T. Saad' initials='T.' surname='Saad'/>
    <author fullname='H. Shah' initials='H.' surname='Shah'/>
    <author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'/>
    <date month='August' year='2020'/>
    <abstract>
      <t>This document defines a YANG data model for representing, retrieving, and manipulating Traffic Engineering (TE) Topologies. The model serves as a base model that other technology-specific TE topology models can augment.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8795'/>
  <seriesInfo name='DOI' value='10.17487/RFC8795'/>
</reference>

<reference anchor='RFC4203' target='https://www.rfc-editor.org/info/rfc4203'>
  <front>
    <title>OSPF Extensions in Support of Generalized Multi-Protocol Label Switching (GMPLS)</title>
    <author fullname='K. Kompella' initials='K.' role='editor' surname='Kompella'/>
    <author fullname='Y. Rekhter' initials='Y.' role='editor' surname='Rekhter'/>
    <date month='October' year='2005'/>
    <abstract>
      <t>This document specifies encoding of extensions to the OSPF routing protocol in support of Generalized Multi-Protocol Label Switching (GMPLS). [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4203'/>
  <seriesInfo name='DOI' value='10.17487/RFC4203'/>
</reference>


<reference anchor='I-D.ietf-teas-rfc8776-update' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-rfc8776-update-11'>
   <front>
      <title>Common YANG Data Types for Traffic Engineering</title>
      <author fullname='Italo Busi' initials='I.' surname='Busi'>
         <organization>Huawei</organization>
      </author>
      <author fullname='Aihua Guo' initials='A.' surname='Guo'>
         <organization>Futurewei Technologies</organization>
      </author>
      <author fullname='Xufeng Liu' initials='X.' surname='Liu'>
         <organization>Alef Edge</organization>
      </author>
      <author fullname='Tarek Saad' initials='T.' surname='Saad'>
         <organization>Cisco Systems Inc.</organization>
      </author>
      <author fullname='Igor Bryskin' initials='I.' surname='Bryskin'>
         <organization>Individual</organization>
      </author>
      <date day='27' month='May' year='2024'/>
      <abstract>
	 <t>   This document defines a collection of common data types, identities,
   and groupings in YANG data modeling language.  These derived common
   types and groupings are intended to be imported by modules that model
   Traffic Engineering (TE) configuration and state capabilities.  This
   document obsoletes RFC 8776.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-rfc8776-update-11'/>
   
</reference>

<reference anchor='RFC8363' target='https://www.rfc-editor.org/info/rfc8363'>
  <front>
    <title>GMPLS OSPF-TE Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
    <author fullname='X. Zhang' initials='X.' surname='Zhang'/>
    <author fullname='H. Zheng' initials='H.' surname='Zheng'/>
    <author fullname='R. Casellas' initials='R.' surname='Casellas'/>
    <author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'/>
    <author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'/>
    <date month='May' year='2018'/>
    <abstract>
      <t>The International Telecommunication Union Telecommunication standardization sector (ITU-T) has extended its Recommendations G.694.1 and G.872 to include a new Dense Wavelength Division Multiplexing (DWDM) grid by defining channel spacings, a set of nominal central frequencies, and the concept of the "frequency slot". Corresponding techniques for data-plane connections are known as "flexi-grid".</t>
      <t>Based on the characteristics of flexi-grid defined in G.694.1 and in RFCs 7698 and 7699, this document describes the Open Shortest Path First - Traffic Engineering (OSPF-TE) extensions in support of GMPLS control of networks that include devices that use the new flexible optical grid.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8363'/>
  <seriesInfo name='DOI' value='10.17487/RFC8363'/>
</reference>

<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
  <front>
    <title>RESTCONF Protocol</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <author fullname='K. Watsen' initials='K.' surname='Watsen'/>
    <date month='January' year='2017'/>
    <abstract>
      <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8040'/>
  <seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>

<reference anchor='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'>
  <front>
    <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
    <author fullname='M. Wasserman' initials='M.' surname='Wasserman'/>
    <date month='June' year='2011'/>
    <abstract>
      <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6242'/>
  <seriesInfo name='DOI' value='10.17487/RFC6242'/>
</reference>

<reference anchor='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'>
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname='E. Rescorla' initials='E.' surname='Rescorla'/>
    <date month='August' year='2018'/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8446'/>
  <seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>

<reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'>
  <front>
    <title>Network Configuration Access Control Model</title>
    <author fullname='A. Bierman' initials='A.' surname='Bierman'/>
    <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'/>
    <date month='March' year='2018'/>
    <abstract>
      <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
      <t>This document obsoletes RFC 6536.</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='91'/>
  <seriesInfo name='RFC' value='8341'/>
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
</reference>




    </references>

    <references title='Informative References'>

<reference anchor="ITU-T_G.Sup43" >
  <front>
    <title>Transport of IEEE 10GBASE-R in optical transport networks (OTN)</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2003" month="December"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.Sup43" value=""/>
</reference>
<reference anchor="ITU-T_G.Sup39" >
  <front>
    <title>Optical system design and engineering considerations</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2016" month="February"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.Sup39" value=""/>
</reference>


<reference anchor='RFC6163' target='https://www.rfc-editor.org/info/rfc6163'>
  <front>
    <title>Framework for GMPLS and Path Computation Element (PCE) Control of Wavelength Switched Optical Networks (WSONs)</title>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <date month='April' year='2011'/>
    <abstract>
      <t>This document provides a framework for applying Generalized Multi-Protocol Label Switching (GMPLS) and the Path Computation Element (PCE) architecture to the control of Wavelength Switched Optical Networks (WSONs). In particular, it examines Routing and Wavelength Assignment (RWA) of optical paths.</t>
      <t>This document focuses on topological elements and path selection constraints that are common across different WSON environments; as such, it does not address optical impairments in any depth. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='6163'/>
  <seriesInfo name='DOI' value='10.17487/RFC6163'/>
</reference>

<reference anchor='RFC7446' target='https://www.rfc-editor.org/info/rfc7446'>
  <front>
    <title>Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks</title>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='D. Li' initials='D.' surname='Li'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <date month='February' year='2015'/>
    <abstract>
      <t>This document provides a model of information needed by the Routing and Wavelength Assignment (RWA) process in Wavelength Switched Optical Networks (WSONs). The purpose of the information described in this model is to facilitate constrained optical path computation in WSONs. This model takes into account compatibility constraints between WSON signal attributes and network elements but does not include constraints due to optical impairments. Aspects of this information that may be of use to other technologies utilizing a GMPLS control plane are discussed.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7446'/>
  <seriesInfo name='DOI' value='10.17487/RFC7446'/>
</reference>

<reference anchor='RFC7581' target='https://www.rfc-editor.org/info/rfc7581'>
  <front>
    <title>Routing and Wavelength Assignment Information Encoding for Wavelength Switched Optical Networks</title>
    <author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'/>
    <author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'/>
    <author fullname='D. Li' initials='D.' surname='Li'/>
    <author fullname='W. Imajuku' initials='W.' surname='Imajuku'/>
    <author fullname='J. Han' initials='J.' surname='Han'/>
    <date month='June' year='2015'/>
    <abstract>
      <t>A Wavelength Switched Optical Network (WSON) requires certain key information fields be made available to facilitate path computation and the establishment of Label Switched Paths (LSPs). The information model described in "Routing and Wavelength Assignment Information Model for Wavelength Switched Optical Networks" (RFC 7446) shows what information is required at specific points in the WSON. Part of the WSON information model contains aspects that may be of general applicability to other technologies, while other parts are specific to WSONs.</t>
      <t>This document provides efficient, protocol-agnostic encodings for the WSON-specific information fields. It is intended that protocol- specific documents will reference this memo to describe how information is carried for specific uses. Such encodings can be used to extend GMPLS signaling and routing protocols. In addition, these encodings could be used by other mechanisms to convey this same information to a Path Computation Element (PCE).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7581'/>
  <seriesInfo name='DOI' value='10.17487/RFC7581'/>
</reference>

<reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'>
  <front>
    <title>The IETF XML Registry</title>
    <author fullname='M. Mealling' initials='M.' surname='Mealling'/>
    <date month='January' year='2004'/>
    <abstract>
      <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
    </abstract>
  </front>
  <seriesInfo name='BCP' value='81'/>
  <seriesInfo name='RFC' value='3688'/>
  <seriesInfo name='DOI' value='10.17487/RFC3688'/>
</reference>




    </references>


<section anchor="changes-bis"><name>Changes from RFC 9093</name>

<t>This version adds new data types, identities, and groupings to the YANG modules.</t>

<t>The following new YANG data types have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>Standard-mode</t>
  <t>Organization-identifier</t>
  <t>Operational-mode</t>
  <t>frequency-thz</t>
  <t>frequency-ghz</t>
  <t>snr</t>
  <t>snr-or-null</t>
  <t>fiber-type</t>
  <t>decimal-2</t>
  <t>decimal-2-or-null</t>
  <t>power-gain</t>
  <t>power-gain-or-null</t>
  <t>power-loss</t>
  <t>power-loss-or-null</t>
  <t>power-ratio</t>
  <t>power-ratio-or-null</t>
  <t>power-dbm</t>
  <t>power-dbm-or-null</t>
  <t>decimal-5</t>
  <t>decimal-5-or-null</t>
  <t>psd</t>
  <t>psd-or-null</t>
</list></t>

<t>The following new YANG identities have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>identity cwdm-ch-spc-type</t>
  <t>identity flexi-ncfg-type</t>
  <t>identity flexi-ncfg-6p25gh</t>
  <t>identity modulation</t>
  <t>identity DPSK</t>
  <t>identity QPSK</t>
  <t>identity DP-QPSK</t>
  <t>identity QAM8</t>
  <t>identity DP-QAM8</t>
  <t>identity QAM16</t>
  <t>identity DP-QAM16</t>
  <t>identity QAM32</t>
  <t>identity DP-QAM32</t>
  <t>identity QAM64</t>
  <t>identity DP-QAM64</t>
  <t>identity fec-type</t>
  <t>identity g-fec</t>
  <t>identity super-fec</t>
  <t>identity no-fec</t>
  <t>identity sc-fec</t>
  <t>identity o-fec</t>
  <t>identity c-fec</t>
  <t>identity line-coding</t>
  <t>identity line-coding-NRZ-2p5G</t>
  <t>identity line-coding-NRZ-OTU1</t>
  <t>identity line-coding-NRZ-10G</t>
  <t>identity line-coding-NRZ-OTU2</t>
  <t>identity line-coding-OTL4.4-SC</t>
  <t>identity line-coding-FOIC1.4-SC</t>
  <t>identity wavelength-assignment</t>
  <t>identity first-fit-wavelength-assignment</t>
  <t>identity random-wavelength-assignment</t>
  <t>identity least-loaded-wavelength-assignment</t>
  <t>identity lower-first-wavelength-assignment</t>
  <t>identity upper-first-wavelength-assignment</t>
  <t>identity otu-type</t>
  <t>identity OTU1</t>
  <t>identity OTU2</t>
  <t>identity OTU3</t>
  <t>identity OTU4</t>
  <t>identity OTUCn</t>
  <t>identity type-power-mode</t>
  <t>identity power-spectral-density</t>
  <t>identity carrier-power</t>
</list></t>

<t>The following new YANG groupings have been added to the 'ietf-layer0-types' module:</t>

<t><list style="symbols">
  <t>wdm-label-start-end</t>
  <t>wdm-label-step</t>
  <t>wdm-label-hop</t>
  <t>wdm-label-range-info</t>
  <t>transceiver-mode</t>
  <t>transceiver-capabilities</t>
  <t>standard-mode</t>
  <t>organizational-mode</t>
  <t>penalty-value</t>
  <t>explicit-mode</t>
  <t>common-standard-organizational-mode</t>
  <t>transmitter-tuning-range</t>
  <t>common-all-mode</t>
  <t>common-transceiver-param</t>
  <t>common-transceiver-configured-param</t>
  <t>common-transceiver-readonly-param</t>
  <t>l0-tunnel-attributes</t>
  <t>frequency-range</t>
  <t>l0-path-constraints</t>
  <t>l0-path-properties</t>
</list></t>

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

<t>The authors and the working group give their sincere thanks to Robert
Wilton for the YANG doctor review and to Adrian Farrel and Tom Petch for their comments
during the model and document development.</t>

<t>This document was prepared using kramdown.</t>

</section>

    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
        <name>Contributors</name>
    <contact initials="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei</organization>
      <address>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </contact>
    <contact initials="D." surname="King" fullname="Daniel King">
      <organization>University of Lancaster</organization>
      <address>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </contact>
    <contact initials="G." surname="Galimberti" fullname="Gabriele Galimberti">
      <organization>Cisco</organization>
      <address>
        <email>ggalimbe@cisco.com</email>
      </address>
    </contact>
    <contact initials="E." surname="Griseri" fullname="Enrico Griseri">
      <organization>Nokia</organization>
      <address>
        <email>Enrico.Griseri@nokia.com</email>
      </address>
    </contact>
    <contact initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </contact>
    <contact initials="B. Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </contact>
    <contact initials="R." surname="Vilalta" fullname="Ricard Vilalta">
      <organization>CTTC</organization>
      <address>
        <email>ricard.vilalta@cttc.es</email>
      </address>
    </contact>
    <contact initials="Y." surname="Lee" fullname="Young Lee">
      <organization>Samsung</organization>
      <address>
        <email>younglee.tx@gmail.com</email>
      </address>
    </contact>
    <contact initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </contact>
    </section>

  </back>

<!-- ##markdown-source:
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
AQA=

-->

</rfc>

