CCAMP Working Group                                               Y. Lee
Internet Draft
Internet-Draft                          SKKU (Sung Kyun Kwan University)
Intended Status: Standard status: Standards Track
Expires: May 7, 2020                                V. Lopez
Expires: September 10, 2020                                   Telefonica
                                                           G. Galimberti
                                                                   Cisco

                                                         Jean Luc Auge
                                                               Orange
                                                               D. Beller
                                                                   Nokia

                                                      November 4, 2019
                                                           March 9, 2020

        A Yang Data Model for Optical Impairment-aware Topology

            draft-ietf-ccamp-optical-impairment-topology-yang-02
          draft-ietf-ccamp-optical-impairment-topology-yang-03

Abstract

   In order to provision an optical connection through optical networks,
   a combination of path continuity, resource availability, and
   impairment constraints must be met to determine viable and optimal
   paths through the network.  The determination of appropriate paths is
   known as Impairment-Aware Routing and Wavelength Assignment (IA-RWA)
   for WSON, while it is known as Impairment-Aware Routing and Spectrum
   Assigment (IA-RSA) for SSON.

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

Status of this This Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts.
   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."
   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on May 7, September 10, 2020.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info)
   (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 ................................................  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Terminology ............................................ 4 . . . . . . . . . . . . . . . . . . . . . . .   3
     1.2.  Tree diagram ........................................... Diagram  . . . . . . . . . . . . . . . . . . . . . .   4
     1.3.  Prefixes in Data Node Names............................. Names . . . . . . . . . . . . . . .   4
   2.  Reference Architecture....................................... 5 Architecture  . . . . . . . . . . . . . . . . . . .   4
     2.1.  Control Plane Architecture.............................. Architecture  . . . . . . . . . . . . . . .   5
     2.2.  Transport Data Plane.................................... Plane  . . . . . . . . . . . . . . . . . .   6
     2.3.  OMS Media Links......................................... 7 Links . . . . . . . . . . . . . . . . . . . . .   6
       2.3.1.  Optical Tributary Signal (OTSi) ................... . . . . . . . . . . .   7
       2.3.2.  Optical Tributary Signal Group (OTSiG) ............ 8  . . . . . . .   7
       2.3.3.  Media Channel (MC)  . . . . . . . . . . . . . . . . .   8
       2.3.4.  Media Channel Group (MCG) ........................ 10
      2.4. Amplifiers ............................................ 11 . . . . . . . . . . . . . .   9
     2.4.  Amplifiers  . . . . . . . . . . . . . . . . . . . . . . .  10
     2.5.  Transponders ..........................................  . . . . . . . . . . . . . . . . . . . . . .  11
     2.6.  WSS/Filter ............................................ 12  . . . . . . . . . . . . . . . . . . . . . . .  11
     2.7.  Optical Fiber ......................................... . . . . . . . . . . . . . . . . . . . . . .  11
     2.8.  ROADM Node Architectures  . . . . . . . . . . . . . . . .  12
       2.8.1.  Integrated ROADM Architecture with Integrated Optical
               Transponders  . . . . . . . . . . . . . . . . . . . .  12
       2.8.2.  Integrated ROADMs with Integrated Optical
               Transponders and Single Channel Add/Drop Interfaces
               for Remote Optical Transponders . . . . . . . . . . .  13
       2.8.3.  Disaggregated ROADMs Subdivided into Degree,
               Add/Drop, and Optical Transponder Subsystems  . . . .  14
       2.8.4.  Optical Impairments Imposed by ROADM Nodes  . . . . .  15
   3.  YANG Model (Tree Structure)................................. Structure) . . . . . . . . . . . . . . . . .  17
   4.  Optical Impairment Topology YANG Model ..................... 19  . . . . . . . . . . .  20
   5.  Security Considerations..................................... 38 Considerations . . . . . . . . . . . . . . . . . . .  53
   6.  IANA Considerations ........................................ 38
   7. Acknowledgments ............................................ 39
   8. . . . . . . . . . . . . . . . . . . . . .  53
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  54
   8.  References ................................................. 40  . . . . . . . . . . . . . . . . . . . . . . . . .  54
     8.1.  Normative References................................... 40 References  . . . . . . . . . . . . . . . . . .  54
     8.2.  Informative References................................. 40
   9. References  . . . . . . . . . . . . . . . . .  54
   Appendix A.  Contributors ............................................... 42 . . . . . . . . . . . . . . . . . . . .  56
   Appendix B.  Additional Authors . . . . . . . . . . . . . . . . .  57
   Authors' Addresses ............................................ 42  . . . . . . . . . . . . . . . . . . . . . . .  58

1.  Introduction

   In order to provision an optical connection (an optical path) through
   a wavelength switched optical networks (WSONs) or spectrum switched
   optical networks (SSONs), a combination of path continuity, resource
   availability, and impairment constraints must be met to determine
   viable and optimal paths through the network.  The determination of
   appropriate paths is known as Impairment-Aware Routing and Wavelength
   Assignment (IA-RWA) [RFC6566] for WSON, while it is known as IA-Routing IA-
   Routing and Spectrum Assigment (IA-RSA) for SSON.

   This document provides a YANG data model for the impairment-aware
   Traffic Engineering (TE) topology in WSONs and SSONs.  The YANG model
   described in this document is a WSON/SSON technology-specific Yang
   model based on the information model developed in [RFC7446] and the
   two encoding documents [RFC7581] and [RFC7579] that developed
   protocol independent encodings based on [RFC7446].

   The intent of this document is to provide a Yang data model, which
   can be utilized by a Multi-Domain Service Coordinator (MDSC) to
   collect states of WSON impairment data from the Transport PNCs to
   enable impairment-aware optical path computation according to the
   ACTN Architecture [RFC8453].  The communication between controllers
   is done via a NETCONF [RFC8341] or a RESTCONF [RFC8040]. Similarly,
   this
   Similarly,this model can also be exported by the MDSC to a Customer
   Network Controller (CNC), which can run an offline planning process
   to map latter the services in the network.

   This document augments the generic TE topology draft [TE-TOPO]
   [I-D.ietf-teas-yang-te-topo] where possible.

   This document defines one YANG module: ietf-optical-impairment-
   topology (Section 3) according to the new Network Management
   Datastore Architecture [RFC8342].

1.1.  Terminology

   Refer to [RFC6566], [RFC7698], and [G.807] for the key terms used in
   this document.

   The following terms are defined in [RFC7950] and are not redefined
   here:

   o  client
   o  server
   o  augment
   o  data model
   o  data node

   The following terms are defined in [RFC6241] and are not redefined
   here:

   o  configuration data
   o  state data

   The terminology for describing YANG data models is found in
   [RFC7950].

1.2.  Tree diagram Diagram

   A simplified graphical representation of the data model is used in
   Section 2 of this this document.  The meaning of the symbols in these
   diagrams is defined in [RFC8340].

1.3.  Prefixes in Data Node Names

   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, as shown in Table 1.

   +------------------+----------------------------------+------------+

   +--------------+--------------------------+-------------------------+
   | Prefix       | YANG module              | Reference               |
   +------------------+----------------------------------+------------+
   +--------------+--------------------------+-------------------------+
   | optical-imp-topo optical-imp- | ietf-optical-impairment-topology ietf-optical-impairment- | [RFCXXXX]               |
   | topo         | topology                 |                         |
   | layer0-types | ietf-layer0-types        | [L0-Types] [I-D.ietf-ccamp-layer0- |
   |              |                          | types]                  |
   | nw           | ietf-network             | [RFC8345]               |
   | nt           | ietf-network-topology    | [RFC8345]               |
   | tet          | ietf-te-topology         | [TE-TOPO] [I-D.ietf-teas-yang-te- |
   |              |                          |
   +------------------+----------------------------------+------------+ topo]                   |
   +--------------+--------------------------+-------------------------+

             Table 1: Prefixes and corresponding YANG modules

   Note:

   [Editor's note: The RFC Editor will replace XXXX with the number
   assigned to the RFC once this draft becomes an RFC. RFC.]

2.  Reference Architecture
2.1.  Control Plane Architecture

   Figure 1 shows the control plane architecture.

                             +--------+
                             |  MDSC  |
                             +--------+
    Scope of this ID  ------->   ||
                  |              ||
                  |  +------------------------+
                  |  |        OPTICAL         |
     +---------+  |  |         DOMAIN         |     +---------+
     | Device  |  |  |       CONTROLLER       |     | Device  |
     | config. |  |  +------------------------+     | config. |
     +---------+  v  //          ||          \\     +---------+
    ______|______   //           ||           \\   ______|______
   /      OT     \ //            ||            \\ /      OT     \
   | +--------+  |//           __--__           \\|  +--------+ |
   | |Vend. A |--|----+       (      )       +----|--| Vend. A| |
   | +--------+  |    |    ~-(        )-~    |    |  +--------+ |
   | +--------+  |    +---/              \---+    |  +--------+ |
   | |Vend. B |--|--+    /                \    +--|--| Vend. B| |
   | +--------+  |  +---(   OLS Segment    )---+  |  +--------+ |
   | +--------+  |  +---(                  )---+  |  +--------+ |
   | |Vend. C |--|--+    \                /    +--|--| Vend. C| |
   | +--------+  |    +---\              /---+    |  +--------+ |
   | +--------+  |    |    ~-(        )-~    |    |  +--------+ |
   | |Vend. D |--|----+       (__  __)       +----|--| Vend. D| |
   | +--------+  |               --               |  +--------+ |
   \_____________/                                \_____________/
             ^                                        ^
             |                                        |
             |                                        |
            Scope of draft-ietf-ccamp-dwdm-if-param-yang [I-D.ietf-ccamp-dwdm-if-param-yang]

          Figure 1. Control Plane Architecture 1: Scope of draft-ietf-ccamp-dwdm-if-param-yang

   The models developed in this document is an abstracted Yang model
   that may be used in the interfaces between the MDSC and the Optical
   Domain Controller (aka MPI) and between the Optical Domain Controller
   and the Optical Device (aka SBI) in Figure 1.  It is not intended to
   support a detailed low-level DWDM interface model.  DWDM interface
   model is supported by the models presented in [draft-ietf-
   ccamp-dwdm-if-parameter-yang].
   [I-D.ietf-ccamp-dwdm-if-param-yang].

2.2.  Transport Data Plane

   This section provides the description of the reference optical
   network architecture and its relevant components to support optical
   impairment-aware path computation.

   Figure 2 shows the reference architecture.

     +-------------------+                      +-------------------+
     |     ROADM Node    |                      |     ROADM Node    |
     |                   |                      |                   |
     | PA  +-------+ BA  |         ILA          | PA  +-------+ BA  |
     | +-+ | WSS/  | +-+ |  _____  +--+  _____  | +-+ |  WSS/ | +-+ |
---|-|
   --|-| |-|Filter |-| |-|-()____)--| |-|-()____)-|  |-()____)-|-| |-|Filter |-| |-|--- |-|--
     | +-+ |       | +-+ |         +--+         | +-+ |       | +-+ |
     |     +-------+     | optical              |     +-------+     |
     |       | | |       |  fiber               |       | | |       |
     |       o o o       |                      | |       |                       |       | | |       |
   |       o-o-o       |                       |       o-o-o       o o o       |
     |    transponders   |                      |    transponders   |
     +-------------------+                      +-------------------+
                         OTS Link       OTS Link
                        -------->     -------->
                        <--------->    <--------->
                                 OMS Link
                  ---------------------------------->
                    <-------------------------------->

      PA: Pre-Amplifier Pre-Amplifieror
      BA: Booster Amplifier
      ILA: In-Line Amplifier

      Figure 2. 2: Reference Architecture for Optical Transport Network

   BA (on the left side ROADM) is the ingress Amplifier and PA (on the
   right side ROADM is the egress amplifier for the OMS link shown in
   the Figure.
   Figure 2.

2.3.  OMS Media Links

   According to [G.872], OMS Media Link represents a media link between
   two ROADMs.  Specifically, it originates at the ROADM's Filter in the
   source ROADM and terminates at the ROADM's Filter in the destination
   ROADM.

   OTS Media Link represents a media link:

     (i)  between ROADM's BA and ILA;
    (ii)  between a pair of ILAs;
   (iii)  between ILA and ROADM's PA.

   OMS Media link can be decomposed in a sequence of OTS links type (i),
   (ii), and (iii) as discussed above.  OMS Media link would give an
   abstracted view of impairment data (e.g., power, OSNR, etc.) to the
   network controller.

   For the sake of optical impairment evaluation OMS Media link can be
   also decomposed in a sequence of elements such as BA, fiber section,
   ILA, concentrated loss and PA.

   [Editor's note: text below related to [G.807] needs to be revised!
   [G.807] is now in publication process.]

2.3.1.  Optical Tributary Signal (OTSi)

   The OTSi is defined in ITU-T Recommendation G.959.1, section 3.2.4
   [G.959.1].  The YANG model defined below assumes that a single OTSi
   consists of a single modulated optical carrier.  This single
   modulated optical carrier conveys digital information.
   Characteristics of the OTSi signal are modulation scheme (e.g.  QPSK,
   8-QAM, 16-QAM, etc.), baud rate (measure of the symbol rate), pulse
   shaping (e.g. raised cosine - complying with the Nyquist inter symbol
   interference criterion), etc.

2.3.2.  Optical Tributary Signal Group (OTSiG)

   The definition of the OTSiG is currently being moved from ITU-T
   Recommendation G.709 [G.709] to the new draft Recommendation G.807
   (still work in progress) [G.807].  The OTSiG is an electrical signal
   that is carried by one or more OTSi's.  The relationship between the
   OTSiG and the the OTSi's is described in ITU-T draft Recommendation
   G.807, section 10.2 [G.807].  The YANG model below supports both
   cases: the single OTSi case where the OTSiG contains a single OTSi
   (see ITU-T draft Recommendation G.807, Figure 10-2) and the multiple
   OTSi case where the OTSiG consists of more than one OTSi (see ITU-T
   draft Recommendation G.807, Figure 10-3).  From a layer 0 topology
   YANG model perspective, the OTSiG is a logical construct that
   associates the OTSi's, which belong to the same OTSiG.  The typical
   application of an OTSiG consisting of more than one OTSi is inverse
   multiplexing.  Constraints exist for the OTSi's belonging to the same
   OTSiG such as: (i) all OTSi's must be co-routed over the same optical
   fibers and nodes and (ii) the differential delay between the
   different OTSi's may not exceed a certain limit.  Example: a 400Gbps
   client signal may be carried by 4 OTSi's where each OTSi carries
   100Gbps of client traffic.

                                  OTSiG
           _________________________/\__________________________
          /                                                     \
                                    m=7
   - - - +---------------------------X---------------------------+ - - -
   / / / |                                                       | / / /
    / / /|      OTSi         OTSi         OTSi         OTSi      |/ / /
   / / / |        ^            ^            ^            ^       | / / /
    / / /|        |            |            |            |       |/ / /
   / / / |        |            |            |            |       | / / /
    / / /|        |            |            |            |       |/ / /
    -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12
   --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
                                   n = ? 4
                  K1           K2           K3           K4

   2.3.3

      Figure 3: MC Example containing all 4 OTSi signals of an OTSiG

2.3.3.  Media Channel (MC)

   The definition of the MC is currently being moved from ITU-T
   Recommendation G.872 [G.872] to the new draft Recommendation G.807
   (still work in progress) [G.807].  Section 3.2.2 defines the term MC
   and section 7.1.2 provides a more detailed description with some
   examples.  The definition of the MC is very generic (see ITU-T draft
   Recommendation G.807, Figure 7-1).  In the YANG model below, the MC
   is used with the following semantics:

   The MC is an end-to-end topological network construct and can be
   considered as an "optical pipe" with a well-defined frequency slot
   between one or more optical transmitters each generating an OTSi and
   the corresponding optical receivers terminating the OTSi's.  If the
   MC carries more than one OTSi, it is assumed that these OTSi's belong
   to the same OTSiG.

                                    m=8
     +-------------------------------X-------------------------------+
     |                               |                               |
     |     +----------X----------+   |   +----------X----------+     |
     |     |        OTSi         |       |        OTSi         |     |
     |     |          ^          |   |   |          ^          |     |
     |     |          |          |       |          |          |     |
    -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9  10  11  12
   --+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+-
                      |             n=4             |
                      K1                            K2

     <------------------------ Media Channel ----------------------->

                       Figure 4: Figure Caption TBA

   The frequency slot of the MC is defined by the n value defining the
   central frequency of the MC and the m value that defines the width of
   the MC following the flexible grid definition in ITU-T Recommendation
   G.694.1 [G.694.1].  In this model, the effective frequency slot as
   defined in ITU-T draft Recommendation G.807 is equal to the frequency
   slot of this end-to-end MC.  It is also assumed that ROADM devices
   can switch MCs.  For various reasons (e.g.  differential delay), it
   is preferred to use a single MC for all OTSi's of the same OTSiG.  It
   may however not always be possible to find a single MC for carrying
   all OTSi's of an OTSiG due to spectrum occupation along the OTSiG
   path.

2.3.3.

2.3.4.  Media Channel Group (MCG)

   The definition of the MCG is currently work in progress in ITU-T and
   is defined in section 7.1.3 of the new ITU-T draft Recommendation
   G.807 (still work in progress) [G.807].  The YANG model below assumes
   that the MCG is a logical grouping of one or more MCs that are used
   to to carry all OTSi's belonging to the same OTSiG.

   The MCG can be considered as an association of MCs without defining a
   hierarchy where each MC is defined by its (n,m) value pair.  An MCG
   consists of more than one MC when no single MC can be found from
   source to destination that is wide enough to accommodate all OTSi's
   (modulated carriers) that belong to the same OTSiG.  In such a case
   the set of OTSi's belonging to a single OTSiG have to be split across
   2 or more MCs.

                                   MCG1 = {M1.1, M1.2}
         __________________________/\__________________________
          __________________________/\________________________
         /                                                    \
                     M1.1                  M2          M1.2
          ____________/\____________  ______/\______  _____/\_____  ____/\____
         /                          \/            \/          \
   - - - +-------------------------------------------------------+ +---------------------------+-------------+-----------+ - - -
   / / / |                           | / / / / / / /| |           | / / /
    / / /|    OTSi    OTSi    OTSi   |/ / / / / / / | /|    OTSi   |/ / /
   / / / |     ^       ^       ^     | / / / / / / /| |     ^     | / / /
    / / /|     |       |       |     |/ / / / / / / | /|     |     |/ / /
   / / / |     |       |       |     | / / / / / / /| |     |     | / / /
    / / /|     |       |       |     |/ / / / / / / | /|     |     |/ / /
        -7    -4    -1 0 1 2 3 4 5 6 7 8 9 10 . . . . .    ...    14    17 . .  21
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--    20
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       n=0                   n=11                               n=17
               K1      K2      K3                        K4

                       Figure 5: Figure Caption TBA

   The MCG is relevant for path computation because all end-to-end MCs
   belonging to the same MCG have to be co-routed, i.e., have to follow
   the same path.  Additional constraints may exist (e.g. differential
   delay).

2.4.  Amplifiers

   Optical amplifiers are in charge of amplifying the optical signal in
   the optical itself without any electrical conversion.  There are
   three main technologies to build amplifiers: Erbium Doped Fiber
   Amplifier (EDFA), Raman Fiber Amplifier (RFA), and Semiconductor
   Optical Amplifier (SOA).  Nowadays, most of optical networks uses
   EDFAs.  However, RFA has an attractive feature that it works in any
   wavelength band with a similar or lower noise figures compared to
   EDFA.  On the other hand, RFAs consumes more power and are more
   expensive than EDFAs.

   Amplifiers can be classified according to their location in the
   communication link.  There are three basic types of amplifiers: ILA,
   Pre-Amplifier and Booster.  ILA is In-Line Amplifier which is a
   separate node type while Pre-Amplifier and Booster Amplifier are
   integral elements of ROADM node.  From a data modeling perspective,
   Pre-Amplifier and Booster Amplifier are internal functions of a ROADM
   node and as such these elements are hidden within ROADM node.  In
   this document, we would avoid internal node details, but attempt to
   abstract as much as possible.

   One modeling consideration of the ROADM internal is to model power
   parameter through the ROADM, factoring the output power from the
   Pre-Amplifier Pre-
   Amplifier minus the ROADM power loss would give the input power to
   the Booster Amplifier.  In other words, Power_in (@ ROADM Booster) =
   Power_out (@ ROADM Pre-Amplifier) - Power_loss (@ ROADM WSS/Filter).

2.5.  Transponders

   A Transponder is the element that sends and receives the optical
   signal from a fiber.  A transponder is typically characterized by its
   data rate and the maximum distance the signal can travel.  Channel
   frequency, per channel input power, FEC and Modulation are also
   associated with a transponder.  From a path computation point of
   view, the selection of the compatible source and destination
   transponders is an important factor for optical signal to traverse
   through the fiber.  There are three main approaches to determine
   optical signal compatibility.  Application Code based on G.698.2 is
   one approach that only checks the code at both ends of the link.
   Another approach is organization codes that are specific to an
   organization or a vendor.  The third approach is specify all the
   relevant parameters explicitly, e.g., FEC type, Modulation type, etc.

   [Editor's Note: note: The current YANG model described in Section 3 with
   respect to the relationship between the transponder attributes and
   the OTSi will need to be investigated in the future revision]

2.6.  WSS/Filter

   WSS separates the incoming light input spectrally as well as
   spatially, then chooses the wavelength that is of interest by
   deflecting it from the original optical path and then couple it to
   another optical fibre port.  WSS/Filter is internal to ROADM.  So
   this document does not model the inside of ROADM.

2.7.  Optical Fiber

   There are various optical fiber types defined by ITU-T.  There are
   several fiber-level parameters that need to be factored in, such as,
   fiber-type, length, loss coefficient, pmd, connectors (in/out).

   ITU-T G.652 defines Standard Singlemode Fiber; G.654 Cutoff Shifted
   Fiber; G.655 Non-Zero Dispersion Shifted Fiber; G.656 Non-Zero
   Dispersion for Wideband Optical Transport; G.657 Bend-Insensitive
   Fiber.  There may be other fiber-types that need to be considered.

2.8.  ROADM Node Architectures

   The ROADM node architectures in today's dense wavelength division
   multiplexing (DWDM) networks can be categorized as follows:

   o  Integrated ROADM architecture with integrated optical transponders

   o  Integrated ROADM architecture with integrated optical transponders
      and single channel add/drop ports for remote optical transponders

   o  Disaggregated ROADM architecture where the ROADM is subdivided
      into degree, add/drop, and optical transponder subsystems handled
      as separate network elements

   The TE topology YANG model augmentations including optical
   impairments for DWDM networks defined below intend to cover all the 3
   categories of ROADM architectures listed above.  In the case of a
   disaggregated ROADM architecture, it is assumed that optical domain
   controller already performs some form of abstraction and presents the
   TE-node representing the disaggregated ROADM in the same way as an
   integrated ROADM with integrated optical transponders if the optical
   transponder subsystems and the add/drop subsystems are collocated
   (short fiber links not imposing significant optical impairments).

   The different ROADM architectures are briefly described and
   illustrated in the following subsections.

   [Editor's Note: note: The modeling of remote optical transponders located
   for example in the client device with a single channel link between
   the OT and the add/drop port of the ROADM requires further
   investigations and will be addressed in a future revision of this
   document.]

2.8.1.  Integrated ROADM architecture Architecture with integrated transponders Integrated Optical
        Transponders

   Figure 2 and Figure <A1> 6 below show the typical architecture of an
   integrated ROADM node, which contains the optical transponders as an
   integral part of the ROADM node.  Such an integrated ROADM node
   provides DWDM interfaces as external interfaces for interconnecting
   the device with its neighboring ROADMs (see OTS link above).  The
   number of these interfaces denote also the degree of the ROADM.  A
   degree 3 ROADM for example has 3 DWDM links that interconnect the
   ROADM node with 3 neighboring ROADMs.  Additionally, the ROADM
   provides client interfaces for interconnecting the ROADM with client
   devices such as IP routers or Ethernet switches.  These client
   interfaces are the client interfaces of the integrated optical
   transponders.

               . . . . . . . . . . . . . . . . . .
         +-----.-------------------------------- .-----+
         |     .              ROADM              .     |
         |     .   /|  +-----------------+  |\   .     |
    Line |     .  / |--|                 |--| \  .     | Line
    WEST |  /| . |  |--|                 |--|  | . |\  | EAST
   ------+-/ |-.-|  |--|       OCX       |--|  |-.-| \-+-----
   ------+-\ |-.-|  |--|                 |--|  |-.-| /-+-----
         |  \| . |  |--|                 |--|  | . |/  |
         |     .  \ |--|                 |--| /  .     |
         |     .   \|  +-----------------+  |/   .     |
         |     .                                 .     |
         |     .     +---+ +---+ +---+ +---+     .     |
         |     .     | O | | O | | O | | O |     .     |
         |     .     | T | | T | | T | | T |     .     |
         |     .     +---+ +---+ +---+ +---+     .     |
         |     .      | |   | |   | |   | |      .     |
         +-----.------+-+---+-+---+-+---+-+------.-----+
               . . . .|.| . |.| . |.| . |.|. . . .
                      | |   | |   | |   | |     TE Node
                        Client Interfaces

        Figure <A1>: 6: ROADM architectiure Architectiure with integrated transponders Integrated Transponders

2.8.2.  Integrated ROADMs with integrated optical transponders Integrated Optical Transponders and
   single channel add/drop interfaces
        Single Channel Add/Drop Interfaces for remote optical transponders Remote Optical
        Transponders

   Figure <A2> 7 below shows the extreme case where all optical transponders
   are not integral parts of the ROADM but are separate devices that are
   interconnected with add/drop ports of the ROADM.  If the optical
   transponders and the ROADM are collocated and if short single channel
   fiber links are used to interconnect the optical transponders with an
   add/drop port of the ROADM, the optical domain controller may present
   these optical transponders in the same way as integrated optical
   transponders.  If, however, the optical impairments of the single
   channel fiber link between the optical transponder and the add/drop
   port of the ROADM cannot be neglected, it is necessary to represent
   the fiber link with its optical impairments in the topology model
   This also implies that the optical transponders belong to a separate
   TE node

   [Editor's Note: note: this requires further study].

               . . . . . . . . . . . . . . . . . .
               .       Abstracted ROADM          .
         +-----.-------------------------------- .-----+
         |     .              ROADM              .     |
         |     .   /|  +-----------------+  |\   .     |
    Line |     .  / |--|                 |--| \  .     | Line
    WEST |  /| . |  |--|                 |--|  | . |\  | EAST
   ------+-/ |-.-|  |--|       OCX       |--|  |-.-| \-+-----
   ------+-\ |-.-|  |--|                 |--|  |-.-| /-+-----
         |  \| . |  |--|                 |--|  | . |/  |
         |     .  \ |--|                 |--| /  .     |
         |     .   \|  +-----------------+  |/   .     |
         +-----.---------|----|---|----|---------.-----|
    Colored OT .       +-+   ++   ++   +-+       .
    line I/F   .       |     |     |     |       .
               .     +---+ +---+ +---+ +---+     .
               .     | O | | O | | O | | O |     .
               .     | T | | T | | T | | T |     .
               .     +---+ +---+ +---+ +---+     .
               . . . .|.| . |.| . |.| . |.|. . . .
                      | |   | |   | |   | |     TE Node
                        Client Interfaces

          Figure <A2>: 7: ROADM architectiure Architectiure with remote transponders Remote Transponders

2.8.3.  Disaggregated ROADMs that are subdivided Subdivided into degree, add/drop, Degree, Add/Drop, and optical transponder subsystems
        Optical Transponder Subsystems

   Recently, some DWDM network operators started demanding ROADM
   subsystems from their vendors.  An example is the OpenROADM project
   where multiple operators and vendors are developing related YANG
   models.  The subsystems of a disaggregated ROADM are: single degree
   subsystems, add/drop subsystems and optical transponder subsystems.
   These subsystems separate network elements and each network element
   provides a separate management and control interface.  The subsystems
   are typically interconnected using short fiber patch cables and form
   together a disaggregated ROADM node.  This disaggregated ROADM
   architecture is depicted in Figure <A3> 8 below.

   As this document defines TE topology YANG model augmentations [TE-
   TOPO]
   [I-D.ietf-teas-yang-te-topo] for the TE topology YANG model provided
   at the north-bound interface of the optical domain controller, it is
   a valid assumption that the optical domain controller abstracts the
   subsystems of a disaggregated ROADM and presents the disaggregated
   ROADM in the same way as an integrated ROADM hiding all the
   interconnects that are not relevant from an external TE topology
   view.

              . . . . . . . . . . . . . . . . . .
              .        Abstracted ROADM          .
        +-----.----------+            +----------.-----+
        | Degree 1       |            |       Degree 2 |
   Line |     .  +-----+ |            + +-----+  .     | Line
    1   |  /| .  |  W  |-|------------|-|  W  |  . |\  |  2
   -----+-/ |-.--|  S  ********  ********  S  |--.-| \-+-----
   -----+-\ |-.--|  S  | |    *  *    | |  S  |--.-| /-+-----
        |  \| .  |     |-|-+  *  *  +-|-|     |  . |/  |
        |     .  +-+-+-+ | |  *  *  | | +-+-+-+  .     |
        +-----.----|-----+ |  *  *  | +-----|----.-----+
              .    |       |  *  *  |       |    .
        +-----.----|-----+ |  *  *  | +-----|----.-----+
        | Degree 4 |     | |  *  *  | |     | Degree 3 |
   Line |     .  +-----+ | |  *  *  | | +-----+  .     | Line
    4   |  /| .  |  W  |-|-|--*--*--+ | |  W  |  . |\  |  3
   -----+-/ |-.--|  S  | | +--*--*----|-|  S  |--.-| \-+-----
   -----+-\ |-.--|  S  |-|----*--*----|-|  S  |--.-| /-+-----
        |  \| .  |     | |    *  *    | |     |  . |/  |
        |     .  +--*--+ |    *  *    | +--*--+  .     |
        +-----.-----*----+    *  *    +----*-----.-----+
              .     *         *  *         *     .
              .  +--*---------*--*---------*--+  .
              .  |          ADD               |  .
              .  |          DROP              |  .
              .  +----------------------------+  .
    Colored OT  .     |     |     |     |     .
     line
     Line I/F   .   +---+ +---+ +---+ +---+   .
                .   | O | | O | | O | | O |   .
                .   | T | | T | | T | | T |   .
                .   +---+ +---+ +---+ +---+   .
                . . .|.| . |.| . |.| . |.|. . .
                     | |   | |   | |   | |     TE Node
                       Client Interfaces

    Figure <A3>: 8: Disaggregated ROADM architectiure Architecture with remote transponders

3. YANG Model (Tree Structure)

module: ietf-optical-impairment-topology
  augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
    +--rw optical-impairment-topology!
  augment /nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes:
    +--ro OMS-attributes
       +--ro generalized-snr?                        decimal64
       +--ro equalization-mode                       identityref
       +--ro (power-param)?
       |  +--:(channel-power)
       |  |  +--ro nominal-channel-power?            decimal64
       |  +--:(power-spectral-density)
       |     +--ro nominal-power-spectral-density?   decimal64
       +--ro media-channel-group* [i]
       |  +--ro i                 int16
       |  +--ro media-channels* [flexi-n]
       |     +--ro flexi-n      uint16
       |     +--ro flexi-m?     uint16
       |     +--ro OTSiG-ref?   leafref
       |     +--ro OTSi-ref?    leafref
       +--ro OMS-elements* [elt-index]
          +--ro elt-index    uint16
          +--ro uid?         string
          +--ro type         identityref
          +--ro element
             +--ro (element)?
                +--:(amplifier)
                |  +--ro Remote Transponders

2.8.4.  Optical Impairments Imposed by ROADM Nodes

   When an optical OTSi signal traverses a ROADM node, optical
   impairments are imposed on the signal by various passive or active
   optical components inside the ROADM node.  Examples of optical
   impairments are:

   o  Chromatic dispersion (CD)
   o  Polarization mode dispersion (PMD)
   o  Polarization dependent loss (PDL)
   o  Optical amplifier
                |     +--ro type_variety    string
                |     +--ro operational
                |        +--ro actual-gain
                |        |       decimal64
                |        +--ro tilt-target
                |        |       decimal64
                |        +--ro out-voa
                |        |       decimal64
                |        +--ro in-voa
                |        |       decimal64
                |        +--ro (power-param)?
                |           +--:(channel-power)
                |           |  +--ro nominal-channel-power?
                |           |          decimal64
                |           +--:(power-spectral-density)
                |              +--ro nominal-power-spectral-density?
                |                      decimal64
                +--:(fiber)
                |  +--ro fiber
                |     +--ro type_variety    string
                |     +--ro length          decimal64
                |     +--ro loss_coef       decimal64
                |     +--ro total_loss      decimal64
                | noise due to amplified spontaneous emission
      (ASE)
   o  In-band cross-talk
   o  Filtering effects (for further study)

   A ROADM node contains a wavelength selective photonic switching
   function (WSS)that is capable of switching media channels (MCs)
   described in Section 2.3.4.  These MCs can be established between two
   line ports of the ROADM or between a line port and an Add/Drop port
   of the ROADM.  The Add/Drop ports of a ROADM are those ports to which
   optical transponders are connected.  Typically, this is a single
   channel signal (single OTSi), but principally this could also be a
   group of OTSi signals.  The optical impairments associated with these
   MCs are different and the paths of the MCs inside the ROADM node can
   be categorized as follows:

   o  Express path: MC path between two line ports of the ROADM
      (unidirectional)

   o  Add Path: MC path from an Add port to a line port of the ROADM

   o  Drop path: MC path from a line port to a Drop port of the ROADM

   Due to the symmetrical architecture of the ROADM node, the optical
   impairments associated with the express path are typically the same
   between any two line ports of the ROADM whereas the optical
   impairments for the add and drop paths are different and therefore
   have to be modeled separately.

   The optical impairments associated with each of the three types of
   ROADM-node-internal paths described above are modeled as optical
   impairment parameter sets.  These parameter sets are modeled as an
   augmentation of the te-node-attributes defined in
   [I-D.ietf-teas-yang-te-topo].  The te-node-attributes are augmented
   with a list of roadm-path-impairments for the three ROADM path types
   distinguished by the impairment-type.  Each roadm-path-impairments
   list entry contains the set of optical impairment parameters for one
   of the three path types indicated by the impairment-type.  For the
   optical feasibility calculation based on the optical impairments, it
   is necessary to know whether the optical power of the OTSi stays
   within a certain power window.  This is reflected by some optical
   power related parameters such as loss parameters or power parameters,
   which are included in the optical impairment parameter sets (see tree
   view in Section 3).

   [I-D.ietf-teas-yang-te-topo] defines a connectivity matrix and a
   local link connectivity list for the TE node.  The connectivity
   matrix describes the connectivity for the express paths between the
   different lines of the ROADM and the local link connectivity list
   describes the connectivity for the Add and Drop paths of the ROADM.
   These matrices are augmented with a new roadm-path-impairment matrix
   element, an add-path-impairment, and drop-path-impairment matrix
   element, respectively, which are defined as a pointer to the
   corresponding entry in the roadm-path-impairments list (leaf-ref).

   [Editor's note: this section is still work in progress]

3.  YANG Model (Tree Structure)

   module: ietf-optical-impairment-topology
     augment /nw:networks/nw:network/nw:network-types/tet:te-topology:
       +--rw optical-impairment-topology!
     augment /nw:networks/nw:network/nt:link/tet:te/
     tet:te-link-attributes:
       +--ro OMS-attributes
          +--ro generalized-snr?                        decimal64
          +--ro equalization-mode                       identityref
          +--ro (power-param)?
          |  +--:(channel-power)
          |  |  +--ro nominal-channel-power?            decimal64
          |  +--:(power-spectral-density)
          |     +--ro nominal-power-spectral-density?   decimal64
          +--ro media-channel-group* [i]
          |  +--ro i                 int16
          |  +--ro media-channels* [flexi-n]
          |     +--ro flexi-n      uint16
          |     +--ro flexi-m?     uint16
          |     +--ro OTSiG-ref?   -> /nw:networks/network/node/tet:te/
                tunnel-termination-point/OTSiG-element/OTSiG-identifier
          |     +--ro OTSi-ref?    -> /nw:networks/network/node/tet:te/
                tunnel-termination-point/
                OTSiG-element[OTSiG-identifier=current()/../OTSiG-ref]/
                OTSiG-container/OTSi/OTSi-carrier-id
          +--ro OMS-elements* [elt-index]
             +--ro elt-index    uint16
             +--ro uid?         string
             +--ro type         identityref
             +--ro element
                +--ro (element)?
                   +--:(amplifier)
                   |  +--ro amplifier
                   |     +--ro type-variety    string
                   |     +--ro operational
                   |        +--ro actual-gain                 decimal64
                   |        +--ro tilt-target                 decimal64
                   |        +--ro out-voa                     decimal64
                   |        +--ro in-voa                      decimal64
                   |        +--ro (power-param)?
                   |           +--:(channel-power)
                   |           |  +--ro nominal-channel-power?
                                                              decimal64
                   |           +--:(power-spectral-density)
                   |              +--ro nominal-power-spectral-density?
                                        decimal64
                   +--:(fiber)
                   |  +--ro fiber
                   |     +--ro type-variety    string
                   |     +--ro length          decimal64
                   |     +--ro loss-coef       decimal64
                   |     +--ro total-loss      decimal64
                   |     +--ro pmd?            decimal64
                   |     +--ro conn-in?        decimal64
                   |     +--ro conn-out?       decimal64
                   +--:(concentratedloss)
                      +--ro concentratedloss
                         +--ro pmd? loss?   decimal64
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:tunnel-termination-point:
       +--ro OTSiG-element* [OTSiG-identifier]
       |  +--ro OTSiG-identifier    int16
       |  +--ro OTSiG-container
       |     +--ro OTSi* [OTSi-carrier-id]
       |        +--ro OTSi-carrier-id           int16
       |        +--ro OTSi-carrier-frequency?   decimal64
       |        +--ro OTSi-signal-width?        decimal64
       |        +--ro channel-delta-power?      decimal64
       +--ro transponders-list* [transponder-id]
          +--ro transponder-id                      uint32
          +--ro (mode)?
          |  +--:(G.692.2)
          |  |  +--ro standard-mode?                standard-mode
          |  +--:(organizational-mode)
          |  |  +--ro operational-mode?             operational-mode
          |  |  +--ro organization-identifier?      vendor-identifier
          |  +--:(explicit-mode)
          |     +--ro available-modulation-types*   identityref
          |     +--ro configured-modulation-type?   identityref
          |     +--ro available-baud-rates*         uint32
          |     +--ro configured-baud-rate?         uint32
          |     +--ro available-FEC-types*          identityref
          |     +--ro configured-FEC-type?          identityref
          |     +--ro FEC-code-rate?                decimal64
          |     +--ro FEC-threshold?                decimal64
          +--ro power?                              int32
          +--ro power-min?                          int32
          +--ro power-max?                          int32
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:tunnel-termination-point:
       +--ro transponder-list* [carrier-id]
          +--ro carrier-id    uint32
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:te-node-attributes:
       +--ro roadm-path-impairments* [roadm-path-impairments-id]
          +--ro roadm-path-impairments-id    uint32
          +--ro (impairment-type)?
             +--:(roadm-express-path)
             |  +--ro roadm-express-path
             |     +--ro roadm-pmd?                decimal64
             |     +--ro roadm-cd?                 decimal64
             |     +--ro roadm-pdl?                decimal64
             |     +--ro roadm-inband-crosstalk?   decimal64
             |     +--ro roadm-maxloss?            decimal64
             +--:(roadm-add-path)
             |  +--ro roadm-add-path
             |     +--ro roadm-pmd?                decimal64
             |     +--ro roadm-cd?                 decimal64
             |     +--ro roadm-pdl?                decimal64
             |     +--ro roadm-inband-crosstalk?   decimal64
             |     +--ro roadm-maxloss?            decimal64
             |     +--ro roadm-pmax?               decimal64
             |     +--ro roadm-osnr?               decimal64
             |     +--ro roadm-noise-figure?       decimal64
             +--:(roadm-drop-path)
                +--ro roadm-drop-path
                   +--ro roadm-pmd?                decimal64
                   +--ro roadm-cd?                 decimal64
                   +--ro roadm-pdl?                decimal64
                   +--ro roadm-inband-crosstalk?   decimal64
                   +--ro roadm-maxloss?            decimal64
                   +--ro roadm-minloss?            decimal64
                   +--ro roadm-typloss?            decimal64
                   +--ro roadm-pmin?               decimal64
                   +--ro roadm-pmax?               decimal64
                   +--ro roadm-ptyp?               decimal64
                   +--ro roadm-osnr?               decimal64
                   +--ro roadm-noise-figure?       decimal64
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:information-source-entry/tet:connectivity-matrices:
       +--ro roadm-path-impairments?   -> ../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:information-source-entry/tet:connectivity-matrices/
     tet:connectivity-matrix:
       +--ro roadm-path-impairments?   -> ../../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:te-node-attributes/tet:connectivity-matrices:
       +--ro roadm-path-impairments?   -> ../../roadm-path-impairments/
       roadm-path-impairments-id
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:te-node-attributes/tet:connectivity-matrices/
     tet:connectivity-matrix:
       +--ro roadm-path-impairments?   -> ../../../
       roadm-path-impairments/roadm-path-impairments-id
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:tunnel-termination-point/tet:local-link-connectivities:
       +--ro add-path-impairments?    -> ../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id
       +--ro drop-path-impairments?   -> ../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id
     augment /nw:networks/nw:network/nw:node/tet:te/
     tet:tunnel-termination-point/tet:local-link-connectivities/
     tet:local-link-connectivity:
       +--ro add-path-impairments?    -> ../../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id
       +--ro drop-path-impairments?   -> ../../../../
       tet:te-node-attributes/roadm-path-impairments/
       roadm-path-impairments-id

4.  Optical Impairment Topology YANG Model

   [Editor's note: YANG code below may have to be updated before
   submission!]

   <CODE BEGINS>
   module ietf-optical-impairment-topology {
     yang-version 1.1;

     namespace "urn:ietf:params:xml"
     +":ns:yang:ietf-optical-impairment-topology";

     prefix "optical-imp-topo";

     import ietf-network {
       prefix "nw";

     }

     import ietf-network-topology {
       prefix "nt";
     }

     import ietf-te-topology {
       prefix "tet";
     }

     import ietf-layer0-types {
       prefix "layer0-types";
     }

     organization
       "IETF CCAMP Working Group";

     contact
       "Editor:   Young Lee <younglee.tx@gmail.com>
        Editor:   Haomian Zheng <zhenghaomian@huawei.com>
        Editor:   Nicola Sambo <nicosambo@gmail.com>
        Editor:   Victor Lopez <victor.lopezalvarez@telefonica.com>
        Editor:   Gabriele Galimberti <ggalimbe@cisco.com>
        Editor:   Giovanni Martinelli <giomarti@cisco.com>
        Editor:   Jean-Luc Auge <jeanluc.auge@orange.com>
        Editor:   Le Rouzic Esther <esther.lerouzic@orange.com>
        Editor:   Julien Meuric <julien.meuric@orange.com>
        Editor:   Italo Busi <Italo.Busi@huawei.com>
        Editor:   Dieter Beller <dieter.beller@nokia.com>
        Editor:   Sergio Belotti <Sergio.belotti@nokia.com>
        Editor:   Griseri Enrico <enrico.griseri@nokia.com>
        Editor:   Gert Grammel <ggrammel@juniper.net>";

     description
       "This module contains a collection of YANG definitions for
        impairment-aware optical networks.

        Copyright (c) 2019 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 Legal
        Provisions Relating to IETF Documents
        (http://trustee.ietf.org/license-info).";

     revision 2020-03-09 {
       description
         "Initial Version";
       reference
         "RFC XXXX: A Yang Data Model for Impairment-aware
          Optical Networks";
     }

     // identity

     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;
       description
         "DP-QAM8 (Dual Polarization Quadrature Amplitude Modulation)";
     }
     identity DC-DP-QAM8 {
       base modulation;
       description
       "DC DP-QAM8 (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 Polarization Quadrature
       Amplitude Modulation)";
     }

     identity FEC {
       description
         "Enumeration that defines the type of
          Forward Error Correction";
     }
     identity reed-solomon {
       base FEC;
         description
     "Reed-Solomon error correction";
     }
     identity hamming-code {
       base FEC;
         description
     "Hamming Code error correction";
     }
     identity golay {
       base FEC;
         description "Golay error correction";
     }

     // typedef

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

   /*temporary defined here for disalignment with*/
   /* ietf-layer0-types module*/

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

   // temporary defined here for disalignment with
   //ietf-layer0-types module
     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)";
     }

   // temporary defined here for disalignment
   //with ietf-layer0-types module
     typedef vendor-identifier {
       type string;
       description
         "vendor identifier that uses vendor-specific mode";
       reference
         "RFC7581: Routing and Wavelength Assignment Information
          Encoding for Wavelength Switched Optical Networks";
     }

     // grouping

     grouping transponder-attributes {
       description "Configuration of an optical transponder";

       leaf-list available-modulation-types {
         type identityref {
         base modulation;
         }
         config false;
       description
         "List of modulation types the OTSi supports";
       }

       leaf configured-modulation-type {
         type identityref {
         base modulation;
         }
       config false;
         description
         "Currently configured OTSi modulation type";
       }

       leaf-list available-baud-rates {
         type uint32;
           units Bd;
         config false;
         description
           "list of available baud-rates.
            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 configured-baud-rate {
         type uint32;
         units Bd;
       config false;
         description "configured baud-rate";
       }

       leaf-list available-FEC-types {
         type identityref {
         base FEC;
         }
         config false;
         description "List determining all the available FEC";
       }

       leaf configured-FEC-type {
         type identityref {
         base FEC;
         }
         config false;
       description
         "FEC type configured for the transponder";
       }

       leaf FEC-code-rate {
         type decimal64
                |     +--ro conn_in? {
         fraction-digits 8;
         range "0..max";
         }
         config false;
         description "FEC-code-rate";
       }

       leaf FEC-threshold {
         type decimal64
                |     +--ro conn_out? {
         fraction-digits 8;
         range "0..max";
         }
         config false;
       description
           "Threshold on the BER, for which FEC
            is able to correct errors";
       }

     }

     grouping sliceable-transponder-attributes {
       description
         "Configuration of a sliceable transponder.";
       list transponder-list {
         key "carrier-id";
         config false;
         description "List of carriers";
         leaf carrier-id {
           type uint32;
           config false;
           description "Identifier of the carrier";
         }
       }

     }

     grouping optical-fiber-data {
       description
       "optical link (fiber) attributes with impairment data";
       leaf fiber-type {
         type fiber-type;
         config false;
         description "fiber-type";
       }

       leaf span-length {
         type decimal64 {
           fraction-digits 2;
         }
         units "km";
         config false;
         description "the lenght of the fiber span in km";
       }

       leaf input-power {
         type decimal64 {
           fraction-digits 2;
         }
         units "dBm";
         config false;
         description
         "Average input power level estimated at the receiver
            of the link";
       }

       leaf output-power {
         type decimal64 {
           fraction-digits 2;
         }
         units "dBm";
         description
         "Mean launched power at the transmitter of the link";
       }

       leaf pmd {
         type decimal64
                +--:(concentratedloss)
                   +--ro concentratedloss
                      +--ro loss? {
           fraction-digits 8;
           range "0..max";
         }
         units "ps/(km)^0.5";
         config false;
         description
         "Polarization Mode Dispersion";
       }

       leaf cd {
         type decimal64
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point:
    +--ro OTSiG-element* [OTSiG-identifier]
    |  +--ro OTSiG-identifier    int16
    |  +--ro OTSiG-container
    |     +--ro OTSi* [OTSi-carrier-id]
    |        +--ro OTSi-carrier-id           int16
    |        +--ro OTSi-carrier-frequency? {
           fraction-digits 5;
         }
         units "ps/nm/km";
         config false;
         description
         "Cromatic Dispersion";
       }

       leaf osnr {
         type decimal64
    |        +--ro OTSi-signal-width? {
           fraction-digits 5;
         }
         units "dB";
         config false;
         description
         "Optical Signal-to-Noise Ratio (OSNR) estimated
            at the receiver";
       }

       leaf sigma {
         type decimal64
    |        +--ro channel-delta-power? {
           fraction-digits 5;
         }
         units "dB";
         config false;
         description
         "sigma in the Gausian Noise Model";
       }
     }

     grouping optical-channel-data {
     description
       "optical impairment data per channel/wavelength";
     leaf bit-rate {
       type decimal64
    +--ro transponders-list* [transponder-id]
       +--ro transponder-id                   uint32
       +--ro (mode)?
       |  +--:(G.692.2)
       |  |  +--ro standard_mode?             layer0-types:standard-mode
       |  +--:(organizational_mode)
       |  |  +--ro operational-mode?
       |  |  |       layer0-types:operational-mode
       |  |  +--ro organization-identifier?
       |  |          layer0-types:vendor-identifier
       |  +--:(explicit_mode)
       |     +--ro available-modulation*      identityref
       |     +--ro modulation-type?           identityref
       |     +--ro available-baud-rates*      uint32
       |     +--ro configured-baud-rate?      uint32
       |     +--ro available-FEC*             identityref
       |     +--ro FEC-type?                  identityref
       |     +--ro FEC-code-rate? {
         fraction-digits 8;
           range "0..max";
       }
       units "Gbit/s";
       config false;
       description
         "Gross bit rate";
     }
       leaf BER {
       type decimal64
       |     +--ro FEC-threshold? {
         fraction-digits 18;
               range "0..max";
       }
       config false;
         description
         "BER (Bit Error Rate)";
     }

       leaf ch-input-power {
             type decimal64
       +--ro power?                           int32
       +--ro power-min?                       int32
       +--ro power-max?                       int32
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point:
    +--ro transponder-list* [carrier-id]
       +--ro carrier-id    uint32

4. Optical Impairment Topology YANG Model

<CODE BEGINS> file ietf-optical-impairment-topology@2018-05-22.yang
module ietf-optical-impairment-topology {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-optical-impairment-topology";

  prefix "optical-imp-topo";

  import ietf-network
              fraction-digits 2;
           }
           units "dBm";
           config false;
           description
       "Per channel average input power level
             estimated at the receiver of the link";
           }

     leaf ch-pmd {
       type decimal64 {
    prefix "nw";
           fraction-digits 8;
         range "0..max";
       }

  import ietf-network-topology {
    prefix "nt";
       units "ps/(km)^0.5";
       config false;
       description
         "per channel Polarization Mode Dispersion";
     }

  import ietf-te-topology

     leaf ch-cd {
    prefix "tet";
       type decimal64 {
               fraction-digits 5;
       }

  import ietf-layer0-types
       units "ps/nm/km";
       config false;
             description
         "per channel Cromatic Dispersion";
     }

     leaf ch-osnr {
    prefix "layer0-types";
       type decimal64 {
         fraction-digits 5;
       }

  organization
    "IETF CCAMP Working Group";

  contact
    "Editor:   Young Lee <younglee.tx@gmail.com>
     Editor:   Haomian Zheng <zhenghaomian@huawei.com>
     Editor:   Nicola Sambo <nicosambo@gmail.com>
     Editor:   Victor Lopez <victor.lopezalvarez@telefonica.com>
     Editor:   Gabriele Galimberti <ggalimbe@cisco.com>
     Editor:   Giovanni Martinelli <giomarti@cisco.com>
     Editor:   Auge Jean-Luc <jeanluc.auge@orange.com>
     Editor:   Le Rouzic Esther <esther.lerouzic@orange.com>
     Editor:   Julien Meuric <julien.meuric@orange.com>
     Editor:   Italo Busi <Italo.Busi@huawei.com>
     Editor:   Dieter Beller <dieter.beller@nokia.com>
     Editor:   Sergio Belotti <Sergio.belotti@nokia.com>
     Editor:   Griseri Enrico <enrico.griseri@nokia.com>
     Editor:   Gert Grammel <ggrammel@juniper.net>";
         units "dB";
       config false;
       description
    "This module contains a collection of YANG definitions for
     impairment-aware optical networks.

     Copyright (c) 2019 IETF Trust and
         "per channel Optical Signal-to-Noise Ratio
               (OSNR) estimated at the persons identified as
     authors of receiver";
      }

       leaf q-factor {
       type decimal64 {
         fraction-digits 5;
       }
       units "dB";
       config false;
         description
         "q-factor estimated at the code.  All rights reserved.

     Redistribution and use in source and binary forms, receiver";
       }
     }

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

       leaf operational-mode {
         type operational-mode;
         config false;
         description
           "configured organization- or vendor-specific
            application identifiers (AI) supported by the IETF Trust's Legal
     Provisions Relating to IETF Documents
     (http://trustee.ietf.org/license-info).";

  revision 2019-05-22 transponder";
       }

       leaf organization-identifier {
         type vendor-identifier;
         config false;
         description
      "Initial Version";
    reference
      "RFC XXXX: A Yang Data Model for Impairment-aware
       Optical Networks";
         "organization identifier that uses organizational
            mode";

       }
     }

       /*
      * Identities
      */
     identity modulation type-element {
       description "base
         "Base identity for modulation element type";
     }

     identity QPSK Fiber {
       base modulation; type-element;
       description
      "QPSK (Quadrature Phase Shift Keying) modulation";
         "Fiber element";
     }

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

     identity QAM8 Edfa {
       base modulation; type-element;
       description
      "8QAM (8-State Quadrature Amplitude Modulation) modulation";
         "Edfa element";
     }

     identity QAM16 Concentratedloss {
       base modulation; type-element;
       description
      "QAM16 (Quadrature Amplitude Modulation)";
         "Concentratedloss element";
     }

     identity DP_QAM8 type-power-mode {
    base modulation;
       description
      "DP-QAM8 (Dual Polarization Quadrature Amplitude Modulation)";
         "power equalization mode used within the
          OMS and its elements";
     }

     identity DC_DP_QAM8 power-spectral-density {
       base modulation; type-power-mode;
       description
      "DC DP-QAM8 (Dual Polarization Quadrature Amplitude Modulation)";
         "all elements must use power spectral density (W/Hz)";

     }

     identity DP_QAM16 channel-power {
       base modulation; type-power-mode;
       description
      "DP-QAM16 (Dual Polarization Quadrature Amplitude Modulation)";
         "all elements must use power (dBm)";
     }
  identity DC_DP_QAM16

     /*
      * Groupings
      */
     grouping amplifier-params {
    base modulation;
       description
      "DC DP-QAM16 (Dual Polarization Quadrature Amplitude Modulation)";
  }

  identity FEC { "describes parameters for an amplifier";
       container amplifier{
       description
      "Enumeration that defines the type of
       Forward Error Correction";
  }
  identity reed-solomon "amplifier type, operatonal parameters
                    are described";
         leaf type-variety {
    base FEC;
           type string ;
           mandatory true ;
           description
  "Reed-Solomon error correction";
             "String identifier of amplifier type referencing
             a specification in a separate equipment catalog";
         }
  identity hamming-code
         container operational {
    base FEC;
           description
  "Hamming Code error correction";
  }
  identity golay "amplifier operationnal parameters";
           leaf actual-gain {
    base FEC;
             type decimal64 {
               fraction-digits 2;
             }
             units dB ;
         mandatory true ;
             description "Golay error correction"; "..";
           }

  typedef fiber-type
           leaf tilt-target {
             type enumeration {
      enum G.652 decimal64 {
      description "G.652 Standard Singlemode Fiber";
               fraction-digits 2;
             }
      enum G.654 {
             mandatory true ;
             description "G.654 Cutoff Shifted Fiber"; "..";
           }
      enum G.653
           leaf out-voa {
        description "G.653 Dispersion Shifted Fiber";
      }
      enum G.655
             type decimal64 {
        description "G.655 Non-Zero Dispersion Shifted Fiber";
               fraction-digits 2;
             }
      enum G.656 {
             units dB;
         mandatory true;
             description "G.656 Non-Zero Dispersion for Wideband
               Optical Transport"; "..";
           }
      enum G.657
           leaf in-voa {
             type decimal64 {
               fraction-digits 2;
             }
             units dB;
         mandatory true;
             description "G.657 Bend-Insensitive Fiber"; "..";
           }
           uses power-param;
         }
       }
    description
      "ITU-T based fiber-types";
     }

     grouping transponder-attributes fiber-params {
       description "Configuration
         "String identifier of an optical transponder";

    leaf-list available-modulation { fiber type identityref referencing a
          specification in a separate equipment catalog";
       container fiber {
      base modulation;
      }
      config false;
       description
      "List determining all the available modulations"; "fiber characteristics";
         leaf type-variety {
           type string ;
       mandatory true ;
           description "fiber type";
         }
         leaf modulation-type length {
           type identityref decimal64 {
      base modulation;
             fraction-digits 2;
           }
    config false;
           units km;
       mandatory true ;
       description
      "Modulation configured for the transponder"; "length of fiber";
         }

    leaf-list available-baud-rates
         leaf loss-coef {
           type uint32; decimal64 {
             fraction-digits 2;
           }
           units Bd;
      config false; dB/km;
       mandatory true ;
       description
        "list of available baud-rates. Baud-rate is the unit for
         symbol rate or modulation rate in symbols per second or
         pulses per second. It is the number "loss coefficient of distinct symbol
         changes (signaling events) made to the transmission medium
         per second in a digitally modulated signal or a line code"; fiber";
         }
         leaf configured-baud-rate total-loss {
           type uint32; decimal64 {
             fraction-digits 2;
           }
           units Bd;
    config false; dB;
       mandatory true ;
           description "configured baud-rate";
             "includes all losses: fiber loss and conn-in and
              conn-out losses";
         }

    leaf-list available-FEC {
         leaf pmd{
           type identityref decimal64 {
      base FEC;
             fraction-digits 2;
           }
      config false;
           units sqrt(ps);
       description "List determining all "pmd of the available FEC"; fiber";
         }
         leaf FEC-type { conn-in{
           type identityref decimal64 {
      base FEC;
             fraction-digits 2;
           }
      config false;
           units dB;
       description
      "FEC "connector-in";
         }
         leaf conn-out{
           type configured for the transponder"; decimal64 {
             fraction-digits 2;
           }
           units dB;
       description "connector-out";
         }
       }
     }

     grouping roadm-express-path {
       description "roadm express path optical impairments";

       container roadm-express-path {
         description "roadm parameters per express path";

         leaf FEC-code-rate roadm-pmd {
           type decimal64 {
             fraction-digits 8;
             range "0..max";
           }
      config false;
           units "ps/(km)^0.5";
           description "FEC-code-rate";
             "Polarization Mode Dispersion";
         }
         leaf FEC-threshold roadm-cd {
           type decimal64 {
             fraction-digits 8;
      range "0..max"; 5;
           }
      config false;
           units "ps/nm";
           description
        "Threshold on the BER, for which FEC is able to correct errors";
    } "Chromatic Dispersion";
         }

  grouping sliceable-transponder-attributes
         leaf roadm-pdl {
           type decimal64 {
             fraction-digits 2;
           }
           units dB ;
           description
      "Configuration of a sliceable transponder.";
    list transponder-list "Polarization dependent loss";
         }
         leaf roadm-inband-crosstalk {
      key "carrier-id";
      config false;
           type decimal64 {
             fraction-digits 2;
           }
           units dB;
           description "List of carriers";
             "In-band crosstalk, or coherent crosstalk, can occur in
              components that can have multiple same wavelength inputs
              with the inputs either routed to different output ports,
              or all but 1 blocked";
         }
         leaf carrier-id roadm-maxloss {
           type uint32;
        config false; decimal64 {
             fraction-digits 2;
           }
           units dB;
           description "Identifier of
             "This is the carrier"; maximum expected add path loss from the
              ROADM ingress to the ROADM egress
              assuming no additional add path loss is added";
         }
       }
     }

     grouping optical-fiber-data roadm-add-path {
       description
    "optical link (fiber) attributes with "roadm add block path optical impairments";

       container roadm-add-path {
         description "roadm optical impairment data"; parameters
         per add path";

         leaf fiber-type roadm-pmd {
           type decimal64 {
             fraction-digits 8;
             range "0..max";
           }
           units "ps";
           description
             "Polarization Mode Dispersion";

         }
         leaf roadm-cd {
           type decimal64 {
             fraction-digits 5;
           }
           units "ps/nm";
           description "Cromatic Dispersion";
         }
         leaf roadm-pdl {
           type fiber-type;
      config false; decimal64 {
             fraction-digits 2;
           }
           units dB ;
           description "fiber-type"; "Polarization dependent loss";
         }
         leaf span-length roadm-inband-crosstalk {
           type decimal64 {
             fraction-digits 2;
           }
           units "km";
      config false; dB ;
           description "the lenght
             "In-band crosstalk, or coherent crosstalk,
              can occur in components that can have multiple same
              wavelength inputs,with the inputs either
              routed to different output ports,
              or all but 1 blocked.
              In the case of add path it is the fiber span in km"; total
              of the add block
              + egress WSS crosstalk contributions.";
         }
         leaf input-power roadm-maxloss {
           type decimal64 {
             fraction-digits 2;
           }
           units "dBm";
      config false; dB ;
           description
      "Average
             "This is the maximum expected add path loss from
              the add/drop port input to the ROADM egress,
              assuming no additional add path loss is added.
              This is used to establish the minimum required
              transponder output power level estimated at required
              to hit the receiver
         of ROADM egress target power
              levels and preventing
              to hit the link"; WSS attenuation limits.
              If the add path contains an internal amplifier
              this loss value should be based
              on worst case expected amplifier gain due to
              ripple or gain uncertainty";

         }
         leaf output-power roadm-pmax {
           type decimal64 {
             fraction-digits 2;
           }
           units "dBm"; dBm ;
           description
      "Mean launched
             "This is the maximum (per carrier) power level
              permitted at the transmitter of add block input ports,
              that can be handled by the link"; ROADM node.
              This may reflect either add amplifier power
              contraints or WSS adjustment limits.
              Higher power transponders would need to have
              their launch power reduced
              to this value or lower";
         }
         leaf pmd roadm-osnr {
           type decimal64 {
             fraction-digits 8;
        range "0..max"; 5;
           }
           units "ps/(km)^0.5";
      config false; "dB";
           description
      "Polarization Mode Dispersion";
             "Optical Signal-to-Noise Ratio (OSNR).
              If the add path contains the ability to adjust the
              carrier power levels into an add path amplifier
              (if present) to a target value,
              this reflects the OSNR contribution of the
              add amplifier assuming this target value is obtained.
              The worst case OSNR based on the input power and
              NF calculation method, and this value, should be used
              (if both are defined).";
         }
         leaf cd roadm-noise-figure {
           type decimal64 {
             fraction-digits 5;
           }
           units "ps/nm/km";
      config false; "dB";
           description
             "Noise Figure. If the add path contains an amplifier,
              this is the noise figure of that amplifier inferred
              to the add port.
              This permits add path OSNR calculation based
              on the input power levels to the add block
              without knowing the ROADM path losses to
              the add amplifier.";
         }
       }
     }
     grouping roadm-drop-path {
       description "roadm drop block path optical impairments";

       container roadm-drop-path {
         description
      "Cromatic Dispersion";
    } "roadm optical impairment parameters
         per drop path";

         leaf osnr roadm-pmd {
           type decimal64 {
             fraction-digits 5; 8;
             range "0..max";
           }
           units "dB";
      config false; "ps/(km)^0.5";
           description
      "Optical Signal-to-Noise Ratio (OSNR) estimated
         at the receiver";
             "Polarization Mode Dispersion";
         }
         leaf sigma roadm-cd {
           type decimal64 {
             fraction-digits 5;
           }
           units "dB";
      config false; "ps/nm";
           description
      "sigma in the Gausian Noise Model";
    } "Chromatic Dispersion";
         }

  grouping optical-channel-data {
  description
    "optical impairment data per channel/wavelength";
         leaf bit-rate roadm-pdl {
           type decimal64 {
             fraction-digits 8;
        range "0..max"; 2;
           }
           units "Gbit/s";
    config false; dB ;
           description
      "Gross bit rate"; "Polarization dependent loss";
         }
         leaf BER roadm-inband-crosstalk {
           type decimal64 {
             fraction-digits 18;
            range "0..max"; 2;
           }
    config false;
           units dB;
           description
      "BER (Bit Error Rate)";
             "In-band crosstalk, or coherent crosstalk, can occur in
              components that can have multiple same wavelength
              inputs,with the inputs either routed to different
              output ports,or all but 1 blocked.
              In the case of drop path it is the total
              of the ingress
              to drop e.g. WSS and drop block crosstalk
              contributions.";
         }
         leaf ch-input-power roadm-maxloss {
           type decimal64 {
             fraction-digits 2;

           }
           units "dBm";
        config false; dB ;
           description
    "Per channel average input
             "The net loss from the ROADM input,to the output
              of the drop block.
              If ROADM ingress to drop path includes an amplifier,
              the amplifier gain reduces the net loss.
              This is before any additional drop path attenuation
              that may be required
              due to drop amplifier power level
          estimated at contraints.
              The max value correspond to worst case expected loss,
              including amplifier gain ripple or uncertainty.
              It is the receiver maximum output power of the link"; drop
              amplifier.";
         }
         leaf ch-pmd roadm-minloss {
           type decimal64 {
             fraction-digits 8;
      range "0..max"; 2;
           }
           units "ps/(km)^0.5";
    config false; dB ;
           description
      "per channel Polarization Mode Dispersion";
             "The net loss from the ROADM input, to the
              output of the drop block.
              If this ROADM ingress to drop path includes
              an amplifier,the amplifier gain reduces the net loss.
              This is before any additional drop path attenuation
              that may be required due to drop amplifier power
              contraints.
              The min value correspond to best case expected loss,
              including amplifier gain ripple or uncertainty.";
         }
         leaf ch-cd roadm-typloss {
           type decimal64 {
             fraction-digits 5; 2;
           }
           units "ps/nm/km";
    config false; dB ;
           description

      "per channel Cromatic Dispersion";
             "The net loss from the ROADM input,
              to the output of the drop block.
              If this ROADM ingress to drop path
              includes an amplifier,
              the amplifier gain reduces the net loss.
              This is before any additional drop path
              attenuation
              that may be required due to drop amplifier
              power contraints.
              The typ value correspond to typical case
              expected loss.";

         }
         leaf ch-osnr roadm-pmin {
           type decimal64 {
             fraction-digits 5; 2;
           }
           units "dB";
    config false; dBm ;
           description
      "per channel Optical Signal-to-Noise Ratio
            (OSNR) estimated
             "If the drop path has additional loss
              that is added, for example,
              to hit target power levels into a
              drop path amplifier, or simply, to reduce the
              power of a "strong" carrier
              (due to ripple,for example),
              then the use of the ROADM input power levels and
              the above drop losses is not appropriate.
              This parameter corresponds to the min per
              carrier power levels
              expected at the receiver"; output of the drop block.
              A detail example of the comparison using
              these parameters is
              detailed in section xxx of the document yyy.";
         }
         leaf q-factor roadm-pmax {
           type decimal64 {
             fraction-digits 5; 2;
           }
           units "dB";
    config false; dBm ;
           description
      "q-factor estimated at
             "If the receiver";
  }
  }

  grouping standard_mode {
    description
      "ITU-T G.698.2 standard mode drop path has additional loss that guarantees interoperability.
       It must be an string with is added,
              for example, to hit target power levels into a
              drop path amplifier,or simply,to reduce the following format:
       B-DScW-ytz(v) where all these attributes are conformant power
              of a "strong" carrier(due to ripple,for example),
              then the ITU-T recomendation";

    leaf standard_mode {
      type layer0-types: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 layer0-types:operational-mode;
      config false;
      description
        "configured organization- or vendor-specific
         application identifiers (AI) supported by use of the transponder";
    }

    leaf organization-identifier {
      type layer0-types:vendor-identifier;
      config false;
      description
      "organization identifier that uses organizational
         mode";

    }
  }

    /*
   * Identities
   */
  identity type-element {
    description
      "Base identity for element type";
  }

  identity Fiber {
    base type-element;
    description
      "Fiber element";
  }

  identity Roadm {
    base type-element;
    description
      "Roadm element"; ROADM input power levels and the
              above drop losses is not appropriate.
              This parameter corresponds to the best case per
              carrier power levels expected at the output of the
              drop block.
              A detail example of the comparison using
              these parameters
              is detailed in section xxx of the document yyy";
         }

  identity Edfa
         leaf roadm-ptyp {
    base type-element;
    description
      "Edfa element";
  }

  identity Concentratedloss
           type decimal64 {
    base type-element;
    description
      "Concentratedloss element";
             fraction-digits 2;
           }

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

  }

  identity power-spectral-density {
    base type-power-mode;
    description
      "all elements must use drop path has additional loss that is added,
              for example, to hit target power spectral density (W/Hz)";
  }

  identity channel-power {
    base type-power-mode;
    description
      "all elements must levels into a
              drop path amplifier,or simply,to reduce the
              power of a "strong" carrier(due to ripple,for example),
              then the use of the ROADM input power (dBm)"; levels and
              the above drop losses is not appropriate.
              This parameter corresponds to the typical case
              per carrier power levels expected
              at the output of the drop block.";
         }

  /*
   * Groupings
   */
  grouping amplifier-params {
    description "describes parameters for an amplifier";
    container amplifier{
    description "amplifier type, operatonal parameters are described";
         leaf type_variety roadm-osnr {
           type string ;
        mandatory true ; decimal64 {
             fraction-digits 5;
           }
           units "dB";
           description
          "String identifier
             "Optical Signal-to-Noise Ratio (OSNR).
              Expected OSNR contribution of amplifier type referencing
          a specification the drop path
              amplifier(if present)
              for the case of additional drop path loss
              (before this amplifier)
              in order to hit a separate equipment catalog"; target power level (per carrier).
              If both, the OSNR based on the ROADM
              input power level
              (Pcarrier =
              Pref+10Log(carrier-baudrate/ref-baud) + delta-power)
              and the input inferred NF(NF.drop),
              and this OSNR value, are defined,
              the minimum value between these two should be used";
         }
      container operational {
        description "amplifier operationnal parameters";
         leaf actual-gain roadm-noise-figure {
           type decimal64 {
             fraction-digits 2; 5;
           }
           units dB ;
      mandatory true ; "dB";
           description
             "Drop path Noise Figure.
              If the drop path contains an amplifier,
              this is the noise figure
              of that amplifier, inferred to the
              ROADM ingress port.
              This permits to determine
              amplifier OSNR contribution
              without having to specify the
              ROADM node's losses to that amplifier.
              This applies for the case of no
              additional drop path loss,
              before the amplifier, in order to reduce the power
              of the carriers to a target value";

         }
       }
     }

     grouping concentratedloss-params{
       description "concentrated loss";
       container concentratedloss{
       description "..";
        } "concentrated loss";
         leaf tilt-target loss {
           type decimal64 {
             fraction-digits 2;
           }
          mandatory true
           units dB ;
           description "..";
         }
        leaf out-voa
       }
     }

     grouping power-param{
       description
         "optical power or PSD after the ROADM or after the out-voa";
       choice power-param {
         description
           "select the mode: channel power or power spectral density";
         case channel-power {
    /*       when "equalization-mode='channel-power'"; */
           leaf nominal-channel-power{
             type decimal64 {
                 fraction-digits 2; 1;
             }
             units dB;
      mandatory true; dBm ;
             description "..";
               " Reference channel power after the ROADM or after
               the out-voa. ";
           }
         }
         case power-spectral-density{
    /*       when "equalization-mode='power-spectral-density'"; */
           leaf in-voa { nominal-power-spectral-density{
             type decimal64 {
                 fraction-digits 2; 16;
             }
             units dB;
      mandatory true; W/Hz ;
             description "..";
               " Reference power spectral density after
                 the ROADM or after the out-voa.
                 Typical value : 3.9 E-14, resolution 0.1nW/MHz";
           }
        uses power-param;

         }
       }
     }

     grouping fiber-params {
    description "String identifier of fiber type referencing a specification in a
separate equipment catalog";
    container fiber {
    description "fiber characteristics";
      leaf type_variety oms-general-optical-params {
        type string ;
    mandatory true ;
       description "fiber type";
      } "OMS link optical parameters";
       leaf length generalized-snr {
         type decimal64 {
           fraction-digits 2; 5;
         }
         units km;
    mandatory true ; "dB@0.1nm";
         description "length of fiber"; "generalized snr";
       }
       leaf loss_coef { equalization-mode{
         type decimal64 identityref {
          fraction-digits 2;
           base type-power-mode;
         }
        units dB/km;
         mandatory true ; true;
         description "loss coefficient of the fiber"; "equalization mode";
       }
       uses power-param;
     }

     grouping OTSiG {
       description "OTSiG definition , representing client
        digital information stream supported by 1 or more OTSi";

       container OTSiG-container {
         config false;
         description
           "the container contains the related list of OTSi.
           The list could also be of only 1 element";
        list OTSi {
          key "OTSi-carrier-id";
          description
            "list of OTSi's under OTSi-G";
          leaf total_loss OTSi-carrier-id {
            type decimal64 {
          fraction-digits 2;
        }
        units dB;
    mandatory true ; int16;
            description
          "includes all losses: fiber loss and conn_in and conn_out losses"; "OTSi carrier-id";
            }
          leaf pmd{ OTSi-carrier-frequency {
            type decimal64 {
              fraction-digits 2; 3;
            }
            units sqrt(ps); GHz;
            config false;
            description "pmd of the fiber";
              "OTSi carrier frequency";

          }
          leaf conn_in{ OTSi-signal-width {
            type decimal64 {
              fraction-digits 2; 3;
            }
            units dB; GHz;
            config false;
            description "connector-in";
              "OTSi signal width";
          }
          leaf conn_out{ channel-delta-power {
            type decimal64 {
              fraction-digits 2;
            }
            units dB;
            config false;
            description "connector-out";
              "optional ; delta power to ref channel
               input-power applied
              to this media channel";
          }

        }
       }

  grouping roadm-params{
    description "roadm parameters description";  // OTSiG container roadm{
     } // OTSiG grouping

     grouping media-channel-groups {
       description "roadm parameters";
      leaf type_variety "media channel groups";
       list media-channel-group {
        type string ;
        mandatory true ;
       key "i";
         description "String identifier
           "list of roadm type referencing a specification in a
separate equipment catalog";
      } media channel groups";
         leaf loss i {
           type decimal64 {
          fraction-digits 2;
        }
        units dB ; int16;
             description "..";
      }
    } "index of media channel group member";
         }

  grouping concentratedloss-params{
    description "concentrated loss";
    container concentratedloss{

         list media-channels {
           key "flexi-n";
           description "concentrated loss";
             "list of media channels represented as (n,m)";
           uses layer0-types:flexi-grid-channel;
           leaf loss OTSiG-ref {
             type decimal64 leafref {
          fraction-digits 2;
        }
        units dB
              path "/nw:networks/nw:network/nw:node/tet:te" +
                   "/tet:tunnel-termination-point" +
                   "/OTSiG-element/OTSiG-identifier" ;
        description "..";

             }
    }
  }

  grouping power-param{
             description
      "optical power or PSD after the ROADM or after
                "Reference to the out-voa";
    choice power-param {
      description
        "select OTSiG list to get OTSiG
                 identifier of the mode: channel power or power spectral density";
      case channel-power {
 /*       when "equalization-mode='channel-power'"; */
        leaf nominal-channel-power{
          type decimal64 {
              fraction-digits 1;
          }
          units dBm ;
          description
            " Reference
                 OSiG carried by this media channel power after the ROADM or after
                 that reports the out-voa. ";
        } transient stat";
           }
      case power-spectral-density{
 /*       when "equalization-mode='power-spectral-density'"; */
           leaf nominal-power-spectral-density{ OTSi-ref {
             type decimal64 leafref {
              fraction-digits 16;
          }
          units W/Hz
               path "/nw:networks/nw:network/nw:node/tet:te" +
                   "/tet:tunnel-termination-point/"
                  +"OTSiG-element[OTSiG-identifier=current()"
                  +"/../OTSiG-ref]/"
                  + "OTSiG-container/OTSi/OTSi-carrier-id" ;
             }
             description
            " Reference power spectral density after
                "Reference to the ROADM or after OTSi list supporting the out-voa.
              Typical value : 3.9 E-14, resolution 0.1nW/MHz";
                 related OTSiG" ;
           }

         } // media channels list
       } // media-channel-groups list
     } // media media-channel-groups grouping oms-general-optical-params

     grouping oms-element {
       description "OMS link optical parameters"; description";
       list OMS-elements {
           key "elt-index";
           description
             "defines the spans and the amplifier blocks of
             the amplified lines";
           leaf generalized-snr elt-index {
             type decimal64 {
        fraction-digits 5; uint16;
             description
               "ordered list of Index of OMS element
               (whether it's a Fiber, an EDFA or a
   Concentratedloss)";
           }
      units "dB@0.1nm";
           leaf uid {
             type string;
             description "generalized snr";
               "unique id of the element if it exists";
           }
           leaf equalization-mode{ type {
             type identityref {
                base type-power-mode; type-element;
             }
         mandatory true;
         description "equalization mode";
    }
    uses power-param; "element type";
           }

  grouping OTSiG {
    description "OTSiG definition , representing client digital information stream
supported by 1 or more OTSi";

           container OTSiG-container element {
      config false;
             description
        "the container contains "element of the related list of OTSi.
        The list could also be elements of only 1 element";
     list OTSi the OMS";
             choice element {
       key "OTSi-carrier-id";
           description
         "list of OTSi's under OTSi-G";
       leaf OTSi-carrier-id "OMS element type";
               case amplifier {
         type int16;
         description "OTSi carrier-id";
    /*             when "type = 'Edfa'"; */
                 uses amplifier-params ;
               }
       leaf OTSi-carrier-frequency
               case fiber {
         type decimal64
   /*              when "type = 'Fiber'"; */
                 uses fiber-params ;
               }
               case concentratedloss {
           fraction-digits 3;
   /*             when "type = 'Concentratedloss'"; */
                 uses concentratedloss-params ;
               }
         units GHz;
         config false;
         description
           "OTSi carrier frequency";
             }
       leaf OTSi-signal-width
           }
       }
     }

   /* Data nodes */

     augment "/nw:networks/nw:network/nw:network-types"
      + "/tet:te-topology" {
         type decimal64
      description "optical-impairment topology augmented";
      container optical-impairment-topology {
           fraction-digits 3;
         }
         units GHz;
         config false;
        presence "indicates an impairment-aware topology of
        optical networks";
        description
           "OTSi signal width";
        "Container to identify impairment-aware topology type";
      }
       leaf channel-delta-power
     }

     augment "/nw:networks/nw:network/nt:link/tet:te"
      + "/tet:te-link-attributes"   {
         type decimal64
      when "/nw:networks/nw:network/nw:network-types"
       +"/tet:te-topology/"
       +"optical-imp-topo:optical-impairment-topology" {
           fraction-digits 2;
       description
         "This augment is only valid for Optical Impairment.";
      }
         units dB;
      description "Optical Link augmentation for impairment data.";
      container OMS-attributes {
          config false;
          description
           "optional ; delta power to ref channel input-power applied
           to this media channel";
       }

     } "OMS attributes";
        uses oms-general-optical-params;
        uses media-channel-groups;
        uses oms-element;
        }  // OTSiG container
     } // OTSiG grouping

  grouping media-channel-groups

     augment "/nw:networks/nw:network/nw:node/tet:te"
      + "/tet:tunnel-termination-point" {
      when "/nw:networks/nw:network/nw:network-types"
       +"/tet:te-topology/optical-imp-topo:optical-impairment-topology"{
       description "media channel groups";
         "This augment is only valid for Impairment with non-sliceable
          transponder model";
      }
      description
        "Tunnel termination point augmentation for non-sliceable
         transponder model.";

        list media-channel-group OTSiG-element {
            key "i"; "OTSiG-identifier";
            config false;
            description
        "list
            "the list of media channel groups"; possible OTSiG representing client digital
             stream";

            leaf i OTSiG-identifier {
               type int16;
                description "index of media channel group member"; OTSiG element";
            }
            uses OTSiG;
        }

        list media-channels transponders-list {
            key "flexi-n"; "transponder-id";
        config false;
            description "list of media channels represented as (n,m)";
        uses layer0-types:flexi-grid-channel; transponders";
            leaf OTSiG-ref transponder-id {
          type leafref {
           path "/nw:networks/nw:network/nw:node/tet:te" +
                "/tet:tunnel-termination-point/OTSiG-element/OTSiG-identifier" ;

          } uint32;
          description
             "Reference to the OTSiG list to get OTSiG identifier of the
              OSiG carried by this media channel that reports the transient stat"; "transponder identifier";
            }
        leaf OTSi-ref {
          type leafref

            choice mode {
            path "/nw:networks/nw:network/nw:node/tet:te" +
                "/tet:tunnel-termination-point/OTSiG-element[OTSiG-
identifier=current()/../OTSiG-ref]/"+
                "OTSiG-container/OTSi/OTSi-carrier-id" ;
          }
                description
             "Reference to the OTSi list supporting the related OTSiG" ; "standard mode, organizational mode or
                 explicit mode";

                case G.692.2 {
                  uses standard-mode;

                }

                case organizational-mode {
                  uses organizational-mode;
                } // media channels list

                case explicit-mode {
                  uses transponder-attributes;
                } // media-channel-groups list
            } // media media-channel-groups grouping

  grouping oms-element {
    description "OMS description";
    list OMS-elements

            leaf power {
        key "elt-index";
        description
          "defines the spans and the amplifier blocks of the amplified lines";
              type int32;
              units "dBm";
              config false;
              description "per channel power";
            }

            leaf elt-index power-min {
              type uint16; int32;
              units "dBm";
              config false;
              description
            "ordered list of Index "minimum power of OMS element (whether it's a Fiber, an EDFA or a
Concentratedloss)"; the transponder";
            }
            leaf uid power-max {
              type string; int32;
              units "dBm";
              config false;
              description
            "unique id "maximum power of the element if it exists"; transponder";
            }
        leaf type
      }
     }

     augment "/nw:networks/nw:network/nw:node/tet:te"
      + "/tet:tunnel-termination-point" {
          type identityref
      when "/nw:networks/nw:network/nw:network-types"
       +"/tet:te-topology/"
       + "optical-imp-topo:optical-impairment-topology" {
             base type-element;
       description
         "This augment is only valid for optical impairment
          with sliceable transponder model";
      }
      mandatory true;
      description "element type";
        "Tunnel termination point augmentation for sliceable
         transponder model.";
      uses sliceable-transponder-attributes;
     }

        container element
     augment "/nw:networks/nw:network/nw:node/tet:te"
           + "/tet:te-node-attributes" {
       when "/nw:networks/nw:network/nw:network-types"
          + "/tet:te-topology"
          + "/optical-imp-topo:optical-impairment-topology" {

         description "element of the
           "This augment is only valid for Optical Impairment
           topology";
       }
       description
         "node attributes augmentantion for optical-impairment ROADM
          node";

       list roadm-path-impairments {
         key "roadm-path-impairments-id";
         config false;
         description "list of elements set of optical impairments related
         to ROADM ";

         leaf roadm-path-impairments-id {
           type uint32;
           description "index of the OMS"; ROADM path-impairment list";
         }
         choice element impairment-type {
           description "OMS element type"; "type path impairment";
           case amplifier roadm-express-path {
 /*             when "type = 'Edfa'"; */
             uses amplifier-params ; roadm-express-path;
           }
           case fiber roadm-add-path {
/*              when "type = 'Fiber'"; */
             uses fiber-params ; roadm-add-path;
           }
           case concentratedloss roadm-drop-path {
/*             when "type = 'Concentratedloss'"; */
             uses concentratedloss-params ; roadm-drop-path;
           }
         }
       } // list path impairments
     } // augmentation for optical-impairment ROADM

     augment "/nw:networks/nw:network/nw:node/tet:te/"
           + "tet:information-source-entry/tet:connectivity-matrices"{
       when "/nw:networks/nw:network/nw:network-types"
          + "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
         description
           "This augment is only valid for Optical Impairment
           topology ";
       }
       description
         "Augment default TE node connectivity matrix information
         source.";

       leaf roadm-path-impairments {
         type leafref {
           path "../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id";
         }
         description "pointer to the list set of ROADM optical
         impairments";
       }
     }

/* Data nodes */ // augmentation connectivity-matrices information-source

     augment "/nw:networks/nw:network/nw:node/tet:te/"
           + "tet:information-source-entry/tet:connectivity-matrices/"
           + "tet:connectivity-matrix" {
       when "/nw:networks/nw:network/nw:network-types"
          + "/tet:te-topology" "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
         description "optical-impairment
           "This augment is only valid for Optical Impairment
            topology augmented";
   container optical-impairment-topology ";
       }

       description
         "Augment TE node connectivity matrix entry information
         source.";

       leaf roadm-path-impairments {
         type leafref {
     presence "indicates an impairment-aware topology of optical networks";
           path "../../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id";
         }
         description
     "Container "pointer to identify impairment-aware topology type"; the list set of ROADM optical
         impairments";
       }
     } // augmentation connectivity-matrix information-source

     augment "/nw:networks/nw:network/nt:link/tet:te" "/nw:networks/nw:network/nw:node/tet:te/"
           + "/tet:te-link-attributes" "tet:te-node-attributes/tet:connectivity-matrices" {
       when "/nw:networks/nw:network/nw:network-types"
    +"/tet:te-topology/optical-imp-topo:optical-impairment-topology"
          + "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
         description
           "This augment is only valid for Optical Impairment."; Impairment
           topology ";
       }
       description "Optical Link augmentation for impairment data.";
   container OMS-attributes
         "Augment default TE node connectivity matrix.";
       leaf roadm-path-impairments {
         type leafref {
           path "../../roadm-path-impairments/"
           + "roadm-path-impairments-id";
         }
         config false; /*the identifier in the list */
          /*"roadm-path-impairments" of ROADM optical impairment*/
                       /*is read-only as the rest of attributes*/
         description "OMS attributes";
     uses oms-general-optical-params;
     uses media-channel-groups;
     uses oms-element; "pointer to the list set of ROADM optical
         impairments";
       }
     } // augmentation connectivity-matrices

     augment "/nw:networks/nw:network/nw:node/tet:te" "/nw:networks/nw:network/nw:node/tet:te/"
           + "/tet:tunnel-termination-point" "tet:te-node-attributes/"
           + "tet:connectivity-matrices/tet:connectivity-matrix" {
       when "/nw:networks/nw:network/nw:network-types"
    +"/tet:te-topology/optical-imp-topo:optical-impairment-topology"
          + "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
         description
           "This augment is only valid for
           Optical Impairment with non-sliceable
       transponder model"; topology ";
       }

       description
     "Tunnel termination point augmentation for non-sliceable
      transponder model.";

     list OTSiG-element {
         key "OTSiG-identifier";
         config false;
         description
         "the list of possible OTSiG representing client digital stream";
         "Augment TE node connectivity matrix entry.";

       leaf OTSiG-identifier roadm-path-impairments {
         type int16;
             description "index of OTSiG element";
         }
         uses OTSiG;
     }

     list transponders-list leafref {
         key "transponder-id";
           path "../../../roadm-path-impairments/"
           + "roadm-path-impairments-id";
         }
         config false;
         description "list "pointer to the list set of transponders";
         leaf transponder-id {
       type uint32;
       description "transponder identifier";
         }

         choice mode {
             description "standard mode, organizational mode or explicit mode";

             case G.692.2 {
               uses standard_mode; ROADM optical
          impairments";
       }

             case organizational_mode {
               uses organizational_mode;
     }

             case explicit_mode // augmentation connectivity-matrix

     augment "/nw:networks/nw:network/nw:node/tet:te/"
           + "tet:tunnel-termination-point/"
           + "tet:local-link-connectivities" {
               uses transponder-attributes;
             }
         }

         leaf power

       when "/nw:networks/nw:network/nw:network-types"
          + "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
           type int32;
           units "dBm";
           config false;
         description "per channel power";
         "This augment is only valid for Optical Impairment topology ";
       }

       description
         "Augment default TTP LLC.";
       leaf power-min add-path-impairments {
         type int32;
           units "dBm"; leafref {
           path "../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id" ;
         }
         config false;
         description "minimum power of "pointer to the transponder"; list set of ROADM optical
          impairments";
       }
       leaf power-max drop-path-impairments {
         type int32;
           units "dBm"; leafref {
           path "../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id" ;
         }
         config false;
         description "maximum power of "pointer to the transponder";
         } list set of ROADM
         optical impairments";
       }
     } // augmentation local-link-connectivities

     augment "/nw:networks/nw:network/nw:node/tet:te" "/nw:networks/nw:network/nw:node/tet:te/"
           + "/tet:tunnel-termination-point" "tet:tunnel-termination-point/"
           + "tet:local-link-connectivities/"
           + "tet:local-link-connectivity" {

       when "/nw:networks/nw:network/nw:network-types"
    +"/tet:te-topology/optical-imp-topo:optical-impairment-topology"
          + "/tet:te-topology/"
          + "optical-imp-topo:optical-impairment-topology" {
         description
           "This augment is only valid for
            Optical Impairment topology ";
       }

       description
         "Augment TTP LLC entry.";
       leaf add-path-impairments {
         type leafref {
           path "../../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id" ;
         }
         config false;
         description "pointer to the list set of ROADM optical impairment with sliceable
      transponder model";
          impairments";

       }
       leaf drop-path-impairments {
         type leafref {
           path "../../../../tet:te-node-attributes/"
           + "roadm-path-impairments/roadm-path-impairments-id" ;
         }
         config false;
         description
     "Tunnel termination point augmentation for sliceable transponder model.";
   uses sliceable-transponder-attributes; "pointer to the list set of ROADM optical
         impairments";
       }
     } // augmentation local-link-connectivity
   }

   <CODE ENDS>

5.  Security Considerations

   The configuration, state, and action data defined in this document
   are designed to be accessed via a management protocol with a secure
   transport layer, such as NETCONF [RFC6241].  The NETCONF access
   control model [RFC6536] [RFC8341] provides the means to restrict access for
   particular NETCONF users to a preconfigured subset of all available
   NETCONF protocol operations and content.

   A number of configuration data nodes defined in this document are
   read-only; however, these data nodes may be considered sensitive or
   vulnerable in some network environments (TBD).

6.  IANA Considerations

   This document registers the following namespace URIs in the IETF XML
   registry [RFC3688]:

   --------------------------------------------------------------------
   URI: urn:ietf:params:xml:ns:yang:ietf-optical-impairment-topology
   Registrant Contact: The IESG.
   XML: N/A, the requested URI is an XML namespace.
   --------------------------------------------------------------------

   This document registers the following YANG modules in the YANG Module
   Names registry [RFC7950]:

   --------------------------------------------------------------------
   name:      ietf-optical-impairment-topology
   namespace: urn:ietf:params:xml:ns:yang:ietf-optical-impairment-
   topology
   prefix:    optical-imp-topo
   reference: RFC XXXX (TDB)
   --------------------------------------------------------------------

7.  Acknowledgments

   We thank Daniele Ceccarelli and Oscar G.  De Dios for useful
   discussions and motivation for this work.

8.  References

8.1.  Normative References

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

   [RFC8040] A.  Bierman, M. A., Bjorklund, M., and K. Watsen, "RESTCONF
              Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017. 2017,
              <https://www.rfc-editor.org/info/rfc8040>.

   [RFC8341]  Bierman, A. and M. Bjorklund, "Network Configuration
              Access Control Model", STD 91, RFC 8341,
              DOI 10.17487/RFC8341, March 2018. 2018,
              <https://www.rfc-editor.org/info/rfc8341>.

8.2.  Informative References

   [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. 2011,
              <https://www.rfc-editor.org/info/rfc6241>.

   [RFC6566] Y.  Lee, G. Y., Ed., Bernstein, D. G., Ed., Li, D., and G.
              Martinelli, "A Framework for the Control of Wavelength
              Switched Optical Networks (WSONs) with Impairments",
              RFC 6566, DOI 10.17487/RFC6566, March 2012. 2012,
              <https://www.rfc-editor.org/info/rfc6566>.

   [RFC7446] Y.  Lee, G. Y., Ed., Bernstein, D. G., Ed., Li, D., and W. Imajuku,
              "Routing and Wavelength Assignment Information Model for
              Wavelength Switched Optical Networks", RFC 7446, Feburary 2015.
              DOI 10.17487/RFC7446, February 2015,
              <https://www.rfc-editor.org/info/rfc7446>.

   [RFC7579] G.  Bernstein, Y. G., Ed., Lee, D. Y., Ed., Li, W. D., Imajuku, W., and
              J. Han, "General Network Element Constraint Encoding for GMPLS Controlled
              GMPLS-Controlled Networks", RFC 7579,
              DOI 10.17487/RFC7579, June 2015. 2015,
              <https://www.rfc-editor.org/info/rfc7579>.

   [RFC7581] G.  Bernstein, Y. G., Ed., Lee, D. Y., Ed., Li, W. D., Imajuku, W., and
              J. Han, "Routing and Wavelength Assignment Information
              Encoding for Wavelength Switched Optical Networks",
              RFC 7581, DOI 10.17487/RFC7581, June 2015. 2015,
              <https://www.rfc-editor.org/info/rfc7581>.

   [RFC7698] O.  Gonzalez de Dios, Ed. and R. O., Ed., Casellas, R., Ed., Zhang, F.,
              Fu, X., Ceccarelli, D., and I. Hussain, "Framework and
              Requirements for GMPLS-Based Control of Flexi-Grid Dense
              Wavelength Division Multiplexing (DWDM) Networks",
              RFC 7698, DOI 10.17487/RFC7698, November 2015. 2015,
              <https://www.rfc-editor.org/info/rfc7698>.

   [RFC8340] M.  Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams",
              BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018. 2018,
              <https://www.rfc-editor.org/info/rfc8340>.

   [RFC8342]  Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
              and R. Wilton, "Network Management Datastore Architecture
              (NMDA)", RFC 8342, DOI 10.17487/RFC8342, March 2018. 2018,
              <https://www.rfc-editor.org/info/rfc8342>.

   [RFC8345] A.  Clemm, et al, A., Medved, J., Varga, R., Bahadur, N.,
              Ananthakrishnan, H., and X. Liu, "A YANG Data Model for
              Network Topologies", RFC 8345, DOI 10.17487/RFC8345, March 2018.

   [TE-TOPO] X. Liu, et al., "YANG Data Model for TE Topologies, work
             in progress: draft-ietf-teas-yang-te-topo.
              2018, <https://www.rfc-editor.org/info/rfc8345>.

   [RFC8453]  Ceccarelli, D. D., Ed. and Y. Lee, Ed., "Framework for
              Abstraction and Control of Traffic Engineered Networks", TE Networks (ACTN)", RFC 8453,
              DOI 10.17487/RFC8453, August
             2018.

   [WSON-Topo] Y. 2018,
              <https://www.rfc-editor.org/info/rfc8453>.

   [I-D.ietf-teas-yang-te-topo]
              Liu, X., Bryskin, I., Beeram, V., Saad, T., Shah, H., and
              O. Dios, "YANG Data Model for Traffic Engineering (TE)
              Topologies", draft-ietf-teas-yang-te-topo-22 (work in
              progress), June 2019.

   [I-D.ietf-ccamp-wson-yang]
              Zheng, H., Lee, Ed., Y., Guo, A., Lopezalvarez, V., and D.
              King, "A Yang YANG Data Model for WSON (Wavelength Switched
              Optical
             Networks", draft-ietf-ccamp-wson-yang-13, work Networks)", draft-ietf-ccamp-wson-yang-23 (work in
             progress.

   [L0-Types] Y.
              progress), November 2019.

   [I-D.ietf-ccamp-layer0-types]
              Zheng, H., Lee, Ed., Y., Guo, A., Lopezalvarez, V., and D.
              King, "A YANG Data Model for Layer 0 Types",
             draft-ietf-ccamp-layer0-types, work draft-ietf-
              ccamp-layer0-types-03 (work in progress), November 2019.

   [I-D.ietf-ccamp-dwdm-if-param-yang]
              Galimberti, G., Kunze, R., Hiremagalur, D., and G.
              Grammel, "A YANG model to manage the optical interface
              parameters for an external transponder in a WDM network",
              draft-ietf-ccamp-dwdm-if-param-yang-02 (work in progress. progress),
              November 2019.

   [G.807] "Draft new Recommendation ITU-T G.807 (ex G.media)",    "Generic functional architecture of the optical media
              network", ITU-T Recommendation G.807, work G.807 - in progress. publication
              process, February 2020.

   [G.709]    "Interfaces for the Optical Transport Network (OTN)",
              ITU-T Recommendation G.709, June 2016.

   [G.694.1]  "Spectral grids for WDM applications: DWDM frequency
              grid", ITU-T Recommendation G.694.1, February 2012.

   [G.959.1]  "Optical transport network physical layer interfaces",
              ITU-T Recommendation G.959.1, February 2012.

   [G.872]    "Architecture of optical transport networks",
              ITU-T Recommendation G.872, January 2017.

9.

Appendix A.  Contributors

   Jonas Martensson
   RISE

   Email: jonas.martensson@ri.se

   Aihua Guo
   Huawei Technologies

   Email: aguo@futurewei.com

Authors' Addresses

   Young Lee
   SKKU (Sung Kyun Kwan University)

   Jonas Martensson
   RISE

   Email: younglee.tx@gmail.com jonas.martensson@ri.se

Appendix B.  Additional Authors

   Haomian Zheng
   Huawei Technologies

   Email: zhenghaomian@huawei.com

   Italo Busi
   Huawei Technologies

   Email: Italo.Busi@huawei.com

   Nicola Sambo
   Scuola Superiore Sant'Anna

   Email: nicosambo@gmail.com

   Victor Lopez
   Telefonica

   Email: victor.lopezalvarez@telefonica.com
   G. Galimberti
   Cisco

   Email: ggalimbe@cisco.com

   Giovanni Martinelli
   Cisco

   Email: giomarti@cisco.com

   Jean Luc

   Jean-Luc Auge
   Orange

   Email: jeanluc.auge@orange.com

   Esther Le Rouzic
   Orange

   Email: esther.lerouzic@orange.com

   Julien Meuric
   Orange

   Email: julien.meuric@orange.com

   Dieter Beller
   Nokia

   Email: dieter.beller@nokia.com

   Sergio Belotti
   Nokia

   Email: Sergio.belotti@nokia.com
   Griseri Enrico
   Nokia

   Email: enrico.griseri@nokia.com Enrico.Griseri@nokia.com

   Gert Grammel
   Juniper

   Email: ggrammel@juniper.net

Authors' Addresses

   Young Lee
   SKKU (Sung Kyun Kwan University)

   Email: younglee.tx@gmail.com

   Victor Lopez
   Telefonica

   Email: victor.lopezalvarez@telefonica.com

   G. Galimberti
   Cisco

   Email: ggalimbe@cisco.com

   Dieter Beller
   Nokia

   Email: Dieter.Beller@nokia.com