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


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-ccamp-rfc9093-bis-04" category="std" consensus="true" submissionType="IETF" obsoletes="9093" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Yang for Layer 0 Types">A YANG Data Model for Layer 0 Types</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="H." surname="Zheng" fullname="Haomian Zheng">
      <organization>Huawei</organization>
      <address>
        <email>zhenghaomian@huawei.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>
    <author initials="D." surname="King" fullname="Daniel King">
      <organization>University of Lancaster</organization>
      <address>
        <email>d.king@lancaster.ac.uk</email>
      </address>
    </author>

    <date year="2023" month="March" day="12"/>

    
    <workgroup>CCAMP Working Group</workgroup>
    

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

<t>This document obsoletes RFC 9093.</t>



    </abstract>



  </front>

  <middle>


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

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

<t>This document introduces a collection of common data types derived
   from the built-in YANG data types.  The derived types and groupings
   are designed to be the common types applicable for modeling Traffic
   Engineering (TE) features as well as non-TE features (e.g., physical
   network configuration aspects) for Layer 0 optical networks in
   model(s) defined outside of this document.  The applicability of
   Layer 0 types specified in this document includes Wavelength Switched
   Optical Networks (WSONs) <xref target="RFC6163"/> <xref target="ITU-T_G.698.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>The YANG data model in this document conforms to the Network
   Management Datastore Architecture defined in <xref target="RFC8342"/>.</t>

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

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

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

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

<t>In this document, names of data nodes and other data model objects
   are prefixed using the standard prefix associated with the
   corresponding YANG imported modules.</t>

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

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

<t>The YANG module "ietf-layer0-types" (defined in <xref target="yang-code"/>) references
   <xref target="RFC4203"/>, <xref target="RFC6163"/>, <xref target="RFC6205"/>, <xref target="RFC7698"/>, <xref target="RFC7699"/>, <xref target="RFC8363"/>,
   <xref target="ITU-T_G.694.1"/>, and <xref target="ITU-T_G.694.2"/>.</t>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<ul empty="true"><li>
  <t>A YANG grouping that defines label steps for WSON as defined in
     <xref target="RFC8776"/>.</t>
</li></ul>

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

<ul empty="true"><li>
  <t>The flexi-grid label range was defined in <xref target="RFC7698"/>, and the
     generic topology model defines the label-start/label-end in
     <xref target="RFC8795"/>.  This grouping shows the flexi-grid-specific label-
     start and label-end information.</t>
</li></ul>

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

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

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

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

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

<ul empty="true"><li>
  <t>A YANG grouping that defines flexi-grid label steps as defined in
     <xref target="RFC8776"/>.</t>
</li></ul>

<t>transceiver-capabilities:</t>

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

<t>standard-mode:</t>

<ul empty="true"><li>
  <t>a YANG grouping for ITU-T G.698.2 standard mode that guarantees
   interoperability.</t>
</li></ul>

<t>organizational-mode:</t>

<ul empty="true"><li>
  <t>a YANG grouping to define transponder operational mode supported by
   organizations or vendors.</t>
</li></ul>

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

<ul empty="true"><li>
  <t>a YANG grouping to define the list of attributes related to optical
   impairments limits in case of transceiver explicit mode.  This
   grouping should be the same used in
   <xref target="I-D.ietf-ccamp-dwdm-if-param-yang"/>.</t>
</li></ul>

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

<ul empty="true"><li>
  <t>a YANG grouping to define the common capabilities attributes limit
   range in case of operational mode and explicit mode.  Also this
   grouping should be used in <xref target="I-D.ietf-ccamp-dwdm-if-param-yang"/>.</t>
</li></ul>

<t>cd-pmd-penalty:</t>

<ul empty="true"><li>
  <t>a YANG grouping to define the triplet used as entries in the list
   optional penalty associated with a given accumulated CD and PMD.
   This list of triplet cd, pmd, penalty can be used to sample the
   function penalty = f(CD, PMD).</t>
</li></ul>

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

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

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

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

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

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

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

     Copyright (c) 2023 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 2023-03-07 {
    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 6163: Framework for GMPLS and Path Computation Element
       (PCE) Control of Wavelength Switched Optical Networks (WSONs),
       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid,
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

  identity flexi-grid-dwdm {
    base l0-grid-type;
    description
      "Flexi-grid";
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks,
       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  identity wson-grid-dwdm {
    base l0-grid-type;
    description
      "DWDM grid";
    reference
      "RFC 6163:Framework for GMPLS and Path Computation Element
       (PCE) Control of Wavelength Switched Optical Networks (WSONs),
       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency 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 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";
  }

  identity dwdm-50ghz {
    base dwdm-ch-spc-type;
    description
      "50 GHz channel spacing";
  }

  identity dwdm-25ghz {
    base dwdm-ch-spc-type;
    description
      "25 GHz channel spacing";
  }

  identity dwdm-12p5ghz {
    base dwdm-ch-spc-type;
    description
      "12.5 GHz channel spacing";
  }

  identity flexi-ch-spc-type {
    description
      "Flexi-grid channel-spacing type";
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks,
       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

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

  identity flexi-slot-width-granularity {
    description
      "Flexi-grid slot width granularity";
  }

  identity flexi-swg-12p5ghz {
    base flexi-slot-width-granularity;
    description
      "12.5 GHz slot width granularity";
  }

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

  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 DC-DP-QAM8 {
    base modulation;
    description
      "DC DP-QAM8 (8 symbols Dual Carrier 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 DC-DP-QAM16 {
    base modulation;
    description
      "DC DP-QAM16 (16 symbols Dual Carrier 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
      "G-FEC (Generic-FEC)";
  }
  identity e-fec {
    base fec-type;
    description
      "E-FEC (Enhanced-FEC)";
  }
  identity no-fec {
    base fec-type;
    description
      "No FEC";
  }

  identity reed-solomon {
    base fec-type;
    description
      "Reed-Solomon error correction";
  }

  identity hamming-code {
    base fec-type;
    description
      "Hamming Code error correction";
  }

  identity golay {
    base fec-type;
      description "Golay error correction";
  } 

  identity line-coding {
    description
      "base line-coding class";
    reference 
      "ITU-T G.698.2-201811 section 7";
  }  

  identity line-coding-NRZ-2p5G {
    base line-coding;
    description 
      "ITU-T G.698.2-201811 section 7 table 8-1";
  }

  identity line-coding-NRZ-OTU1 {
    base line-coding;
    description
      "ITU-T G.698.2-201811 section 7 table 8-2";
  }

  identity line-coding-NRZ-10G {
    base line-coding;
    description
      "ITU-T G.698.2-201811 section 7 table 8-3/8-5";
  }

  identity line-coding-NRZ-OTU2 {
    base line-coding;
    description
      "ITU-T G.698.2-201811 section 7 table 8-4/8-6";
  }

  identity wavelength-assignment {
    description
      "Wavelength selection base";
    reference
      "RFC6163:Framework for GMPLS and Path Computation Element 
      (PCE) Control of Wavelength Switched Optical Networks (WSONs)";
  }

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

  identity random-wavelength-assignment {
    base wavelength-assignment;
    description
      "This WA method chooses an available
       wavelength randomly";
  }

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

  identity term-type {
    description
      "Termination type";
    reference
      "ITU-T G.709: Interfaces for the Optical Transport Network";
  }

  identity term-phys {
    base term-type;
    description
      "Physical layer termination";
  }

  identity term-otu {
    base term-type;
    description
      "OTU (Optical Transport Unit) termination";
  }

  identity term-odu {
    base term-type;
    description
      "ODU (Optical Data Unit) termination";
  }

  identity term-opu {
    base term-type;
    description
      "OPU (Optical Payload Unit) termination";
  }

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

  identity OTU1 {
    base otu-type;
    description
      "OTU1 (2.66 Gb/s)";
  }

  identity OTU1e {
    base otu-type;
    description
      "OTU1e (11.04 Gb/s)";
  }

  identity OTU1f {
    base otu-type;
    description
      "OTU1f (11.27 Gb/s)";
  }

  identity OTU2 {
    base otu-type;
    description
      "OTU2 (10.70 Gb/s)";
  }

  identity OTU2e {
    base otu-type;
    description
      "OTU2e (11.09 Gb/s)";
  }

  identity OTU2f {
    base otu-type;
    description
      "OTU2f (11.31G)";
  }

  identity OTU3 {
    base otu-type;
    description
      "OTU3 (43.01 Gb/s)";
  }

  identity OTU3e1 {
    base otu-type;
    description
      "OTU3e1 (44.57 Gb/s)";
  }

  identity OTU3e2 {
    base otu-type;
    description
      "OTU3e2 (44.58 Gb/s)";
  }

  identity OTU4 {
    base otu-type;
    description
      "OTU4 (111.80 Gb/s)";
  }

  identity OTUCn {
    base otu-type;
    description
      "OTUCn (n x 105.25 Gb/s)";
  }

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

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

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

/*
 * Typedefs
 */

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

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

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

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

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

       where 1471 nm is the conventional 'anchor wavelength' for
       transmission over the CWDM grid, and where 'channel spacing'
       is defined by the cwdm-ch-spc-type.";
    reference
      "RFC 6205: Generalized Labels for Lambda-Switch-Capable (LSC)
       Label Switching Routers,
       ITU-T G.694.2 (12/2003): Spectral grids for WDM applications:
       CWDM wavelength grid";
  }

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

       The nominal central frequency, 'f', is defined by:
         f = 193100.000 GHz + N x 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 flexi-ch-spc-type.

       Note that the term 'channel spacing' can be substituted by the
       term 'nominal central frequency granularity' defined in
       clause 8 of ITU-T G.694.1.";
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks,
       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 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks.
       ITU-T G.694.1 (10/2020): Spectral grids for WDM applications:
       DWDM frequency grid";
  }

  typedef operational-mode {
    type string;
    description
      "Organization/vendor specific mode that guarantees 
      interoperability.";
// 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
    reference
      "Section 2.5.2 of RFC YYYY: A YANG Data Model for Optical
      Impairment-aware Topology.";
  }

  typedef standard-mode {
    type string;
    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";
    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
      "RFC7581: Routing and Wavelength Assignment Information
       Encoding for Wavelength Switched Optical Networks";
  }

  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 dbm-t {
    type int32;
    units ".01dbm";
    description
      "Amplifiers and Transceivers Power in dBm.";
  }

  typedef snr {
    type decimal64 {
      fraction-digits 2;
    }
    units "dB@0.1nm";
    description
      "(Optical) Signal to Noise Ratio measured over 0.1 nm
      resolution bandwidth";
  }

  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-digits {
    type decimal64 {
      fraction-digits 2;
    }
    description
      "A decimal64 value with two digits.";
  }

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

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

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

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

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

/*
 * Groupings
 */

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

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

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

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

  grouping flexi-grid-label-start-end {
    description
      "The flexi-grid label-start or label-end used to specify
       flexi-grid label range.";
    leaf flexi-n {
      type l0-types:flexi-n;
      description
        "The given value 'N' is used to determine the nominal
         central frequency.";
    }
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks";
  }

  grouping flexi-grid-frequency-slot {
    description
      "Flexi-grid frequency slot grouping.";
    uses flexi-grid-label-start-end;
    leaf flexi-m {
      type l0-types:flexi-m;
      description
        "The given value 'M' is used to determine the slot width.";
    }
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
       Networks";
  }

  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 {
        list subcarrier-flexi-n {
          key "flexi-n";
          uses flexi-grid-frequency-slot;
          description
            "List of subcarrier channels for flexi-grid super
             channel.";
        }
      }
    }
    reference
      "RFC 7698: Framework and Requirements for GMPLS-Based Control
       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 7698: Framework and Requirements for GMPLS-Based
           Control of Flexi-Grid Dense Wavelength Division
           Multiplexing (DWDM) Networks";
      }
      leaf min-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        default "1";
        description
          "A multiplier of the slot width granularity, indicating
           the minimum slot width supported by an optical port.

           Minimum slot width is calculated by:
             Minimum slot width (GHz) =
               min-slot-width-factor * slot-width-granularity.";
        reference
          "RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-
           Grid Dense Wavelength Division Multiplexing (DWDM)
           Networks";
      }

      leaf max-slot-width-factor {
        type uint16 {
          range "1..max";
        }
        must '. >= ../min-slot-width-factor' {
          error-message
            "Maximum slot width must be greater than or equal to
             minimum slot width.";
        }
        description
          "A multiplier of the slot width granularity, indicating
           the maximum slot width supported by an optical port.

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

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

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

 /* supported inverse multiplexing capabilities such as
    max. OTSiG:OTSi cardinality
    It is a transponder attribute not transceiver
  */

 /*    leaf multiplexing-cap {
      type uint32;
    config false;
      description "supported inverse multiplexing capabilities
       such as max. OTSiG:OTSi cardinality";
    }
  */

  grouping transceiver-mode {
    description
      "This grouping is intended to be used for reporting the
       information of a transceiver's mode.";
    choice mode {
      mandatory true;
      description
        "Indicates whether the transceiver's mode is a standard
          mode, an organizational mode or an explicit mode.";
      case G.698.2 {
        uses standard-mode;
      }
      case organizational-mode {
        container organizational-mode {
          description
            "The set of attributes for an organizational mode";
          uses organizational-mode;
          uses common-organizational-explicit-mode;
        }  // container organizational-mode
      }
      case explicit-mode {
        container explicit-mode {
            description
              "The set of attributes for an explicit mode";
          container supported-modes {
            description
              "Container for all the standard and organizational
                modes supported by the transceiver's explicit
                mode.";
            leaf-list supported-application-codes {
              type leafref {
                path "../../../mode-id";
              }
              must "../../../../"
                  + "supported-mode[mode-id=current()]/"
                  + "standard-mode" {
                description
                  "The pointer is only for application codes
                    supported by transceiver."; 
              }
              description
                "List of pointers to the application codes
                  supported by the transceiver's explicit mode.";
            }
            leaf-list supported-organizational-modes {
              type leafref {
                path "../../../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 supported-modes
          uses common-explicit-mode;
          uses common-organizational-explicit-mode;
        }  // container explicit-mode
      } // end of case explicit-mode
    } // end of choice
  }
  grouping transceiver-capabilities {
    description
      "This grouping is intended to be used for reporting the
       capabilities of a transceiver.";

    container supported-modes {
      presence
        "When present, it indicates that the modes supported by a 
        transceiver are reported.";
      description
        "The top level container for the list supported 
        transceiver's modes.";
      list supported-mode {
        key "mode-id";
        config false;
        min-elements 1;
        description "The list of supported transceiver's modes.";
        leaf mode-id {
          type string { 
            length "1..255";
          }
          description "ID for the supported transceiver's mode.";
        }
        uses transceiver-mode;
      }  // list supported-modes
    }  // container supported-modes
  }  // grouping transceiver-capabilities

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

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

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

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

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

    leaf penalty-value {
      type union {
        type decimal64 {
          fraction-digits 2;
          range "0..max";
        }
        type empty;
      }
      units "dB";
      config false;
      mandatory true;
      description
        "OSNR penalty associated with the related optical
        impairment at the receiver.";
    }
  }

/* 
 * This grouping represent 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
 */

  grouping common-explicit-mode {
    description "Attributes capabilities related to 
    explicit mode of an optical transceiver";
    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-polarization-mode-dispersion {
      type decimal64 {
        fraction-digits 2;
        range "0..max";
      }
      units "ps";
      config false;
      description
        "Maximum acceptable accumulated polarization mode
         dispersion on the receiver";
    }
    leaf max-chromatic-dispersion {
      type decimal64 {
        fraction-digits 2;
        range "0..max";
      }
      units "ps/nm";
      config false;
      description
        "Maximum acceptable accumulated chromatic dispersion
         on the receiver";
    }
    list chromatic-dispersion-penalty {
      config false;
      description
        "Optional penalty associated with a given accumulated
         chromatic dispersion (CD) value.
         This list of pair cd and penalty can be used to
         sample the function penalty = f(CD).";
      leaf chromatic-dispersion {
        type union {
          type decimal64 {
            fraction-digits 2;
            range "0..max";
          }
          type empty;
        }
        units "ps/nm";
        config false;
        mandatory true;
        description "Chromatic dispersion";
      }
      uses penalty-value;
    }
    list polarization-dispersion-penalty {
      config false;
      description
        "Optional penalty associated with a given accumulated
         polarization mode dispersion(PMD) value.
         This list of pair pmd and penalty can be used to
         sample the function penalty = f(PMD).";
      leaf polarization-mode-dispersion {
        type union {
          type decimal64 {
            fraction-digits 2;
            range "0..max";
          }
          type empty;
        }
        units "ps";
        config false;
        mandatory true;
        description "Polarization mode dispersion";
      }
      uses penalty-value;
    }
    leaf max-diff-group-delay  {
      type uint32;
      units "ps";
      config false;
      description "Maximum Differential group delay of this mode
                  for this lane";
    }
    list max-pol-dependent-loss-penalty {
      config false;
      description
        "Optional penalty associated with the maximum acceptable 
        accumulated polarization dependent loss.
         This list of pair pdl and penalty can be used to
         sample the function pdl = f(penalty).";
      leaf max-polarization-dependent-loss {
        type power-in-db-or-null;
        config false;
        mandatory true;
        description
          "Maximum acceptable accumulated polarization dependent
          loss.";
      }
      uses penalty-value;
    }
    leaf available-modulation-type {
      type identityref {
        base modulation;
      }
      config false;
      description
        "Modulation type the specific transceiver in the list
         can support";
    }
    leaf min-OSNR {
      type snr;
      units "dBm";
      config false;
      description
        "min OSNR measured over 0.1 nm resolution bandwidth:
        if received OSNR at Rx-power reference point
        (rx-ref-channel-power) is lower than MIN-OSNR, an increased 
        level of bit-errors post-FEC needs to be expected";
    }
    leaf rx-ref-channel-power {
      type dbm-t;
      config false;
      description
        "The channel power used as reference for defining penalties 
        and min-OSNR";
    }
    list rx-channel-power-penalty {
      config false;
      description
        "Optional penalty associated with a received power
          lower than rx-ref-channel-power.
          This list of pair power and penalty can be used to
          sample the function penalty = f(rx-channel-power).";
      leaf rx-channel-power {
        type union {
          type dbm-t;
          type empty;
        }
        units "dBm";
        config false;
        mandatory true;
        description "Received Power";
      }
      uses penalty-value;
    }
    leaf min-Q-factor {
      type int32;
      units "dB";
      config false;
      description "min Qfactor at FEC threshold";
    }
    leaf available-baud-rate {
      type uint32;
      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-in-db;
      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 decimal64 {
        fraction-digits 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 common-explicit-mode    

  grouping common-organizational-explicit-mode {
    description "Common capability attributes limit range 
    in case of operational mode and explicit mode. 
    These attributes are supported separately in 
    case of application codes";

/* transmitter tuning range (f_tx-min, f_tx-max) */

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

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

/* supported transmitter power range [p_tx-min, p_tx_max] */

    leaf tx-channel-power-min {
      type dbm-t;
      config false;
      description "The minimum output power of this interface";
    }
    leaf tx-channel-power-max {
      type dbm-t;
      config false;
      description "The maximum output power of this interface";
    } 

/* supported receiver power range [p_rx-min, p_rx_max] */ 

     leaf rx-channel-power-min {
      type dbm-t;
      config false;
      description "The minimum input power of this interface";
    }
    leaf rx-channel-power-max {
      type dbm-t;
      config false;
      description "The maximum input power of this interface";
    }

    leaf rx-total-power-max {
      type dbm-t;
      config false;
      description "Maximum rx optical power for
      all the channels";
    }      
  } // grouping common-organizational-explicit-mode

/* This grouping represent the list of configured parameters */
/* values independent of operational mode */

  grouping common-transceiver-configured-param {
    description "Capability of an optical transceiver";

    leaf tx-channel-power {
      type union {
        type dbm-t;
        type empty;
      }
      description "The current channel transmit power";
    }
    leaf rx-channel-power {
      type union {
        type dbm-t;
        type empty;
      }
      config false;
      description "The current channel received power ";
    }
    leaf rx-total-power {
      type union {
        type dbm-t;
        type empty;
      }
      config false;
      description "Current total received power";
    }
  } // grouping for configured attributes out of mode

  grouping l0-tunnel-attributes {
    description
      "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels.";
    leaf bit-stuffing {
      type boolean;
      description
        "Bit stuffing enabled/disabled.";
    }
    leaf wavelength-assignment {
      type identityref {
        base wavelength-assignment;
      }
      description "Wavelength Allocation Method";
    }
  }

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

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

  grouping l0-path-properties {
    description
      "Common attribute for reporting the Layer 0 computed path
      properties.";
    leaf estimated-gsnr {
      type snr;
      config false;
      description
        "The estimate received GSNR for the computed path.";
    }
  }
}
]]></sourcecode></figure>

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

<t>The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>

<t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.  The NETCONF protocol over
   Secure Shell (SSH) specification <xref target="RFC6242"/> describes a method for
   invoking and running NETCONF within a Secure Shell (SSH) session as
   an SSH subsystem.</t>

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

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

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

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

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

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

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

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

</section>


  </middle>

  <back>


    <references title='Normative References'>

<reference anchor="ITU-T_G.698.2" >
  <front>
    <title>Amplified multichannel dense wavelength division multiplexing applications with single channel optical interfaces</title>
    <author >
      <organization>ITU-T Recommendation G.698.2</organization>
    </author>
    <date year="2018" month="November"/>
  </front>
  <seriesInfo name="ITU-T G.698.2" value=""/>
</reference>




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



<reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<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='RFC6163' target='https://www.rfc-editor.org/info/rfc6163'>
<front>
<title>Framework for GMPLS and Path Computation Element (PCE) Control of Wavelength Switched Optical Networks (WSONs)</title>
<author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'><organization/></author>
<author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'><organization/></author>
<author fullname='W. Imajuku' initials='W.' surname='Imajuku'><organization/></author>
<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' target='https://www.rfc-editor.org/info/rfc7698'>
<front>
<title>Framework and Requirements for GMPLS-Based Control of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
<author fullname='O. Gonzalez de Dios' initials='O.' role='editor' surname='Gonzalez de Dios'><organization/></author>
<author fullname='R. Casellas' initials='R.' role='editor' surname='Casellas'><organization/></author>
<author fullname='F. Zhang' initials='F.' surname='Zhang'><organization/></author>
<author fullname='X. Fu' initials='X.' surname='Fu'><organization/></author>
<author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'><organization/></author>
<author fullname='I. Hussain' initials='I.' surname='Hussain'><organization/></author>
<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 &quot;frequency slot&quot;.  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='RFC8342' target='https://www.rfc-editor.org/info/rfc8342'>
<front>
<title>Network Management Datastore Architecture (NMDA)</title>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'><organization/></author>
<author fullname='P. Shafer' initials='P.' surname='Shafer'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<author fullname='R. Wilton' initials='R.' surname='Wilton'><organization/></author>
<date month='March' year='2018'/>
<abstract><t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model.  This document updates RFC 7950.</t></abstract>
</front>
<seriesInfo name='RFC' value='8342'/>
<seriesInfo name='DOI' value='10.17487/RFC8342'/>
</reference>



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



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



<reference anchor='RFC7699' target='https://www.rfc-editor.org/info/rfc7699'>
<front>
<title>Generalized Labels for the Flexi-Grid in Lambda Switch Capable (LSC) Label Switching Routers</title>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<author fullname='D. King' initials='D.' surname='King'><organization/></author>
<author fullname='Y. Li' initials='Y.' surname='Li'><organization/></author>
<author fullname='F. Zhang' initials='F.' surname='Zhang'><organization/></author>
<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='RFC8363' target='https://www.rfc-editor.org/info/rfc8363'>
<front>
<title>GMPLS OSPF-TE Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks</title>
<author fullname='X. Zhang' initials='X.' surname='Zhang'><organization/></author>
<author fullname='H. Zheng' initials='H.' surname='Zheng'><organization/></author>
<author fullname='R. Casellas' initials='R.' surname='Casellas'><organization/></author>
<author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'><organization/></author>
<author fullname='D. Ceccarelli' initials='D.' surname='Ceccarelli'><organization/></author>
<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 &quot;frequency slot&quot;. Corresponding techniques for data-plane connections are known as &quot;flexi-grid&quot;.</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='RFC8795' target='https://www.rfc-editor.org/info/rfc8795'>
<front>
<title>YANG Data Model for Traffic Engineering (TE) Topologies</title>
<author fullname='X. Liu' initials='X.' surname='Liu'><organization/></author>
<author fullname='I. Bryskin' initials='I.' surname='Bryskin'><organization/></author>
<author fullname='V. Beeram' initials='V.' surname='Beeram'><organization/></author>
<author fullname='T. Saad' initials='T.' surname='Saad'><organization/></author>
<author fullname='H. Shah' initials='H.' surname='Shah'><organization/></author>
<author fullname='O. Gonzalez de Dios' initials='O.' surname='Gonzalez de Dios'><organization/></author>
<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='RFC8776' target='https://www.rfc-editor.org/info/rfc8776'>
<front>
<title>Common YANG Data Types for Traffic Engineering</title>
<author fullname='T. Saad' initials='T.' surname='Saad'><organization/></author>
<author fullname='R. Gandhi' initials='R.' surname='Gandhi'><organization/></author>
<author fullname='X. Liu' initials='X.' surname='Liu'><organization/></author>
<author fullname='V. Beeram' initials='V.' surname='Beeram'><organization/></author>
<author fullname='I. Bryskin' initials='I.' surname='Bryskin'><organization/></author>
<date month='June' year='2020'/>
<abstract><t>This document defines a collection of common data types and groupings in YANG data modeling language. These derived common types and groupings are intended to be imported by modules that model Traffic Engineering (TE) configuration and state capabilities.</t></abstract>
</front>
<seriesInfo name='RFC' value='8776'/>
<seriesInfo name='DOI' value='10.17487/RFC8776'/>
</reference>



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



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



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



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




    </references>

    <references title='Informative References'>

<reference anchor="ITU-T_G.694.1" >
  <front>
    <title>Spectral grids for WDM applications: DWDM frequency grid</title>
    <author >
      <organization>ITU-T Recommendation G.694.1</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
  <seriesInfo name="ITU-T G.694.1" value=""/>
</reference>
<reference anchor="ITU-T_G.694.2" >
  <front>
    <title>Spectral grids for WDM applications: CWDM wavelength grid</title>
    <author >
      <organization>ITU-T Recommendation G.694.2</organization>
    </author>
    <date year="2003" month="December"/>
  </front>
  <seriesInfo name="ITU-T G.694.2" value=""/>
</reference>




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



<reference anchor='RFC7581' target='https://www.rfc-editor.org/info/rfc7581'>
<front>
<title>Routing and Wavelength Assignment Information Encoding for Wavelength Switched Optical Networks</title>
<author fullname='G. Bernstein' initials='G.' role='editor' surname='Bernstein'><organization/></author>
<author fullname='Y. Lee' initials='Y.' role='editor' surname='Lee'><organization/></author>
<author fullname='D. Li' initials='D.' surname='Li'><organization/></author>
<author fullname='W. Imajuku' initials='W.' surname='Imajuku'><organization/></author>
<author fullname='J. Han' initials='J.' surname='Han'><organization/></author>
<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 &quot;Routing and Wavelength                           Assignment Information Model for Wavelength Switched Optical Networks&quot; (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' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-dwdm-if-param-yang-08'>
   <front>
      <title>A YANG model to manage the optical interface parameters for an external transponder in a WDM network</title>
      <author fullname='Gabriele Galimberti' initials='G.' surname='Galimberti'>
         <organization>Cisco</organization>
      </author>
      <author fullname='Ruediger Kunze' initials='R.' surname='Kunze'>
         <organization>Deutsche Telekom</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>
      <date day='24' month='October' year='2022'/>
      <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 by 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 the endpoints of a
   multi-vendor IaDI optical link.  The use of this model does not
   guarantee interworking of transceivers over a DWDM.  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-08'/>
   
</reference>



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




    </references>


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

<t>To be added in a future revision of this draft.</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 Tom Petch for his 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="G." surname="Galimberti" fullname="Gabriele Galimberti">
      <organization>Cisco</organization>
      <address>
        <email>ggalimbe@cisco.com</email>
      </address>
    </contact>
    <contact initials="E." surname="Griseri" fullname="Enrico Griseri">
      <organization>Nokia</organization>
      <address>
        <email>Enrico.Griseri@nokia.com</email>
      </address>
    </contact>
    <contact initials="D." surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei</organization>
      <address>
        <email>dhruv.ietf@gmail.com</email>
      </address>
    </contact>
    <contact initials="B. Y." surname="Yoon" fullname="Bin Yeong Yoon">
      <organization>ETRI</organization>
      <address>
        <email>byyun@etri.re.kr</email>
      </address>
    </contact>
    <contact initials="R." surname="Vilalta" fullname="Ricard Vilalta">
      <organization>CTTC</organization>
      <address>
        <email>ricard.vilalta@cttc.es</email>
      </address>
    </contact>
    <contact initials="Y." surname="Lee" fullname="Young Lee">
      <organization>Samsung</organization>
      <address>
        <email>younglee.tx@gmail.com</email>
      </address>
    </contact>
    <contact initials="V." surname="Lopez" fullname="Victor Lopez">
      <organization>Nokia</organization>
      <address>
        <email>victor.lopez@nokia.com</email>
      </address>
    </contact>
    </section>

  </back>

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

-->

</rfc>

