<?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.7.24 (Ruby 3.2.3) -->


<!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-14" 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="2025" month="June" day="06"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

    <abstract>


<?line 206?>

<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 Optical 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>


<?line 217?>

<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>In the context of this document, the term "layer 0" refers to the
photonic layer or WDM layer network in the architecture of the
optical transport network (OTN) as defined in <xref target="ITU-T_G.709"/>, <xref target="ITU-T_G.872"/>,
and <xref target="ITU-T_G.807"/> as opposed to the electrical switching
layers of the OTN, which are typically referred to as layer 1 (L1).</t>

<t>The term "layer 0" may also be used for other transport network
technologies (e.g., copper-based, radio-based, or free space optics-
based, etc.), which are outside the scope of this document.</t>

<t>Refer to <xref target="RFC7446"/> and <xref target="RFC7581"/> for other 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.
<?line -6?></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>te-types</c>
      <c>ietf-te-types</c>
      <c>[RFCYYYY]</c>
      <c>l0-types</c>
      <c>ietf-layer0-types</c>
      <c>RFC XXXX</c>
</texttable>

<ul empty="true"><li>
  <t>RFC Editor Note:
Please replace XXXX with the RFC number assigned to this document.
Please replace YYYY with the RFC number assigned to <xref target="I-D.ietf-teas-rfc8776-update"/>.
Please remove this note.</t>
</li></ul>

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

<dl>
  <dt>l0-grid-type:</dt>
  <dd>
    <t>A base YANG identity for the grid type as defined in <xref target="RFC6205"/> and <xref target="RFC7699"/>.</t>
  </dd>
  <dt>cwdm-ch-spc-type:</dt>
  <dd>
    <t>A base YANG identity for the Coarse Wavelength Division
Multiplexing (CWDM) channel-spacing type as defined in <xref target="RFC6205"/>.</t>
  </dd>
  <dt>dwdm-ch-spc-type:</dt>
  <dd>
    <t>A base YANG identity for the DWDM channel-spacing type as defined
in <xref target="RFC6205"/>.</t>
  </dd>
  <dt>flexi-ncfg-type:</dt>
  <dd>
    <t>A base YANG identity for the DWDM flexi-grid Nominal Central Frequency Granularity (NCFG) 
type as defined in <xref target="RFC7699"/>.</t>
  </dd>
</dl>

<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>

<dl>
  <dt>flexi-slot-width-granularity:</dt>
  <dd>
    <t>A base YANG identity for the DWDM flexi-grid Slot Width Granularity (SWG) type, as defined in <xref target="RFC7699"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>Note that the only value for SWG standardized in <xref target="ITU-T_G.694.1"/> is 12.5GHz.</t>
  </dd>
  <dt>fec-type:</dt>
  <dd>
    <t>A base YANG identity from which specific FEC (Forward Error Correction) type identities are derived.</t>
  </dd>
  <dt>line-coding:</dt>
  <dd>
    <t>A base YANG identity from which specific identities defining the bit rate/line coding of optical tributary signals are derived.</t>
  </dd>
  <dt>wavelength-assignment:</dt>
  <dd>
    <t>A base YANG identity from which for Wavelength selection method, as defined in <xref target="RFC7689"/>.</t>
  </dd>
  <dt>operational-mode:</dt>
  <dd>
    <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>
  </dd>
  <dt>wson-label-start-end:</dt>
  <dd>
    <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>
  </dd>
  <dt>wson-label-hop:</dt>
  <dd>
    <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>
  </dd>
  <dt>l0-label-range-info:</dt>
  <dd>
    <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"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>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>
  </dd>
  <dt>wson-label-step:</dt>
  <dd>
    <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>
  </dd>
  <dt>flexi-grid-label-start-end:</dt>
  <dd>
    <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"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>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>
  </dd>
  <dt/>
  <dd>
    <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>
  </dd>
  <dt>flexi-grid-label-hop:</dt>
  <dd>
    <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"/>.</t>
  </dd>
  <dt/>
  <dd>
    <t>This grouping shows the WSON-specific label-hop information. See <xref target="label-range"/> for more details.</t>
  </dd>
  <dt>flexi-grid-label-range-info:</dt>
  <dd>
    <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>
  </dd>
  <dt>flexi-grid-label-step:</dt>
  <dd>
    <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>
  </dd>
  <dt>wdm-label-start-end:</dt>
  <dd>
    <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>
  </dd>
  <dt>wdm-label-hop:</dt>
  <dd>
    <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>
  </dd>
  <dt>wdm-label-range-info:</dt>
  <dd>
    <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>
  </dd>
  <dt>wdm-label-step:</dt>
  <dd>
    <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>
  </dd>
  <dt>transceiver-capabilities:</dt>
  <dd>
    <t>A YANG grouping to define the transceiver capabilities (also called
"modes") needed to determine optical signal compatibility.</t>
  </dd>
  <dt/>
  <dd>
    <t>When this grouping is used, the explicit-mode container shall be augmented
with a leafref to an explicit mode template with the proper XPath which
depends from where this grouping is actually used.</t>
  </dd>
</dl>

<ul empty="true"><li>
  <t>Examples of how the transceiver-capabilities grouping can be used and augmented with a leafref
to an explicit mode template are provided in the YANG models defined in
<xref target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> and <xref target="I-D.ietf-ccamp-dwdm-if-param-yang"/>.</t>
</li></ul>

<dl>
  <dt>standard-mode:</dt>
  <dd>
    <t>A YANG grouping for the standard modes defined in <xref target="ITU-T_G.698.2"/>.</t>
  </dd>
  <dt>organizational-mode:</dt>
  <dd>
    <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>
  </dd>
  <dt>explicit-mode:</dt>
  <dd>
    <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>
  </dd>
  <dt/>
  <dd>
    <t>Note that the actual portion of the spectrum occupied by an OTSi is not explicitly reported within the explicit-mode parameters because it can be calculated using the available-baud-rate, the roll-off and the min-carrier-spacing attributes.</t>
  </dd>
  <dt>transceiver-tuning-range:</dt>
  <dd>
    <t>A YANG grouping that defines the transceiver tuning range, which
includes the minimum and maximum tuning frequency, as well as the
frequency tuning granularity.</t>
  </dd>
  <dt>common-organizational-explicit-mode:</dt>
  <dd>
    <t>A YANG grouping to define the common capabilities attributes limit
range in case of operational mode and explicit mode.</t>
  </dd>
  <dt>modulation:</dt>
  <dd>
    <t>A base YANG identity to define the different modulation types, as defined in <xref target="ITU-T_G.Sup39"/></t>
  </dd>
  <dt>snr:</dt>
  <dd>
    <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>
  </dd>
  <dt>psd:</dt>
  <dd>
    <t>A YANG data type used to represent a Power Spectral Density (PSD), as defined in <xref target="ITU-T_G.9700"/></t>
  </dd>
  <dt>penalty-value:</dt>
  <dd>
    <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>
  </dd>
  <dt>switching-wson-lsc:</dt>
  <dd>
    <t>A YANG identity for the Wavelength Switched Optical Network Lambda-Switch Capable (WSON-LSC) interface switching capability as defined in <xref target="RFC7688"/>.</t>
  </dd>
  <dt>switching-flexi-grid-lsc:</dt>
  <dd>
    <t>A YANG identity for the Flexi-Grid Lambda-Switch Capable (Flexi-Grid-LSC) interface switching capability as defined in <xref target="RFC8363"/>.</t>
  </dd>
</dl>

<t>It is worth noting that there is an inheritance relationship between the Lambda-Switch Capable (LSC) switching capability, defined in <xref target="RFC3471"/>, and the WSON-LSC and Flexi-Grid-LSC, defined respectively in <xref target="RFC7688"/> and <xref target="RFC8363"/>. As a consequence, the 'switching-wson-lsc' and 'switching-flexi-grid-lsc' YANG identities are defined as derived identities from the 'switching-lsc', defined in <xref target="I-D.ietf-teas-rfc8776-update"/>.</t>

<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 slots 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 (which represents the frequency slots associated to the WDM LSP) will be assigned on all the
WDM Links along a regen-free LSP path or path segment (i.e., an LSP path or path segment which does not include any 3R regenerator). Depending on the 3R capabilities, the WDM label may or may not change at a 3R regenerator: see
<xref section="2.7" sectionFormat="of" target="I-D.ietf-ccamp-optical-impairment-topology-yang"/> for more details on 3R regenerators.</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 label 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 label 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">
  <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-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="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@2025-02-25.yang"><![CDATA[
module ietf-layer0-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types";
  prefix l0-types;

  import ietf-te-types {
    prefix te-types;
    reference
      "RFC YYYY: Common YANG Data Types for Traffic Engineering";
  }
  // RFC Editor: replace YYYY with actual RFC number assigned to 
  // [I-D.ietf-teas-rfc8776-update] and remove this note

  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) 2025 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 2025-06-06 {
    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 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)";
    }

  identity switching-wson-lsc {
    base te-types:switching-lsc;
    description
      "Wavelength Switched Optical Network Lambda-Switch Capable
      (WSON-LSC).";
    reference
      "Section 3 of RFC 7688: GMPLS OSPF Enhancement for Signal and
      Network Element Compatibility for Wavelength Switched Optical
      Networks";
  }

  identity switching-flexi-grid-lsc {
    base te-types:switching-lsc;
    description
      "Flexi-grid Lambda-Switch Capable (Flexi-Grid-LSC).";
    reference
      "Section 4.1 of RFC 8363: GMPLS OSPF-TE Extensions in Support
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
      Networks";
  }

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

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

  typedef decimal-18-or-null {
    type union {
      type decimal-18;
      type empty;
    }
    description
      "A decimal64 value with eighteen digits, when the value is
      known or an empty value when the value 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 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 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 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 dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case multi {
            leaf-list subcarrier-dwdm-n {
              type 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 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 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 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 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 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 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 dwdm-n;
              description
                "The given value 'N' is used to determine the
                 nominal central frequency.";
            }
          }
          case super {
            leaf-list subcarrier-dwdm-n {
              type 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 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 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 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-capabilities {
    description
      "This grouping is intended to be used for reporting the
      capabilities of a transceiver.

      When this grouping is used, the explicit-mode container shall
      be augmented with a leafref to an explicit mode template with
      the proper XPath which depends from where this grouping is
      actually used.

      See for example the ietf-optical-impairment-topology YANG
      module in RFC YYYY.";
    reference
        "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
    container supported-modes {
      presence
        "When present, it indicates that the modes supported by a 
        transceiver are reported.";
      config false;
      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.";
        }
        choice mode {
          config false;
          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 common-all-modes;
              container compatible-modes {
                description
                  "Container for all the standard and organizational
                  modes supported by the transceiver's explicit
                  mode.";
                leaf-list supported-application-code {
                  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-mode {
                  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.";
                }
              }  // container compatible-modes
            }  // container explicit-mode
          } // end of case explicit-mode
        } // end of choice
      }  // list supported-mode
    }  // 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 OSNR 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 at Rx-power reference point
        (rx-ref-channel-power) and in absence of other impairments";
      reference
        "Section 2.6.4 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
    list cd-penalty {
      key cd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        chromatic dispersion (CD) value measured in
        absence of other impairments.

        This list of pair CD and OSNR penalty can be used to
        sample the function OSNR penalty = f(CD).";
      leaf cd-value {
        type decimal-2;
        units "ps/nm";
        config false;
        mandatory true;
        description
          "The Chromatic Dispersion (CD).";
      }
      uses penalty-value;
      reference
        "Section 2.6.4 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
    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 at Rx-power reference point
         (rx-ref-channel-power) and in absence of other impairments";
      reference
        "ITU-T G.666 (02/2011): Characteristics of polarization
        mode dispersion compensators and of receivers that
        compensate for polarization mode dispersion

        Section 2.6.4 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
    list pmd-penalty {
      key pmd-value;
      config false;
      description
        "Optional penalty associated with a given accumulated
        polarization mode dispersion (PMD) value measured in
        absence of other impairments.

        This list of pair PMD and OSNR penalty can be used to
        sample the function OSNR 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;
      reference
        "Section 2.6.4 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
    leaf max-polarization-dependent-loss {
      type power-loss-or-null;
      config false;
      mandatory true;
      description
        "Maximum acceptable accumulated polarization dependent
         loss (PDL) on the receiver at Rx-power reference point
         (rx-ref-channel-power) and in absence of other impairments";
      reference
        "Section 2.6.4 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
    list pdl-penalty {
      key pdl-value;
      config false;
      description
        "Optional penalty associated with a given accumulated 
        polarization dependent loss (PDL) value, measured in
        absence of other impairments.

        This list of pair PDL and OSNR penalty can be used to
        sample the function OSNR penalty = f(PDL).";
      leaf pdl-value {
        type power-loss;
        config false;
        mandatory true;
        description
          "Maximum acceptable accumulated polarization dependent
          loss (PDL).";
      }
      uses penalty-value;
      reference
        "Section 2.6.4 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
    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 OSNR penalty can be used to
        sample the function OSNR 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 transceiver-tuning-range {
    description
      "Transceiver tuning range (f-min, f-max, f-granularity)";

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

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

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

    container transceiver-tuning-range {
      config false;
      description
        "Transceiver tuning range (f-min, f-max, f-granularity)";
      uses transceiver-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 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 frequency-range-with-identifier {
    description
      "This grouping extends the frequency-range defined in
      ietf-layer0-types with an identifier, which used as a key when
      it is needed to define different properties (e.g., optical
      impairments) for different frequency ranges.";
    leaf frequency-range-id {
      type uint16;
      description
        "The identifier of the frequency range.";
    }
    container frequency-range {
      description
        "The frequency range for which these optical
        impairments apply.";
      uses frequency-range;
    }
  }

  grouping 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 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>This section is modeled after the template described in Section 3.7
of <xref target="I-D.ietf-netmod-rfc8407bis"/>.</t>

<t>The "ietf-layer0-types" YANG module define data models that are
designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have to
use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and
QUIC <xref target="RFC9000"/>) and have to use mutual authentication.</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.</t>

<t>The YANG modules define a set of identities, types, and
groupings. These nodes are intended to be reused by other YANG
modules. The modules by themselves do not expose any data nodes that
are writable, data nodes that contain read-only state, or RPCs.
As such, there are no additional security issues related to
the YANG module that need to be considered.</t>

<t>Modules that use the groupings that are defined in this document
should identify the corresponding security considerations. For
example, reusing some of these groupings will expose privacy-related
information (e.g., 'node-example').</t>

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

<t>This document requests IANA to update the following URIs in the "IETF XML Registry" <xref target="RFC3688"/> 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 requests IANA to register the following YANG modules in the "YANG Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters" registry group.</t>

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

<ul empty="true"><li>
  <t>RFC Editor Note: Please replace XXXX with the RFC number assigned to this document and remove this note.</t>
</li></ul>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-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">
  <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">
  <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="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">
  <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">
  <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">
  <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="I-D.ietf-teas-rfc8776-update">
   <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="21" month="February" year="2025"/>
      <abstract>
	 <t>   This document defines a collection of common data types, identities,
   and groupings in YANG data modeling language.  These derived common
   data types, identities and groupings are intended to be imported by
   other modules, e.g., those which model the 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-17"/>
   
</reference>
<reference anchor="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">
  <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">
  <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">
   <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="11" month="April" year="2025"/>
      <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-18"/>
   
</reference>
<reference anchor="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">
  <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="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="RFC7688">
  <front>
    <title>GMPLS OSPF Enhancement for Signal and Network Element Compatibility 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"/>
    <date month="November" year="2015"/>
    <abstract>
      <t>This document provides Generalized Multiprotocol Label Switching (GMPLS) Open Shortest Path First (OSPF) routing enhancements to support signal compatibility constraints associated with Wavelength Switched Optical Network (WSON) elements. These routing enhancements are applicable in common optical or hybrid electro-optical networks where not all the optical signals in the network are compatible with all network elements participating in the network.</t>
      <t>This compatibility constraint model is applicable to common optical or hybrid electro-optical systems such as optical-electronic-optical (OEO) switches, regenerators, and wavelength converters, since such systems can be limited to processing only certain types of WSON signals.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7688"/>
  <seriesInfo name="DOI" value="10.17487/RFC7688"/>
</reference>
<reference anchor="RFC3471">
  <front>
    <title>Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description</title>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="January" year="2003"/>
    <abstract>
      <t>This document describes extensions to Multi-Protocol Label Switching (MPLS) signaling required to support Generalized MPLS. Generalized MPLS extends the MPLS control plane to encompass time-division (e.g., Synchronous Optical Network and Synchronous Digital Hierarchy, SONET/SDH), wavelength (optical lambdas) and spatial switching (e.g., incoming port or fiber to outgoing port or fiber). This document presents a functional description of the extensions. Protocol specific formats and mechanisms, and technology specific details are specified in separate documents. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3471"/>
  <seriesInfo name="DOI" value="10.17487/RFC3471"/>
</reference>
<reference anchor="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>
<reference anchor="RFC6020">
  <front>
    <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
    <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
    <date month="October" year="2010"/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6020"/>
  <seriesInfo name="DOI" value="10.17487/RFC6020"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="ITU-T_G.807" >
  <front>
    <title>Generic functional architecture of the optical media network</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="January"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.807, Amendment 1" value=""/>
</reference>
<reference anchor="ITU-T_G.872" >
  <front>
    <title>Architecture of optical transport networks</title>
    <author >
      <organization>International Telecommunication Union</organization>
    </author>
    <date year="2021" month="January"/>
  </front>
  <seriesInfo name="ITU-T Supplement G.872, Amendment 1" 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">
  <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="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="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">
  <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="I-D.ietf-ccamp-dwdm-if-param-yang">
   <front>
      <title>A YANG data model to manage configurable DWDM optical interfaces</title>
      <author fullname="Gabriele Galimberti" initials="G." surname="Galimberti">
         <organization>C</organization>
      </author>
      <author fullname="Dharini Hiremagalur" initials="D." surname="Hiremagalur">
         <organization>Juniper</organization>
      </author>
      <author fullname="Gert Grammel" initials="G." surname="Grammel">
         <organization>Juniper</organization>
      </author>
      <author fullname="Roberto Manzotti" initials="R." surname="Manzotti">
         <organization>Cisco</organization>
      </author>
      <author fullname="Dirk Breuer" initials="D." surname="Breuer">
         <organization>DEUTSCHE TELEKOM AG</organization>
      </author>
      <date day="12" month="February" year="2025"/>
      <abstract>
	 <t>   This memo defines a Yang model related to the Optical Transceiver
   parameters characterising coherent 100G and above interfaces.  100G
   and above Transceivers support coherent modulation, multiple
   modulation formats, multiple FEC codes including some not yet
   specified (or in phase of specification by) [ITU-T_G.698.2] or any
   other ITU-T recommendation.  Use cases are described in [RFC7698].

   The Yang model defined in this memo can be used for Optical
   Parameters monitoring and/or configuration of DWDM interfaces.  The
   use of this model does not guarantee interworking of DWDM
   transceivers.  Optical path feasibility and interoperability has to
   be determined by tools and algorithms outside the scope of this
   document.  The purpose of this model is to program interface
   parameters to consistently configure the mode of operation of
   transceivers.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-ccamp-dwdm-if-param-yang-12"/>
   
</reference>

<reference anchor="I-D.ietf-netmod-rfc8407bis">
   <front>
      <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
      <author fullname="Andy Bierman" initials="A." surname="Bierman">
         <organization>YumaWorks</organization>
      </author>
      <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
         <organization>Orange</organization>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
         <organization>Huawei</organization>
      </author>
      <date day="5" month="June" year="2025"/>
      <abstract>
	 <t>   This document provides guidelines for authors and reviewers of
   specifications containing YANG data models, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF Protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-28"/>
   
</reference>
<reference anchor="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="RFC4252">
  <front>
    <title>The Secure Shell (SSH) Authentication Protocol</title>
    <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
    <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
    <date month="January" year="2006"/>
    <abstract>
      <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4252"/>
  <seriesInfo name="DOI" value="10.17487/RFC4252"/>
</reference>
<reference anchor="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="RFC9000">
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
    <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
    <date month="May" year="2021"/>
    <abstract>
      <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9000"/>
  <seriesInfo name="DOI" value="10.17487/RFC9000"/>
</reference>
<reference anchor="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>
<reference anchor="RFC8340">
  <front>
    <title>YANG Tree Diagrams</title>
    <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
    <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
    <date month="March" year="2018"/>
    <abstract>
      <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="215"/>
  <seriesInfo name="RFC" value="8340"/>
  <seriesInfo name="DOI" value="10.17487/RFC8340"/>
</reference>



    </references>

</references>


<?line 2846?>

<section anchor="yang-tree"><name>The Complete Schema Trees</name>

<t>This appendix presents the complete tree of the Layer 0 Types data model. See <xref target="RFC8340"/> for an explanation of the symbols used. The data type of every leaf node is shown near the right end of the corresponding line.</t>

<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?    dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?    cwdm-n
       +--:(flexi-grid)
          +-- flexi-n?   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?               dwdm-n
       |     +--:(multi)
       |        +-- subcarrier-dwdm-n*    dwdm-n
       +--:(cwdm)
       |  +-- cwdm-n?                     cwdm-n
       +--:(flexi-grid)
          +-- (single-or-super-channel)?
             +--:(single)
             |  +-- flexi-n?              flexi-n
             |  +-- flexi-m?              flexi-m
             x--:(super)
             |  x-- subcarrier-flexi-n* [flexi-n]
             |     +-- flexi-n?   flexi-n
             |     +-- flexi-m?   flexi-m
             +--:(multi)
                +-- frequency-slots
                   +-- frequency-slot* [flexi-n]
                      +-- flexi-n?   flexi-n
                      +-- flexi-m?   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?   dwdm-n
       +--:(cwdm)
          +-- cwdm-n?   cwdm-n
  grouping wson-label-hop:
    +-- (grid-type)?
       +--:(dwdm)
       |  +-- (single-or-super-channel)?
       |     +--:(single)
       |     |  +-- dwdm-n?              dwdm-n
       |     +--:(super)
       |        +-- subcarrier-dwdm-n*   dwdm-n
       +--:(cwdm)
          +-- cwdm-n?                    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?   flexi-n
  grouping flexi-grid-frequency-slot:
    +-- flexi-n?   flexi-n
    +-- flexi-m?   flexi-m
  grouping flexi-grid-label-hop:
    +-- (single-or-super-channel)?
       +--:(single)
       |  +-- flexi-n?              flexi-n
       |  +-- flexi-m?              flexi-m
       x--:(super)
       |  x-- subcarrier-flexi-n* [flexi-n]
       |     +-- flexi-n?   flexi-n
       |     +-- flexi-m?   flexi-m
       +--:(multi)
          +-- frequency-slots
             +-- frequency-slot* [flexi-n]
                +-- flexi-n?   flexi-n
                +-- flexi-m?   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-capabilities:
    +--ro 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 transceiver-tuning-range
             |  |  +--ro min-central-frequency?
             |  |  |       frequency-thz
             |  |  +--ro max-central-frequency?
             |  |  |       frequency-thz
             |  |  +--ro transceiver-tunability-granularity?
             |  |          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 transceiver-tuning-range
             |     |  +--ro min-central-frequency?
             |     |  |       frequency-thz
             |     |  +--ro max-central-frequency?
             |     |  |       frequency-thz
             |     |  +--ro transceiver-tunability-granularity?
             |     |          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 transceiver-tuning-range
                   |  +--ro min-central-frequency?
                   |  |       frequency-thz
                   |  +--ro max-central-frequency?
                   |  |       frequency-thz
                   |  +--ro transceiver-tunability-granularity?
                   |          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-code*
                      |       -> ../../../../supported-mode/mode-id
                      +--ro supported-organizational-mode*
                              -> ../../../../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-dependent-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 transceiver-tuning-range:
    +-- min-central-frequency?                frequency-thz
    +-- max-central-frequency?                frequency-thz
    +-- transceiver-tunability-granularity?   frequency-ghz
  grouping common-all-modes:
    +--ro transceiver-tuning-range
    |  +--ro min-central-frequency?                frequency-thz
    |  +--ro max-central-frequency?                frequency-thz
    |  +--ro transceiver-tunability-granularity?   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 tunnel-attributes:
    +-- wavelength-assignment?   identityref
  grouping frequency-range:
    +-- lower-frequency    frequency-thz
    +-- upper-frequency    frequency-thz
  grouping frequency-range-with-identifier:
    +-- frequency-range-id?   uint16
    +-- frequency-range
       +-- lower-frequency    frequency-thz
       +-- upper-frequency    frequency-thz
  grouping path-constraints:
    +-- gsnr-extra-margin?   snr
  grouping path-properties:
    +--ro estimated-gsnr?          snr
    +--ro estimated-eol-gsnr?      snr
    +--ro estimated-lowest-gsnr?   snr
]]></artwork></figure>

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

<t>This version adds new identities, data types, and groupings to the 'ietf-layer0-types' YANG module.</t>

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

<t><list style="symbols">
  <t>cwdm-ch-spc-type</t>
  <t>flexi-ncfg-type</t>
  <t>flexi-ncfg-6p25gh</t>
  <t>modulation</t>
  <t>DPSK</t>
  <t>QPSK</t>
  <t>DP-QPSK</t>
  <t>QAM8</t>
  <t>DP-QAM8</t>
  <t>QAM16</t>
  <t>DP-QAM16</t>
  <t>QAM32</t>
  <t>DP-QAM32</t>
  <t>QAM64</t>
  <t>DP-QAM64</t>
  <t>fec-type</t>
  <t>g-fec</t>
  <t>super-fec</t>
  <t>no-fec</t>
  <t>sc-fec</t>
  <t>o-fec</t>
  <t>c-fec</t>
  <t>line-coding</t>
  <t>line-coding-NRZ-2p5G</t>
  <t>line-coding-NRZ-OTU1</t>
  <t>line-coding-NRZ-10G</t>
  <t>line-coding-NRZ-OTU2</t>
  <t>line-coding-OTL4.4-SC</t>
  <t>line-coding-FOIC1.4-SC</t>
  <t>wavelength-assignment</t>
  <t>first-fit-wavelength-assignment</t>
  <t>random-wavelength-assignment</t>
  <t>least-loaded-wavelength-assignment</t>
  <t>lower-first-wavelength-assignment</t>
  <t>upper-first-wavelength-assignment</t>
  <t>type-power-mode</t>
  <t>power-spectral-density</t>
  <t>carrier-power</t>
  <t>switching-wson-lsc</t>
  <t>switching-flexi-grid-lsc</t>
</list></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 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-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>transceiver-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>tunnel-attributes</t>
  <t>frequency-range</t>
  <t>frequency-range-with-identifier</t>
  <t>path-constraints</t>
  <t>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>Nokia</organization>
      <address>
        <email>gabriele.galimberti@nokia.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>
    <contact initials="R." surname="Manzotti" fullname="Roberto Manzotti">
      <organization>Cisco</organization>
      <address>
        <email>rmanzott@cisco.com</email>
      </address>
    </contact>
    <contact initials="G." surname="Grammel" fullname="Gert Grammel">
      <organization>Juniper</organization>
      <address>
        <email>ggrammel@juniper.net</email>
      </address>
    </contact>
    </section>

  </back>

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

-->

</rfc>

