Skip to main content

A YANG Data Model for Layer 0 Types - Revision 2
draft-ietf-ccamp-layer0-types-ext-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Dieter Beller , Sergio Belotti , Haomian Zheng , Italo Busi , Esther Le Rouzic
Last updated 2021-08-20 (Latest revision 2021-08-10)
Replaces draft-esdih-ccamp-layer0-types-ext
Replaced by draft-ietf-ccamp-rfc9093-bis
RFC stream Internet Engineering Task Force (IETF)
Formats
Additional resources Mailing list discussion
Stream WG state WG Document
Document shepherd (None)
IESG IESG state I-D Exists
Consensus boilerplate Yes
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-ccamp-layer0-types-ext-00
CCAMP                                                     D. Beller, Ed.
Internet-Draft                                           S. Belotti, Ed.
Updates: draft-ietf-ccamp-layer0-types (if                         Nokia
         approved)                                              H. Zheng
Intended status: Standards Track                                 I. Busi
Expires: 5 February 2022                                          Huawei
                                                            E. Le Rouzic
                                                                  Orange
                                                           4 August 2021

            A YANG Data Model for Layer 0 Types - Revision 2
                  draft-ietf-ccamp-layer0-types-ext-00

Abstract

   This document defines a collection of common data types and groupings
   in the YANG data modeling language, which are used in several YANG
   modules for wavelength Division multiplexing (WDM) transport
   networks.  The YANG module ietf-layer0-types-ext updates ietf-
   layer0-types defined in draft-ietf-ccamp-layer0-types, which has been
   reduced in scope prior to publication to only cover spectrum
   management related aspects required for the YANG module ietf-wson-
   topology defined in draft-ietf-ccamp-wson-yang.

   To be completed

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 5 February 2022.

Copyright Notice

   Copyright (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

Beller, et al.           Expires 5 February 2022                [Page 1]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Simplified BSD License text
   as described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   2
     1.2.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Extensions for the Layer 0 Types Module . . . . . . . . . . .   3
   3.  Layer0 Types Revision 2 YANG CODE . . . . . . . . . . . . . .   4
   4.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  25
   5.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  25
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  25
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  25
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  25
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  25
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  26
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  27

1.  Introduction

   YANG [RFC7950] is a data modeling language used to model
   configuration data, state data, Remote Procedure Calls, and
   notifications for network management protocols such as NETCONF
   [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.

   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 aspect) for Layer 0 optical networks in
   model(s) defined outside of this document.

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

Beller, et al.           Expires 5 February 2022                [Page 2]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

1.2.  Terminology

2.  Extensions for the Layer 0 Types Module

   This document defines YANG module extensions for common Layer 0
   types.  named ietf-layer0-types-ext.  This module can be used for
   both WSON and Flexi-grid DWDM networks but in particular is adding
   common types used in the context of optical impairment aware topology
   model in WSON and SSONs.  The ietf-layer0-types-ext module contains
   the following YANG identities, types and groupings that can be reused
   in other YANG modules:

   transceiver-capabilities:

   a YANG grouping to define the transceiver capabilities (also called
   "modes") needed to determine optical signal compatibility.

   standard-mode:

   a YANG grouping for ITU-T G.698.2 standard mode that guarantees
   interoperability.

   organizational-mode:

   a YANG grouping to define transponder operational mode supported by
   organizations or vendors.

   common-explicit-mode:

   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
   [I-D.ietf-ccamp-dwdm-if-param-yang].

   common-organizational-explicit-mode:

   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 [I-D.ietf-ccamp-dwdm-if-param-yang].

   cd-pmd-penalty:

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

Beller, et al.           Expires 5 February 2022                [Page 3]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

   [Editor's note: There is still stuff from the xml template that needs
   to be removed]

3.  Layer0 Types Revision 2 YANG CODE

   The YANG code is developed on GitHub and can also be found in the
   following CCAMP repository:

   https://github.com/ietf-ccamp-wg/ietf-ccamp-layer0-types-ext

   [Editor's note: YANG code below always has to be updated before
   submitting a new revision!]

   <CODE BEGINS>
   module ietf-layer0-types-ext {
     namespace "urn:ietf:params:xml:ns:yang:ietf-layer0-types-ext";
     prefix "l0-types-ext";

     organization
       "IETF CCAMP Working Group";
     contact
       "WG Web: <http://tools.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>";

        // Additional contacts TBA (contributors)

     description
       "Description to be added!!!

        Copyright (c) 2021 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 Simplified
        BSD License set forth in Section 4.c of the IETF Trust's

Beller, et al.           Expires 5 February 2022                [Page 4]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

        Legal Provisions Relating to IETF Documents
        (http://trustee.ietf.org/license-info).

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

     revision "2021-07-05" {
       description
         "Initial Version";
       reference
         "RFC XXXX: A YANG Data Model for Layer 0 Types - Revision 2";
     }

   /*
    * Identities
    */

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

     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-State Quadrature Amplitude Modulation) modulation";
     }

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

     identity DP-QAM8 {
       base modulation;

Beller, et al.           Expires 5 February 2022                [Page 5]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

       description
         "DP-QAM8 (Dual Polarization Quadrature Amplitude Modulation)";
     }

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

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

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

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

     identity g-fec {
       base fec-type;
       description
         "G-FEC (Generic-FEC)";
     }
     identity e-fec {
       base fec-type;
       description
         "E-FEC (Enhanced-FEC)";
     }
     identity no-fec {
       base fec-type;
       description
         "No FEC";
     }

     identity reed-solomon {

Beller, et al.           Expires 5 February 2022                [Page 6]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

       base fec-type;
       description
         "Reed-Solomon error correction";
     }

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

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

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

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

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

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

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

     identity wavelength-assignment {

Beller, et al.           Expires 5 February 2022                [Page 7]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

     identity unspecified-wavelength-assignment {
       base wavelength-assignment;
       description
         "No method specified";
     }

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

Beller, et al.           Expires 5 February 2022                [Page 8]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

Beller, et al.           Expires 5 February 2022                [Page 9]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

Beller, et al.           Expires 5 February 2022               [Page 10]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

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

   /*
    * Typedefs
    */

     typedef operational-mode {
       type string;
       description
         "Organization/vendor specific mode that guarantees
         interoperability.";
       reference "ITU-T G.698.2 (11/2018)";
     }

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

     typedef organization-identifier {
       type string;
       description
         "vendor/organization identifier that uses a private mode
         out of already defined in G.698.2 ITU-T application-code";
       reference
         "RFC7581: Routing and Wavelength Assignment Information
          Encoding for Wavelength Switched Optical Networks";
     }

     typedef frequency-thz {
         type decimal64 {

Beller, et al.           Expires 5 February 2022               [Page 11]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

           fraction-digits 6;
         }
         units THz;
         description
           "The DWDM frequency in THz, e.g., 193.112500";
         reference
           "RFC6205: Generalized Labels for
           Lambda-Switch-Capable (LSC) Label Switching Routers";
     }
     typedef frequency-ghz {
         type decimal64 {
           fraction-digits 3;
         }
         units GHz;
         description
           "The DWDM frequency in GHz, e.g., 193112.500";
         reference
           "RFC6205: Generalized Labels for
           Lambda-Switch-Capable (LSC) Label Switching Routers";
     }

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

Beller, et al.           Expires 5 February 2022               [Page 12]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

   /*
    * Groupings
    */

    /* 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-capabilities {
       description
         "This grouping is intended to be use for reporting the
          capabilities of a transceiver.";

       container supported-modes {
         description
           "Transceiver's supported modes.";
         list supported-mode {
           key "mode-id";
           config false;
           description "list of supported transceiver's modes.";
           leaf mode-id {
             type string {
               length "1..255";

Beller, et al.           Expires 5 February 2022               [Page 13]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

             }
             description "ID for the supported transceiver's mode.";
           }
           choice mode {
             mandatory true;
             description
               "Indicates whether the transceiver's mode is a standard
                mode, an organizational mode or an explicit mode.";
             case G.698.2 {
               uses standard-mode;
             }
             case organizational-mode {
               container organizational-mode {
                 description
                   "The set of attributes for an organizational mode";
                 uses organizational-mode;
                 uses common-organizational-explicit-mode;
               }  // container organizational-mode
             }
             case explicit-mode {
               container explicit-mode {
                  description
                    "The set of attributes for an explicit mode";
                 container supported-modes {
                   description
                     "Container for all the standard and organizational
                      modes supported by the transceiver's explicit
                      mode.";
                   leaf-list supported-application-codes {
                     type leafref {
                       path "../../../mode-id";
                     }
                     must "../../../../"
                        + "supported-mode[mode-id=current()]/"
                        + "standard-mode" {
                       description
                         "The pointer is only for application codes
                          supported by transceiver.";
                     }
                     description
                       "List of pointers to the application codes
                        supported by the transceiver's explicit mode.";
                   }
                   leaf-list supported-organizational-modes {
                     type leafref {
                       path "../../../mode-id";
                     }
                     must "../../../../"

Beller, et al.           Expires 5 February 2022               [Page 14]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

                        + "supported-mode[mode-id=current()]/"
                        + "organizational-mode" {
                       description
                         "The pointer is only for organizational modes
                          supported by transceiver.";
                     }
                     description
                       "List of pointers to the organizational modes
                        supported by the transceiver's explicit mode.";
                   }
                 }  // container supported-modes
                 uses common-explicit-mode;
                 uses common-organizational-explicit-mode;
               }  // container explicit-mode
             } // end of case explicit-mode
           } // end of choice
         }  // 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";
       }

Beller, et al.           Expires 5 February 2022               [Page 15]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

       leaf organization-identifier {
         type organization-identifier;
         config false;
         description
         "organization identifier that uses organizational
            mode";

       }
     }

     grouping cd-pmd-penalty {
       description "entries of table; triplet chromatic
       dispersion, polarization mode dispersion and
       associated penalty";

       leaf chromatic-dispersion {
         type decimal64 {
           fraction-digits 2;
           range "0..max";
         }
         units "ps/nm";
         config false;
         mandatory true;
         description "chromatic dispersion";
       }

       leaf polarization-mode-dispersion {
         type decimal64 {
           fraction-digits 2;
           range "0..max";
         }
         units "ps";
         config false;
         mandatory true;
         description "Polarization mode dispersion";
       }

       leaf penalty {
         type decimal64 {
           fraction-digits 2;
           range "0..max";
         }
         units "dB";
         config false;
         mandatory true;
         description "Associated penalty on the receiver";
       }
     }

Beller, et al.           Expires 5 February 2022               [Page 16]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

     grouping pdl-penalty {
       description
         "entries of table; pair of values polarization dependent loss
         and associated penalty";

       leaf max-polarization-dependent-loss {
         type decimal64 {
           fraction-digits 2;
         }
         units "dB";
         config false;
         mandatory true;
         description
           "Maximum acceptable accumulate polarization dependent loss";
       }

       leaf penalty {
         type uint8;
         units "dB";
         config false;
         mandatory true;
         description "Associated penalty on the receiver";
       }
     }

   /*
    * This grouping represent the list of attributes related to
    * optical impairment limits for explicit mode
    * (min OSNR, max PMD, max CD, max PDL, Q-factor limit, etc.)
    * In case of standard and operational mode the attributes are
    * implicit
    */

     grouping common-explicit-mode {
       description "Attributes capabilities related to
       explicit mode of an optical transceiver";

       leaf line-coding-bitrate {
         type identityref {
           base line-coding;
         }
         config false;
         description "Bit rate/line coding of optical tributary signal";
         reference
           "ITU-T G.698.2 section 7.1.2";
       }

Beller, et al.           Expires 5 February 2022               [Page 17]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

       leaf max-polarization-mode-dispersion {
         type decimal64 {
           fraction-digits 2;
           range "0..max";
         }
         units "ps";
         config false;
         description
           "Maximum acceptable accumulated polarization mode
            dispersion on the receiver";
       }

       leaf max-chromatic-dispersion {
         type decimal64 {
           fraction-digits 2;
           range "0..max";
         }
         units "ps/nm";
         config false;
         description
           "Maximum acceptable accumulated chromatic dispersion
            on the receiver";
       }

       list chromatic-and-polarization-dispersion-penalty {
         config false;
         description
           "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).";
         uses cd-pmd-penalty ;
       }

       leaf max-diff-group-delay  {
              type int32;
              config false;
              description "Maximum Differential group delay of this mode
                           for this lane";
       }

       list max-polarization-dependent-loss-penalty {
         config false;
         description
           "Optional penalty associated with the maximum acceptable
           accumulated polarization dependent loss.
            This list of pair pdl and penalty can be used to
            sample the function pdl = f(penalty).";

Beller, et al.           Expires 5 February 2022               [Page 18]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

         uses pdl-penalty ;
       }

       leaf available-modulation-type {
         type identityref {
         base modulation;
         }
         config false;
         description
           "Modulation type the specific transceiver in the list
            can support";
       }
       leaf otsi-carrier-bandwidth {
         type frequency-ghz;
         config false;
         description
           "Carrier bandwidth occupancy.
            The required bandwidth can be given
            by the transceiver vendor or
            can be function of the following parameters:
            baudrate, nyquist-spacing, roll-off and
            cross-talk penalty";
       }

       leaf  min-OSNR {
         type snr;
         config false;
         description "min OSNR measured over 0.1 nm
         resolution bandwidth:
         if received OSNR at minimum Rx-power is lower than MIN-OSNR,
         an increased level of bit-errors post-FEC needs
         to be expected.";
         // change resolution BW from 12.5 GHz to 0.1 nm
       }

       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

Beller, et al.           Expires 5 February 2022               [Page 19]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

           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 nyquist-spacing-factor {
         type decimal64 {
           fraction-digits 4;
           range "1..2";
         }
         config false;
         description
           "1.x factor to multiply the baud rate
            for Nyquist shaped signal";
       }

       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 xtalk-penalty  {
         type int32;
         config false;
         description "";
       }

       leaf available-fec-type {
         type identityref {
           base fec-type;
         }
         config false;

Beller, et al.           Expires 5 February 2022               [Page 20]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

         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";
       }
     } // grouping common-explicit-mode

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

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

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

   /* transmitter-tunability-grid */

Beller, et al.           Expires 5 February 2022               [Page 21]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

       leaf minimum-channel-spacing {
         type frequency-ghz;
         config false;
         description
           "This paramenter represents the minumum difference in
            frequency between two adjacent channels
            (ref. G.698.2 sec.7.1.1).
            This free value is to permit OTSi's central frequency not
            to stay on the G.694.1 grid.";
       }

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

Beller, et al.           Expires 5 February 2022               [Page 22]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

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

       leaf otsi-carrier-frequency {
           type frequency-thz;
            description
              "OTSi carrier frequency, equivalent to the
              actual configured transmitter frequency";
       }

       leaf tx-channel-power {
           type dbm-t;
           description "The current channel transmit power";
       }

       leaf rx-channel-power {
           type dbm-t;
           config false;
           description "The current channel received power ";
       }

       leaf rx-total-power {
           type dbm-t;
           config false;
           description "Current total received power";
       }

     } // grouping for configured attributes out of mode

     grouping l0-tunnel-attributes {
       description
         "Parameters for Layer0 (WSON or Flexi-Grid) Tunnels.";
       leaf fec-type {
         type identityref {
           base fec-type;
         }
         description
           "FEC type.";
       }
       leaf termination-type {
         type identityref {
           base term-type;
         }
         description
           "Termination type.";
       }
       leaf bit-stuffing {

Beller, et al.           Expires 5 February 2022               [Page 23]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

         type boolean;
         description
           "Bit stuffing enabled/disabled.";
       }
     }

     grouping l0-path-constraints {
       description
         "Global named path constraints configuration
          grouping for Layer0 (WSON or Flexi-Grid) paths.";
       leaf wavelength-assignment {
         type identityref {
           base wavelength-assignment;
         }
         description "Wavelength Allocation Method";
       }
     }

     grouping frequency-range {
       description
         "The parameters that define a frequency range.";
       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.";
       }
     }
   }
   <CODE ENDS>

                                  Figure 1

Beller, et al.           Expires 5 February 2022               [Page 24]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

4.  Acknowledgements

   To be added if any.

5.  Contributors

   Gabriele Galimberti
   Cisco

   Email: ggalimbe@cisco.com

   Enrico Griseri
   Nokia

   Email: Enrico.Griseri@nokia.com

   Aihua Guo
   Futurewei

   Email: aihuaguo@futurewei.com

6.  IANA Considerations

   This memo includes no request to IANA.

   All drafts are required to have an IANA considerations section (see
   Guidelines for Writing an IANA Considerations Section in RFCs
   [RFC5226] for a guide).  If the draft does not require IANA to do
   anything, the section contains an explicit statement that this is the
   case (as above).  If there are no requirements for IANA, the section
   will be removed during conversion into an RFC by the RFC Editor.

7.  Security Considerations

   All drafts are required to have a security considerations section.
   See RFC 3552 [RFC3552] for a guide.

8.  References

8.1.  Normative References

Beller, et al.           Expires 5 February 2022               [Page 25]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

   [I-D.ietf-ccamp-layer0-types]
              Zheng, H., Lee, Y., Guo, A., Lopez, V., and D. King, "A
              YANG Data Model for Layer 0 Types", Work in Progress,
              Internet-Draft, draft-ietf-ccamp-layer0-types-09, 29
              December 2020, <https://datatracker.ietf.org/doc/html/
              draft-ietf-ccamp-layer0-types-09>.

   [I-D.ietf-ccamp-optical-impairment-topology-yang]
              Lee, Y., Rouzic, E. L., Lopez, V., Galimberti, G., and D.
              Beller, "A YANG Data Model for Optical Impairment-aware
              Topology", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-optical-impairment-topology-yang-07, 8 July 2021,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              optical-impairment-topology-yang-07>.

   [I-D.ietf-ccamp-wson-yang]
              Zheng, H., Lee, Y., Guo, A., Lopez, V., and D. King, "A
              YANG Data Model for WSON (Wavelength Switched Optical
              Networks)", Work in Progress, Internet-Draft, draft-ietf-
              ccamp-wson-yang-28, 29 December 2020,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              wson-yang-28>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC7950]  Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
              RFC 7950, DOI 10.17487/RFC7950, August 2016,
              <https://www.rfc-editor.org/info/rfc7950>.

   [RFC8795]  Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
              O. Gonzalez de Dios, "YANG Data Model for Traffic
              Engineering (TE) Topologies", RFC 8795,
              DOI 10.17487/RFC8795, August 2020,
              <https://www.rfc-editor.org/info/rfc8795>.

8.2.  Informative References

   [I-D.ietf-ccamp-dwdm-if-param-yang]
              Galimberti, G., Kunze, R., Burk, A., Hiremagalur, D., and
              G. Grammel, "A YANG model to manage the optical interface

Beller, et al.           Expires 5 February 2022               [Page 26]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

              parameters for an external transponder in a WDM network",
              Work in Progress, Internet-Draft, draft-ietf-ccamp-dwdm-
              if-param-yang-06, 12 July 2021,
              <https://datatracker.ietf.org/doc/html/draft-ietf-ccamp-
              dwdm-if-param-yang-06>.

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              DOI 10.17487/RFC2629, June 1999,
              <https://www.rfc-editor.org/info/rfc2629>.

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552,
              DOI 10.17487/RFC3552, July 2003,
              <https://www.rfc-editor.org/info/rfc3552>.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <https://www.rfc-editor.org/info/rfc5226>.

Authors' Addresses

   Dieter Beller (editor)
   Nokia

   Email: Dieter.Beller@nokia.com

   Sergio Belotti (editor)
   Nokia

   Email: Sergio.Belotti@nokia.com

   Haomian Zheng
   Huawei

   Email: ZhengHaomian@huawei.com

   Italo Busi
   Huawei

   Email: Italo.Busi@huawei.com

Beller, et al.           Expires 5 February 2022               [Page 27]
Internet-Draft         Layer 0 Types - Revision 2            August 2021

   Esther Le Rouzic
   Orange

   Email: esther.lerouzic@orange.com

Beller, et al.           Expires 5 February 2022               [Page 28]