<?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-05" 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="July" day="07"/>

    
    <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="I-D.ietf-teas-rfc8776-update"/>.</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 which is used to describe the range of available nominal central frequencies.</t>
</li></ul>

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

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

<ul empty="true"><li>
  <t>The flexi-grid label range was defined in <xref target="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="I-D.ietf-teas-rfc8776-update"/>.</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-07-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-07-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 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 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 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
      "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)";
  }

  identity operational-mode {
    description
      "Base identity to be used when defining organization/vendor 
      specific modes";
    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

/*
 * 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 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
      "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 identityref {
      base operational-mode;
    }
    description
      "Organization/vendor specific mode that guarantees 
      interoperability.";
    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 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 known or
      an empty value when the value is not known.";
  }

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

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

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

  typedef loss-in-db-or-null {
    type union {
      type loss-in-db;
      type empty;
    }
    description
      "The power attenuation in dB, when it is known or an empty 
      value when the loss 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.";
  }

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

  typedef decimal-5-digits-or-null {
    type union {
      type decimal-5-digits;
      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 decimal-16-digits {
    type decimal64 {
      fraction-digits 16;
    }
    description
      "A decimal64 value with sixteen digits.";
  }

  typedef decimal-16-digits-or-null {
    type union {
      type decimal-5-digits;
      type empty;
    }
    description
      "A decimal64 value with sixteen digits, when the value is 
      known or an empty value when the value 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.

        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 7698: Framework and Requirements for GMPLS-Based Control
      of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM)
      Networks;
      
      RFC 8363: GMPLS OSPF-TE Extensions in Support of Flexi-Grid 
      Dense Wavelength Division Multiplexing (DWDM) Networks";
  }

  grouping flexi-grid-frequency-slot {
    description
      "Flexi-grid frequency slot grouping.";
    uses flexi-grid-label-start-end;
    leaf flexi-m {
      type l0-types:flexi-m;
      description
        "The given value 'M' is used to determine the slot width.";
    }
    reference
      "RFC 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.
       
       The compatible-modes container shall be augmented with the 
       proper leafrefs when used: see for example the 
       transceiver-capabilities grouping below.";
    choice mode {
      mandatory true;
      description
        "Indicates whether the transceiver's mode is a standard
          mode, an organizational mode or an explicit mode.";
      case G.698.2 {
        uses standard-mode;
        uses common-standard-organizational-mode;
      }
      case organizational-mode {
        container organizational-mode {
          description
            "The set of attributes for an organizational mode";
          uses organizational-mode;
          uses common-standard-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";
          uses common-explicit-mode;
          uses common-organizational-explicit-mode;
          container compatible-modes {
            description
              "Container for all the standard and organizational
                modes supported by the transceiver's explicit
                mode.";
          }  // container compatible-modes
        }  // container explicit-mode
      } // end of case explicit-mode
    } // end of choice
  }

  grouping transceiver-capabilities {
    description
      "This grouping is intended to be used for reporting the
       capabilities of a transceiver.";

    container supported-modes {
      presence
        "When present, it indicates that the modes supported by a 
        transceiver are reported.";
      description
        "The top level container for the list supported 
        transceiver's modes.";
      list supported-mode {
        key "mode-id";
        config false;
        min-elements 1;
        description "The list of supported transceiver's modes.";
        leaf mode-id {
          type string { 
            length "1..255";
          }
          description "ID for the supported transceiver's mode.";
        }
        uses transceiver-mode {
          augment "mode/explicit-mode/explicit-mode/"
                + "compatible-modes" {
            description
              "Augments the compatible modes with the proper 
              leafrefs.";
            leaf-list supported-application-codes {
              type leafref {
                path "../../../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.";
            }
          }
        }
      }  // 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
        "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.";
    }
  }

/* 
 * 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-diff-group-delay  {
      type uint32;
      units "ps";
      config false;
      description
        "Maximum Differential group delay of this mode for this 
        lane";
    }
    leaf max-chromatic-dispersion {
      type decimal64 {
        fraction-digits 2;
        range "0..max";
      }
      units "ps/nm";
      config false;
      description
        "Maximum acceptable accumulated chromatic dispersion (CD) 
        on the receiver";
    }
    list cd-penalty {
      config false;
      description
        "Optional penalty associated with a given accumulated
        chromatic dispersion (CD) value.

        This list of pair cd and penalty values can be used to
        sample the function penalty = f(CD).";
      leaf cd-value {
        type union {
          type decimal64 {
            fraction-digits 2;
            range "0..max";
          }
          type empty;
        }
        units "ps/nm";
        config false;
        mandatory true;
        description
          "The Chromatic Dispersion (CD), when the value is known 
          or an empty value when the value is not known.";
      }
      uses penalty-value;
    }
    leaf max-polarization-mode-dispersion {
      type decimal64 {
        fraction-digits 2;
        range "0..max";
      }
      units "ps";
      config false;
      description
        "Maximum acceptable accumulated polarization mode
         dispersion (PMD) on the receiver";
    }
    list pmd-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 pmd-value {
        type union {
          type decimal64 {
            fraction-digits 2;
            range "0..max";
          }
          type empty;
        }
        units "ps";
        config false;
        mandatory true;
        description
          "The Polarization Mode Dispersion (PMD), when the value 
          is known or an empty value when the value is not known.";
      }
      uses penalty-value;
    }
    leaf max-polarization-dependant-loss {
      type loss-in-db-or-null;
      config false;
      mandatory true;
      description
        "Maximum acceptable accumulated accumulated polarization 
        dependent loss (PDL) on the receiver";
    }
    list pdl-penalty {
      config false;
      description
        "Optional penalty associated with a given accumulated 
        polarization dependent loss (PDL) value.

        This list of pair pdl and penalty values can be used to
        sample the function PDL = f(penalty).";
      leaf pdl-value {
        type loss-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-value {
        type union {
          type dbm-t;
          type empty;
        }
        units "dBm";
        config false;
        mandatory true;
        description
          "The Received Power, when the value is known or an empty 
          value when the value is not known.";
      }
      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 decimal-2-digits;
      units "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-standard-organizational-mode {
    description
      "Common attributes used by standard and organizational 
      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 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 line-coding-bitrate {
      type identityref {
        base line-coding;
      }
      config false;
      description
        "Bit rate/line coding of the optical tributary signal.
        
        Reporting 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-in-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.";
    }
    leaf rx-channel-power {
      type power-in-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-in-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 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'/>
    <date month='August' year='2016'/>
    <abstract>
      <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7950'/>
  <seriesInfo name='DOI' value='10.17487/RFC7950'/>
</reference>

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

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

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

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

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

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

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

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

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

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

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


<reference anchor='I-D.ietf-teas-rfc8776-update' target='https://datatracker.ietf.org/doc/html/draft-ietf-teas-rfc8776-update-04'>
   <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='Vishnu Pavan Beeram' initials='V. P.' surname='Beeram'>
         <organization>Juniper Networks</organization>
      </author>
      <author fullname='Igor Bryskin' initials='I.' surname='Bryskin'>
         <organization>Individual</organization>
      </author>
      <date day='27' month='June' year='2023'/>
      <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.  This document
   obsoletes RFC 8776.

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

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

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

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

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




    </references>

    <references title='Informative References'>

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

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


<reference anchor='I-D.ietf-ccamp-dwdm-if-param-yang' target='https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-dwdm-if-param-yang-09'>
   <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='13' month='March' year='2023'/>
      <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-09'/>
   
</reference>

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




    </references>


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

<t>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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
KyAmOrjxGSRmyKHf/wdnp5oDDAwBAA==

-->

</rfc>

