<?xml version='1.0' encoding='utf-8'?>
<?xml-model href="rfc7991bis.rnc"?>

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  docName="draft-ietf-ccamp-optical-impairment-topology-yang-23"
  category="std"
  consensus="true"
  ipr="trust200902"
  submissionType="IETF">    
  
  <?rfc strict="yes"?>
  <?rfc compact="yes"?>
  <?rfc subcompact="no"?>
  <?rfc symrefs="yes"?>
  <?rfc sortrefs="no"?>
  <?rfc text-list-symbols="o*+-"?>
  <?rfc toc="yes"?>

  <front>
  <title abbrev="Opt. Impairment-Aware Topo YANG Model">
    A YANG Data Model for Optical Impairment-aware Topology</title>
  
  <author initials="D." surname="Beller" fullname="Dieter Beller" role="editor">
    <organization>Nokia</organization>
    <address><email>Dieter.Beller@nokia.com</email></address>
  </author>
  
  <author initials="E." surname="Le Rouzic" fullname="Esther Le Rouzic">
    <organization>Orange</organization>
    <address><email>esther.lerouzic@orange.com</email></address>
  </author>
  
  <author initials="S." surname="Belotti" fullname="Sergio Belotti">
    <organization>Nokia</organization>
    <address><email>Sergio.Belotti@nokia.com</email></address>
  </author>

  <author initials="G." surname="Galimberti" fullname="G. Galimberti">
    <organization>Nokia</organization>
    <address><email>ggalimbe56@gmail.com</email></address>
  </author>
  
  <author initials="I." surname="Busi" fullname="Italo Busi">
    <organization>Huawei Technologies</organization>
    <address><email>Italo.Busi@huawei.com</email></address>
  </author>
     
  <date year="2026" month="February" day="27" />
  <area>Routing</area>
  <workgroup>CCAMP Working Group</workgroup>

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

  <t>
   This document provides a YANG data model for the impairment-aware
   Traffic Engineering topology (TE topology) in optical networks.
   It augments the technology agnostic YANG Data Model for TE
   topologies.
   The topology YANG model provides read-only topology data including
   optical impairments that can be used for example by a Path
   Computation Engine (PCE) for calculating an optically feasible path
   for a new connection before it is established through an optical
   network.
  </t>

  </abstract>
  </front>

  <middle>
  <section title="Introduction" anchor="sect-1">
  <t>
   In order to provision an optical connection (an optical path)
   through wavelength switched optical networks (WSONs) as defined
   in <xref target="RFC9094"/> 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) <xref target="RFC6566"/> for WSON, while it is known as
  IA-Routing and Spectrum Assigment (IA-RSA) for SSON.
  </t>
  
  <t>
   An introduction to optical impairments and their impact on optical
   signals (degradation) is provided in <xref target="RFC6566"/>.
  </t>

  <t>
   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
   <xref target="RFC7446"/> and the two encoding documents
   <xref target="RFC7581"/> and <xref target="RFC7579"/> that developed
   protocol independent encodings based on <xref target="RFC7446"/>.
  </t>

  <t>
   The intent of this document is to provide a YANG data model, that
   can be utilized by a Multi-Domain Service Coordinator (MDSC) to
   collect WSON or SSON impairment data from the Provisioning Network
   Controllers (PNCs) to enable impairment-aware optical path
   computation according to the ACTN Architecture
   <xref target="RFC8453"/>. The communication between controllers is
   done via a NETCONF <xref target="RFC6241"/> or a RESTCONF interface
   <xref target="RFC8040"/>.
  </t>
  
  <t>
   Optical data plane interoperability, particularly for optical
   transponders across multiple vendors, is a complex challenge that
   typically necessitates joint engineering regardless of control and
   management plane capabilities.
   However, the YANG data model defined in this document provides the
   essential optical impairment data required for impairment-aware
   path computation including optical transponder interoperability if
   it exists.
  </t>
  
  <t> 
   Optical data plane interoperability is outside the scope of this
   document.
  </t>

  <t>
   This document augments the generic TE topology YANG model defined
   in <xref target="RFC8795"/>.
  </t>
  
  <t>
   The impairment-aware topology for a WSON/SSON network based on the
   YANG data model defined in this document is intended to be used for
   exposing the network topology including optical impairments.
   Therefore, the topology information that is typically provided by a
   PNC is assumed to be read-only data. This may change when the same
   impairment-aware topology model is used for other optical network
   use cases than exposing the network topology. For example, for a
   path computation engine, where topological elements could be added
   in the context of a what-if scenario analysis. This is outside of
   the scope of this document.
  </t>

  <t>
   This document defines one YANG module: ietf-optical-impairment-
   topology (<xref target="YANG-code"/>).
  </t>

  <section title="Terminology" anchor="sect-1.1">
  <t>
   Refer to <xref target="RFC6566"/>, <xref target="RFC7698"/>, and
   <xref target="G.807"/> for the key terms used in
   this document.
  </t>

  <t>
   The following terms are defined in <xref target="RFC7950"/> and are
   not redefined here:
  </t>

  <t><list style="symbols"><?rfc subcompact="yes"?>
   <t>client</t>
   <t>server</t>
   <t>augment</t>
   <t>data model</t>
   <t>data node</t>
  <?rfc subcompact="no"?>
  </list></t>

  <t>
   The terminology for describing YANG data models is found in
   <xref target="RFC7950"/>.
  </t>
  
  <t>
   The term ROADM in this document refers to the term "multi-degree
   reconfigurable optical add/drop multiplexer (MD-ROADM)" as defined
   in <xref target="G.672"/>.  It does not include local optical
   transponders, which can be co-located in the same physical device
   (managed entity).
  </t>
  
  <t>
   The term WDM-node refers to a physical device, which is managed as
   a single network element. 
  </t>
  
  <t>
   The term WDM-TE-node refers to those parts of a WDM-node (physical
   device) that are modeled as a TE-node as defined in
   <xref target="RFC8795"/>, which may include a ROADM and/or multiple
   local optical transponders (OTs). Hence, a WDM-TE-node might only
   contain OTs.
  </t>

  <t>
   The term "WDM-TE-network" refers to a set of WDM-TE-nodes as defined
   above that are interconnected via TE-links carrying WDM signals.
   These TE-links may include optical amplifiers.
  </t>

  <t>
   The term "add/drop TE-link" refers to a TE-link representing the
   media channel between a transceiver's media port of a remote optical
   transponder (OT) and an add/drop port of the ROADM in the adjacent
   WDM-node. The add/drop TE-link typically carries a single optical
   tributary signal (OTSi, i.e., a modulated optical carrier, see
   <xref target="OTSi"/>).
  </t>

  <t>
   The term "bundled add/drop TE-link" refers to the TE-link bundling
   concept as defined in <xref target="RFC8795"/>. Multiple component
   links, add/drop TE-links in this case, are bundled into a single
   bundled add/drop TE-Link.
  </t>
  
  <t>
   In the context of this document, the term "layer 0" refers to the
   photonic layer or WDM layer network in the architecture of the
   optical transport network (OTN) as defined in ITU-T Recommendation
   G.709 <xref target="G.709"/>, ITU-T Recommendation G.872
   <xref target="G.872"/>, and ITU-T Recommendation G.807
   <xref target="G.807"/> as opposed to the electrical switching layers
   of the OTN, which are typically referred to as layer 1 (L1).
   The term "layer 0" may also be used for other transport network
   technologies (e.g. copper-based, radio-based, or free space
   optics-based, etc.), which are outside the scope of this document.
  </t>
  
  <t>
   The term "muxponder" is a short for "multiplexer-transponder" and
   refers to a device used in optical networking, especially in DWDM
   (Dense Wavelength Division Multiplexing) systems, to combine
   multiple client signals onto a single high-speed optical wavelength.
  </t>

  </section>

  <section title="Tree Diagram" anchor="sect-1.2">
  <t>
   A simplified graphical representation of the data model is used in
   Section 2 of this document.  The meaning of the symbols in these
   diagrams is defined in <xref target="RFC8340"/>.
  </t>

  </section>

  <section title="Prefixes in Data Node Names" anchor="sect-1.3">
  <t>
   In this document, names of data nodes and other data model objects
   are prefixed using the standard prefix associated with the
   corresponding YANG imported modules, as shown in
   <xref target="tab-prefixes-and-corresponding-yang-modules"/>.
  </t>

  <texttable title="Prefixes and corresponding YANG modules"
   anchor="tab-prefixes-and-corresponding-yang-modules" style="full">
   <ttcol> Prefix</ttcol>
   <ttcol> YANG module</ttcol>
   <ttcol> Reference</ttcol>
   <c>oit</c>
   <c>ietf-optical-impairment-topology</c>
   <c>[RFCXXXX]</c>
   <c>l0-types</c>
   <c>ietf-layer0-types</c>
   <c><xref target="I-D.ietf-ccamp-rfc9093-bis"/></c>
   <c>nw</c>
   <c>ietf-network</c>
   <c><xref target="RFC8345"/></c>
   <c>nt</c>
   <c>ietf-network-topology</c>
   <c><xref target="RFC8345"/></c>
   <c>te-types</c>
   <c>ietf-te-types</c>
   <c><xref target="I-D.ietf-teas-rfc8776-update"/></c>
   <c>tet</c>
   <c>ietf-te-topology</c>
   <c><xref target="RFC8795"/></c>
  </texttable>
  
  <t>
   [Note to RFC editor: Please replace XXXX with the number
   assigned to the RFC once this draft becomes an RFC.]
  </t>

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

  </section>

  <section title="Scope of this document and Data Plane Reference
  Architecture" anchor="sect-2">
  <section title="Scope of this document" anchor="sect-2.1">

  <t>
   The impairment-aware topology YANG model for optical networks
   defined in this document is a network model as defined in
   <xref target="RFC8969"/>. The topology model provides read-only
   network topology status information that is typically used for
   path computation during service provisioning when a new service
   is established on the network.
  </t>
  
  <t>
   The model in this document does not provide device configuration
   capabilities. Where those capabilities are needed, a device model
   as defined in <xref target="RFC8969"/> can be used:
   <xref target="I-D.ietf-ccamp-dwdm-if-param-yang"/> defines a device
   model for Dense Wavelength Division Multiplexing (DWDM) interfaces. 
  </t>
  
  </section>

  <section title="Optical Transport Network Data Plane"
  anchor="sect-2.2">
 
  <t>
   This section provides a description of the optical transport
   network reference architecture and its relevant components and
   their optical impairments needed to support impairment-aware
   path computation.
  </t>

  <t>
   <xref target="Figure-2"/> shows the reference architecture.
  </t>

  <figure title="Reference Architecture for Optical Transport Network"
   anchor="Figure-2">
   <artwork><![CDATA[
  +-------------------+                      +-------------------+
  |     WDM-node 1    |                      |     WDM-node 2    |
  |                   |                      |                   |
  | PA  +-------+ BA  |         ILA          | PA  +-------+ BA  |
  | +-+ |       | +-+ |  _____  +--+  _____  | +-+ |       | +-+ |
--|-| |-| ROADM |-| |-|-()____)-|  |-()____)-|-| |-| ROADM |-| |-|--
  | +-+ |       | +-+ |         +--+         | +-+ |       | +-+ |
  |     +-------+     | optical              |     +-------+     |
  |       | | |       |  fiber               |       | | |       |
  |       o o o       |                      |       o o o       |
  |    local          |                      |    local          |
  |    transponders   |                      |    transponders   |
  +-------------------+                      +-------------------+
                      
                       OTS MCG        OTS MCG
                     <--------->    <--------->
                         OMS MCG = TE-link
                 <-------------------------------->

   BA: Booster Amplifier (or egress amplifier)
   PA: Pre-Amplifier (or ingress amplifier)
   ILA: In-Line Amplifier
   MCG: Media Channel Group [G.807]
   OTS MCG: Optical Transmission Section MCG [G.807]
   OMS MCG: Optical Multiplex Section MCG [G.807]
]]></artwork>
  </figure>

  <t>
   BA (WDM-node 1) is the egress Amplifier and PA (WDM-node 2) is the
   ingress amplifier for the Optical Multiplex Section Media Channel
   Group (OMS MCG) <xref target="G.807"/> in the direction from left to
   right in <xref target="Figure-2"/>.
  </t>
  
  <t>
   According to <xref target="G.807"/>, clause 3.2.4, a Media Channel
   Group (MCG) represents "a unidirectional point-to-point
   management/control abstraction that represents a set of one or more
   media channels that are co-routed. A media channel group (MCG) is
   bounded by a pair of media ports." 
  </t>
  
  </section>

  <section title="OTS and OMS Media Channel Group" anchor="sect-2.3">
   
  <t>
   According to <xref target="G.807"/>, an
   Optical Transmission Section Media Channel Group (OTS MCG) represents
   a topological construct between two adjacent amplifiers, such as:
  </t>
  
  <figure>
  <artwork><![CDATA[
  (i)  between a WDM-TE-node's BA and the adjacent ILA,
 (ii)  between a pair of ILAs,
(iii)  between an ILA and the adjacent WDM-TE-node's PA.
]]></artwork>
  </figure>
  
  <t>
   <xref target="G.807"/> defines an OMS MCG as "The topological
   relationship between the media port on a filter or coupler where a
   set of media channels are aggregated and the media port on a filter
   or coupler where one or more media channel is added to or removed 
   from that aggregate. All of the media channels that are represented
   by the OMS MCG must be carried over the same serial concatenation of
   OTS MCGs and amplifiers."
  </t>
  
  <t>
   An OMS MCG originates at the ROADM in the source WDM-node and
   terminates at the ROADM in the destination WDM-node traversing the
   Booster Amplifier (BA) and the Pre-Amplifier (PA) in the WDM-nodes
   as well as the In-Line Amplifiers (ILAs) between the two WDM-nodes.
  </t>
  
  <t>
   An OMS MCG can be decomposed into a sequence of OTS MCGs and
   amplifiers.
  </t>
  
  <t>
   An OMS MCG traverses a sequence of optical elements between the
   ROADM function of two adjacent WDM-nodes as depicted in
   <xref target="Figure-2"/> where the OMS MCG is terminated.
   These elements can be in the transmit direction: a Booster Amplifier
   (BA), one or more fiber sections with in-line amplifiers (ILAs), and
   a Pre-Amplifier (PA). A concentrated loss element can be used to
   describe an insertion loss caused, for example, by a fiber connector
   along the sequence of optical elements.
  </t>

  <t>
   In TE-topology terms, the OMS MCG is modeled as a WDM TE-link
   interconnecting two WDM-TE-nodes. A network controller can retrieve
   the optical impairment data for all the WDM TE-link elements defined
   in the layer-0 topology YANG model.
  </t>

  <t>
   The optical impairments related to the link between remote optical
   transponders, located in a different WDM-TE-node (an IP router with
   integrated optical transponders for example), can also be modeled
   as a WDM TE-link using the same optical impairments as those defined
   for a WDM TE-link between WDM-TE-nodes (OMS MCG). In this scenario,
   the node containing the remote optical transponders can be
   considered as WDM-TE-node with termination capability only and no
   switching capabilities.
  </t>
  
  <t>
   A WDM TE-link is terminated on both ends by a link termination point
   (LTP) as defined in <xref target="RFC8795"/>.
   Links between WDM nodes in optical transport networks are typically
   bidirectional.
   Generally, they have different impairments in the two directions and
   hence they MUST be modeled as a pair of two unidirectional TE-links
   following the  <xref target="RFC8795"/> modeling approach.
   Unlike TE-links, which are unidirectional, the LTPs on either end
   of the TE-link pair forming the bidirectional link, are
   bidirectional as described in
   <xref target="I-D.ietf-teas-te-topo-and-tunnel-modeling"/> and the
   pair of unidirectional links are connected to the same bidirectional
   LTP on either end of the link pair.
  </t>

 <section title="Optical Tributary Signal (OTSi)" anchor="OTSi">
  <t>
   The OTSi is defined in ITU-T Recommendation G.959.1, section 3.2.4
   <xref target="G.959.1"/> as "Optical signal that is placed within a 
   network media channel for transport across the optical network. This
   may consist of a single modulated optical carrier or a group of
   modulated optical carriers or subcarriers."
   
   The YANG model defined in <xref target="YANG-code"/> 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.
  </t>
  
  <t>
   Path computation needs to know the existing OTSi signals for each
   OMS link in the topology to determine the optical impairment impact
   of the existing OTSi signals on the optical feasibility of a new
   OTSi signal and vice versa, i.e., the impact of the new OTSi on the
   existing OTSi signals. For determining the optical feasibility of
   the new OTSi, it is necessary to know the OTSi properties like
   carrier frequency, baud rate, and signal power for all existing
   OTSi signals on each OMS link.
  </t> 
  
  <t>  
   Additionally, it is necessary for each WDM-TE-node in the network to
   know the OTSi signals that are added to or dropped from a WDM
   TE-link (OMS MCG) link as well as the optical power of these OTSi
   signals to check whether the WDM-TE-node's optical power constraints
   are met.
  </t>

  <t>
   The impairment-aware topology YANG model for optical networks in
   <xref target="YANG-code"/> defines the optical OTSi properties needed
   for impairment-aware path computation including the spectrum
   occupied by each OTSi signal. The model also defines a pointer
   (leafref) from the OTSi to the transceiver module terminating the
   OTSi signal.   
  </t>
  
  <t>
   The OTSi signals in the YANG model are described by augmenting the
   network and each OTSi signal is uniquely identified by its
   otsi-carrier-id, which is unique within the scope of the OTSiG (see
   <xref target="OTSiG" /> below) the OTSi belongs to.
  </t>

  </section>

  <section title="Optical Tributary Signal Group (OTSiG)"
  anchor="OTSiG">
  <t>
   The OTSiG is defined in ITU-T Recommendation G.807
   <xref target="G.807"/> as a "set of optical tributary signals (OTSi)
   that supports a single digital client".
   Hence, the OTSiG is an electrical signal that is carried by one or
   more OTSi's. The relationship between the OTSiG and the OTSi's is 
   described in <xref target="G.807"/>, section 10.2.
   The YANG model in <xref target="YANG-code"/> supports both cases: the
   single OTSi case where the OTSiG contains a single OTSi (see
   <xref target="G.807"/>, Figure 10-2) and the multiple OTSi case
   where the OTSiG consists of more than one OTSi (see
   <xref target="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.
  </t>
  
  <t>
   All OTSiGs are described in the YANG model by augmenting the network
   and each OTSiG is uniquely identified by its otsi-group-id, which is
   unique within the network. Each OTSiG also contains a list of the
   OTSi signals belonging to the OTSiG.
  </t>

  <figure align="center" title="MC Example containing all 4 OTSi
  signals of an OTSiG" anchor="Figure-3">
  <artwork><![CDATA[
                               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

  X: indicates the center of the frequency slot

]]></artwork>
  </figure>

  </section>
  
  <section title="Media Channel (MC)" anchor="MC">
    
  <t>
   <xref target="G.807"/> defines a "media channel" as "A media
   association that represents both the topology (i.e., the path
   through the media) and the resource (i.e., frequency slot or
   effective frequency slot) that it occupies." In this document,
   the term "channel" is occasionally used to indicate the resource
   of an MC (i.e., frequency slot or effective frequency slot),
   without representing topology.
  </t>
  
  <t>
   In this document, an end-to-end MC is defined as a type of MC,
   which is formed by the serial concatenation of all the MCs from
   source transceiver media ports to destination transceiver media
   ports.
   This end-to-end MC is defined across all the ROADM nodes along the
   end-to-end optical path with the same nominal central frequency n
   and frequency slot of width m, which represents the effective
   frequency slot of the end-to-end MC.
   An end-to-end MC can carry a single OTSi, or multiple OTSi signals
   belonging to the same OTSiG.
  </t>

  <t>
   <xref target="G.807 Amd1"/> defines a "network media channel (NMC)"
   as "a type of media channel that is formed by the serial
   concatenation of all media channels between the media port of a
   modulator and the media port of a demodulator". The modulator and
   demodulator are integral functions of a transceiver and their media
   ports do not necessarily coincide with the media port of the 
   transceiver, which is associated with the transceiver's physical
   optical port. Due to this difference, the end-to-end MC is used in
   this document based on the definition in the previous paragraph.
  </t>

  <t>
   In <xref target="Prot"/>, the term "end-to-end MC path" is
   used to describe the topological aspect of the end-to-end MC, i.e.,
   the path through the media (see: <xref target="G.807 Amd1"/>,
   section 7.1.2). This is in line with the TE path defined in
   <xref target="RFC8795"/>, section 3.9, where the TE path is defined
   as "an ordered list of TE links and/or TE nodes on the TE topology
   graph" interconnecting a pair of tunnel termination points (TTPs).
  </t>

  <figure align="center" title="MC Example containing both OTSi signals
  of an OTSiG" anchor="Figure-4">
  <artwork><![CDATA[
                                 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

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

  X: indicates the center of the frequency slot

]]></artwork>
  </figure>
  
  <t>
   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
   <xref target="G.694.1"/>. In this model, the effective frequency
   slot as defined in <xref target="G.807"/> is equal to the frequency
   slot of this 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.
  </t>

  </section>

  <section title="Media Channel Group (MCG)" anchor="sect-2.3.4">
  <t>
   ITU-T [G.807] defines the Media Channel Group MCG as
   "A unidirectional point to point management/control abstraction that
   represents a set of one or more media channels that are co-routed."
   The YANG model in <xref target="YANG-code"/> assumes that the MCG is a
   logical grouping of one or more MCs that are used to carry all
   OTSi's belonging to the same OTSiG.
  </t>

  <t>
   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 must be split across
   2 or more MCs.
  </t>

  <figure align="center" title="MCG Example with 2 MCs"
  anchor="Figure-5">
  <artwork><![CDATA[
                                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    ...    14    17    20
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    n=0                               n=17
            K1      K2      K3                        K4

]]></artwork>
  </figure>
  
  <t>
   The MCG is relevant for path computation because all end-to-end MCs
   belonging to the same MCG MUST be co-routed, i.e., MUST follow the
   same path. Additional constraints may exist (e.g. differential
   delay).
  </t>
  
  </section>

  </section>

  <section title="Optical Amplifiers" anchor="optical_amps">
  <t>
   Optical amplifiers are used in WDM networks for amplifying the
   optical signal in the optical domain without any optical to
   electrical and electrical to optical conversion. Three major optical
   amplifier technologies are existing at the time of writing:
   
   <ul spacing="compact">
     <li>Erbium Doped Fiber Amplifiers (EDFAs)</li>
     <li>Raman Amplifiers</li>   
     <li>Semiconductor Optical Amplifiers (SOAs)</li>
   </ul>
  </t>

  <t> 
   In today's WDM networks EDFAs and Raman amplifiers are widely used.
   Raman amplifiers have become attractive due to their large spectral
   gain bandwidth, which can be quite flat, with similar or even lower
   noise figures compared to EDFAs. On the other hand, Raman amplifiers
   consume more power and are usually more expensive than EDFAs.
  </t>
  
  <t>
   Raman amplifiers are distributed amplifiers where an optical pump
   signal is injected typically in opposite direction to the optical
   signal that is amplified (backward pump, counter-propagating pump
   light). Injecting the optical pump signal in the same direction is
   also possible (forward pump, co-propagating pump light).
   For optical amplifiers, the YANG model defines Raman pump light
   attributes describing the direction (raman-direction) with respect
   to the signal that is amplified and optical frequency and power for
   the pump light source(s) contained in the raman-pump list. These   
   Raman amplifier-specific attributes are optional as they are only
   applicable to Raman amplifiers. For determining the optical
   amplifier type, i.e., to figure out whether an optical amplifier is
   a Raman amplifier, the type-variety attribute is used.
   Due to the distributed nature of the Raman amplifier it is difficult
   to clearly separate the amplifier from the fiber span into which the
   pump signal is injected. From a topology modeling perspective, the
   Raman amplifier is modeled as two OMS line elements:
  </t>
  
  <t>
    <list style="numbers"><?rfc subcompact="yes"?>
      <t>
       a passive fiber element accounting for the fiber loss only
       and not the resulting loss including the Raman gain</t>
      <t>
       an amplifier element providing all optical amplifier properties
       (gain, tilt, etc.). On the OMS-link, the amplifier element is
       placed where the pump is located and the geolocation information
       also indicates the location of the pump.
      </t>
    <?rfc subcompact="no"?>
    </list>
  </t>
  
  <t>
   Amplifiers can be classified according to their location along the
   TE-link (OMS MCG). There are three basic amplifier types: In-Line
   Amplifiers (ILAs), Pre-Amplifiers and Booster Amplifiers. ILAs are
   separate physical devices while Pre-Amplifiers and Booster
   Amplifiers are integral elements of a WDM-node. From a data modeling
   perspective, node-internal details should not be modeled and should
   be abstracted as much as possible. For Pre-Amplifiers and Booster
   Amplifiers, however, a different approach has been taken, and they
   are modeled as TE-link elements as they have the same optical
   impairments as ILAs.
  </t>

  <t>
   ILAs may have a variable optical attenuator on the ingress side
   (in-voa attribute) allowing control of the input power of the WDM
   signal (OMS MCG) entering the gain stage of the ILA. It may also
   have a variable optical attenuator on the egress side, which allows
   control of the optical power of the WDM output signal (OMS MCG) of
   the ILA. The actual-gain attribute reflects the gain of the ILA gain
   stage and does not include the attenuation of the in-voa and/or
   out-voa.
  </t>
  
  <t>
   To support the modeling of multi-band (e.g., C + L band) and
   multi-stage (cascaded) amplifiers as depicted in
   <xref target="multi-band_multi-stage_amp"/>, the OMS element that
   describes an optical amplifier may contain an unordered list of
   amplifier-elements. The position of the element is based on the
   following attributes:
  </t>
  <t>
   <ul spacing="compact">
     <li>
       lower-frequency and upper-frequency describing the frequency
       band the set of amplifier-elements are operating in.
     </li>
     <li>
       stage-order describing the sequential order of the cascaded
       amplifier-elements for the frequency band.
     </li>   
   </ul>
  </t>
  
  <t>
   The detailed representation of the amplifier stages is not always
   mandatory. Abstraction is allowed as long as the optical impairments
   of the multi-stage amplifier are modeled properly.
   For example, the detailed representation of the cascaded elements is
   needed in case the amplifier supports both amplification of the
   signal as well as the DGE function described in
   <xref target="DGE_subsection"/>.
  </t>
  
  <t>
   Multi-band amplifiers like the dual-band amplifier depicted in
   <xref target="multi-band_multi-stage_amp"/> have a band-separating
   filter at the input and a band-combining multiplexer combining all
   the bands at the output. These filter and multiplexer functions are
   not modeled explicitly and their optical impairments are subsumed
   in the optical impairments of the amplifier components.
  </t>

  <figure align="center" title="Example of a Dual-band, Multi-stage
   Amplifier with DGE Functionality" anchor="multi-band_multi-stage_amp">
  <artwork><![CDATA[

        Dual-band, Multi-stage Amplifier with DGE
    +-----------------------------------------------+
    |                                               |
    |                         C BAND                |
    |                  lower/upper-frequency        |
    |                            |                  |
    |                +-----------+----------+       |
    |                |                      |       |
    |                  OA1      DGE      OA2        |
    |                  |\      +---+     |\         |
    |                  | \     |   |     | \        |
--->o---+------------->|  +----+   +-----+  +-->+---o--->
    |   |              | /     |   |     | /    |   |
    |   |              |/      +---+     |/     |   |
    |   | stage-order = 1        2        3     |   |
    |   |                                       |   |
    |   |                                       |   |
    |   | stage-order = 1        2        3     |   |
    |   |              |\      +---+     |\     |   |
    |   |              | \     |   |     | \    |   |
    |   +------------->|  +----+   +-----+  +-->+   |
    |                  | /     |   |     | /        |
    |                  |/      +---+     |/         |
    |                  OA1      DGE      OA2        |
    |                |                       |      |
    |                +-----------+-----------+      |
    |                            |                  |
    |                  lower/upper-frequency        |
    |                         L BAND                |
    |                                               |
    +-----------------------------------------------+

]]></artwork>

  </figure>
  <t>
   ILAs are placed at locations where the optical amplification of the
   WDM signal is required on the TE-link (OMS MCG) between two
   WDM-TE-nodes.
   Geolocation information is already defined for TE nodes in
   <xref target="RFC8795"/> and is also beneficial for ILAs. Therefore,
   the same geolocation container has been added to the amplifier
   element on an OMS link containing altitude, latitude, and longitude
   as optional attributes.
  </t>
  
 </section>


  <section title="Dynamic Gain Equalizers" anchor="DGE_subsection">
  
  <t>
   A Dynamic Gain Equalizer (DGE) is optical equipment that is capable
   of adjusting the optical power on a per-channel basis in order to
   compensate the channel power variation as a result of variable gain
   or loss the DWDM signals experienced while propagating through the
   network. The channel power can be configured explicitly or in the
   form of power-spectral-density.
  </t>
  
  </section>


  <section title="Transponders" anchor="transponders">
  
  <t>
   A transponder is optical equipment that sends and receives the
   optical signal from a DWDM network. A transponder can have one or
   more transceiver modules. A transceiver represents a transmitter and
   its corresponding receiver (Tx/Rx pair) as defined in ITU-T
   Recommendation G.698.2 <xref target="G.698.2"/>. In addition to the
   transceiver, which is terminating an OTSi signal, a transponder
   typically provides additional layer 1 functionality such as, for
   example, aggregation (multiplexing) of client traffic from multiple
   input ports into a single OTSi signal, which is outside the scope of
   this document addressing optical layer 0 aspects of transponders.
  </t>
  
  <t>
   The termination of an OTSi signal by a transceiver is modeled as a
   function of the tunnel termination point (TTP) as defined in
   <xref target="RFC8795"/>.
   Because optical transport services (TE tunnels) are
   typically bidirectional, a TTP is also modeled as a bidirectional
   entity like the LTP described in <xref target="sect-2.3"/>. Moreover,
   a TTP can terminate one or several OTSiG signals (tunnels) as
   described in
   <xref target="I-D.ietf-teas-te-topo-and-tunnel-modeling"/> and each
   OTSiG consists of one or multiple OTSi signals as described in
   <xref target="OTSiG"/>.
   Therefore, a TTP can be associated with multiple transceivers.
  </t>
  
  <t>
   A transponder is typically characterized by its data/symbol rate
   and the maximum distance the signal can travel. Other transponder
   properties are for example but are not limited to: carrier frequency
   range for the optical channel, output power per channel, measured
   input power, modulation scheme, Forward Error Correction (FEC),
   etc.
  </t>

  <t>
   From a path computation perspective, the selection of the compatible
   configuration of the source and the destination transceivers is an
   important factor for optical signals to traverse through the DWDM
   network.
  </t>
  
  <!--<t>
   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
   <xref target="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.
  </t>-->
  
  <t>
   The YANG model defines three different approaches to describe the
   transceiver capabilities (called "modes") that are needed to
   determine optical signal compatibility:
  </t>
  
  <t>
    <list style="symbols"><?rfc subcompact="yes"?>
      <t>Standard Modes</t>
      <t>Organizational Modes</t>
      <t>Explicit Modes</t>
    <?rfc subcompact="no"?>
    </list>
  </t>


  <section title="Standard Modes" anchor="standard-modes">
  <t>
   A standard mode is related to an optical specification developed
   by a Standards Development Organization (SDO). Currently, the
   "Standard Modes" can only be referred to ITU-T Recommendation
   G.698.2 <xref target="G.698.2"/> since ITU-T Recommendation G.698.2
   is the only standard defining "Standard Modes" today.
   Nothing is precluding, however, consideration of other
   specifications provided by any other SDO in the Standard Mode
   context as soon as such specifications might be available. An
   application code as defined in ITU-T G.698.2
   <xref target="G.698.2"/> represents a standard ITU-T G.698.2 optical
   interface specification towards the realization of transversely
   compatible DWDM systems that it is a standard that ensures
   transceivers from different vendors can work together in a DWDM
   network.
   Two transceivers supporting the same application code and a line
   system matching the constraints, defined in ITU-T G.698.2, for that
   application code will interoperate. As the characteristics are
   encoded in the application code, the YANG model in this document
   only defines a string, which represents that application code.
  </t>
  
  <t>
   For the standard modes, some additional attributes are defined.
   The most important one is the line-coding-bitrate attribute, which
   was added because <xref target="G.698.2"/> lists 100gpbs application
   codes supporting two data formats, an OTU4 related data format and a
   Flex-O related data format. The supported data formats for an
   application code can be described by listing the supported data
   formats via the line-coding-bitrate attribute as a transceiver
   capability.
  </t>
  
  <t>
   Moreover, the transceiver properties like optical carrier frequency
   range, optical carrier tunability, and transmitter/receiver optical
   power ranges can be described as optional attributes in case they
   differ from the specification for the standard mode, i.e., as
   defined in <xref target="G.698.2"/>. A transceiver may support
   extended optical frequency ranges or optical power ranges or a finer
   optical carrier tunability. These capabilities can be described
   explicitly if needed.
  </t>
  
  </section>
  
  <section title="Organizational Modes" anchor="organizational-modes">
  <t>
   Organizations like operator groups, industry fora, or equipment
   vendors can define their own optical interface specifications and
   make use of transceiver capabilities going beyond existing
   standards. 
  </t>
  
  <t>
   An organizational mode is identified by the organization-identifier
   attribute defining the scope and an operational-mode that is
   meaningful within the scope of the organization. Hence, the two
   attributes MUST always be considered together. It is the
   responsibility of the organization to assign operational modes and
   to ensure that operational modes are unique and unambiguous within
   the scope of the organization.
  </t>
  
  <t>
   Two transceivers can be interconnected, if they have at least one
   (organization-identifier, operational-mode) pair in common and if
   the supported carrier frequency and power attributes have a matching
   range. This is a necessary condition for path computation in the
   context of organizational modes.
  </t>
  
  <t>
   An operational mode is a transceiver preset (a configuration with
   well-defined parameter values) subsuming several transceiver
   properties defined by the optical interface specification - these
   properties are not provided for an operational mode and are
   therefore not defined in the YANG model. Examples of these
   properties are:
  </t>

  <t><list style="symbols"><?rfc subcompact="yes"?>
    <t>FEC type</t>
    <t>Modulation scheme</t>
    <t>Encoding (mapping of bit patterns (code words) to symbols in the
       constellation diagram)</t>
    <t>Baud rate (symbol rate)</t>
    <t>Carrier bandwidth (typically measured in GHz)</t>
    <?rfc subcompact="no"?>
  </list></t>
  
  <t>
   The major reason for these transceiver presets is the fact that the
   attribute values typically cannot be configured independently and
   are therefore advertised as supported operational mode capabilities.
   It is the responsibility of the organization to assign operational
   modes and to ensure that operational modes are unique and not
   ambiguous within the scope of the organization.
  </t>

  <t>
   In addition to the transceiver properties subsumed by the
   operational mode, optical power and carrier frequency related
   properties are modeled separately, i.e., outside of the operational
   mode. This modeling approach allows transponders using different
   transceiver variants (e.g. optical modules) with slightly different
   power and/or frequency range properties to interoperate without
   defining separate operational modes. Different optical modules
   (pluggables) from different suppliers typically have slightly
   different input and output power ranges or may have slightly
   different carrier frequency tuning ranges.
  </t>
  
  <t>
   The received channel power and the received total power are two
   parameters that can be measured by the receiver and can be provided
   by the transceiver in order to allow a controller to determine the
   expected performance of the end-to-end service taking into account
   the optical impairments along the path.
  </t>
  
  <t>
   An organization MAY define the operational modes to include the
   optical power and carrier frequency related properties following the
   application code approach as defined in ITU-T Recommendation G.698.2
   <xref target="G.698.2"/>. In such a case, the explicit optical power
   and carrier frequency related optional attributes should be omitted
   in order to avoid redundant information in the description of the
   transceiver capabilities. If these attributes are provided in
   addition to the operational modes including these attribute values
   implicitly, the parameter values provided explicitly replace the
   implicit values and take precedence. This should, however, only be
   done in exceptional cases and should be avoided whenever possible.
   In case an implicitly given range is extended utilizing the explicit
   optional attributes, a path computation policy rule may be applied
   to select a value preferably from the range defined implicitly and
   to only select a value from the extended range if no path can be
   found for values in the implicitly defined range. Path computation
   policy is outside the scope of this topology YANG model.
  </t>
  
  <t>
   In summary, the optical power and carrier frequency related
   attributes shall either be described implicitly by the operational
   mode following the definition provided by that organization or shall
   be described explicitly when the optical power and carrier frequency
   related properties are not included in the operational mode
   definition.
  </t>
  
  </section>

  <section title="Explicit Modes" anchor="explicit-modes">
  <t>
   The explicit mode allows the encoding, explicitly, of any subset of
   parameters e.g., FEC type, Modulation type, etc., to enable a
   controller entity to check for interoperability by means outside
   of this document. It shall be noted that using the explicit encoding
   does not guarantee interoperability between two transceivers even
   in case of identical parameter definitions. The explicit mode
   shall therefore be used with care, but it could be useful when no
   common Application Codes or Organizational Modes exist or the
   constraints of common Application Codes or Organizational Modes
   cannot be met by the line system.
  </t>
  
  </section>

  <section title="Transponder Capabilities and Current Configuration"
   anchor="sect-2.5.4">
  <t>
   The YANG model described in <xref target="YANG-code"/> defines the
   optical transceiver properties. They are divided between:
  </t>

  <t><list style="letters"><?rfc subcompact="yes"?>
   <t>Optical transceiver capabilities, describing how it can be
   configured</t>
   <t>Current transceiver setting, indicating how it is currently
   configured</t>
  <?rfc subcompact="no"?>
  </list></t>
  
  <t>
   The transceiver capabilities are described by the set of modes the
   transceiver is supporting. Each mode must follow only one of the
   three mode options defined in <xref target="standard-modes"/>,
   <xref target="organizational-modes"/>, and
   <xref target="explicit-modes"/> (choice in the YANG model).
   The YANG model allows the description of the transceiver
   capabilities by mixing different modes. A transceiver may support
   some ITU-T application codes and in addition some organizational or
   explicit modes.
  </t>
  
  <t>
   A transceiver mode description comprises the following properties:
  </t>
  
  <t><list style="symbols"><?rfc subcompact="yes"?>
   <t>Supported transmitter tuning range with min/max nominal carrier
      frequency [f_tx_min, f_tx_max]</t>
   <t>Supported transceiver tunability describing the transmitter's
      frequency fine tuning granularity (the minimum distance between two
      adjacent carrier frequencies in GHz)</t>
   <t>Supported transmitter power range [p_tx-min, p_tx_max]</t>
   <t>Supported receiver channel power range [p_rx-min, p_rx_max]</t>
   <t>Supported maximum total power, rx power for all channels fed
      into the receiver</t>
  <?rfc subcompact="no"?>
  </list></t>
  
  <t>
   These optical transceiver properties are explicitly defined in the
   model for explicit and organizational modes, while they are
   implicitly defined for the application codes (see ITU-T G698.2
   <xref target="G.698.2"/>).
  </t>
  
  <t>
   The set of optical impairment limits, e.g., min optical signal to
   noise ratio (OSNR), max polarization mode dispersion (PMD),max
   chromatic dispersion (CD), max polarization dependent loss (PDL),
   quality factor (Q-factor) limit, are explicitly defined for the
   explicit modes while they are  defined implicitly for the
   application codes and organizational modes.
  </t>
  
  <t>
   The model provides information about the maximum accumulated
   impairments supported by the transceiver modes (i.e.,
   max-chromatic-dispersion, max-polarization-dependent-loss,
   max-polarization-mode-dispersion, max-diff-group-delay). For CD,
   PMD and PDL impairments, the model also supports the option to
   provide more detailed OSNR penalties as a function of the
   accumulated impairments (i.e., cd-penalty, pmd-penalty and
   pdl-penalty). In this case the attributes providing the maximum
   accumulated impairments MAY be omitted and the maximum accumulated
   impairment MUST be listed in the penalty list. In case both are
   present, there MUST NOT be any value in the penalty list above
   the maximum accumulated impairment.
  </t>
  
  <t>
   It is possible that the set of parameter values defined for an
   explicit mode may also be represented in form of an organizational
   mode or one or more application codes. The "compatible-modes"
   container may provide two different lists with pointers to
   application codes and organizational modes, respectively.
  </t>
  
  <t>
   The current transponder configuration describes the properties of
   the OTSi transmitted or received by the transceiver attached to a
   specific transponder port.
  </t>
  
  <t>
   Each OTSi has the following three pointer attributes modeled as
   leafrefs:
  </t>
  
  <t><list style="symbols"><?rfc subcompact="yes"?>
  <t>Pointer to the transponder instance containing the transceiver
     terminating the OTSi</t>
  <t>Pointer to the transceiver instance terminating the OTSi</t>
  <t>Pointer to the currently configured transceiver mode</t>
  <?rfc subcompact="no"?>
  </list></t>
  
  <t>
   Additionally, the OTSi is described by the following frequency and
   optical power related attributes:
  </t>
  
  <t><list style="symbols"><?rfc subcompact="yes"?>
  <t>current carrier-frequency</t>
  <t>currently transmitted channel power</t>
  <t>currently received channel power</t>
  <t>currently received total power</t>
  <?rfc subcompact="no"?>
  </list></t>

  </section>
  
  </section>
  
  
  <section title="3R Regenerators" anchor="sect-2.6">
  
  <t>
   Optical transponders are usually used to terminate a layer 0 tunnel
   (layer 0 service) in the WDM layer. If, however, no optical path can
   be found from the source transponder to the destination transponder
   that is optically feasible due to the optical impairments, one or
   more 3R regenerators are needed for regenerating the optical signal
   in intermediate nodes. The term "3R" regenerator means:
   reamplification, reshaping, retiming. As described in
   <xref target="G.807"/>, Appendix IV, a 3R regenerator terminates the
   OTSi and generates a new OTSi. Depending on the 3R regenerator
   capabilities, it can provide functions such as carrier frequency
   translation (carrier-frequency), changes in the modulation scheme
   (modulation-type) and FEC (FEC-type) while passing through the
   digital signal except the FEC (the FEC is processed and errors are
   corrected).
  </t>

  <t>
   The 3R regeneration compound function is illustrated in section 10.1
   of <xref target="G.798.1"/>, and sections 10.3 and 10.4 provide
   examples of a ROADM architecture and a photonic cross-connect
   architecture including 3R regenerators.
   Based on the functionality provided, 3R regenerators are considered
   as topological layer 0 entities because they are needed for layer 0
   path computation in case the optical impairments make it impossible
   to find an optically feasible end-to-end path from the source
   transponder to the destination transponder without 3R regeneration.
   When an end-to-end path includes one or more 3R regenerators, the
   corresponding layer 0 tunnel is subdivided into 2 or more segments
   between the source transponder and the destination transponder
   terminating the layer 0 tunnel.
  </t>
  
  <t>
   3R regenerators are usually realized by a pair of optical
   transponders, which are described in <xref target="transponders"/>.
   If a pair of optical transponders is used to perform a 3R
   regeneratator function, two different configurations are possible
   involving the pair of optical transceivers of the two optical
   transponders:
  </t>

  <t><list style="symbols">
   <t>
    The two transponders can be operated in a back-to-back
    configuration where  the transceiver of each optical transponder
    receives and transmits the  optical signal from/to the same segment
    of the end-to-end tunnel. This means that each transceiver is
    operated in a bi-directional mode.
   </t>
  </list></t> 
  
  <figure align="center" title="Back-to-back 3R Regenerator Example"
  anchor="Figure-x">
   <artwork><![CDATA[

          Optical Transponder 1        Optical Transponder 2
        +-----------------------+    +-----------------------+
        | Transceiver           |    |           Transceiver |
        |-------------+   +-----|    |-----+   +-------------|
    --->| Receiver    |---|Sig. |--->|Sig. |---| Transmitter |--->
        |-------------+   |     |    |     |   +-------------|
    <---| Transmitter |---|Proc.|<---|Proc.|---|    Receiver |<---
        |-------------+   +-----|    |-----+   +-------------|
        |                       |    |                       |
        +-----------------------+    +-----------------------+

        Sig. Proc. = Signal Processing

]]></artwork>
  </figure>
  
  <t><list style="symbols">
   <t>
    The two transponders can be operated in a configuration where each
    transponder performs the 3R regeneration function in one direction,
    one in forward direction (from source to destination) and the other
    in the reverse direction. In this configuration, the transceiver of
    each optical transponder receives the signal from one segment and
    transmits the regenerated optical signal into the adjacent segment.
    This configuration is also called cross-regeneration and each
    transceiver is operated in a uni-directional mode.
   </t>
  </list></t>
   
   <t><list style="empty">
   <t>
    Implementations MAY support the change of the carrier frequency
    where the receiver may operate at a different optical frequency
    than the transmitter. The transceiver mode is a property of the
    transceiver and is applied to the transmitter and the receiver.
    Therefore, the transceiver mode is the same for the two segments
    on the two sides of the 3R regeneratator realized by two
    transceivers operated in the uni-directional mode.
   </t>
  </list></t>
    
  <figure align="center" title="Cross-3R Regenerator Example"
  anchor="Figure-y">
   <artwork><![CDATA[

                   Optical Transponder 1
                   3R in forward direction
               +-----------------------------+
               | Transceiver                 |
               |-------------+   +---------+ |
       ------->| Receiver    |---|Sig. --+ | |
               |-------------+   |       | | |
           +---| Transmitter |---|Proc.<-+ | |
           |   |-------------+   +---------+ |
           |   |                             |
           |   +-----------------------------+
           |
           +----------------------------------------->
           
       <-----------------------------------------+
                                                 |
               +-----------------------------+   |
               |                 Transceiver |   |
               | +---------+   +-------------|   |
               | | +->Sig. |---| Transmitter |---+
               | | |       |   +-------------|
               | | +--Proc.|---| Receiver    |<-------
               | +---------+   +-------------|
               |                             |
               +-----------------------------+
                   Optical Transponder 2
                   3R in backward direction
       
               Sig. Proc. = Signal Processing

]]></artwork>
  </figure>
  
  <t>
   Since 3R regenerators are composed of an optical transponder pair,
   the capability that an optical transponder can be used as a 3R
   regenerator is added to the transponder capabilities. Hence, no
   additional entity is required for describing 3R regenerators in the
   TE-topology YANG model. The optical transponder capabilities
   regarding the 3R regenerator function are described by the following
   two YANG model attributes:
  </t>

  <t><list style="symbols"><?rfc subcompact="yes"?>
  <t>supported-termination-type</t>
  <t>supported-3r-mode</t>
  <?rfc subcompact="no"?>
  </list></t>

  <t>
   The supported-termination-type attribute describes whether the
   optical transponder can be used as tunnel terminating transponder
   only, as 3R regenerator only, or whether it can support both
   functions. The supported-3r-mode attribute describes the
   configuration of the transponder pair forming the 3R regenerator.
  </t>

  </section>

  <section title="Wavelength Selective Switch (WSS)/Filter" anchor="sect-2.7">
  <t>
   A WSS is a device that dynamically routes individual wavelengths
   from a common input fiber to any of several output ports without
   converting them into electrical signals. The WSS/Filter is internal
   to a ROADM device. This document does not model the internals of a
   ROADM's WSS.
  </t>

  </section>

  <section title="Optical Fiber" anchor="optical_fiber">
  <t>
   There are various optical fiber types defined by ITU-T. For optical
   feasibility calculation, several fiber-level parameters need to be
   taken into account, such as, fiber-type, length, loss coefficient,
   PMD, connectors (in/out).
  </t>
  
  <t>
   The loss of a fiber span can be described in two ways:
  </t>

  <t>
    <ol type="i">
      <li>
        As calculated loss using the provided loss coefficient
        (loss-coef) and length of the fiber.
      </li>
      <li>
        As measured loss provided by the total-loss attribute.
      </li>
    </ol>
  </t>

  <t>
   The total-loss SHOULD be provided when it can be measured with a
   power measurement facility at the output of the upstream node (input
   of the fiber span) and a power measurement facility at the input of
   the downstream node (output of the fiber span).
   This measured loss typically differs from the calculated loss
   because it includes all loss contributions including possible
   accumulated loss due to imperfect fiber splices and connector
   losses.
   It can also change over time due to changing fiber conditions, e.g.,
   in case of a fiber cut.
   In case the total-loss cannot be measured (no power measurement
   facilities in place), the total-loss defined as optional leaf in
   the YANG model SHALL be omitted.
  </t>
  
  <t>
   N.B.: In case of Raman amplifiers, the Raman gain SHALL NOT be
   included in the measured loss to properly reflect only the loss of
   the fiber span in the total-loss attribute.
  </t>

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

  </section>

  <section title="WDM-node Architectures" anchor="sect-2.9">
  <t>
   The WDM-node architectures in today's dense wavelength division
   multiplexing (DWDM) networks can be categorized as follows:
  </t>

  <t><list style="symbols"><!--<?rfc subcompact="yes"?>-->
   <t>
    Integrated WDM-node architecture with local optical transponders
   </t>

   <t>
    Integrated WDM-node architecture with local optical transponders
    and single channel add/drop ports for remote optical transponders
   </t>

   <t>
    Disaggregated WDM-node architecture where the WDM-TE-node is
    composed of degree, add/drop, and optical transponder subsystems
    handled as separate WDM-nodes
   </t>

  <!--<?rfc subcompact="no"?>-->
  </list></t>

  <t>
   The TE topology YANG model augmentations for DWDM networks including
   optical impairments  defined in <xref target="YANG-code"/>
   intends to cover all the 3 categories of WDM-node architectures
   listed above. In the case of a disaggregated WDM-node architecture,
   it is assumed that the optical domain controller already performs
   some form of abstraction and presents the WDM-TE-node representing
   the disaggregated WDM-nodes in the same way as an integrated
   WDM-TE-node with local optical transponders if the optical
   transponder subsystems and the add/drop subsystems are co-located
   (short fiber links are not imposing any significant optical
   impairments).
  </t>

  <t>
   The different WDM-node architectures are briefly described and
   illustrated in the following subsections.
  </t>


  <section title="Integrated WDM-node Architecture with Local Optical
   Transponders" anchor="sect-2.9.1">
  <t>
   <xref target="Figure-2"/> and <xref target="Figure-6"/> below show
   the typical architecture of an integrated WDM-node, which contains
   the optical transponders as an integral part of the WDM-node. Such
   an integrated WDM-node provides DWDM interfaces as external
   interfaces for interconnecting the device with its neighboring
   WDM-node (see OMS MCG in <xref target="Figure-2"/>). The number of
   these interfaces denote also the degree of the WDM-node. A degree
   3 WDM-node for example has 3 DWDM links that interconnect the
   WDM-node with 3 neighboring WDM-nodes. Additionally, the WDM-node
   provides client interfaces for interconnecting the WDM-node with
   client devices such as IP routers or Ethernet switches. These client
   interfaces are the client interfaces of the integrated optical
   transponders.
  </t>

  <figure align="center" title="Integrated WDM-node Architecture
   with Local Transponders" anchor="Figure-6"><artwork><![CDATA[
            . . . . . . . . . . . . . . . . . .
            .           WDM-TE-node           .
      +-----.-------------------------------- .-----+
      |     .             WDM-node            .     |
      |     .   /|  +-----------------+  |\   .     |
 Line |     .  / |--|                 |--| \  .     | Line
 WEST |  /| . |  |--|                 |--|  | . |\  | EAST
------+-/ |-.-|  |--|  photonic       |--|  |-.-| \-+-----
------+-\ |-.-|  |--|  cross-connect  |--|  |-.-| /-+-----
      |  \| . |  |--|                 |--|  | . |/  |
      |     .  \ |--|                 |--| /  .     |
      |     .   \|  +-----------------+  |/   .     |
      |     .                                 .     |
      |     .     +---+ +---+ +---+ +---+     .     |
      |     .     | O | | O | | O | | O |     .     |
      |     .     | T | | T | | T | | T |     .     |
      |     .     +---+ +---+ +---+ +---+     .     |
      |     .      | |   | |   | |   | |      .     |
      +-----.------+-+---+-+---+-+---+-+------.-----+
            . . . .|.| . |.| . |.| . |.|. . . .
                   | |   | |   | |   | |
                     Client Interfaces
]]></artwork>
  </figure>
  
  </section>

  <section title="Integrated WDM-node with Integrated Optical
   Transponders and Single Channel Add/Drop Interfaces for Remote
   Optical Transponders" anchor="sect-2.9.2">
  
  <t>
   <xref target="Figure-7"/> below shows the extreme case where all
   optical transponders are not integral parts of the WDM-node but are
   separate devices that are connected to the add/drop ports of the
   WDM-node. If the optical transponders and the WDM-node are
   co-located and if short single channel fiber links are used to
   interconnect the optical transponders with an add/drop port of the
   WDM-node, the optical domain controller MAY present these optical
   transponders in the same way as local  optical transponders. If,
   however, the optical impairments of the single channel fiber link
   between the optical transponder and the add/drop port of the
   WDM-node 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.
  </t>
  
  <t>
   <xref target="Remote OT configurations"/> provides a modeling
   example for a configuration where the optical transponders and the
   ROADM are different WDM-TE-nodes (remote OT configuration).
  </t>

  <figure align="center" title="Integrated WDM-node Architecture with
   Remote Transponders" anchor="Figure-7"><artwork><![CDATA[
            . . . . . . . . . . . . . . . . . .
            .           WDM-TE-node           .
      +-----.-------------------------------- .-----+
      |     .            WDM-node             .     |
      |     .   /|  +-----------------+  |\   .     |
 Line |     .  / |--|                 |--| \  .     | Line
 WEST |  /| . |  |--|                 |--|  | . |\  | EAST
------+-/ |-.-|  |--|  photonic       |--|  |-.-| \-+-----
------+-\ |-.-|  |--|  cross-connect  |--|  |-.-| /-+-----
      |  \| . |  |--|                 |--|  | . |/  |
      |     .  \ |--|                 |--| /  .     |
      |     .   \|  +-----------------+  |/   .     |
      +-----.---------|----|---|----|---------.-----+
   OT       .       +-+   ++   ++   +-+       .
   line I/F .       |     |     |     |       .
            .     +---+ +---+ +---+ +---+     .
            .     | O | | O | | O | | O |     .
            .     | T | | T | | T | | T |     .
            .     +---+ +---+ +---+ +---+     .
            . . . .|.| . |.| . |.| . |.|. . . .
                   | |   | |   | |   | |     
                     Client Interfaces
]]></artwork>
  </figure>
  </section>

  <section title="Disaggregated WDM-TE-node Subdivided into Degree,
   Add/Drop, and Optical Transponder Subsystems" anchor="sect-2.9.3">
  
  <t>
   Some DWDM network operators are demanding WDM subsystems from their
   vendors. An example is the OpenROADM project
   <xref target="OpenROADM"/> where multiple operators and vendors are
   developing related YANG models. The subsystems of a disaggregated
   WDM-TE-node are:
  </t>
  
    <t>
    <list style="symbols"><?rfc subcompact="yes"?>
      <t>Single degree subsystems</t>
      <t>Add/drop subsystems</t>
      <t>Optical transponder subsystems</t>
    <?rfc subcompact="no"?>
    </list>
  </t>
  
  <t>
   These subsystems are 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 WDM-TE-node. This
   disaggregated WDM-TE-node architecture is depicted in
   <xref target="Figure-8"/> below.
  </t>

  <t>
   As this document defines TE topology YANG model augmentations
   for the TE topology YANG model <xref target="RFC8795"/> 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 WDM-TE-node and presents the
   disaggregated WDM-TE-node in the same way as an integrated WDM-node
   hiding all the interconnects that are not relevant from an external
   TE topology view.
  </t>

  <figure align="center" title="Disaggregated WDM-TE-node Architecture
   with Remote Transponders" anchor="Figure-8"><artwork><![CDATA[
           . . . . . . . . . . . . . . . . .  .
           .            WDM-TE-node           .
     +-----.----------+            +----------.-----+
     | 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 I/F   .   +---+ +---+ +---+ +---+   .
             .   | O | | O | | O | | O |   .
             .   | T | | T | | T | | T |   .
             .   +---+ +---+ +---+ +---+   .
             . . .|.| . |.| . |.| . |.|. . .
                  | |   | |   | |   | |
                    Client Interfaces
]]></artwork>
  </figure>
 
  </section>

  <section title="Optical Impairments Imposed by WDM-TE-nodes"
   anchor="sect-2.9.4">
    
  <t>
   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:
  </t>
  
  <t><list style="symbols"><?rfc subcompact="yes"?>
   <t>Chromatic dispersion (CD)</t>
   <t>Polarization mode dispersion (PMD)</t>
   <t>Polarization dependent loss (PDL)</t>
   <t>Optical amplifier noise due to amplified spontaneous emission
   (ASE)</t>
   <t>In-band cross-talk</t>
   <t>Filtering effects (out of scope of this document)</t>
  <?rfc subcompact="no"?>
  </list></t>
  
  <t>
   A ROADM node contains a wavelength selective photonic switching
   function (WSS)that can switch media channels (MCs) described in
   <xref target="sect-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, add/drop ports are used for a single optical channel
   signal (single OTSi), but principally this could also be a group of
   OTSi signals (OTSiG). The optical impairments associated with these
   MCs are different and the paths of the MCs inside the ROADM node can
   be categorized as follows:
  </t>
  
  <t><list style="symbols"><!-- <?rfc subcompact="yes"?> -->
  <t>Express path: MC path between two line ports of the ROADM
    (unidirectional)</t>
  <t>Add Path: MC path from an Add port to a line port of the ROADM</t>
  <t>Drop path: MC path from a line port to a Drop port of the ROADM
  </t>
  <!-- <?rfc subcompact="no"?> -->
  </list></t>
  
  <t>
   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
   MUST be modeled separately.
  </t>
 
  <t>
   The optical impairments associated with each of the three types of
   ROADM-node-internal paths listed above are modeled as optical
   impairment parameter sets. These parameter sets are modeled as an
   augmentation of the te-node-attributes defined in
   <xref target ="RFC8795"/>.
   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 (see
   also <xref target="G.680"/>), which are included in the optical
   impairment parameter sets
   (see tree view in <xref target="Tree View"/>).
  </t>
  
  <t>
   <xref target ="RFC8795"/> 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).
  </t>

  </section>
  
  </section>


  <section title="Optical Protection Architectures" anchor="Prot">
  
  <t>
   The YANG model defined in this document supports the following
   optical protection architectures:
  </t>
 
  <t>
    <ul>
      <li>Individual OTSi protection</li>
      <li>OMS MCG protection = TE-link protection between adjacent
          WDM-TE-nodes</li>
    </ul>
  </t>

 
  <section title="Individual OTSi Protection" anchor="OTSi_prot">
  
  <t>
   Individual OTSi protection is a protection architecture where an
   individual OTSi signal is protected as described in Appendix III of
   ITU-T Recommendation G.873.1 <xref target ="G.873.1"/>. 
   This protection architecture requires specific photonic protection
   functions in the optical domain that are typically provided by
   specific protection hardware. These photonic protection functions
   are a photonic splitter function splitting the OTSi signal in the
   transmit direction and a photonic selector function selecting the
   OTSi signal in the receive direction from one of the two protection
   legs between the two protection functions terminating the individual
   OTSi protection.
   This individual OTSi protection scheme can be considered as a
   photonic 1+1 protection scheme (1+1 sub-network connection
   protection (SNCP) in ITU-T terminology).
  </t>
  
  <t>
   To achieve short protection switching times, it is necessary that
   the OTSi signals of the two legs are identical in terms of
   wavelength, modulation format, FEC, etc., which means no receiver
   configuration changes when a protection switch at the selector
   occurs selecting the other leg. This is important when 3R
   regenerators are needed between the two end-points terminating the
   protected segment, which typically is end-to-end.
  </t>
  
  <t>
   In case of individual OTSi protection without 3R regenerators,
   two end-to-end MC paths are associated with the OTSi signal. In the
   YANG model, this is modeled as leaf list of the OTSi providing the
   e2e-mc-path-id for the two end-to-end MC paths associated with the
   individually 1+1 protected OTSi. This scenario is depicted in
   <xref target="OTSi_prot_no_3R_fwd"/> (forward direction) and
   <xref target="OTSi_prot_no_3R_rev"/> (reverse direction) below.
  </t>
  
<!--<t>
   Note: Where several WDM nodes are involved, the links between WDM
   nodes in the figures below illustrating  the various protection
   architectures are drawn as bi-directional links (arrows on both ends
   of the dashed line) for the sake of simplification.
   Physically, all links in WDM networks are uni-directional and there
   is a fiber link in forward and a fiber link in reverse direction.
   WDM services are typically bi-directional and the same media channel
   is used on the links in both directions.
   The splitter function of the combined splitter/selector is always
   located on the upstream side whereas the selector function is always
   located on the downstream side in the two directions.
   
  </t>-->

  <figure align="center" title="Individual OTSi Protection without 3R
   regenerators (forward direction)" anchor="OTSi_prot_no_3R_fwd">
    <artwork><![CDATA[

                         end-to-end MC path1
      |------------------------------------------------------->|

 +-----------+                                          +-----------+
 | WDM Node1 |           +-----+      +-----+           | WDM Node2 |
 |      +----|           | WDM |      | WDM |           |----+      |
 |      |   -o---------->o-----o----->o-----o---------->o-   |      |
 |  OT  |  / |           |Node3|      |Node4|           | \  |  OT  |
 | +--+ | /  |           +-----+      +-----+           |  \ | +--+ |
-o-o  o-o-   |                                          |   -o-o  o-o-
 | +--+ | \  |     +-----+     +------+     +-----+     |  / | +--+ |
 |      |  \ |     | WDM |     | WDM  |     | WDM |     | /  |      |
 |      |   -o---->o-----o---->o------o---->o-----o---->o-   |      | 
 |      +----|     |Node5|     | Node6|     |Node7|     |----+      |
 |   Splitter|     +-----+     +------+     +-----+     |Selector   |
 +-----------+                                          +-----------+

      |------------------------------------------------------->|
                         end-to-end MC path2

]]> </artwork>
  </figure>

   <figure align="center" title="Individual OTSi Protection without 3R
   regenerators (reverse direction)" anchor="OTSi_prot_no_3R_rev">
    <artwork><![CDATA[

                         end-to-end MC path1'
      |<-------------------------------------------------------|

 +-----------+                                          +-----------+
 | WDM Node1 |           +-----+      +-----+           | WDM Node2 |
 |      +----|           | WDM |      | WDM |           |----+      |
 |      |   -o<----------o-----o<-----o-----o<----------o-   |      |
 |  OT  |  / |           |Node3|      |Node4|           | \  |  OT  |
 | +--+ | /  |           +-----+      +-----+           |  \ | +--+ |
-o-o  o-o-   |                                          |   -o-o  o-o-
 | +--+ | \  |     +-----+     +------+     +-----+     |  / | +--+ |
 |      |  \ |     | WDM |     | WDM  |     | WDM |     | /  |      |
 |      |   -o<----o-----o<----o------o<----o-----o<----o-   |      | 
 |      +----|     |Node5|     | Node6|     |Node7|     |----+      |
 |   Selector|     +-----+     +------+     +-----+     |Splitter   |
 +-----------+                                          +-----------+

      |<-------------------------------------------------------|
                         end-to-end MC path2'

]]> </artwork>
  </figure>


 <!--
  <t>
   For each OMS MCG (TE-link) along the two end-to-end MC paths, the
   e2e-mc-path-id is provided for the individually protected OTSi
   signal. Based on this information, it is possible to construct the
   two end-to-end MC paths between the optical transponders terminating
   the individually 1+1 protected OTSi.
  </t>
  
  <t>
   In the scenario depicted in <xref target="OTSi_prot_no_3R"/>, the
   e2e-mc-path-id of end-to-end MC path1 is provided for the  TE-links
   between WDM Node1 and WDM Node3, WDM Node3 and WDM Node4 as well as
   WDM Node4 and WDM Node2 while the e2e-mc-path-id of end-to-end MC
   path2 is provided for the TE-links between WDM Node1 and WDM Node5,
   WDM Node5 and WDM Node6, WDM Node6 and WDM Node7 as well as WDM
   Node7 and WDM Node2.
  </t>
-->

  <t>
   For each OMS MCG (TE-link) along the two end-to-end MC paths in the
   forward direction (end-to-end MC path1 and end-to-end MC path2) as
   well as the two end-to-end MC paths in the reverse direction
   (end-to-end MC path1' and end-to-end MC path2'), the e2e-mc-path-id
   is provided for the individually protected OTSi signal. Based on
   this information, it is possible to construct the end-to-end MC
   paths between the optical transponders terminating the individually
   1+1 protected OTSi.
  </t>
  
  <t>
   In the scenario depicted in <xref target="OTSi_prot_no_3R_fwd"/> and
   <xref target="OTSi_prot_no_3R_rev"/>, the e2e-mc-path-id of
   end-to-end MC path1 and end-to-end MC path1' is provided for the
   TE-links between WDM Node1 and WDM Node3, WDM Node3 and WDM Node4 as
   well as WDM Node4 and WDM Node2 while the e2e-mc-path-id of
   end-to-end MC path2 and end-to-end MC path2' is provided for the
   TE-links between WDM Node1 and WDM Node5, WDM Node5 and WDM Node6,
   WDM Node6 and WDM Node7 as well as WDM Node7 and WDM Node2.
  </t>

  <t>
   If a 3R regenerator is crossed on one of the two legs or even on
   both legs, the end-to-end MCs are terminated on both sides of the
   3R regenerator. The configured-termination-type attribute set to
   "3r-regeneration" SHALL be used to indicate that the transceivers
   are forming a 3R regenerator instead of terminating the layer 0
   tunnel (layer 0 service).
   At WDM-nodes containing a 3R regenerator, the end-2-end MCs are
   stitched together forming the end-to-end path for the layer 0 tunnel
   (layer 0 service). This is reflected in the leaf list of the OTSi,
   which now lists all e2e-mc-path-ids of the end-to-end MC paths on
   the two legs of the individually 1+1 protected OTSi signal.
  </t>
  
  <t>
   In the scenario depicted in <xref target="OTSi_prot_with_3R_fwd"/>
   and <xref target="OTSi_prot_with_3R_rev"/> below where a 3R
   regenerator is crossed in WDM Node6 on the lower leg, the
   e2e-mc-path-id leaf list has 3 entries (assumption: the same
   e2e-mc-path-id can be used for the path in the forward and reverse
   directions):
   
   <ol>
     <li>
       The e2e-mc-path-id identifying end-to-end MC path1 from WDM
       Node1 via WDM Node3 and WDM Node4 to WDM Node2 as well as
       end-to-end MC path1' in the reverse direction (upper leg)
     </li>
     <li>
       The e2e-mc-path-id identifying end-to-end MC path2 from WDM
       Node1 via WDM Node5 to WDM Node6 containing the 3R regenerator
       as well as end-to-end MC path2' in the reverse direction (left
       hand segment of the lower leg)
     </li>
     <li>
       The e2e-mc-path-id identifying end-to-end MC path3 from WDM
       Node6 containing the 3R regenerator via WDM Node7 to WDM
       Node2 as well as end-to-end MC path3' in the reverse direction
       (right hand segment of the lower leg)
     </li>
   </ol>

   Based on this modeling approach it is possible to identify the
   end-2-end MCs stitched together at 3R regenerators on each of the
   two legs of the individually protected 1+1 OTSi signal. Similarly,
   for the case without 3R regenerators it is also possible to
   associate two end-to-end paths in the forward and reverse directions
   for the two legs between the optical transponders terminating the
   individually 1+1 protected OTSi in WDM Node1 and WDM Node2,
   respectively:
   
   <ol spacing="compact">
     <li>end-to-end MC path1 and end-to-end MC path1' (upper leg)</li>
     <li>
       end-to-end MC path2 and end-to-end MC path2' stitched together
       with end-to-end MC path3 and end-to-end MC path3' (lower leg)
     </li>
   </ol>
   
  </t>

  <figure align="center" title="Individual OTSi Protection with a 3R
   regenerator (forward direction)" anchor="OTSi_prot_with_3R_fwd">
    <artwork><![CDATA[

                         end-to-end MC path1
      |------------------------------------------------------->|

 +-----------+                                          +-----------+
 | WDM Node1 |           +-----+      +-----+           | WDM Node2 |
 |      +----|           | WDM |      | WDM |           |----+      |
 |      |   -o---------->o-----o----->o-----o---------->o-   |      |
 |  OT  |  / |           |Node3|      |Node4|           | \  |  OT  |
 | +--+ | /  |           +-----+      +-----+           |  \ | +--+ |
-o-o  o-o-   |                                          |   -o-o  o-o-
 | +--+ | \  |     +-----+     +------+     +-----+     |  / | +--+ |
 |      |  \ |     |     |     | +--+ |     |     |     | /  |      |
 |      |   -o---->o-----o---->o-o  o-o---->o-----o---->o-   |      | 
 |      +----|     | WDM |     | +--+ |     | WDM |     |----+      |
 |   Splitter|     |Node5|     |  3R  |     |Node7|     |Selector   |
 +-----------+     +-----+     +------+     +-----+     +-----------+
                               WDM Node6
                               with 3R
                               Regenerator

      |------------------------->|  |------------------------->|
          end-to-end MC path2           end-to-end MC path3

]]> </artwork>
  </figure>
  
  <figure align="center" title="Individual OTSi Protection with a 3R
   regenerator (reverse direction)" anchor="OTSi_prot_with_3R_rev">
    <artwork><![CDATA[

                         end-to-end MC path1'
      |<-------------------------------------------------------|

 +-----------+                                          +-----------+
 | WDM Node1 |           +-----+      +-----+           | WDM Node2 |
 |      +----|           | WDM |      | WDM |           |----+      |
 |      |   -o<----------o-----o<-----o-----o<----------o-   |      |
 |  OT  |  / |           |Node3|      |Node4|           | \  |  OT  |
 | +--+ | /  |           +-----+      +-----+           |  \ | +--+ |
-o-o  o-o-   |                                          |   -o-o  o-o-
 | +--+ | \  |     +-----+     +------+     +-----+     |  / | +--+ |
 |      |  \ |     |     |     | +--+ |     |     |     | /  |      |
 |      |   -o<----o-----o<----o-o  o-o<----o-----o<----o-   |      | 
 |      +----|     | WDM |     | +--+ |     | WDM |     |----+      |
 |   Selector|     |Node5|     |  3R  |     |Node7|     |Splitter   |
 +-----------+     +-----+     +------+     +-----+     +-----------+
                               WDM Node6
                               with 3R
                               Regenerator

      |<-------------------------|  |<-------------------------|
          end-to-end MC path2'          end-to-end MC path3'

]]> </artwork>
  </figure>

  <t>Individual OTSi protection use cases:</t>
    <ol type="(%i)">
      <li>OT and OTSi protection function are an integral part of the
      WDM-TE-node</li>
      <li>OT and OTSi protection/ROADM functions are in two adjacent
      WDM-TE-nodes (remote OT)</li>
      <li>OT and OTSi protection function are both in the adjacent
      WDM-TE-node (protected remote OT)</li>
    </ol>
  
  <t>
   The different use cases are described in the following sub-sections
   and examples are provided as to how these uses cases can be modeled
   properly using the impairment-aware TE-topology YANG data model for
   optical networks.
  </t>
  
  <section anchor="Protection UC (i)">
    <name>OT and OTSi protection function are an integral part of the
    WDM-TE-node</name>
  
  <t>
   This use case is based on the architecture illustrated in
   <xref target="Figure-6"/> and the following entities are all
   integral parts of the WDM-TE-node:
   
    <ul spacing="compact">
      <li>Local optical transponder</li>
      <li>Splitter/selector protection function</li>
      <li>ROADM function</li>
    </ul>
    
   <xref target="Figure-11"/> illustrates such a WDM-TE-node
   configuration in the transmit/forward direction where the protection
   function is an optical splitter and <xref target="Figure-12"/>
   illustrates the same WDM-TE-node configuration in the receive/reverse
   direction where the protection function is an optical selector
   selecting one of the two incoming OTSi signals and switching to the
   other incoming OTSi signal when the optical power of the selected
   OTSi signal drops below a pre-defined threshold.
  </t>
  
  <t>
   The TE-topology YANG model has been augmented to describe this
   protection architecture. The already existing optional
   protection-type leaf of the TTP associated with the optical
   transceiver is used to indicate whether the TTP is protected, i.e.,
   whether it is connected to a protection function or whether it is
   unprotected, i.e., whether it is directly connected to an add-drop
   port of the ROADM function in the WDM-TE-node.
  </t>
  
  <t>
   For unprotected TTPs associated with an optical transceiver, the
   local-link-connectivity list (LLCL) as defined in
   <xref target="RFC8795"/> describes the potential connectivity between
   the TTP and the LTPs of the WDM-TE-node that are the local
   end-points of the TE-links (OMS MCGs) interconnecting the
   WDM-TE-node with its neighbors, also often called degrees of the
   WDM-TE-node as opposed to its add-drop ports.
  </t>
  
  <t>
   For protected TTPs, the local-link-connectivity list has been
   augmented such that the potential connectivity can now be described
   between the TTP and multiple LTPs including the related optical
   impairments. Without this new capability, it was only possible to
   describe the potential connectivity between a TTP and a single LTP
   (unprotected case). If the optical impairments are the same for all
   local-link-connectivity list entries for a particular TTP, which
   is usually the case, the optical impairments should be omitted for
   the additional LTPs leading to a more compact topology description.
   If the optical impairments are different, however, they can be
   described for each additional LTP entry separately.
  </t>
  
  <t>
   A local-link-connectivity list example for a protected TTP in JSON
   format is provided in <xref target="JSON Examples"/>.
  </t>
    
  <figure align="center" anchor="Figure-11">
    <name>
       OT and OTSi protection function are an integral part of the
       WDM-TE-node (transmit direction)
    </name>
    <artwork><![CDATA[
                            WDM-TE-node
   +---------------------------------------------------------+
   |                                       ROADM             |
   |      Local OT        Splitter    +--------------+       |
   |   +------------+    +--------+   |              | Line  |
   |   |         TTP|    |     ---o-->o------\       | LTP 1 |
   |   |       +----|    |    /   |   |       \------o-------o->
 --o-->|       | Tx o--->o---o    |   |              |       |
   |   |       +----|    |    \   |   |              |       |
 <-o---|       | Rx o    |     ---o-->o---\          | Line  |
   |   |       +----|    +--------+   |    \         | LTP 2 |
   |   |            |                 |     \        o-------o->
   |   +------------+        internal |      \       |       |
   |                         AD ports o       \      |       |
   |                                  |        \     | Line  |
   |                                  |         \    | LTP 3 |
   |                                  |          \---o-------o->
   |                                  o              |       |
   |                                  |              |       |
   |                                  +--------------+       |
   +---------------------------------------------------------+
   
]]> </artwork>
  </figure>

  <figure align="center" title="OT and OTSI protection function are an
    integral part of the WDM-TE-node (receive direction)"
    anchor="Figure-12">
    <artwork><![CDATA[
                            WDM-TE-node
   +---------------------------------------------------------+
   |      Local OT                                           |
   |   +------------+                      ROADM             |
   |   |            |     Selector    +--------------+       |
   |   |       +----|    +--------+   |              | Line  |
 --o-->|       | Tx o    |     ---o<--o------\       | LPT 1 |
   |   |       +----|    |    /   |   |       \------o-------o<-
 <-o---|       | Rx o<---o---o    |   |              |       |
   |   |       +----|    |    \   |   |              |       |
   |   |         TTP|    |     ---o<--o---\          | Line  |
   |   +------------+    +--------+   |    \         | LTP 2 |
   |                                  |     \        o-------o<-
   |                         internal |      \       |       |
   |                         AD ports o       \      |       |
   |                                  |        \     | Line  |
   |                                  |         \    | LTP 3 |
   |                                  |          \---o-------o<-
   |                                  o              |       |
   |                                  |              |       |
   |                                  +--------------+       |
   +---------------------------------------------------------+
   
]]> </artwork>
  </figure>
  
  </section>
  
  <section anchor="Protection UC (ii)">
    <name>OT and OTSi protection/ROADM functions are in two adjacent
    WDM-TE-node (remote OT)</name>
  
  <t>
   This use case is based on the architecture illustrated in
   <xref target="Figure-7"/> where the optical transponder is not part
   of the WDM-TE-node containing the ROADM function (WDM-TE-node-2) but
   is part of a separate WDM-TE-node (WDM-TE-node-1) containing one or
   more optical transponders (remote OTs). WDM-TE-node-2 contains:
   
    <ul spacing="compact">
      <li>Splitter/selector protection function</li>
      <li>ROADM function</li>
    </ul>
    
   <xref target="Figure-13"/> illustrates such a network configuration
   in the transmit/forward direction showing the two WDM-TE-nodes where
   the protection function is the optical splitter in WDM-TE-node-2 and
   <xref target="Figure-14"/> illustrates the same network
   configuration in the receive/reverse direction where the protection
   function is the optical selector in WDM-TE-node-2 selecting one of
   the two incoming OTSi signals and switching to the other incoming
   OTSi signal when the optical power of the selected OTSi signal drops
   below a pre-defined threshold.
  </t>
  
  <t>
   In the network configuration shown in <xref target="Figure-13"/> and
   <xref target="Figure-14"/>, respectively, the two WDM-TE-nodes are
   interconnected via a TE-link carrying a single OTSi signal.
   This TE-link interconnects the remote OT with an add-drop port of
   WDM-TE-node-2 and in the following the qualifier "add-drop" is used
   to refer to that LTP as opposed to the line LTPs representing
   degrees of WDM-TE-node-2.
   Like for the protected TTP in <xref target="Protection UC (i)"/>,
   the optional protection-type leaf is used to indicate whether the
   add-drop LTP is connected to a protection function and then to two
   line LTPs via the ROADM function inside WDM-TE-node-2 or whether it
   is connected to a single line LTP via the ROADM function inside
   WDM-TE-node-2 (unprotected add-drop LTP). While the protection-type
   attribute was already defined for the TTP, the YANG model has been
   augmented to also support this optional attribute for the LTP.
  </t>
  
  <t>
   For protected LTPs, the connectivity-matrix has been augmented such
   that the potential connectivity can now be described between an
   add-drop LTP and multiple line LTPs including the related optical
   impairments. Without this new capability, it was only possible to
   describe the potential connectivity between an add-drop LTP and a
   single line LTP (unprotected case). 
   If the optical impairments are the same from the protected add-drop
   LTP to all line LTPs, which is usually the case, the optical
   impairments should be omitted for the additional LTPs leading to a
   more compact connectivity matrix description. If the optical
   impairments are different, however, they can be described for each
   additional LTP separately.
  </t>
  
  <figure align="center" title="OT and OTSi protection/ROADM functions
  are in two adjacent WDM-TE-node (remote OT, transmit direction)"
  anchor="Figure-13">
    <artwork><![CDATA[

      WDM-TE-node-1                      WDM-TE-node-2
   +----------------+      +---------------------------------------+
   |                |      |                     ROADM             |
   |      Remote OT |      |    Splitter    +--------------+       |
   |   +------------+      |   +--------+   |              | Line  |
   |   |         TTP|      |AD |     ---o-->o------\       | LTP 1 |
   |   |       +----|      |LTP|    /   |   |       \------o-------o->
 --o-->|       | Tx o----->o-->o---o    |   |              |       |
   |   |       +----|      |   |    \   |   |              |       |
 <-o---|       | Rx o      |   |     ---o-->o---\          | Line  |
   |   |       +----|      |   +--------+   |    \         | LTP 2 |
   |   |            |      |                |     \        o-------o->
   |   +------------+      |AD LTP          |      \       |       |
   |                |      o----------------o       \      |       |
   |                |      |                |        \     | Line  |
   |                |      |unprot. AD LTPs |         \    | LTP 3 |
   |                |      |                |          \---o-------o->
   |                |      o----------------o              |       |
   |                |      |AD LTP          |              |       |
   |                |      |                +--------------+       |
   +----------------+      +---------------------------------------+
   
]]> </artwork>
  </figure>
  
  
  <figure align="center" title="OT and OTSi protection/ROADM functions
  are in two adjacent WDM-TE-node (remote OT, receive direction)"
  anchor="Figure-14">
    <artwork><![CDATA[

      WDM-TE-node-1                      WDM-TE-node-2
   +----------------+      +---------------------------------------+
   |      Remote OT |      |                                       |
   |   +------------+      |                     ROADM             |
   |   |            |      |    Selector    +--------------+       |
   |   |       +----|      |   +--------+   |              | Line  |
 --o-->|       | Tx o      |   |     ---o<--o------\       | LTP 1 |
   |   |       +----|      |   |    /   |   |       \------o-------o<-
 <-o---|       | Rx o<-----o<--o---o    |   |              |       |
   |   |       +----|      |AD |    \   |   |              |       |
   |   |         TTP|      |LTP|     ---o<--o---\          | Line  |
   |   +------------+      |   +--------+   |    \         | LTP 2 |
   |                |      |                |     \        o-------o<-
   |                |      |AD LTP          |      \       |       |
   |                |      o----------------o       \      |       |
   |                |      |                |        \     | Line  |
   |                |      |unprot. AD LTPs |         \    | LTP 3 |
   |                |      |                |          \---o-------o<-
   |                |      o----------------o              |       |
   |                |      |AD LTP          |              |       |
   |                |      |                +--------------+       |
   +----------------+      +---------------------------------------+
      
]]> </artwork>
  </figure>
  
  </section>

  <section anchor="Protection UC (iii)">
    <name>OT and protection function are both in an adjacent
    WDM-TE-node (protected remote OT)</name>
  
  <t>
   The use case illustrated in <xref target="Figure-15"/> is similar to
   the use case in <xref target="Protection UC (i)"/>. The difference
   is that WDM-TE-node-1 does not contain the ROADM function but
   contains:
   
    <ul spacing="compact">
      <li>Optical transponder function including the transceiver</li>
      <li>Splitter/selector protection function</li>
    </ul>
   
   WDM-TE-node-1 can be a data center device or a router device that is
   supporting 1+1 OTSi protection for its OTs while WDM-TE-node-2 is a
   WDM-TE-node providing add-drop ports for remote OTs as depicted in
   <xref target="Figure-7"/>. WDM-TE-node-1 and WDM-TE-node-2 are
   interconnected via two separate TE-links, each carrying a single
   OTSi signal. The protection configuration for the protected TTP in
   WDM-TE-node-1 can be described in the same way as for the use in
   <xref target="Protection UC (i)"/> using the local-link-connectivity
   list.
  </t>
  
  
  <figure align="center" title="OT and OTSI protection function are
  both in an adjacent WDM-TE-node (protected remote OT, transmit
  direction)" anchor="Figure-15">
    <artwork><![CDATA[

           WDM-TE-node-1                        WDM-TE-node-2
   +-----------------------------+      +---------------------------+
   |      protected              |      |         ROADM             |
   |      remote OT      Splitter|      |    +--------------+       |
   |   +------------+   +--------+      |AD  |              | Line  |
   |   |         TTP|   |     ---o----->o----o------\       | LTP 1 |
   |   |       +----|   |    /LTP|      |LTP |       \------o-------o->
 --o-->|       | Tx o-->o---o    |      |    |              |       |
   |   |       +----|   |    \   |      |AD  |              |       |
 <-o---|       | Rx o   |     ---o----->o----o---\          | Line  |
   |   |       +----|   |     LTP|      |LTP |    \         | LTP 2 |
   |   |            |   +--------+      |    |     \        o-------o->
   |   +------------+            |      |    |      \       |       |
   |                             |      o----o       \      |       |
   |                             |      |AD  |        \     | Line  |
   |                             |      |LTPs|         \    | LTP 3 |
   |                             |      |    |          \---o-------o->
   |                             |      o----o              |       |
   |                             |      |    |              |       |
   |                             |      |    +--------------+       |
   +-----------------------------+      +---------------------------+
   
]]> </artwork>
  </figure>

  </section>
  
  </section>

  <section title="OMS MCG protection" anchor="TE-link_prot">
  
  <t>
   OMS MCG protection is a 1+1 protection architecture where a TE-link
   representing an OMS MCG between two adjacent WDM-TE-nodes is 1+1
   protected. This media layer protection type is also described in
   Appendix III of <xref target="G.873.1 Amd1"/>.
   <xref target="OMS_MCG_prot"/> illustrates this 1+1 OMS MCG
   protection type and shows a 1+1 protected TE-link together with an
   unprotected TE-link between the same two adjacent WDM-TE-nodes. The
   protected TE-link in <xref target="OMS_MCG_prot"/> is composed of an
   underlying primary and secondary TE-link. This  modeling approach is
   described below.
  </t>
  
  <t>
   1+1 OMS MCG protection is a local protection scheme, which can be
   modeled based on TE-link properties already defined in
   <xref target="RFC8795"/>. The 1+1 protected TE-link is associated
   with the two underlying TE-links representing the physical links,
   which are forming the 1+1 protection group together with the
   splitter and selector functions in the adjacent WDM-TE-nodes as
   depicted in <xref target="OMS_MCG_prot"/>. This modeling approach
   is described in more detail in
   <xref target="Prot_TE-link_underlay"/>.
  </t>
  
  <t>
   Alternatively, it is possible to model the 1+1 OMS MCG protection
   as single protected TE-link abstracting the two underlying physical
   links as well as the splitter and selector functions in the two
   adjacent WDM-TE-nodes. This modeling approach is described in more
   detail in <xref target="Prot_TE-link_abstraction"/>.
  </t>
  
  <t>
   For both modeling approaches, the splitter and selector functions
   are not represented as separate entities in the model. Their optical
   impairments can be included in the optical impairments of the ROADM
   paths in the two adjacent WDM-TE-nodes (connectivity matrix and
   LLCL, respectively) or in the optical impairments of the 1+1
   protected TE-link abstracting the two underlying physical OMS links.
  </t>
  
  <figure align="center" title="Two WDM-TE-nodes with a protected
   and an unprotected OMS MCG (TE-link)" anchor="OMS_MCG_prot">
    <artwork><![CDATA[
    

         WDM-TE-node-1                     WDM-TE-node-2
   +-----------------------+         +-----------------------+
   |     ROADM     Splitter|         |Selector     ROADM     |
   |   +-------+   +-------+  prot.  +-------+   +-------+   |
   |   |       |   |    -->o-------->o-->    |   |       |   |
   |   |       |   |   /   |  prim.  |   \   |   |       |   |
   |   |       o-->o--o    |         |    o--o-->o       |   |
   |   |       |   |   \   |  second.|   /   |   |       |   |
   |   |       |   |    -->o-------->o-->    |   |       |   |
   |   |       |   +-------+         +-------+   |       |   |
   |   |       |   Selector| Line 1  |Splitter   |       |   |
   |   |       |   +-------+         +-------+   |       |   |
   |   |       |   |    <--o<--------o<--    |   |       |   |
   |   |       |   |   /   |  prim.  |   \   |   |       |   |
   |   |       o<--o--o    |         |    o--o<--o       |   |
   |   |       |   |   \   |  second.|   /   |   |       |   |
   |   |       |   |    <--o<--------o<--    |   |       |   |
   |   |       |   +-------+ TE-link +-------+   |       |   |
   |   |       |           |         |           |       |   |
   |   |       |           | unprot. |           |       |   |     
   |   |       o---------->o-------->o---------->o       |   |
   |   |       |           | Line 2  |           |       |   |
   |   |       o<----------o<--------o<----------o       |   |
   |   |       |           | TE-link |           |       |   |
   |   |       |           |         |           |       |   |
   |   +-------+           |         |           +-------+   |
   |                       |         |                       |
   +-----------------------+         +-----------------------+
   
]]> </artwork>
  </figure>
  
  <section title="OMS MCG Protection Modeled as Protected TE-link with
  underlying TE-links" anchor="Prot_TE-link_underlay">
  
  <t>
   This modeling approach models the 1+1 protected TE-link as an
   additional TE-link entity on top of the primary and secondary
   TE-link between the two adjacent WDM-TE-nodes terminating the
   1+1 OMS MCG protection group formed by these two TE-links and the
   splitter and selector functions in the two nodes. This 1+1 protected
   TE-link is associated with underlying primary and secondary TE-links
   forming the 1+1 protection group. The following "te-link-attributes"
   already defined in <xref target="RFC8795"/> and
   <xref target="I-D.ietf-teas-rfc8776-update"/> can be used for
   modeling the 1+1 protected TE-link ("te-link-attributes")
   augmentation copied from <xref target="RFC8795"/>:
   
  <sourcecode name="TE-topology subtree underlay" type="text" markers="false">
  <![CDATA[
  augment /nw:networks/nw:network/nt:link:
  +--rw te!
     +--rw te-link-attributes
     |  ....................
     |  +--rw underlay {te-topology-hierarchy}?
     |  |  +--rw enabled?                     boolean
     |  |  +--rw primary-path
     |  |  |  +--rw network-ref?    leafref
     |  |  |     ....................
     |  |  +--rw backup-path* [index]
     |  |  |  +--rw index           uint32
     |  |  |  +--rw network-ref?    leafref
     |  |  |     ....................
     |  ....................
     |  +--rw link-protection-type?           identityref
     |  ....................
]]>
  </sourcecode>
  
  <t>
   These attributes are used as follows:
  </t>
   
    <ul spacing="compact">
      <li>"underlay": the presence of this container indicates that an
        underlying protection scheme exists</li>
      <li>"enabled": (boolean) is set to 'true'</li>
      <li>"primary-path": is referencing the primary OMS MCG (TE-link)
      </li>
      <li>"backup-path": is referencing the secondary OMS MCG (TE-link)
      </li>
      <li>"link-protection-type" (identityref) set to
        'link-protection-1-plus-1' as defined in
        <xref target="I-D.ietf-teas-rfc8776-update"/>
      </li>    </ul>
  </t>
  
  <t>
   The optical impairments for the underlying primary and secondary
   TE-link can be described as for unprotected TE-links. It MAY also be
   possible to only describe the optical impairments for the 1+1
   protected TE-link. In this case the optical impairments of the worst
   of the two underlying TE-links shall be used. This should be 
   sufficient as input for path computation (worst case optical
   feasibility consideration).
  </t>

  <figure align="center" title="Modeling view of 1+1 protected TE-link
   with underlying primary and secondary TE-link (forward direction)"
   anchor="OMS_MCG_prot_link_1_fwd">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM     Splitter|           |Selector     ROADM     |
    |   +-------+   +-------+LTP2   LTP4+-------+   +-------+   |
    |   |       |   |    -->o---------->o-->    |   |       |   |
LTP1|   |    RP1|   |   /   |  prim.    |   \   |   |RP2    |   |LTP6
--->o-->o.......o-->o--o    |           |    o--o-->o.......o-->o--->
    |   |       |   |   \   |  second.  |   /   |   |       |   |
    |   |       |   |    -->o---------->o-->    |   |       |   |
    |   +-------+   +-------+LTP3   LTP5+-------+   +-------+   |
    |                       |           |                       |
    +-----------------------+           +-----------------------+

              --+                                   +--
     ROADM port |                                   | ROADM port
            RP1 o---------------------------------->o RP2
                |                                   |
              --+                                   +--
                   1+1 protected OMS MCG (TE-link)
                   between ROADM ports RP1 and RP2

             underlying primary and secondary TE-links:

                          --+           +--
                            |  prim.    |
                       LTP2 o---------->o LTP4
                       LTP3 o---------->o LTP5
                            |  second.  |
                          --+           +--

        connectivity matrix provides optical impairments in
        forward direction between LTPs in the two WDM-TE-nodes:
        * LTP1 and LTP2,                     * LTP4 and LTP6,
        * LTP1 and LTP3                      * LTP5 and LTP6

]]> </artwork>
  </figure>
  
  <figure align="center" title="Modeling view of 1+1 protected TE-link
   with underlying primary and secondary TE-link (reverse direction)"
   anchor="OMS_MCG_prot_link_1_rev">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM             |           |             ROADM     |
    |   +-------+   +-------+LTP2' LTP4'+-------+   +-------+   |
    |   |       |   |    <--o<----------o<--    |   |       |   |
LTP1'   |   RP1'|   |   /   |  prim.    |   \   |   |RP2'   |   LTP6'
<---o<--o.......o<--o--o    |           |    o--o<--o.......o<--o<---
    |   |       |   |   \   |  second.  |   /   |   |       |   |
    |   |       |   |    <--o<----------o<--    |   |       |   |
    |   +-------+   +-------+LTP3' LTP5'+-------+   +-------+   |
    |               Selector|           |Splitter               |
    +-----------------------+           +-----------------------+

              --+                                   +--
     ROADM port |                                   | ROADM port
            RP1'o<----------------------------------o RP2'
                |                                   |
              --+                                   +--
                  1+1 protected OMS MCG (TE-link)
                  between ROADM ports RP1' and RP2'

             underlying primary and secondary TE-links:

                          --+           +--
                            |  prim.    |
                       LTP2'o<----------o LTP4'
                       LTP3'o<----------o LTP5'
                            |  second.  |
                          --+           +--

        connectivity matrix provides optical impairments in
        reverse direction between LTPs in the two WDM-TE-nodes:
        * LTP2' and LTP1',                   * LTP6' and LTP4',
        * LTP3' and LTP1'                    * LTP6' and LTP5'

]]> </artwork>
  </figure>

   <t>
   <xref target="OMS_MCG_prot_link_1_fwd"/> and
   <xref target="OMS_MCG_prot_link_1_rev"/> illustrate this modeling
   approach including the LTPs in WDM-TE-node-1 and WDM-TE-node-2,
   respectively.
   In addition to the physical view, the following TE-links are
   shown in the two directions:

   <ul spacing="compact">
     <li>The 1+1 protected TE-link</li>
   </ul>
   <ul spacing="compact">
     <li><t>The underlying primary TE-link</t></li>
     <li>The underlying secondary TE-link</li>
   </ul>

   The optical impairments of the splitter (outgoing direction) and
   the selector (incoming direction) are included in the optical
   impairments described by the connectivity matrix and the local link
   connectivity list for the TE node.
   For the example shown in <xref target="OMS_MCG_prot_link_1_fwd"/>
   in the forward direction, the connectivity matrix describes the
   optical impairments between LPT1 and LTP2 as well as LTP1 and LTP3
   for WDM-TE-node-1. Likewise, the connectivity matrix describes the
   optical impairments between LPT4 and LTP6 as well as LTP5 and LTP6
   in WDM-TE-node-2. The same applies to the corresponding LTPs in
   the reverse direction.
  </t>
  
  </section>
  
  <section title="OMS MCG Protection Modeled as Single Protected
  TE-link" anchor="Prot_TE-link_abstraction">
  
  <t>
   This modeling approach abstracts the two physical OMS links carrying
   the same OMS MCG together with the splitter and selector functions
   in the two WDM-TE-nodes forming the OMS protection group into a
   single TE-link. When  this modeling approach is used the
   "te-link-attributes" already defined in <xref target="RFC8795"/> and
   <xref target="I-D.ietf-teas-rfc8776-update"/> are used as follows:
   
  <sourcecode name="TE-topology subtree" type="text" markers="false">
  <![CDATA[
 augment /nw:networks/nw:network/nt:link:
  +--rw te!
     +--rw te-link-attributes
     |  ....................
     |  +--rw link-protection-type?           identityref
     |  ....................
  ]]>
  </sourcecode>
  
    <ul spacing="compact">
      <li>"underlay": this container MUST NOT be present</li>
      <li>"link-protection-type" (identityref) set to
        'link-protection-1-plus-1' as defined in
        <xref target="I-D.ietf-teas-rfc8776-update"/>
      </li>
    </ul>
   
   The optical impairments exposed for this 1+1 protected TE-link are
   typically based on the optical impairments of the worse of the two
   underlying physical OMS links including the optical impairments
   imposed by the splitter (outgoing direction) and selector (incoming
   direction).
  </t>

  <t>
   <xref target="OMS_MCG_prot_link_2a_fwd"/> and
   <xref target="OMS_MCG_prot_link_2a_rev"/> illustrate this modeling
   approach where the splitter/selector in the adjacent WDM-TE-nodes,
   WDM-TE-node-1 and WDM-TE-node-2, as well as the two physical OMS MCG
   links are abstracted into a single 1+1 protected TE-link. This is
   illustrated by the dotted line surrounding these four physical
   entities in <xref target="OMS_MCG_prot_link_2a_fwd"/> and
   <xref target="OMS_MCG_prot_link_2a_rev"/>, respectively. Based on
   this modeling approach, the ROADM port connected to the
   splitter/selector function is modeled as LTP for the 1+1 protected
   TE-link (LTP2 in WDM-TE-node-1 and LTP3 in WDM-TE-node-2).
   In this example, the connectivity matrix describes the optical
   impairments between LPT1 and LTP2 in WDM-TE-node-1. Likewise, the
   connectivity matrix describes the optical impairments between LPT3
   and LTP4 in WDM-TE-node-2.
  </t>

  <figure align="center" title="Modeling view of abstracted 1+1
   protected TE-link (forward direction) - ROADM ports modeled as LTPs"
   anchor="OMS_MCG_prot_link_2a_fwd">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM     Splitter|           |Selector     ROADM     |
    |   +-------+   +.......+...........+.......+   +-------+   |
    |   |       |   .    -->o---------->o-->    .   |       |   |
LTP1|   |   LTP2|   .   /   |           |   \   .   |LTP3   |   |LTP4
--->o-->o.......o-->o--o    |           |    o--o-->o.......o-->o--->
    |   |       |   .   \   |           |   /   .   |       |   |
    |   |       |   .    -->o---------->o-->    .   |       |   |
    |   +-------+   +...................+.......+   +-------+   |
    |                       |           |                       |
    +-----------------------+           +-----------------------+

              --+                                   +--
     ROADM port |                                   | ROADM port
           LTP2 o---------------------------------->o LTP3
                |                                   |
              --+                                   +---
                  Splitter/Selector abstracted into
                  1+1 protected OMS MCG (TE-link)

        connectivity matrix provides optical impairments in
        forward direction between LTPs in the two WDM-TE-nodes:
        * LTP1 and LTP2                      * LTP3 and LTP4
        
]]> </artwork>
  </figure>

  <figure align="center" title="Modeling view of abstracted 1+1
   protected TE-link (reverse direction) - ROADM ports modeled as LTPs"
   anchor="OMS_MCG_prot_link_2a_rev">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM             |           |             ROADM     |
    |   +-------+   +.......+...........+.......+   +-------+   |
    |   |       |   .    <--o<----------o<--    .   |       |   |
LTP1'   |  LTP2'|   .   /   |           |   \   .   |LTP3'  |   LTP4'
<---o<--o.......o<--o--o    |           |    o--o<--o.......o<--o<---
    |   |       |   .   \   |           |   /   .   |       |   |
    |   |       |   .    <--o<----------o<--    .   |       |   |
    |   +-------+   +...................+.......+   +-------+   |
    |               Selector|           |Splitter               |
    +-----------------------+           +-----------------------+

              --+                                   +--
     ROADM port |                                   | ROADM port
           LTP2 o<----------------------------------o LTP3
                |                                   |
              --+                                   +---
                  Splitter/Selector abstracted into
                  1+1 protected OMS MCG (TE-link)

        connectivity matrix provides optical impairments in
        reverse direction between LTPs in the two WDM-TE-nodes:
        * LTP2' and LTP1'                    * LTP4' and LTP3'
        
]]> </artwork>
  </figure>

  <t>
   Alternatively, the optical impairments imposed by the splitter and
   selector in each of the two adjacent WDM-TE-nodes can also be
   included in the optical impairments described by the connectivity
   matrix of the two nodes instead of taking them into account as
   optical impairments of the 1+1 protected TE-link.
   This is illustrated in <xref target="OMS_MCG_prot_link_2b_fwd"/> in
   forward direction and <xref target="OMS_MCG_prot_link_2b_rev"/> in
   reverse direction below.
   In this case, the two physical ports on both ends of the 1+1
   protected TE-link are abstracted into a single LTP, LTP2 and LTP3,
   in forward direction and LTP3' and LTP2' in reverse direction.
  </t>

  <figure align="center" title="Modeling view of abstracted 1+1
   protected TE-link (forward direction) - physical ports abstracted
   into single LTP on both link ends"
   anchor="OMS_MCG_prot_link_2b_fwd">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM     Splitter|           |Selector     ROADM     |
    |   +-------+   +-------+...........+-------+   +-------+   |
    |   |       |   |    -->o---------->o-->    |   |       |   |
LTP1|   |       |   |   /   |LTP2   LTP3|   \   |   |       |   |LTP4
--->o-->o.......o-->o--o    |           |    o--o-->o.......o-->o--->
    |   |       |   |   \   |LTP2   LTP3|   /   |   |       |   |
    |   |       |   |    -->o---------->o-->    |   |       |   |
    |   +-------+   +-------+...........+-------+   +-------+   |
    |                       |           |                       |
    +-----------------------+           +-----------------------+
    
                          --+           +--
                            |           |
                       LTP2 o---------->o LTP3
                            |           |
                          --+           +--
                            1+1 protected
                            OMS MCG (TE-link)

        connectivity matrix provides optical impairments in
        forward direction between LTPs in the two WDM-TE-nodes:
        * LTP1 and LTP2                      * LTP3 and LTP4

]]> </artwork>
  </figure>

  <figure align="center" title="Modeling view of abstracted 1+1
   protected TE-link (reverse direction) - physical ports abstracted
   into single LTP on both link ends"
   anchor="OMS_MCG_prot_link_2b_rev">
    <artwork><![CDATA[


         WDM-TE-node-1                         WDM-TE-node-2
    +-----------------------+           +-----------------------+
    |     ROADM             |           |             ROADM     |
    |   +-------+   +-------+...........+-------+   +-------+   |
    |   |       |   |    <--o<----------o<--    |   |       |   |
LTP1'   |       |   |   /   |LTP2' LTP3'|   \   |   |       |   LTP4'
<---o<--o.......o<--o--o    |           |    o--o<--o.......o<--o<---
    |   |       |   |   \   |LTP2' LTP3'|   /   |   |       |   |
    |   |       |   |    <--o<----------o<--    |   |       |   |
    |   +-------+   +-------+...........+-------+   +-------+   |
    |               Selector|           |Splitter               |
    +-----------------------+           +-----------------------+
    
                          --+           +--
                            |           |
                       LTP2'o<----------o LTP3'
                            |           |
                          --+           +--
                            1+1 protected
                            OMS MCG (TE-link)

        connectivity matrix provides optical impairments in
        reverse direction between LTPs in the two WDM-TE-nodes:
        * LTP2' and LTP1'                    * LTP4' and LTP3'

]]> </artwork>
  </figure>

  </section>
  
  </section>
  
  </section>
  
  </section>


 
  <section title="Optical Impairment Topology YANG Model"
  anchor="YANG-code">
  
  <sourcecode name="ietf-optical-impairment-topology@2026-02-26.yang" type="yang"
  markers="true">
    <![CDATA[
module ietf-optical-impairment-topology {
  yang-version 1.1;
  namespace "urn:ietf:params:xml"
          + ":ns:yang:ietf-optical-impairment-topology";
  prefix oit;

  import ietf-network {
    prefix nw;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }
  import ietf-network-topology {
    prefix nt;
    reference
      "RFC 8345: A YANG Data Model for Network Topologies";
  }
  import ietf-te-topology {
    prefix tet;
    reference
      "RFC 8795: YANG Data Model for Traffic Engineering (TE)
                 Topologies";
  }
  import ietf-te-types {
    prefix te-types;
    reference
      "RFC YYYY: Updated Common YANG Data Types for Traffic
                 Engineering";
  }

  /* Note: The RFC Editor will replace YYYY with the number assigned
     to the RFC once draft-ietf-teas-rfc8776-update becomes an RFC.*/

  import ietf-layer0-types {
    prefix l0-types;
    reference
      "RFC ZZZZ: A YANG Data Model for Layer 0 Types";
  }

  /* Note: The RFC Editor will replace ZZZZ with the number assigned
     to the RFC once draft-ietf-ccamp-rfc9093-bis becomes an RFC.*/

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

     Editor:   Gabriele Galimberti <gabriele.galimberti@nokia.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:   Roberto Manzotti <rmanzott@cisco.com>
     Editor:   Gert Grammel <ggrammel@juniper.net>";
  description
    "This module contains a collection of YANG definitions for
     impairment-aware optical networks.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD
     License set forth in Section 4.c of the IETF Trust's Legal
     Provisions Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

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

  // RFC Ed.: replace XXXX with actual RFC number and remove
  // this note
  // replace the revision date with the module publication date
  // the format is (year-month-day)

  revision 2026-02-26 {
    description
      "Initial version.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware
                 Optical Networks";
  }

  /*
   * Identities
   */

  identity otsi-protection {
    base te-types:lsp-protection-type;
    description
      "Individual OTSi(G) protection LSP protection type.";
    reference
      "ITU-T G.873.1 v5.2 (02/2022): Optical transport network:
                     Linear protection, Appendix III";
  }

  /*
   * Groupings
   */

  grouping amplifier-params {
    description
      "Describes parameters for an amplifier.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware
                 Optical Networks, Section 2.4";
    container amplifier {
      description
        "The attributes of an amplifier.";
      leaf type-variety {
        type string;
        mandatory true;
        description
          "The type of the amplifier.

           It is usually a vendor-specific string referencing
           specification in a separate equipment catalog.";
      }
      container operational {
        description
          "Amplifier operational parameters.";
        list amplifier-element {
          key "frequency-range-id stage-order";
          description
            "The list of parallel amplifier elements within an
             amplifier used to amplify different frequency ranges.

             Two elements in the list MUST NOT have the same range
             or overlapping ranges.";
          uses l0-types:frequency-range-with-identifier;
          leaf stage-order {
            type uint8;
            description
              "It allows defining for each spectrum bandwidth the
               cascade order of each amplifier-element.";
          }
          leaf name {
            type string;
            description
              "The name of the amplifier element as specified in
               the vendor's specification associated with the
               type-variety.";
          }
          leaf type-variety {
            type string;
            description
              "The type of the amplifier element.

               It is usually a vendor-specific string referencing
               specification in a separate equipment catalog.

               This attribute applies only when the type-variety of
               the amplifier is not sufficient to describe the
               amplifier element type.";
          }
          container power-param {
            description
              "Amplifier elements typically equalize the optical
               power across the amplified channels using one of the
               available equalization strategies - either targeting
               a specific output power, or a specific power spectral
               density (PSD), after the out-voa.";
            choice power-param {
              mandatory true;
              description
                "Select the mode: channel power or power spectral
                 density (PSD).";
              case channel-power {
                leaf nominal-carrier-power {
                  type l0-types:power-dbm-or-unknown;
                  mandatory true;
                  description
                    "Reference channel power.";
                }
              }
              case power-spectral-density {
                leaf nominal-psd {
                  type l0-types:psd-or-unknown;
                  mandatory true;
                  description
                    "Reference power spectral density (PSD).";
                }
              }
            }
          } // container power-param
          leaf pdl {
            type l0-types:power-loss-or-unknown;
            description
              "Polarization Dependent Loss (PDL).";
            reference
              "ITU-T G.671 v9.0 (11/2025): Transmission
                           characteristics of optical components and
                           subsystems, clause 3.2.2.35
               ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for
                             optical fibre submarine cable systems,
                             clause 8.1.5.2.2";
          }
          choice amplifier-element-type {
            mandatory true;
            description
              "Identifies whether the amplifier element is an
               Optical Amplifier (OA) or a Dynamic Gain Equalizer
               (DGE).";
            container optical-amplifier {
              description
                "The attributes applicable only to amplifier
                 elements.";
              leaf actual-gain {
                type l0-types:power-gain-or-unknown;
                mandatory true;
                description
                  "The value of the gain provided by the
                   amplification stage of the optical amplifier.";
              }
              leaf in-voa {
                type l0-types:power-loss-or-unknown;
                description
                  "Loss introduced by the Variable Optical Attenuator
                   (VOA) at the input of the amplification stage of
                   the amplifier, if present.";
              }
              leaf out-voa {
                type l0-types:power-loss-or-unknown;
                description
                  "Loss introduced by the Variable Optical Attenuator
                   (VOA) at the output of the amplification stage of
                   the amplifier, if present.";
              }
              leaf tilt-target {
                type l0-types:decimal-2-or-unknown;
                units "dB";
                mandatory true;
                description
                  "The tilt target defined between lower and upper
                   frequency of the amplifier frequency range.";
              }
              leaf total-output-power {
                type l0-types:power-dbm-or-unknown;
                mandatory true;
                description
                  "It represents the total output power measured in
                   the range specified by the frequency-range.

                   Optical power is especially needed to
                   re-compute/check consistency of span
                   (fiber + concentrated loss) loss value, with
                   respect to loss/gain information on elements.";
              }
              leaf raman-direction {
                type enumeration {
                  enum co-propagating {
                    description
                      "Co-propagating indicates that optical pump
                       light is injected in the same direction to the
                       optical signal that is amplified
                       (forward pump).";
                  }
                  enum counter-propagating {
                    description
                      "Counter-propagating indicates that optical
                       pump light is injected in opposite direction
                       to the optical signal that is amplified
                       (backward pump).";
                  }
                }
                description
                  "The direction of injection of the raman pump.";
              }
              list raman-pump {
                key "pump-id";
                description
                  "The list of pumps for the Raman amplifier.";
                leaf pump-id {
                  type uint16;
                  description
                    "The identifier of a pump within an amplifier
                     element.";
                }
                leaf frequency {
                  type l0-types:frequency-thz;
                  description
                    "The raman pump central frequency.";
                }
                leaf power {
                  type l0-types:decimal-2-or-unknown;
                  units "Watts";
                  description
                    "The total pump power considering a depolarized
                     pump at the raman pump central frequency.";
                }
              }
            } // container optical-amplifier
            container dynamic-gain-equalizer {
              presence
                "When present it indicates that the amplifier element
                 is a Dynamic Gain Equalizer (DGE).";
              description
                "The attributes applicable only to DEG amplifier
                 elements.";
              list media-channel {
                key "flexi-n";
                description
                  "List of media channels represented as (n,m).";
                uses l0-types:flexi-grid-frequency-slot {
                  refine "flexi-m" {
                    mandatory true;
                  }
                }
                leaf delta-power {
                  type l0-types:power-ratio-or-unknown;
                  description
                    "Deviation of the carrier power with respect to
                     the reference carrier power, to account for
                     power offset related to the carrier signal
                     spectrum width or baud rate.";
                }
              } // media channels list
            } // container dynamic-gain-equalizer
          } // choice amplifier-element-type
        } // list amplifier-element
      } // container operational
    } // container amplifier
  } // grouping amplifier-params

  grouping fiber-params {
    description
      "String identifier of fiber type referencing a
       specification in a separate equipment catalog.";
    container fiber {
      description
        "Fiber characteristics.";
      reference
        "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                   Networks, Section 2.9";
      leaf type-variety {
        type string;
        mandatory true;
        description
          "The type of the fiber.

           It can be a string referencing a standard document (e.g.,
           ITU-T G.652) or a vendor-specific string referencing
           specification in a separate equipment catalog.";
      }
      leaf length {
        type l0-types:decimal-2-or-unknown;
        units "km";
        mandatory true;
        description
          "Length of fiber.";
      }
      leaf loss-coef {
        type l0-types:decimal-2-or-unknown;
        units "dB/km";
        mandatory true;
        description
          "Loss coefficient of the fiber.";
      }
      leaf total-loss {
        type l0-types:power-loss-or-unknown;
        config false;
        description
          "The measured total loss of the fiber, which includes
           all possible losses: fiber loss and conn-in and conn-out
           losses.

           This attribute is not present when the total loss cannot
           be measured.";
      }
      leaf pmd {
        type l0-types:decimal-2-or-unknown;
        units "ps";
        description
          "Polarization Mode Dispersion (PMD) of the fiber.";
        reference
          "ITU-T G.671 v9.0 (11/2025): Transmission characteristics
                       of optical components and subsystems,
                       clause 3.2.2.37
           ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for
                         optical fibre submarine cable systems,
                         clause 6.2.2.3";
      }
      leaf conn-in {
        type l0-types:power-loss-or-unknown;
        description
          "The loss of the connector at the input of the fiber.";
      }
      leaf conn-out {
        type l0-types:power-loss-or-unknown;
        description
          "The loss of the connector at the output of the fiber.";
      }
    }
  }

  grouping roadm-common-path {
    description
      "The optical impairments of a ROADM which are common to all
       its paths (express path, add path or drop path).";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                 Networks, Section 2.10.4";
    leaf roadm-pmd {
      type union {
        type decimal64 {
          fraction-digits 8;
          range "0..max";
        }
        type l0-types:unknown-value;
      }
      units "ps";
      description
        "Polarization Mode Dispersion (PMD).";
      reference
        "ITU-T G.671 v9.0 (11/2025): Transmission characteristics of
                     optical components and subsystems,
                     clause 3.2.2.37
         ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems,
                       clause 6.2.2.3";
    }
    leaf roadm-cd {
      type l0-types:decimal-5-or-unknown;
      units "ps/nm";
      description
        "Chromatic Dispersion (CD).";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems,
                       clause 6.2.2.4";
    }
    leaf roadm-pdl {
      type l0-types:power-loss-or-unknown;
      description
        "Polarization Dependent Loss (PDL).";
      reference
        "ITU-T G.671 v9.0 (11/2025): Transmission characteristics of
                     optical components and subsystems,
                     clause 3.2.2.35
         ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems,
                       clause 8.1.5.2.2";
    }
    leaf roadm-inband-crosstalk {
      type l0-types:decimal-2-or-unknown;
      units "dB";
      description
        "One of the basic properties of the key optical device
         wavelength selective switch (WSS) is the isolation (i.e.,
         the ratio between the optical power of a selected optical
         channel and the leakage power of unselected channels).

         In the presence of imperfect isolation, the originated
         leakage signals, usually known as crosstalk signals, will
         interfere with the primary signal at the receiver end,
         contributing to degrade the signal quality.
         This interference is particularly harmful when both the
         signal and interference have the same nominal wavelength
         leading to the in-band crosstalk.";
      reference
        "ISSN 1068-5200: A framework for analyzing in-band crosstalk
                         accumulation in ROADM-based optical
                         networks";
    }
    leaf roadm-maxloss {
      type l0-types:power-loss-or-unknown;
      description
        "This is the maximum expected path loss from the
         ROADM ingress to the ROADM egress
         assuming no additional path loss is added.";
    }
  } // grouping roadm-common-path

  grouping roadm-add-path {
    description
      "The optical impairments of a ROADM add path.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                 Networks, Section 2.10.4";
    uses roadm-common-path {
      refine "roadm-inband-crosstalk" {
        description
          "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 one blocked.

           In the case of add path it is the total
           of the add block + egress WSS crosstalk contributions.";
      }
      refine "roadm-maxloss" {
        description
          "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 required to hit the ROADM
           egress target power levels and preventing to hit
           the WSS attenuation limits.

           If the add path contains an internal amplifier
           this loss value MUST be based on worst case expected
           amplifier gain due to ripple or gain uncertainty.";
      }
    }
    leaf roadm-pmax {
      type l0-types:power-dbm-or-unknown;
      description
        "This is the maximum (per carrier) power level
         permitted at the add block input ports,
         that can be handled by the ROADM node.

         This can reflect either add amplifier power
         constraints or WSS adjustment limits.

         Higher power transponders would need to have
         their launch power reduced to this value or lower.";
    }
    leaf roadm-osnr {
      type l0-types:snr-or-unknown;
      description
        "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, MUST be used
         (if both are defined).";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems, clause 8.1.3";
    }
    leaf roadm-noise-figure {
      type l0-types:decimal-5-or-unknown;
      units "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.";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems, clause 8.1.3";
    }
  } // grouping roadm-add-path 

  grouping roadm-drop-path {
    description
      "The optical impairments of a ROADM drop path.";
    uses roadm-common-path {
      refine "roadm-inband-crosstalk" {
        description
          "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 one blocked.

           In the case of drop path it is the total
           of the ingress to drop, e.g. WSS and drop block
           crosstalk contributions.";
      }
      refine "roadm-maxloss" {
        description
          "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
           constraints.

           The max value corresponds to the worst case expected
           loss, including amplifier gain ripple or uncertainty.
           It is the maximum output power of the drop amplifier.";
      }
    }
    leaf roadm-minloss {
      type l0-types:power-loss-or-unknown;
      description
        "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
         constraints.

         The min value correspond to best case expected loss,
         including amplifier gain ripple or uncertainty.";
    }
    leaf roadm-typloss {
      type l0-types:power-loss-or-unknown;
      description
        "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
         constraints.

         The typ value correspond to typical case expected loss.";
    }
    leaf roadm-pmin {
      type l0-types:power-dbm-or-unknown;
      description
        "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 minimum value of the Drop
         Channel output power range.";
      reference
        "ITU-T G.680 v1.0 (07/2007): Physical transfer functions of
                     optical network elements, Table 8-6";
    }
    leaf roadm-pmax {
      type l0-types:power-dbm-or-unknown;
      description
        "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 maximum value of the Drop
         Channel output power range.";
      reference
        "ITU-T G.680 v1.0 (07/2007): Physical transfer functions of
                     optical network elements, table 8-6";
    }
    leaf roadm-ptyp {
      type l0-types:power-dbm-or-unknown;
      description
        "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 typical case
         per carrier power levels expected at the output
         of the drop block.";
    }
    leaf roadm-osnr {
      type l0-types:snr-or-unknown;
      description
        "Optical Signal-to-Noise Ratio (OSNR).

         Expected OSNR contribution of the drop path
         amplifier (if present) for the case of additional drop
         path loss (before this amplifier) in order to hit
         a 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 MUST be used.";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems, clause 8.1.3";
    }
    leaf roadm-noise-figure {
      type l0-types:decimal-5-or-unknown;
      units "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.";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems, clause 8.1.3";
    }
  } // grouping roadm-drop-path

  grouping concentrated-loss-params {
    description
      "Concentrated loss";
    container concentrated-loss {
      description
        "Concentrated loss";
      reference
        "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                   Networks, section 2.3";
      leaf loss {
        type l0-types:power-loss-or-unknown;
        mandatory true;
        description
          "Loss introduced by the concentrated loss element (e.g., a
           fiber connector, a fiber splice).";
      }
    }
  }

  grouping oms-general-optical-params {
    description
      "The optical paramaters of an OMS link.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                 Networks, Section 2.3";
    leaf generalized-snr {
      type l0-types:snr;
      description
        "Generalized SNR.";
      reference
        "ITU-T G.Sup41 v5.0 (07/2024): Design guidelines for optical
                       fibre submarine cable systems, clause 8.1.4";
    }
    leaf equalization-mode {
      type identityref {
        base l0-types:type-power-mode;
      }
      description
        "The equalization mode.

         ROADMs typically equalize the optical power across the
         channels on the OMS using one of the available equalization
         strategies - either targeting a specific output power, or a
         specific power spectral density (PSD).

         When not present it indicates that the information about
         the equalization mode is not reported.

         Reporting this value is needed to support optical
         impairments applications.";
    }
    container power-param {
      description
        "Optical channel power or power spectral densitity (PSD)
         after the ROADM.";
      leaf nominal-carrier-power {
        when "derived-from-or-self(../../equalization-mode, "
           + "'l0-types:carrier-power')";
        type l0-types:power-dbm-or-unknown;
        description
          "Reference channel power.";
      }
      leaf nominal-psd {
        when "derived-from-or-self(../../equalization-mode, "
           + "'l0-types:power-spectral-density')";
        type l0-types:psd-or-unknown;
        description
          "Reference power spectral density (PSD).";
      }
    } // container power-param
  } // grouping oms-general-optical-params

  grouping otsi-group {
    description
      "The list of the OTSis contained in one OTSiG.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                 Networks, Sections 2.3.1 and 2.3.2";
    list otsi {
      key "carrier-id";
      description
        "The list of the OTSis contained in one OTSiG.
         The list could also be of only one element.";
      leaf carrier-id {
        type uint16;
        description
          "The identifier of the OTSi within the OTSiG.";
      }
      leaf carrier-frequency {
        type union {
          type l0-types:frequency-thz;
          type l0-types:unknown-value;
        }
        description
          "OTSi carrier frequency, equivalent to the
           actual configured transmitter frequency.";
      }
      leaf-list e2e-mc-path-id {
        type uint16;
        description
          "The list of the possible end-to-end Media Channel
           (e2e-MC) paths associated with the OTSi which have
           different optical impairments.

           This list is meaningful in case the OTSi can be associated
           with multiple end-to-end Media Channel (e2e-MC) paths
           (e.g., when OPS protection is configured).

           The list can be empty when the OTSi has only one
           e2e-MC path.";
        reference
          "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                     Networks, Section 2.11.1";
      }
    } // OTSi list
  } // OTSiG grouping

  grouping media-channel-groups {
    description
      "The list of media channel groups (MCGs) and of their
       constituent media channels (MCs).

       This grouping is not intended to be reused outside of this
       module.";
    reference
      "RFC XXXX: A YANG Data Model for Impairment-aware Optical
                 Networks, Sections 2.3.3 and 2.3.4";
    container media-channel-groups {
      presence
        "When present, it indicates that the list media channel
         groups is reported.";
      description
        "The top level container for the list of media channel
         groups.";
      list media-channel-group {
        key "otsi-group-ref";
        description
          "The list of media channel groups";
        leaf otsi-group-ref {
          type leafref {
            path "../../../../../../../otsis/"
               + "otsi-group/otsi-group-id";
          }
          description
            "Reference to the OTSiG to which the OTSis carried by
             this media channel group belong to.";
        }
        list media-channel {
          key "media-channel-id";
          unique "flexi-n";
          description
            "The list of media channels within the media channel
             group.";
          leaf media-channel-id {
            type int16;
            description
              "The identifier of media channel within media channel
               group.

               It may be equal to the flexi-n attribute, when the
               flexi-n attribute is present.";
          }
          uses l0-types:flexi-grid-frequency-slot;
          list otsi-ref {
            key "carrier-ref";
            description
              "The list of references to the OTSis and their
               end-to-end Media Channel (e2e-MC) paths within the
               OTSiG carried by this media channel.";
            leaf carrier-ref {
              type leafref {
                path "../../../../../../../../../otsis/"
                   + "otsi-group[otsi-group-id=current()"
                   + "/../../../otsi-group-ref]/"
                   + "otsi/carrier-id";
              }
              description
                "Reference to the OTSi within the OTSiG carried
                 by this media channel.";
            }
            leaf-list e2e-mc-path-ref {
              type leafref {
                path "../../../../../../../../../otsis/"
                   + "otsi-group[otsi-group-id=current()"
                   + "/../../../otsi-group-ref]/"
                   + "otsi[carrier-id=current()"
                   + "/../carrier-ref]/e2e-mc-path-id";
              }
              description
                "References to the end-to-end Media Channel (e2e-MC)
                 paths of this OTSi which are routed through this
                 media channel.";
            }
          }
          leaf delta-power {
            type l0-types:power-ratio-or-unknown;
            description
              "Deviation from the reference carrier power defined
               for the OMS.";
          }
        } // media channels list
      } // media-channel-groups list
    }
  } // media media-channel-groups grouping

  grouping oms-element {
    description
      "The list of the OMS elements, i.e., the building blocks
       (e.g., fibers, amplifiers, concentrated loss) that compose the
       OMS between its link termination points.";
    container oms-elements {
      presence
        "When present, it indicates that the list of OMS elements
         is reported.";
      description
        "The top level container for the list of OMS elements.";
      list oms-element {
        key "elt-index";
        description
          "The list of OMS elements.";
        leaf elt-index {
          type uint16;
          description
            "An index allowing sorting the elements in their physical
             order along the link without constraining their position
             in the list.";
        }
        leaf oms-element-uid {
          type union {
            type string;
            type l0-types:unknown-value;
          }
          description
            "Unique identifier of the OMS element, when known.";
        }
        container reverse-element-ref {
          description
            "It contains references to the elements which are
             associated with this element in the reverse
             direction.";
          leaf link-ref {
            type leafref {
              path "../../../../../../../../nt:link/nt:link-id";
            }
            description
              "The reference to the OMS link which the OMS elements
               belongs to.";
          }
          leaf-list oms-element-ref {
            type leafref {
              path "../../../../../../../../nt:link[nt:link-id="
                 + "current()/../link-ref]/tet:te/"
                 + "tet:te-link-attributes/oms-attributes/"
                 + "oms-elements/oms-element/elt-index";
            }
            description
              "The references to the OMS elements.";
          }
        }
        choice element {
          mandatory true;
          description
            "OMS element type";
          case amplifier {
            uses tet:geolocation-container;
            uses amplifier-params;
          }
          case fiber {
            uses fiber-params;
          }
          case concentrated-loss {
            uses concentrated-loss-params;
          }
        }
      }
    }
  }

  grouping otsi-ref {
    description
      "References to an OTSi.

       This grouping is intended to be reused within the
       transceiver's list only.";
    leaf otsi-group-ref {
      type leafref {
        path "../../../../../../otsis/otsi-group/"
           + "otsi-group-id";
      }
      description
        "The OTSiG the referenced OTSi belongs to.";
    }
    leaf otsi-ref {
      type leafref {
        path "../../../../../../otsis/otsi-group"
           + "[otsi-group-id=current()/../otsi-group-ref]/otsi/"
           + "carrier-id";
      }
      description
        "The referenced OTSi.";
    }
  }

  /* 
   * Data nodes
   */

  augment "/nw:networks/nw:network/nw:network-types"
        + "/tet:te-topology" {
    description
      "optical-impairment topology augmented";
    container optical-impairment-topology {
      presence
        "Indicates an impairment-aware topology of optical networks";
      description
        "Container to identify impairment-aware topology type.";
      reference
        "RFC8345: A YANG Data Model for Network Topologies.";
    }
  }

  augment "/nw:networks/nw:network" {
    when './nw:network-types/tet:te-topology'
       + '/oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Network augmentation for optical impairments data.";
    container otsis {
      presence "When present, it indicates that OTSi information is
                reported.";
      config false;
      description
        "The information about the OTSis configured on the WDM-TE
         link.";
      list otsi-group {
        key "otsi-group-id";
        description
          "the list of possible OTSiG representing client digital
           stream.";
        leaf otsi-group-id {
          type string;
          description
            "A network-wide unique identifier of otsi-group element.
             It could be structured, e.g., as a URI or as a UUID.";
        }
        uses otsi-group;
      } // list of OTSiG
    }
    container templates {
      config false;
      description
        "Templates for set of parameters which can be common to
         multiple elements.";
      container roadm-path-impairments-sets {
        description
          "The top level container for the list of the set of
           optical impairments related to ROADM paths.";
        list roadm-path-impairments-set {
          key "roadm-path-impairments-set-id";
          description
            "The list of the set of optical impairments related to a
             ROADM path.";
          leaf roadm-path-impairments-set-id {
            type string;
            description
              "The identifier of an element in the list of the set of
               optical impairments related to a ROADM path.";
          }
          leaf description {
            type string;
            description
              "The textual description of the set of optical
               impairments related to a ROADM path.";
          }
          choice impairment-type {
            description
              "Type path impairment.";
            case roadm-express-path {
              list roadm-express-path {
                key "frequency-range-id";
                description
                  "The list of optical impairments on a ROADM express
                   path for different frequency ranges.

                   Two elements in the list MUST NOT have the same
                   range or overlapping ranges.";
                uses l0-types:frequency-range-with-identifier;
                uses roadm-common-path;
              }
            }
            case roadm-add-path {
              list roadm-add-path {
                key "frequency-range-id";
                description
                  "The list of optical impairments on a ROADM add
                   path for different frequency ranges.

                   Two elements in the list MUST NOT have the same
                   range or overlapping ranges.";
                uses l0-types:frequency-range-with-identifier;
                uses roadm-add-path;
              }
            }
            case roadm-drop-path {
              list roadm-drop-path {
                key "frequency-range-id";
                description
                  "The list of optical impairments on a ROADM add
                   path for different frequency ranges.

                   Two elements in the list MUST NOT have the same
                   range or overlapping ranges.";
                uses l0-types:frequency-range-with-identifier;
                uses roadm-drop-path;
              }
            }
          }
        } // list roadm-path-impairments-set 
      } // container roadm-path-impairments-sets
      container explicit-transceiver-modes {
        description
          "The top level container for the list of the
           transceivers' explicit modes.";
        list explicit-transceiver-mode {
          key "explicit-transceiver-mode-id";
          description
            "The list of the transceivers' explicit modes.";
          leaf explicit-transceiver-mode-id {
            type string;
            description
              "The identifier of the transceivers' explicit mode.";
          }
          uses l0-types:explicit-mode;
        } // list explicit-transceiver-mode
      } // container explicit-transceiver-modes
    } // container templates
  } // augment network

  augment "/nw:networks/nw:network/nw:node" {
    when '../nw:network-types/tet:te-topology'
       + '/oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment.";
    }
    description
      "Node augmentation for optical impairments data.";
    container transponders {
      presence
        "If present, it indicates that the list of transponders is
         reported.";
      config false;
      description
        "The top level container for the list of transponders.";
      list transponder {
        key "transponder-id";
        description
          "The list of transponders.";
        leaf transponder-id {
          type uint32;
          description
            "Transponder identifier.";
        }
        leaf termination-type-capabilities {
          type enumeration {
            enum tunnel-only {
              description
                "The transponder can only be used in an Optical
                 Tunnel termination configuration.";
            }
            enum 3r-only {
              description
                "The transponder can only be used in a 3R
                 configuration.";
            }
            enum 3r-or-tunnel {
              description
                "The transponder can be used either in an Optical
                 Tunnel termination configuration or in a 3R
                 configuration.";
            }
          }
          description
            "Describes whether the transponder can be used in an
             Optical Tunnel termination configuration or in a 3R
             configuration (or both).";
        }
        leaf supported-3r-mode {
          when '(../termination-type-capabilities = "3r-only") '
             + 'or (../termination-type-capabilities = '
             + '"3r-or-tunnel")' {
            description
              "Applies only when the transponder supports 3R
               configuration.";
          }
          type enumeration {
            enum unidir {
              description
                "Unidirectional 3R configuration.";
            }
            enum bidir {
              description
                "Bidirectional 3R configuration.";
            }
          }
          description
            "Describes the supported 3R configuration type.";
        }
        list transceiver {
          key "transceiver-id";
          min-elements 1;
          description
            "List of transceiver related to a transponder.";
          leaf transceiver-id {
            type uint32;
            description
              "Transceiver identifier.";
          }
          uses l0-types:transceiver-capabilities {
            augment "supported-modes/supported-mode/mode/"
                  + "explicit-mode/explicit-mode" {
              description
                "Augment the explicit-mode container with the
                 proper leafref.";
              leaf explicit-transceiver-mode-ref {
                type leafref {
                  path "../../../../../../../../oit:templates"
                     + "/oit:explicit-transceiver-modes"
                     + "/oit:explicit-transceiver-mode"
                     + "/oit:explicit-transceiver-mode-id";
                }
                description
                  "The reference to the explicit transceiver
                   mode template.";
              }
            }
          }
          leaf configured-mode {
            type union {
              type l0-types:unknown-value;
              type leafref {
                path "../supported-modes/supported-mode/mode-id";
              }
            }
            description
              "Reference to the configured mode for transceiver
               compatibility approach.

               The 'unknown' value is used to report that no mode has
               been configured and there is no default mode.

               When not present, the configured-mode is not reported
               by the server.";
          }
          uses l0-types:common-transceiver-param;
          container outgoing-otsi {
            when '../../../../../otsis' {
              description
                "It applies only when the OTSi information is
                 reported.";
            }
            description
              "The OTSi generated by the transceiver's transmitter.";
            uses otsi-ref;
          }
          container incoming-otsi {
            when '../../../../../otsis' {
              description
                "It applies only when the OTSi information is
                 reported.";
            }
            description
              "The OTSi received by the transceiver's receiver.";
            uses otsi-ref;
          }
          leaf configured-termination-type {
            type enumeration {
              enum unused-transceiver {
                description
                  "The transcevier is not used.";
              }
              enum tunnel-termination {
                description
                  "The transceiver is currently used in an Optical
                   Tunnel termination configuration.";
              }
              enum 3r-regeneration {
                description
                  "The transceiver is currently used in a 3R
                   configuration.";
              }
            }
            description
              "Describes whether the current configuration of the
               transceiver is used in an Optical Tunnel termination
               configuration or in a 3R configuration.

               If empty, it means that the information about the
               configured-termination-type is not reported.";
          }
        } // end of list of transceiver 
      } // end list of transponder
    }
    container regen-groups {
      presence "When present, it indicates that the list of 3R groups
                is reported.";
      config false;
      description
        "The top level container for the list of 3R groups.";
      list regen-group {
        key "group-id";
        description
          "The list of 3R groups.

           Any 3R group represent a group of transponder in which an
           electrical connectivity is either in place or could
           be dynamically provided, to associated transponders used
           for 3R regeneration.";
        leaf group-id {
          type uint32;
          description
            "Group identifier used an index to access elements in the
             list of 3R groups.";
        }
        leaf regen-metric {
          type uint32;
          description
            "The cost permits choice among different groups of
             transponders during path computation.";
        }
        leaf-list transponder-ref {
          type leafref {
            path "../../../transponders/transponder/transponder-id";
          }
          description
            "The list of transponders belonging to this 3R group.";
        }
      } // end 3R-group
    }
  }

  augment "/nw:networks/nw:network/nt:link/tet:te"
        + "/tet:te-link-attributes" {
    when '../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Optical Link augmentation for impairment data.";
    container oms-attributes {
      config false;
      description
        "OMS attributes.";
      uses oms-general-optical-params;
      uses media-channel-groups;
      uses oms-element;
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te"
        + "/tet:tunnel-termination-point" {
    when '../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Tunnel termination point augmentation for impairment data.";
    list ttp-transceiver {
      when '../../../transponders' {
        description
          "It applies only when the list of transponders is
           reported.";
      }
      key "transponder-ref transceiver-ref";
      config false;
      min-elements 1;
      description
        "The list of the transceivers used by the TTP.";
      leaf transponder-ref {
        type leafref {
          path "../../../../transponders/transponder/transponder-id";
        }
        description
          "The reference to the transponder hosting the transceiver
           of the TTP.";
      }
      leaf transceiver-ref {
        type leafref {
          path "../../../../transponders/transponder"
             + "[transponder-id=current()/../transponder-ref]/"
             + "transceiver/transceiver-id";
        }
        description
          "The reference to the transceiver of the TTP.";
      }
    } // list of transceivers
  } // end of augment

  augment "/nw:networks/nw:network/nw:node/nt:termination-point" {
    when '../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment LTP";
    leaf protection-type {
      type identityref {
        base te-types:lsp-protection-type;
      }
      config false;
      description
        "The protection type that this LTP is capable of.

         When not present it indicates that the information about
         the protection type is not reported.";
    }
  }

  augment "/nw:networks/nw:network/nw:node/nt:termination-point"
        + "/tet:te" {
    when '../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment TE attributes of an LTP";
    leaf inter-layer-sequence-number {
      type uint32;
      config false;
      description
        "The inter-layer-sequence-number (ILSN) is used to report
         additional connectivity constraints between a client layer
         Link Termination Point (LTP), such as a muxponder port, and
         the server layer Tunnel Termination Point (TTP).

         A client service cannot be setup between two client layer
         LTPs which report different values of the ILSN.

         This attribute is not reported when there are no additional
         connectivity constraints.

         Therefore, a client service can be setup when at least one
         of the two client layer LTPs does not report any ILSN or
         both client layer LTPs report the same ILSN value and the
         corresponding server layer TTPs have at least one common
         server-layer switching capability and at least one common
         client-layer switching capability.";
    }
  }

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:information-source-entry/tet:connectivity-matrices" {
    when '../../../../nw:network-types/tet:te-topology/'
       + 'oit: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-set {
      type leafref {
        path "../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
  } // 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:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment TE node connectivity matrix entry information
       source.";
    leaf roadm-path-impairments-set {
      type leafref {
        path "../../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
  } // augmentation connectivity-matrix information-source

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices" {
    when '../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment default TE node connectivity matrix.";
    leaf roadm-path-impairments-set {
      type leafref {
        path "../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
  } // augmentation connectivity-matrices

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/"
        + "tet:connectivity-matrices/tet:connectivity-matrix" {
    when '../../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment TE node connectivity matrix entry.";
    leaf roadm-path-impairments-set {
      type leafref {
        path "../../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
  } // augmentation connectivity-matrix

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:from" {
    when '../../../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment the attributes for the 'from' LTP for the TE node
       connectivity matrix entry.";
    list additional-ltp {
      when "derived-from-or-self(../../../../../../"
         + "nt:termination-point"
         + "[nt:tp-id=current()/../../tet:to/tet:tp-ref]/"
         + "oit:protection-type,"
         + "'oit:otsi-protection')" {
        description
          "This list applies only when the 'to' LTP for this
           connectivity matrix entry supports individual OTSi(G)
           protection.";
      }
      key "ltp-ref";
      config false;
      description
        "The restricted list of the potential secondary LTPs that
         can be selected when the 'from' LTP of this connectivity
         matrix entry is selected as a working LTP.

         If this list is empty, all the other LTPs that can reach
         the 'to' LTP of this connectivity matrix entry can be
         selected as secondary LTPs.";
      leaf ltp-ref {
        type leafref {
          path "../../../../../../../nt:termination-point/nt:tp-id";
        }
        description
          "The reference to the potential secondary LTP that can be
           selected when the 'from' LTP of this connectivity matrix
           entry is selected as a working LTP.";
      }
      leaf roadm-path-impairments-set {
        type leafref {
          path "../../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the ROADM path between
           this secondary 'from' LTP and the 'to' LTP of this
           connectivity matrix entry.";
      }
    }
  } // augmentation connectivity-matrix from

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:te-node-attributes/tet:connectivity-matrices/"
        + "tet:connectivity-matrix/tet:to" {
    when '../../../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment the attributes for the 'to' LTP for the TE node
       connectivity matrix entry.";
    list additional-ltp {
      when "derived-from-or-self(../../../../../../"
         + "nt:termination-point"
         + "[nt:tp-id=current()/../../tet:from/tet:tp-ref]/"
         + "oit:protection-type,"
         + "'oit:otsi-protection')" {
        description
          "This list applies only when the 'from' LTP for this
           connectivity matrix entry supports individual OTSi(G)
           protection.";
      }
      key "ltp-ref";
      config false;
      description
        "The restricted list of the potential secondary LTPs that
         can be selected when the 'to' LTP of this connectivity
         matrix entry is selected as a working LTP.

         If this list is empty, all the other LTPs that can be
         reached from the 'from' LTP of this connectivity matrix
         entry can be selected as secondary LTPs.";
      leaf ltp-ref {
        type leafref {
          path "../../../../../../../nt:termination-point/nt:tp-id";
        }
        description
          "The reference to the potential secondary LTP that can be
           selected when the 'to' LTP of this connectivity matrix
           entry is selected as a working LTP.";
      }
      leaf roadm-path-impairments-set {
        type leafref {
          path "../../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the ROADM path between
           the 'from' LTP of this connectivity matrix entry and this
           secondary LTP.";
      }
    }
  } // augmentation connectivity-matrix to

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities" {
    when '../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment default TTP LLC.";
    leaf add-path-impairments-set {
      type leafref {
        path "../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
    leaf drop-path-impairments-set {
      type leafref {
        path "../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
  } // augmentation local-link-connectivities

  augment "/nw:networks/nw:network/nw:node/tet:te/"
        + "tet:tunnel-termination-point/"
        + "tet:local-link-connectivities/"
        + "tet:local-link-connectivity" {
    when '../../../../../nw:network-types/tet:te-topology/'
       + 'oit:optical-impairment-topology' {
      description
        "This augment is only valid for Optical Impairment
         topology.";
    }
    description
      "Augment TTP LLC entry.";
    leaf add-path-impairments-set {
      type leafref {
        path "../../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
    leaf drop-path-impairments-set {
      type leafref {
        path "../../../../../../oit:templates"
           + "/oit:roadm-path-impairments-sets"
           + "/oit:roadm-path-impairments-set"
           + "/oit:roadm-path-impairments-set-id";
      }
      config false;
      description
        "Pointer to optical impairments of the associated ROADM
         path.";
    }
    list llc-transceiver {
      key "ttp-transponder-ref ttp-transceiver-ref";
      config false;
      description
        "The list of transceivers having an LLC different from the
         default LLC.";
      leaf ttp-transponder-ref {
        type leafref {
          path "../../../../ttp-transceiver/transponder-ref";
        }
        description
          "The reference to the transponder hosting the transceiver
           of this LLCL entry.";
      }
      leaf ttp-transceiver-ref {
        type leafref {
          path "../../../../ttp-transceiver/transceiver-ref";
        }
        description
          "The reference to the transceiver of this LLCL entry.";
      }
      leaf is-allowed {
        type boolean;
        description
          "'true' - connectivity from this transceiver is allowed;
           'false' - connectivity from this transceiver is
           disallowed.";
      }
      leaf add-path-impairments-set {
        type leafref {
          path "../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the associated ROADM
           path.";
      }
      leaf drop-path-impairments-set {
        type leafref {
          path "../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the associated ROADM
           path.";
      }
    }
    list additional-ltp {
      when "derived-from-or-self(../../../tet:protection-type,"
         + "'oit:otsi-protection')" {
        description
          "This list applies only to TTPs that support individual
           OTSi(G) protection.";
      }
      key "ltp-ref";
      config false;
      description
        "The restricted list of the potential secondary LTPs that
         can be selected when the LTP associated with this LLCP
         entry is selected as a working LTP.

         If this list is empty, all the other LTPs that can be
         reached by this TTP can be selected as secondary LTPs.";
      leaf ltp-ref {
        type leafref {
          path "../../../../../../nt:termination-point/nt:tp-id";
        }
        description
          "The reference to potential secondary LTP that can be
           selected when the LTP associated with this LLCP entry is
           selected as a working LTP.";
      }
      leaf add-path-impairments-set {
        type leafref {
          path "../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the associated ROADM
           path.";
      }
      leaf drop-path-impairments-set {
        type leafref {
          path "../../../../../../../oit:templates"
             + "/oit:roadm-path-impairments-sets"
             + "/oit:roadm-path-impairments-set"
             + "/oit:roadm-path-impairments-set-id";
        }
        description
          "Pointer to optical impairments of the associated ROADM
           path.";
      }
    }
  } // augmentation local-link-connectivity

}
]]>
  </sourcecode>
  
  <section title="YANG Model Explanations" anchor="Narrative Description">
  
  <t>
   As indicated in <xref target="RFC8345"/>, section 4.1, "When a
   network is of a certain type, it will contain a corresponding data
   node. Network types SHOULD always be represented using presence
   containers". The YANG model is in fact augmenting
   "nw:network-types/tet:te-topology" with the new presence container
   "optical-impairment-topology" representing an impairment-aware
   topology type.
  </t>
  
  <t>
   As described in <xref target="OTSi"/>, the OTSi signals in the YANG
   model are described by augmenting the "nw:network" data node and
   each OTSi signal is uniquely identified by its otsi-carrier-id,
   which is unique within the scope the OTSiG the OTSi belongs to.
  </t>
  
  <t>
   As described in <xref target="OTSiG"/>, all OTSiGs are described
   in the YANG model by augmenting the "nw:network" data node and each
   OTSiG is uniquely identified by its otsi-group-id, which is unique
   within the network. Each OTSiG also contains a list of the OTSi
   signals belonging to the OTSiG.
  </t>
  
  <t>
   Any OTSi signal is terminated by a transceiver and that is modeled
   as a function of the tunnel termination point (TTP) and a
   "ttp-transceiver" list of transceivers augmenting the
   "tunnel-termination-point".
  </t>
  
  <t>
   The relationship between OTSi and the related transceiver is
   provided in the YANG model by the containers "incoming-otsi" for the
   OTSi received by the transceiver's receiver and "outgoing-otsi" for
   the OTSi generated by the transceiver's transmitter.
  </t>
  
  <t>
   As described in <xref target="sect-2.6"/>, transponders are usually
   used to terminate a layer 0 tunnel. But, they also can be used to
   regenerate the signal and form a 3R regenarator. No new entity is
   needed in the model since 3R functionality is provided by an optical
   transponder pair. The YANG model provides two attributes related to
   3R regenerators: "supported-termination-type" and
   "supported-3r-mode".
  </t>
  
  <t>
   supported-termination-type is describing if an optical transponder
   is supporting tunnel termination only, or 3R regenerator only, or
   both.
  </t>
  
  <t>
   supported-3r-mode gives the configuration of transponder pair
   providing the 3R functionality, if back-to-back (see
   <xref target="Figure-x"/>) or
   Cross-3R (see <xref target="Figure-y"/>). 
  </t>
  
  <t>
   The model also provides a "regen-group" list and each list entry
   represents a group of transponders that support the 3R
   functionality. "transponder-ref" is pointing to the transponders
   belonging to any specific group.
  </t>
  
  <t>
   The data node "inter-layer-sequence-number" augments the termination
   point attribute to describe additional constraints between a client
   layer Link Termination Point (LTP), e.g., a muxponder port and a
   server layer LTP. 
  </t>
  
  <t>
   To improve scalability, the model is defining templates for both,
   "roadm-path-impairments-set", the list of the set of optical
   impairments related to ROADM paths (express, add and drop paths) and
   "explicit-transceiver-mode",the list of optical parameters related
   to a transceiver's explicit mode providing the capability attributes
   and optical impairment limits of an explicit transceiver mode.
   These templates are also defined as "network" augmentation.
  </t>
  
  <t>
   As stated in <xref target="transponders"/>, the model defines three
   types of approaches to describes the transceiver capabilities
   (called "modes"):
  </t>

  <t>
    <list style="symbols"><?rfc subcompact="yes"?>
      <t>Standard Modes</t>
      <t>Organizational Modes</t>
      <t>Explicit Modes</t>
    <?rfc subcompact="no"?>
    </list>
  </t>

  
  <t>
   These different modes (described in <xref target="standard-modes"/>,
   <xref target="organizational-modes"/>, and
   <xref target="explicit-modes"/>) are defined under the "transponders"
   presence container augmenting the data node "node" as defined in
   <xref target="RFC8345"/>. If present, this container will indicate
   that the set of transponders/transceivers in a node is described
   with all the impairments attribute depending on the supported mode
   type of any specific transponder. The YANG model permits to describe
   the transponder capabilities in a mixed way (a transceiver can
   support more than one mode out of the three mode types). 
  </t>
  
  <t>
   <xref target="sect-2.3"/> followed by <xref target="MC"/>, and
   <xref target="sect-2.3.4"/> describe the OMS MCG and the OTS MCG
   and the model represents this entity as a WDM TE-link
   interconnecting two WDM-TE-nodes. The model augments the
   te-link-attributes defined in <xref target="RFC8795"/> with the
   optical impairments for the WDM TE-link of the layer-0 topology
   related to a specific network controller domain.   
  </t>
  
  <t>
   As described in detail in <xref target="sect-2.9"/>, the optical
   impairments imposed by passive or active optical ROADM components
   for the three different ROADM path types have to be taken into
   account when an OTSi signal crosses a ROADM node.
   The following two entities defined in <xref target="RFC8795"/> are
   used to describe the optical impairments for the 3 MC path types:
   "connectivity-matrix" for express paths and
   "local-link-connectivity-list" for Add/Drop paths crossing the
   ROADM.
  </t>
  
  <t>
   A list of optical impairment sets "roadm-path-impairments-set" is
   defined under "templates", and this parameter set list entries will
   contain the optical impairments for express, add, and drop paths.
  </t>
  
  <t>
   The connectivity-matrix is augmented with the optical impairment
   sets for the ROADM's express-path contained in the
   "roadm-path-impairments-set", while the LLCL is augmented with the
   optical impairment sets contained in the
   "roadm-path-impairments-set" for the ROADM's add-path and drop-path
   by using leafref "add-path-impairments-set" and leafref
   "drop-path-impairments-set". 
  </t>
  
  <t>
   In case OTSi protection is supported, a list of additional line LTPs
   is defined in the model to represent potential connectivity between
   an add-drop LTP/TTP and multiple line LTPs including the related
   optical impairments. See <xref target="Protection UC (ii)"/> for
   more details).
   Additional OTSi protection architectures are described in detail in
   <xref target="Protection UC (i)"/> and
   <xref target="Protection UC (iii)"/>.
  </t>

  </section>
  
  </section>

  <section title="Security Considerations" anchor="sect-5">

  <t>
   This section is based on the template in Section 3.7 of
   <xref target="I-D.ietf-netmod-rfc8407bis"/>.
  </t>

  <t>
   The "ietf-optical-impairment-topology" YANG module defines a data
   model that is designed to be accessed via YANG-based management
   protocols, such as NETCONF <xref target="RFC6241"/> and RESTCONF
   <xref target="RFC8040"/>. These YANG-based management protocols
  </t>
   
  <ol type="(%d)">
    <li>
      have to use a secure transport layer (e.g., SSH
      <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC
      <xref target="RFC9000"/> and
    </li>
    <li>
      have to use mutual authentication.
    </li>
  </ol>

  <t>
   The Network Configuration Access Control Model (NACM)
   <xref target="RFC8341"/> provides the means to restrict access for
   particular NETCONF or RESTCONF users to a preconfigured subset of
   all available NETCONF or RESTCONF protocol operations and content.
  </t>
  
  <t>
   There are no particularly sensitive readable data nodes.
  </t>
  
  <t>
   This YANG module uses groupings from other YANG modules that define
   nodes that may be considered sensitive or vulnerable in network
   environments. Refer to the Security Considerations of
   <xref target="I-D.ietf-ccamp-rfc9093-bis"/> for information as to
   which nodes may be considered sensitive or vulnerable in network
   environments.
  </t>
  
  <t>
   Finally, the YANG module described in this document augments the
   "ietf-network" YANG module <xref target="RFC8345"/> and the
   "ietf-te-topology" YANG module <xref target="RFC8795"/> by adding
   data nodes. The security considerations for the subtrees described
   in those RFCs apply equally to the new data nodes that this module
   adds.
  </t>

<!--
  <t>
   The YANG module specified in this document defines a schema for data
   that is designed to be accessed via network management protocols
   such as NETCONF <xref target="RFC6241"/> or RESTCONF
   <xref target="RFC8040"/>. The lowest NETCONF layer is the secure
   transport layer, and the mandatory-to-implement secure transport is
   Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF
   layer is HTTPS, and the mandatory-to-implement secure transport is
   TLS <xref target="RFC8446"/>.
  </t>
  
  <t>
   The Network Configuration Access Control Model (NACM)
   <xref target="RFC8341"/> provides the means to restrict access for
   particular NETCONF or RESTCONF users to a preconfigured subset of
   all available NETCONF or RESTCONF protocol operations and content.
  </t>
  
  <t>
   The YANG module specified in this document imports the ietf-network
   and ietf-network-topology modules defined in
   <xref target="RFC8345"/>. This YANG module augments te-topology
   defined in <xref target="RFC8795"/> and consequently inherits
   te-topology subtrees and data nodes and their potential
   sensitivities and vulnerabilities. Therefore, the security
   considerations from <xref target="RFC8345"/> also apply to the YANG
   module defined in this document.
  </t>
  
  <t>
   The data nodes defined in this YANG module are not writable/
   creatable/deletable (i.e., "config true", which is the default) and
   are therefore only readable  (i.e., config false). Although the data
   nodes are not susceptible to write operations or attacks (for
   instance, thought "edit-config"), some data nodes accessible for
   reading might be considered sensitive or prone to vulnerabilities as
   they expose network topology information, which may be confidential
   information for some operators. Therefore, it is critical to manage
   access to these readable nodes carefully (for instance, through
   "get", "get-config", or "notification" commands) to safeguard them.
  </t>
  
  <t>
   These are the subtrees and data nodes and their
   sensitivity/vulnerability:
  </t>

  <t>
    <dl newline="true">
      <dt>/nw:networks/nw:network/nw:network-types/tet:te-topology</dt>
      <dd>
        Unauthorized access to this subtree can disclose the TE
        topology type.
      </dd>
      
      <dt>/nw:networks/tet:te</dt>
      <dd>
        Unauthorized access to this subtree can disclose the TE node
        templates and TE link templates.
      </dd>
      
      <dt>/nw:networks/nw:network</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        topology-wide configurations, including the TE topology ID, the
        topology-wide policies, and the topology geolocation.
      </dd>
      
      <dt>/nw:networks/nw:network/nw:node</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE nodes.
      </dd>
      
      <dt>/nw:networks/nw:network/nt:link/tet:te</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE links.
      </dd>
      
      <dt>/nw:networks/nw:network/nw:node/nt:termination-point</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE link termination points.
      </dd>
      
      <dt>/nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE link attributes.
      </dd>
      
      <dt>/nw:networks/nw:network/nw:node/tet:te/tet:tunnel-termination-point</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE link tunnel termination
        points.
      </dd>
      
      <dt>/nw:networks/nw:network/nw:node/tet:te/tet:te-node-attributes</dt>
      <dd>
        Unauthorized access to this subtree can disclose the
        operational state information of TE node attributes.
      </dd>
    </dl>
  </t>
-->

  </section>

  <section title="IANA Considerations" anchor="sect-6">
  <t>
   This document registers the following namespace URIs in the IETF XML
   registry <xref target="RFC3688"/>:
  </t>

  <figure><artwork><![CDATA[
--------------------------------------------------------------------
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.
--------------------------------------------------------------------
]]></artwork>
  </figure>
  <t>
   This document registers the following YANG module in the YANG
   Module Names registry <xref target="RFC7950"/>:</t>

  <figure><artwork><![CDATA[
--------------------------------------------------------------------
name:      ietf-optical-impairment-topology
namespace: urn:ietf:params:xml:ns:yang:ietf-optical-impairment-
topology
prefix:    oit
maintained by IANA? N
reference: RFC XXXX (TDB)
--------------------------------------------------------------------
]]></artwork>
  </figure>
  </section>

  <section title="Acknowledgments" anchor="sect-7">
  <t>
   We thank Daniele Ceccarelli and Oscar G. De Dios for useful
   discussions and motivation for this work.
  </t>

  </section>

  </middle>

  <back>
  
  <references title="Normative References">

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3688.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7950.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8341.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8345.xml"/>
<!--
  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8776.xml"/>
-->
  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-rfc8776-update.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8795.xml"/>

  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ccamp-rfc9093-bis.xml"/>

  <reference anchor="G.680">
   <front>
   <title>Physical transfer functions of optical network elements
   </title>
   <author>
   </author>
   <date month="July" year="2007"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.680"/>
  </reference>

  <reference anchor="G.694.1">
   <front>
   <title>Spectral grids for WDM applications: DWDM frequency grid
   </title>
   <author>
   </author>
   <date month="February" year="2012"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.694.1"/>
  </reference>
  
  <reference anchor="G.698.2">
   <front>
   <title>Amplified multichannel dense wavelength division multiplexing
          applications with single channel optical interfaces
   </title>
   <author>
   </author>
   <date month="November" year="2018"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.698.2"/>
  </reference>

  <reference anchor="G.807">
   <front>
   <title>Generic functional architecture of the optical media network
   </title>
   <author>
   </author>
   <date month="February" year="2020"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.807"/>
  </reference>
  
  <reference anchor="G.807 Amd1">
   <front>
   <title>Generic functional architecture of the optical media network
   Amendment 1</title>
   <author>
   </author>
   <date month="January" year="2021"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.807 Amendment 1"/>
  </reference>
  
  <reference anchor="G.959.1">
   <front>
   <title>Optical transport network physical layer interfaces</title>
   <author>
   </author>
   <date month="February" year="2012"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.959.1"/>
  </reference>

  </references>

  <references title="Informative References">
  
  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4252.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6241.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6242.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6566.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7446.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7579.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7581.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7698.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8040.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8340.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8446.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8453.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8792.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8969.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9000.xml"/>

  <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9094.xml"/>

  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ccamp-dwdm-if-param-yang.xml"/>

  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-te-topo-and-tunnel-modeling.xml"/>

  <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-netmod-rfc8407bis.xml"/>


  <reference anchor="G.672">
   <front>
   <title>Characteristics of multi-degree reconfigurable optical
   add/drop multiplexers</title>
   <author>
   </author>
   <date month="October" year="2020"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.672"/>
  </reference>

  <reference anchor="G.873.1 Amd1">
   <front>
   <title>Optical transport network: Linear protection Amendment 1
   </title>
   <author>
   </author>
   <date month="February" year="2022"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.873.1 Amendment 1"/>
  </reference>  
  
   <reference anchor="G.709">
   <front>
   <title>Interfaces for the Optical Transport Network (OTN)</title>
   <author>
   </author>
   <date month="June" year="2016"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.709"/>
  </reference>
  
  <reference anchor="G.872">
   <front>
   <title>Architecture of optical transport networks</title>
   <author>
   </author>
   <date month="December" year="2019"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.872"/>
  </reference>

  <reference anchor="G.798.1">
   <front>
   <title>Types and characteristics of optical transport network
   equipment</title>
   <author>
   </author>
   <date month="January" year="2013"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.798.1"/>
  </reference>
  
  <reference anchor="G.873.1">
   <front>
   <title>Optical transport network: Linear protection</title>
   <author>
   </author>
   <date month="October" year="2017"/>
   </front>
   <seriesInfo name="ITU-T" value="Recommendation G.873.1"/>
  </reference>
  
  <reference anchor="OpenROADM">
   <front>
   <title>OpenROADM Multi-Source Agreement (MSA) - http://openroadm.org
   </title>
   <author/>
   </front>
  </reference>
  
  <reference anchor="CHENTSHO2020" 
    target="https://www.sciencedirect.com/science/article/pii/S1068520020302285">
  <front>
  <title>A framework for analyzing in-band crosstalk accumulation in
    ROADM-based optical networks</title>
  <author fullname="Pema Chentsho"/>
  <author fullname="Luis G.C. Cancela"/>
  <author fullname="Joao J.O. Pires"/>
  <date year="2020"/>
  </front>
  <seriesInfo name="Optical Fiber Technology" value="Volume 57, 2020, Article 102238"/>
  <seriesInfo name="ISSN" value="1068-5200"/>
  <seriesInfo name="DOI" value="10.1016/j.yofte.2020.102238"/>
  </reference>
  
  </references>

  <section anchor="Tree View" numbered="true">
  <name>YANG Model Tree Structure</name>
    
  <sourcecode name="ietf-optical-impairment-topolog.tree" type="text"
  markers="false">
    <![CDATA[
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:
    +--ro otsis!
    |  +--ro otsi-group* [otsi-group-id]
    |     +--ro otsi-group-id    string
    |     +--ro otsi* [carrier-id]
    |        +--ro carrier-id           uint16
    |        +--ro carrier-frequency?   union
    |        +--ro e2e-mc-path-id*      uint16
    +--ro templates
       +--ro roadm-path-impairments-sets
       |  +--ro roadm-path-impairments-set*
       |          [roadm-path-impairments-set-id]
       |     +--ro roadm-path-impairments-set-id    string
       |     +--ro description?                     string
       |     +--ro (impairment-type)?
       |        +--:(roadm-express-path)
       |        |  +--ro roadm-express-path* [frequency-range-id]
       |        |     +--ro frequency-range-id        uint16
       |        |     +--ro frequency-range
       |        |     |  +--ro lower-frequency    frequency-thz
       |        |     |  +--ro upper-frequency    frequency-thz
       |        |     +--ro roadm-pmd?                union
       |        |     +--ro roadm-cd?
       |        |     |       l0-types:decimal-5-or-unknown
       |        |     +--ro roadm-pdl?
       |        |     |       l0-types:power-loss-or-unknown
       |        |     +--ro roadm-inband-crosstalk?
       |        |     |       l0-types:decimal-2-or-unknown
       |        |     +--ro roadm-maxloss?
       |        |             l0-types:power-loss-or-unknown
       |        +--:(roadm-add-path)
       |        |  +--ro roadm-add-path* [frequency-range-id]
       |        |     +--ro frequency-range-id        uint16
       |        |     +--ro frequency-range
       |        |     |  +--ro lower-frequency    frequency-thz
       |        |     |  +--ro upper-frequency    frequency-thz
       |        |     +--ro roadm-pmd?                union
       |        |     +--ro roadm-cd?
       |        |     |       l0-types:decimal-5-or-unknown
       |        |     +--ro roadm-pdl?
       |        |     |       l0-types:power-loss-or-unknown
       |        |     +--ro roadm-inband-crosstalk?
       |        |     |       l0-types:decimal-2-or-unknown
       |        |     +--ro roadm-maxloss?
       |        |     |       l0-types:power-loss-or-unknown
       |        |     +--ro roadm-pmax?
       |        |     |       l0-types:power-dbm-or-unknown
       |        |     +--ro roadm-osnr?
       |        |     |       l0-types:snr-or-unknown
       |        |     +--ro roadm-noise-figure?
       |        |             l0-types:decimal-5-or-unknown
       |        +--:(roadm-drop-path)
       |           +--ro roadm-drop-path* [frequency-range-id]
       |              +--ro frequency-range-id        uint16
       |              +--ro frequency-range
       |              |  +--ro lower-frequency    frequency-thz
       |              |  +--ro upper-frequency    frequency-thz
       |              +--ro roadm-pmd?                union
       |              +--ro roadm-cd?
       |              |       l0-types:decimal-5-or-unknown
       |              +--ro roadm-pdl?
       |              |       l0-types:power-loss-or-unknown
       |              +--ro roadm-inband-crosstalk?
       |              |       l0-types:decimal-2-or-unknown
       |              +--ro roadm-maxloss?
       |              |       l0-types:power-loss-or-unknown
       |              +--ro roadm-minloss?
       |              |       l0-types:power-loss-or-unknown
       |              +--ro roadm-typloss?
       |              |       l0-types:power-loss-or-unknown
       |              +--ro roadm-pmin?
       |              |       l0-types:power-dbm-or-unknown
       |              +--ro roadm-pmax?
       |              |       l0-types:power-dbm-or-unknown
       |              +--ro roadm-ptyp?
       |              |       l0-types:power-dbm-or-unknown
       |              +--ro roadm-osnr?
       |              |       l0-types:snr-or-unknown
       |              +--ro roadm-noise-figure?
       |                      l0-types:decimal-5-or-unknown
       +--ro explicit-transceiver-modes
          +--ro explicit-transceiver-mode*
                  [explicit-transceiver-mode-id]
             +--ro explicit-transceiver-mode-id        string
             +--ro line-coding-bitrate?                identityref
             +--ro bitrate?                            uint16
             +--ro max-diff-group-delay?               decimal-2
             +--ro max-chromatic-dispersion?           decimal-2
             +--ro cd-penalty* [cd-value]
             |  +--ro cd-value         decimal-2
             |  +--ro penalty-value    union
             +--ro max-polarization-mode-dispersion?   decimal-2
             +--ro pmd-penalty* [pmd-value]
             |  +--ro pmd-value        decimal-2
             |  +--ro penalty-value    union
             +--ro max-polarization-dependent-loss
             |       power-loss-or-unknown
             +--ro pdl-penalty* [pdl-value]
             |  +--ro pdl-value        power-loss
             |  +--ro penalty-value    union
             +--ro available-modulation-type?          identityref
             +--ro min-OSNR?                           snr
             +--ro rx-ref-channel-power?               power-dbm
             +--ro rx-channel-power-penalty* [rx-channel-power-value]
             |  +--ro rx-channel-power-value    power-dbm
             |  +--ro penalty-value             union
             +--ro min-Q-factor?                       decimal-2
             +--ro available-baud-rate?                decimal64
             +--ro roll-off?                           decimal64
             +--ro min-carrier-spacing?                frequency-ghz
             +--ro available-fec-type?                 identityref
             +--ro fec-code-rate?                      decimal64
             +--ro fec-threshold?                      decimal64
             +--ro in-band-osnr?                       snr
             +--ro out-of-band-osnr?                   snr
             +--ro tx-polarization-power-difference?   power-ratio
             +--ro polarization-skew?                  decimal-2
  augment /nw:networks/nw:network/nw:node:
    +--ro transponders!
    |  +--ro transponder* [transponder-id]
    |     +--ro transponder-id                   uint32
    |     +--ro termination-type-capabilities?   enumeration
    |     +--ro supported-3r-mode?               enumeration
    |     +--ro transceiver* [transceiver-id]
    |        +--ro transceiver-id                 uint32
    |        +--ro supported-modes!
    |        |  +--ro supported-mode* [mode-id]
    |        |     +--ro mode-id                      string
    |        |     +--ro (mode)
    |        |        +--:(g.698.2)
    |        |        |  +--ro g.698.2
    |        |        |     +--ro standard-mode
    |        |        |     |       standard-mode
    |        |        |     +--ro line-coding-bitrate*
    |        |        |     |       identityref
    |        |        |     +--ro transceiver-tuning-range
    |        |        |     |  +--ro min-central-frequency?
    |        |        |     |  |       frequency-thz
    |        |        |     |  +--ro max-central-frequency?
    |        |        |     |  |       frequency-thz
    |        |        |     |  +--ro transceiver-tunability-granular\
ity?
    |        |        |     |          frequency-ghz
    |        |        |     +--ro tx-channel-power-min?
    |        |        |     |       power-dbm
    |        |        |     +--ro tx-channel-power-max?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-channel-power-min?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-channel-power-max?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-total-power-max?
    |        |        |             power-dbm
    |        |        +--:(organizational-mode)
    |        |        |  +--ro organizational-mode
    |        |        |     +--ro operational-mode
    |        |        |     |       operational-mode
    |        |        |     +--ro organization-identifier
    |        |        |     |       organization-identifier
    |        |        |     +--ro line-coding-bitrate*
    |        |        |     |       identityref
    |        |        |     +--ro transceiver-tuning-range
    |        |        |     |  +--ro min-central-frequency?
    |        |        |     |  |       frequency-thz
    |        |        |     |  +--ro max-central-frequency?
    |        |        |     |  |       frequency-thz
    |        |        |     |  +--ro transceiver-tunability-granular\
ity?
    |        |        |     |          frequency-ghz
    |        |        |     +--ro tx-channel-power-min?
    |        |        |     |       power-dbm
    |        |        |     +--ro tx-channel-power-max?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-channel-power-min?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-channel-power-max?
    |        |        |     |       power-dbm
    |        |        |     +--ro rx-total-power-max?
    |        |        |             power-dbm
    |        |        +--:(explicit-mode)
    |        |           +--ro explicit-mode
    |        |              +--ro transceiver-tuning-range
    |        |              |  +--ro min-central-frequency?
    |        |              |  |       frequency-thz
    |        |              |  +--ro max-central-frequency?
    |        |              |  |       frequency-thz
    |        |              |  +--ro transceiver-tunability-granular\
ity?
    |        |              |          frequency-ghz
    |        |              +--ro tx-channel-power-min?
    |        |              |       power-dbm
    |        |              +--ro tx-channel-power-max?
    |        |              |       power-dbm
    |        |              +--ro rx-channel-power-min?
    |        |              |       power-dbm
    |        |              +--ro rx-channel-power-max?
    |        |              |       power-dbm
    |        |              +--ro rx-total-power-max?
    |        |              |       power-dbm
    |        |              +--ro compatible-modes
    |        |              |  +--ro supported-application-code*
    |        |              |  |       leafref
    |        |              |  +--ro supported-organizational-mode*
    |        |              |          leafref
    |        |              +--ro explicit-transceiver-mode-ref?
    |        |                      leafref
    |        +--ro configured-mode?               union
    |        +--ro line-coding-bitrate?           identityref
    |        +--ro tx-channel-power?
    |        |       power-dbm-or-unknown
    |        +--ro rx-channel-power?
    |        |       power-dbm-or-unknown
    |        +--ro rx-total-power?
    |        |       power-dbm-or-unknown
    |        +--ro outgoing-otsi
    |        |  +--ro otsi-group-ref?   leafref
    |        |  +--ro otsi-ref?         leafref
    |        +--ro incoming-otsi
    |        |  +--ro otsi-group-ref?   leafref
    |        |  +--ro otsi-ref?         leafref
    |        +--ro configured-termination-type?   enumeration
    +--ro regen-groups!
       +--ro regen-group* [group-id]
          +--ro group-id           uint32
          +--ro regen-metric?      uint32
          +--ro transponder-ref*
                  -> ../../../transponders/transponder/transponder-id
  augment /nw:networks/nw:network/nt:link/tet:te
            /tet:te-link-attributes:
    +--ro oms-attributes
       +--ro generalized-snr?        l0-types:snr
       +--ro equalization-mode?      identityref
       +--ro power-param
       |  +--ro nominal-carrier-power?
       |  |       l0-types:power-dbm-or-unknown
       |  +--ro nominal-psd?             l0-types:psd-or-unknown
       +--ro media-channel-groups!
       |  +--ro media-channel-group* [otsi-group-ref]
       |     +--ro otsi-group-ref    leafref
       |     +--ro media-channel* [media-channel-id]
       |        +--ro media-channel-id    int16
       |        +--ro flexi-n?            flexi-n
       |        +--ro flexi-m?            flexi-m
       |        +--ro otsi-ref* [carrier-ref]
       |        |  +--ro carrier-ref        leafref
       |        |  +--ro e2e-mc-path-ref*   leafref
       |        +--ro delta-power?
       |                l0-types:power-ratio-or-unknown
       +--ro oms-elements!
          +--ro oms-element* [elt-index]
             +--ro elt-index                  uint16
             +--ro oms-element-uid?           union
             +--ro reverse-element-ref
             |  +--ro link-ref?
             |  |       -> ../../../../../../../../nt:link/link-id
             |  +--ro oms-element-ref*   leafref
             +--ro (element)
                +--:(amplifier)
                |  +--ro geolocation
                |  |  +--ro altitude?    int64
                |  |  +--ro latitude?    geographic-coordinate-degree
                |  |  +--ro longitude?   geographic-coordinate-degree
                |  +--ro amplifier
                |     +--ro type-variety    string
                |     +--ro operational
                |        +--ro amplifier-element*
                |                [frequency-range-id stage-order]
                |           +--ro frequency-range-id
                |           |       uint16
                |           +--ro frequency-range
                |           |  +--ro lower-frequency    frequency-thz
                |           |  +--ro upper-frequency    frequency-thz
                |           +--ro stage-order
                |           |       uint8
                |           +--ro name?
                |           |       string
                |           +--ro type-variety?
                |           |       string
                |           +--ro power-param
                |           |  +--ro (power-param)
                |           |     +--:(channel-power)
                |           |     |  +--ro nominal-carrier-power
                |           |     |          l0-types:power-dbm-or-u\
nknown
                |           |     +--:(power-spectral-density)
                |           |        +--ro nominal-psd
                |           |                l0-types:psd-or-unknown
                |           +--ro pdl?
                |           |       l0-types:power-loss-or-unknown
                |           +--ro (amplifier-element-type)
                |              +--:(optical-amplifier)
                |              |  +--ro optical-amplifier
                |              |     +--ro actual-gain
                |              |     |       l0-types:power-gain-or-\
unknown
                |              |     +--ro in-voa?
                |              |     |       l0-types:power-loss-or-\
unknown
                |              |     +--ro out-voa?
                |              |     |       l0-types:power-loss-or-\
unknown
                |              |     +--ro tilt-target
                |              |     |       l0-types:decimal-2-or-u\
nknown
                |              |     +--ro total-output-power
                |              |     |       l0-types:power-dbm-or-u\
nknown
                |              |     +--ro raman-direction?
                |              |     |       enumeration
                |              |     +--ro raman-pump* [pump-id]
                |              |        +--ro pump-id      uint16
                |              |        +--ro frequency?
                |              |        |       l0-types:frequency-t\
hz
                |              |        +--ro power?
                |              |                l0-types:decimal-2-o\
r-unknown
                |              +--:(dynamic-gain-equalizer)
                |                 +--ro dynamic-gain-equalizer!
                |                    +--ro media-channel* [flexi-n]
                |                       +--ro flexi-n        flexi-n
                |                       +--ro flexi-m        flexi-m
                |                       +--ro delta-power?
                |                               l0-types:power-ratio\
-or-unknown
                +--:(fiber)
                |  +--ro fiber
                |     +--ro type-variety    string
                |     +--ro length
                |     |       l0-types:decimal-2-or-unknown
                |     +--ro loss-coef
                |     |       l0-types:decimal-2-or-unknown
                |     +--ro total-loss?
                |     |       l0-types:power-loss-or-unknown
                |     +--ro pmd?
                |     |       l0-types:decimal-2-or-unknown
                |     +--ro conn-in?
                |     |       l0-types:power-loss-or-unknown
                |     +--ro conn-out?
                |             l0-types:power-loss-or-unknown
                +--:(concentrated-loss)
                   +--ro concentrated-loss
                      +--ro loss    l0-types:power-loss-or-unknown
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point:
    +--ro ttp-transceiver* [transponder-ref transceiver-ref]
       +--ro transponder-ref
       |       -> ../../../../transponders/transponder/transponder-id
       +--ro transceiver-ref    leafref
  augment /nw:networks/nw:network/nw:node/nt:termination-point:
    +--ro protection-type?   identityref
  augment /nw:networks/nw:network/nw:node/nt:termination-point
            /tet:te:
    +--ro inter-layer-sequence-number?   uint32
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices:
    +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:information-source-entry/tet:connectivity-matrices
            /tet:connectivity-matrix:
    +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices:
    +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix:
    +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:from:
    +--ro additional-ltp* [ltp-ref]
       +--ro ltp-ref
       |       -> ../../../../../../../nt:termination-point/tp-id
       +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:te-node-attributes/tet:connectivity-matrices
            /tet:connectivity-matrix/tet:to:
    +--ro additional-ltp* [ltp-ref]
       +--ro ltp-ref
       |       -> ../../../../../../../nt:termination-point/tp-id
       +--ro roadm-path-impairments-set?   leafref
  augment /nw:networks/nw:network/nw:node/tet:te
            /tet:tunnel-termination-point
            /tet:local-link-connectivities:
    +--ro add-path-impairments-set?    leafref
    +--ro drop-path-impairments-set?   leafref
  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-set?    leafref
    +--ro drop-path-impairments-set?   leafref
    +--ro llc-transceiver* [ttp-transponder-ref ttp-transceiver-ref]
    |  +--ro ttp-transponder-ref
    |  |       -> ../../../../ttp-transceiver/transponder-ref
    |  +--ro ttp-transceiver-ref
    |  |       -> ../../../../ttp-transceiver/transceiver-ref
    |  +--ro is-allowed?                  boolean
    |  +--ro add-path-impairments-set?    leafref
    |  +--ro drop-path-impairments-set?   leafref
    +--ro additional-ltp* [ltp-ref]
       +--ro ltp-ref
       |       -> ../../../../../../nt:termination-point/tp-id
       +--ro add-path-impairments-set?    leafref
       +--ro drop-path-impairments-set?   leafref
]]>
  </sourcecode>

  </section>

  <section anchor="JSON Examples" numbered="true">
  <name>JSON Code Examples for Optical Protection Uses Cases</name>
  
  <ol type="(%d)" group="JSON examples">
    <li>
      JSON example for use case in
      <xref target="Protection UC (i)"/> with full and with restricted
      connectivity:
    </li>
  </ol>
  
  <t>
   The JSON example below addresses the optical protection use case
   for TTPs associated with local optical transponders (integrated
   WDM-TE-node):
  </t>
  
  <t>
   <ul spacing="compact">
     <li>
       where full connectivity exists between the ROADM add-drop ports
       and the ROADM ports for the different ROADM degrees illustrated
       in <xref target="JSON_Example_1a"/> below.
     </li>
     <li>
       where restricted connectivity exists between the ROADM add-drop
       ports and the ROADM ports for the different ROADM degrees
       illustrated in <xref target="JSON_Example_1b"/> below.
     </li>   
   </ul>
  </t>
  
  <t>
   Note that <xref target="JSON_Example_1a"/> and
   <xref target="JSON_Example_1b"/> illustrate the connectivity for a
   single TTP only, i.e., the figures are not showing TTP-1, TTP-2,
   TTP-3, and TTP-4, which are used in the JSON code example below.
  </t>
  
  <t>
   The connectivity is reflected in the local-link-connectivities
   between the TTP associated with the transceiver of the local OT
   and the LTPs that can be reached including the optical impairments
   for the different paths.
  </t>

  <figure align="center" title="Protected TTP with Full Connectivity
    between ROADM Add-Drop Ports and ROADM Degree Ports"
    anchor="JSON_Example_1a">
    <artwork><![CDATA[

   +--------------------------------------------------------------+
   |                                       ROADM                  |
   |                          +--------------------------------+  |
   |  Local OT     Splitter   |                        ___     |  |
   |  +-------+   +-------+  AD1      ___             |   \  Line |
   |  |    TTP|   |    ---o-->o-     /   |       /----o    | LTP 1|
   |  |  +----|   |   /   |   | \   |    o------/     | 1  o------o->
 --o->|  | Tx o-->o--o  5 |   |  \  |    |           -o    |   |  |
   |  |  +----|   |   \   |  AD2  --o  4 o-\        / |___/    |  |
 <-o--|  | Rx o   |    ---o-->o-    |    |  \      /       DEG1|  |
   |  |  +----|   +-------+   | \   |    o-  \    /    ___     |  |
   |  |       |               |  |   \___| \  \  /    |   \  Line |
   |  +-------+      internal |  |          \  \------o    | LTP 2|
   |                 AD ports |  |           \ /      | 2  o------o->
   |                          |  |    ___     \   /---o    |   |  |
   |                          o  |   /   |   / \ /    |___/    |  |
   |                          |  |  |    o--/   \          DEG2|  |
   |                          |   \ |    |     / \     ___     |  |
   |                          |    -o  6 o----/   \   |   \  Line |
   |                          |     |    |         \--o    | LTP 3|
   |                          |     |    o----\       | 3  o------o->
   |                          o      \___|     \------o    |   |  |
   |                          |                       |___/    |  |
   |                          |                            DEG3|  |
   |                          +--------------------------------+  |
   +--------------------------------------------------------------+

]]> </artwork>
  </figure>
    
  <figure align="center" title="Protected TTP with Restricted
    Connectivity between ROADM Add-Drop Ports and ROADM Degree Ports"
    anchor="JSON_Example_1b">
    <artwork><![CDATA[

   +--------------------------------------------------------------+
   |                                       ROADM                  |
   |                          +--------------------------------+  |
   |  Local OT     Splitter   |                        ___     |  |
   |  +-------+   +-------+  AD1       ___            |   \  Line |
   |  |    TTP|   |    ---o-->o--     /   |       /---o    | LTP 1|
   |  |  +----|   |   /   |   |  \   |    o------/    | 1  o------o->
 --o->|  | Tx o-->o--o  5 |   |   ---o  4 |         /-o    |   |  |
   |  |  +----|   |   \   |  AD2     |    o-\      /  |___/    |  |
 <-o--|  | Rx o   |    ---o-->o--     \___|  \    /        DEG1|  |
   |  |  +----|   +-------+   |  \     ___    \   |    ___     |  |
   |  |       |               |   \   /   |    \  |   |   \  Line |
   |  +-------+      internal |    \ |    o-------/   o    | LTP 2|
   |                 AD ports |     -o  6 |      \    | 2  o------o->
   |                          |      |    o-------\---o    |   |  |
   |                          o       \___|        |  |___/    |  |
   |                          |                    |       DEG2|  |
   |                          |                    |   ___     |  |
   |                          |                    |  |   \  Line |
   |                          |                    \--o    | LTP 3|
   |                          |                       | 3  o------o->
   |                          o                       o    |   |  |
   |                          |                       |___/    |  |
   |                          |                            DEG3|  |
   |                          +--------------------------------+  |
   +--------------------------------------------------------------+

]]> </artwork>
  </figure>  <sourcecode type="json" markers="false">
    <![CDATA[
=============== NOTE: '\\' line wrapping per RFC 8792 ===============

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "example:WDM-Network-2",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-optical-impairment-topology:optical-impairment-top\
\ology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "topology-id": "WDM-Network-1"
        },
        "ietf-te-topology:te": {},
        "ietf-optical-impairment-topology:templates": {
          "roadm-path-impairments-sets": {
              "roadm-path-impairments-set": [
                  {
                    "roadm-path-impairments-set-id": "1",
                    "description": "Add path impairments from TTP 1 \
\or TTP 2 to any LTP",
                    
                    "roadm-add-path": [          
                      {
                        "frequency-range-id": 0,
                        "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                        }
                      }
                    ]
                  },
                  {
                    "roadm-path-impairments-set-id": "2",
                     "description": "Add path impairments from TTP 3\
\ or TTP 4 to LTP1 or LTP3, thorugh AD1",
                   
                    "roadm-add-path": [                      
                      {
                        "frequency-range-id": 0,
                          "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                          }
                      }                              
                    ]            
                  },
                  {
                    "roadm-path-impairments-set-id": "3",
                    "description": "Add path impairments from TTP 3 \
\or TTP 4 to LTP1 or LTP2, thorugh AD2",                    
                    
                    "roadm-add-path": [
                      {              
                        "frequency-range-id": 0,
                        "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                        }
                      }
                    ]                            
                  }
              ]
          }
        },
        "node": [
          {
            "node-id": "example:WDM-TE-Node-1",
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "tunnel-termination-point": [
                {
                  "tunnel-tp-id": "MQ==",
                  "protection-type": "ietf-optical-impairment-topolo\
\gy:otsi-protection",
                  "local-link-connectivities": {
                    "is-allowed": true,
                    "ietf-optical-impairment-topology:add-path-impai\
\rments-set": "1"
                  }
                },
                {
                  "tunnel-tp-id": "Mg==",
                  "protection-type": "ietf-optical-impairment-topolo\
\gy:otsi-protection",
                  "local-link-connectivities": {
                    "is-allowed": true,
                    "ietf-optical-impairment-topology:add-path-impai\
\rments-set": "1",
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:LTP-1",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-2"
                          },
                          { 
                            "ltp-ref": "example:LTP-3"
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:LTP-2",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-1"
                          },
                          {
                            "ltp-ref": "example:LTP-3"
                          }
                        ]
                      },
                      {
                      "link-tp-ref": "example:LTP-3",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-1"
                          },
                          {
                            "ltp-ref": "example:LTP-2"
                          }
                        ]
                      }
                    ]
                  }
                },
                {
                  "tunnel-tp-id": "Mw==",
                  "protection-type": "ietf-optical-impairment-topolo\
\gy:otsi-protection",
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:LTP-1",
                        "is-allowed": true,
                        "ietf-optical-impairment-topology:add-path-i\
\mpairments-set": "2",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-3",
                            "add-path-impairments-set": "2"
                          },
                          {
                            "ltp-ref": "example:LTP-2",
                            "add-path-impairments-set": "3"
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:LTP-3",
                        "is-allowed": true,
                        "ietf-optical-impairment-topology:add-path-i\
\mpairments-set": "2",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-1",
                            "add-path-impairments-set": "3"
                          },
                          {
                            "ltp-ref": "example:LTP-2",
                            "add-path-impairments-set": "3"
                          }
                        ]
                      }
                    ]
                  }
                },
                {
                  "tunnel-tp-id": "NA==",
                  "protection-type": "ietf-optical-impairment-topolo\
\gy:otsi-protection",
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:LTP-1",
                        "is-allowed": true,
                        "ietf-optical-impairment-topology:add-path-i\
\mpairments-set": "3",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-3",
                            "add-path-impairments-set": "2"
                          },
                          {
                            "ltp-ref": "example:LTP-2",
                            "add-path-impairments-set": "3"
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:LTP-2",
                        "is-allowed": true,
                        "ietf-optical-impairment-topology:add-path-i\
\mpairments-set": "3",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-1",
                            "add-path-impairments-set": "3"
                          },
                          {
                            "ltp-ref": "example:LTP-3",
                            "add-path-impairments-set": "2"
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:LTP-3",
                        "is-allowed": true,
                        "ietf-optical-impairment-topology:add-path-i\
\mpairments-set": "2",
                        "ietf-optical-impairment-topology:additional\
\-ltp": [
                          {
                            "ltp-ref": "example:LTP-1",
                            "add-path-impairments-set": "3"
                          },
                          {
                            "ltp-ref": "example:LTP-2",
                            "add-path-impairments-set": "3"
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:LTP-1"
              },
              {
                "tp-id": "example:LTP-2"
              },
              {
                "tp-id": "example:LTP-3"
              }
            ]
          }
        ]
      }
    ]
  }
}
    ]]>
  </sourcecode>

  
  <ol type="(%d)" group="JSON examples">
    <li>
      JSON example for use case in
      <xref target="Protection UC (ii)"/> with restricted connectivity:
    </li>
  </ol>
  
  <t>
   The JSON example below addresses the optical protection use case
   where the optical transponder is not part of the WDM-TE-node 
   containing the ROADM function (WDM-TE-node-2) but is part of a
   separate WDM-TE-node (WDM-TE-node-1) containing one or more optical
   transponders (remote OTs).
   As described in <xref target="Protection UC (ii)"/>, a TE-link
   interconnects the remote OT with an add-drop port of WDM-TE-node-2.
   This is illustrated in <xref target="JSON_Example_2"/>.
  </t>

  <t>
   In this use case, the connectivity is reflected in the
   connectivity-matrix describing the connectivity between the LTPs
   representing an add-drop port in WDM-TE-node-2 connected to the
   transceiver of a remote OT and the LTPs associated with the
   different ROADM degrees including the optical impairments for the
   different paths.
  </t>

  <figure align="center" title="JSON Example for Restricted Connectivity
    between ROADM Add-Drop Ports and ROADM Degree Ports"
    anchor="JSON_Example_2">
    <artwork><![CDATA[

  WDM-TE-node 1                   WDM-TE-node 2

               +--------------------------------------------------+
               |  LTP 20                               ___        |
   +-------+   |  +-------+     AD 1  ___             |   \  Line |
   |   TTP1|   |  |    ---o-----     /   |       /----o    | LTP 1|
   |  +----|   |  |   /   |     \   |    o------/     | 1  o------o->
 --o->| Tx o---o->o--o  5 |      \--o    |           -o    |      |
   |  +----|   |  |   \   |         |  4 |          / |___/       |
 <-o--| Rx o   |  |    ---o-\    /--o    |         /         DEG 1|
   |  +----|   |  +-------+  \   |  |    o-       /    ___        |
   |       |   |   Splitter   \  |   \___| \     /    |   \  Line |
   |       |   |  +-------+   |  |          \         o    | LTP 2|
   |   TTP2|   |  |    ---o---|--/           \ /      | 2  o------o->
   |  +----|   |  |   /   |   |       ___     \   /---o    |      |
 --o->| Tx o---o->o--o  5 |    \     /   |   / \ /    |___/       |
   |  +----|   |  |   \   |     \   |    o--/   \           DEG 2 |
 <-o--| Rx o   |  |    ---o--\   \--o    |     / \     ___        |
   |  +----|   |  +-------+   \     |    |    /   \   |   \  Line |
   |       |   |  LTP 30       \----o  6 |   /     \--o    | LTP 3|
   |   TTP3|   |                    |    o--/         | 3  o------o->
   |  +----|   |          /-------->o    |            o    |      |
 --o->| Tx o---o---------/          |    |            |___/       |
   |  +----|   |  LTP 40             \___|                  DEG 3 |
 <-o--| Rx o   |                AD 2                              |
   |  +----|   |                                                  |
   |       |   |                                                  |
   +-------+   |                                                  |
               |                                                  |
               +--------------------------------------------------+

]]> </artwork>
  </figure>
  
  <sourcecode type="json" markers="false">
    <![CDATA[
=============== NOTE: '\\' line wrapping per RFC 8792 ===============

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "example:WDM-Network-2",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-optical-impairment-topology:optical-impairment-top\
\ology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "topology-id": "WDM-Network-1"
        },
        "ietf-te-topology:te": {},
        "ietf-optical-impairment-topology:templates": {
          "roadm-path-impairments-sets": {
              "roadm-path-impairments-set": [
                  {
                    "roadm-path-impairments-set-id": "1",
                    
                    "roadm-add-path": [          
                      {
                        "frequency-range-id": 0,
                        "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                        }
                      }
                    ]
                  },
                  {
                    "roadm-path-impairments-set-id": "2",
                    "description": "Add path impairments from LTP 20\
\ or LTP 30 to LTP 1 or LTP3, through AD1",
                    
                    "roadm-add-path": [                      
                      {
                        "frequency-range-id": 0,
                          "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                          }
                      }                              
                    ]            
                  },
                  {
                    "roadm-path-impairments-set-id": "3",
                    "description": "Add path impairments from LTP 20\
\ or LTP 30 or LTP 40 to LTP 1 or LTP 2, through AD2",
                                        
                    "roadm-add-path": [
                      {              
                        "frequency-range-id": 0,
                        "frequency-range": {
                            "lower-frequency": "191.3",
                            "upper-frequency": "196.1"
                        }
                      }
                    ]                            
                  }
              ]
          }
        },
        "node": [
          {
            "node-id": "example:WDM-TE-Node-1",
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
               "te-node-attributes": {
                  "connectivity-matrices": {
                     "connectivity-matrix": [
                        {           
                            "id": 1,
                            "from": {
                               "tp-ref": "example:20"
                            },
                            "to": {
                               "tp-ref": "example:1",
                               "ietf-optical-impairment-topology:add\
\itional-ltp": [
                                  {
                                    "ltp-ref": "example:1",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  },
                                  {
                                    "ltp-ref": "example:2",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  }
                               ]
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "2"
                        },
                        {
                            "id": 2,
                            "from": {
                               "tp-ref": "example:20"
                            },
                            "to": {
                               "tp-ref": "example:3",
                               "ietf-optical-impairment-topology:add\
\itional-ltp": [
                                  {
                                    "ltp-ref": "example:1",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  },
                                  {
                                    "ltp-ref": "example:2",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  }
                               ]
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "2"
                        },
                        {
                            "id": 3,
                            "from": {
                               "tp-ref": "example:30"
                            },
                            "to": {
                               "tp-ref": "example:1",
                               "ietf-optical-impairment-topology:add\
\itional-ltp": [
                                  {
                                    "ltp-ref": "example:1",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  },
                                  {
                                    "ltp-ref": "example:2",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  }
                               ]
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "2"
                        },
                        {
                            "id": 4,
                            "from": {
                               "tp-ref": "example:30"
                            },
                            "to": {
                               "tp-ref": "example:2",
                               "ietf-optical-impairment-topology:add\
\itional-ltp": [
                                  {
                                    "ltp-ref": "example:1",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "2"
                                  },
                                  {
                                    "ltp-ref": "example:3",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "2"
                                  }
                               ]
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "3"
                        },
                        {
                            "id": 5,
                            "from": {
                               "tp-ref": "example:30"
                            },
                            "to": {
                               "tp-ref": "example:3",
                               "ietf-optical-impairment-topology:add\
\itional-ltp": [
                                  {
                                    "ltp-ref": "example:1",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  },
                                  {
                                    "ltp-ref": "example:2",
                                    "ietf-optical-impairment-topolog\
\y:roadm-path-impairments-set": "3"
                                  }
                               ]
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "2"
                        },
                        {
                            "id": 6,
                            "from": {
                               "tp-ref": "example:40"
                            },
                            "to": {
                               "tp-ref": "example:1"
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "3"
                        },
                        {
                            "id": 7,
                            "from": {
                               "tp-ref": "example:40"
                            },
                            "to": {
                               "tp-ref": "example:2"
                            },
                            "is-allowed": true,
                            "ietf-optical-impairment-topology:roadm-\
\path-impairments-set": "3"
                        }
                     ]
                  }
               }
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:20",
                "ietf-optical-impairment-topology:protection-type": \
\"ietf-optical-impairment-topology:otsi-protection"
              }, 
              {
                "tp-id": "example:30",
                "ietf-optical-impairment-topology:protection-type": \
\"ietf-optical-impairment-topology:otsi-protection"
              }, 
              {
                "tp-id": "example:40"
              }, 
              {
                "tp-id": "example:1",
                "ietf-optical-impairment-topology:protection-type": \
\"ietf-optical-impairment-topology:otsi-protection"
              }, 
              {
                "tp-id": "example:2",
                "ietf-optical-impairment-topology:protection-type": \
\"ietf-optical-impairment-topology:otsi-protection"
              }, 
              {
                "tp-id": "example:3",
                "ietf-optical-impairment-topology:protection-type": \
\"ietf-optical-impairment-topology:otsi-protection"
              } 

            ]

          }
        ]
      }         
    ]
  }
}
    ]]>
  </sourcecode>
  
  </section>
  
  <section anchor="Remote OT configurations" numbered="true">
  <name>Optical Transponders in a Remote Shelf (Remote OTs)</name>
  
  <t>
   <xref target="Figure-Appendix-B"/> illustrates a configuration where
   the optical transponders and the ROADM are located in a different
   WDM-TE-nodes.
  </t>
  
  <figure align="center" title="Optical Transponders in a Remote Shelf
  (Remote OTs)" anchor="Figure-Appendix-B">
    <artwork><![CDATA[

      WDM-TE-node-1                    WDM-TE-node-2
   +----------------+           +--------------------------+
   |     Remote OTs |           |         ROADM            |
   |   +------------+           |     +------------+       |
   |   |            |           | AD  |            |       |
   |   |       +----|           | LTP |            | Line  |
 --o-->|       | Tx o---------->o---->o            | LTP 1 |
   |   | OT 1  +----|           |     |            o-------o<--->
 <-o---|       | Rx o<----------o<----o            |       |
   |   |       +----|           | AD  |            |       |
   |   |            |           | LTP |            |       |
   |   +------------+           |     |            |       |
   |                |           |     |            | Line  |
   |   +------------+           |     |            | LTP 2 |
   |   |            |           | AD  |            o-------o<--->
   |   |       +----|           | LTPs|            |       |
 --o-->|       | Tx o---------->o---->o            |       |
   |   |       +----|           |     |            |       |
 <-o---|       | Rx o<----------o<----o            |       |
   |   | OT 2  +----|           |     |            | Line  |     
 --o-->|       | Tx o---------->o---->o            | LTP 3 |
   |   |       +----|           |     |            o-------o<--->
 <-o---|       | Rx o<----------o<----o            |       |
   |   |       +----|           |     |            |       |
   |   |            |           |     |            |       |
   |   +------------+           |     +------------+       |
   |                |           |                          |
   +----------------+           +--------------------------+
   
]]> </artwork>
  </figure>

  <t>
   As described in <xref target="sect-2.3" />, the external shelf can
   be modeled as WDM-TE-node with termination capability only (not
   switching) and the add/drop link between a remote optical
   transceiver and a ROADM add/drop port can be modeled as a WDM
   TE-link with the same optical impairments as those defined for a
   WDM TE-link between WDM-TE-nodes (OMS MCG).
  </t>
  
  <t>
   If the two WDM-TE-nodes are reported in different network topology
   instances, the plug-id attribute, defined in 
   <xref target="RFC8795"/>, can be used to discover the adjacency for
   add/drop TE-links.
  </t>
  
  <t>
   It is worth noting that there are no standard protocols for
   automatic discovery of the adjacency between an external transceiver
   and a ROADM add/drop port and therefore the information reported in
   the plug-id can be either statically configured or provided through
   vendor-specific discovery mechanisms.
  </t>
  
  <t>
   Each add/drop TE-link carries a single OTSi between the transceiver
   and ROADM add/drop port and one or more OTSis in the reverse
   direction (between the ROADM add/drop and the transceiver).
  </t>

  <t>
   Depending on control architecture (e.g., when the two WDM-TE-nodes
   are reported in different network topology instances by different
   controllers), the controller reporting the WDM-TE-node, abstracting
   the external OT shelf, may be not able to provide the information
   about the end-to-end MC configuration (i.e.,flexi-n and flexi-m)
   nor of all the received OTSis, within the end-to-end MC, besides the
   configured incoming OTSi, since the end-to-end MC configuration
   depends on how the ROADM network is configured and the remote OT
   shelf is not aware of that.
  </t>

  <t>
   In this case only the incoming-otsi and outgoing-otsi can be
   reported within an end-to-end MC with an unspecified frequency-slot
   (i.e., without reporting flexi-n and flexi-m configuration of the
   end-to-end MC).
  </t>
  
  <t>
   When an OTSiG has more than one OTSi, its OTSis are carried by
   different parallel add/drop TE-links. In order to represent the fact
   that these OTSis are co-routed, the add/drop TE-links are bundled
   together in a bundled add/drop TE-link. The finest granularity for
   the bundled add/drop TE-link is the set of all the add/drop TE-links
   terminating on the same OT.
  </t>

  <t>
   For example, in <xref target="Figure-Appendix-B"/>, it is possible
   to define two bundled add/drop TE-links, one for OT1 and one for OT2
   or just one add/drop TE-link both OTs.
  </t>

  <t>
   The model for a bundled add/drop TE-link and the relationship with
   its component TE-links is already defined in the bundled-links
   container of <xref target="RFC8795"/>.
  </t>

  <t>
   In the general case, the optical impairments and connectivity
   constraints are reported for each add/drop TE-link and therefore no
   optical impairments are reported in the bundled add/drop TE-link
   that is used just to model the co-routing aspects of the OTSis
   belonging to the same OTSiG.
  </t>

  <t>
   The per-transceiver Local Link Connectivity (LLC) is used in the
   WDM-TE-node which abstracts the remote OT shelf (e.g., WDM-TE-node-1
   in <xref target="Figure-Appendix-B"/>), to represent the association
   between each transceiver and each LTP terminating the add/drop
   TE-link which models the transceiver port.
  </t>

  <t>
   The connectivity matrix in the WDM-TE-node which abstract the edge
   ROADM (e.g., WDM-TE-node-2 in <xref target="Figure-Appendix-B"/>)
   references the LTPs terminating the add/drop TE-links which models
   the ROADM add/drop ports.
  </t>
  
  <section anchor="JSON Example - Remote OTs" numbered="true">
  <name>JSON Examples for Optical Transponders in a Remote Shelf
   (Remote OTs)</name>
 
  <t>
   The JSON example below describes a topology where the optical
   transponders are located in a remote WDM-TE-node as depicted in
   <xref target="Figure-Appendix-B"/>).
  </t>
  
  <t>
   Line-folding as defined in <xref target="RFC8792"/> has been used
   for the JSON code example below.
  </t>

  <sourcecode type="json" markers="false">
    <![CDATA[
=============== NOTE: '\\' line wrapping per RFC 8792 ===============

{
  "ietf-network:networks": {
    "network": [
      {
        "network-id": "example:WDM-Network-1",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-optical-impairment-topology:optical-impairment-top\
\ology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "topology-id": "example:WDM-Network-1"
        },
        "ietf-te-topology:te": {},
        "ietf-optical-impairment-topology:otsis": {
          "otsi-group": [
            {
              "otsi-group-id": "Red OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Red OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            }
          ]
        },
        "node": [
          {
            "node-id": "example:WDM-TE-Node-1",
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "ietf-te-topology:tunnel-termination-point": [
                {
                  "tunnel-tp-id": "AQ==",
                  "ietf-optical-impairment-topology:ttp-transceiver"\
\: [
                    {
                      "transponder-ref": 1,
                      "transceiver-ref": 1
                    }
                  ],
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:1",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 1,
                            "ttp-transceiver-ref": 1,
                            "is-allowed": true
                          }
                        ]
                      }
                    ]
                  }
                },
                {
                  "tunnel-tp-id": "Ag==",
                  "ietf-optical-impairment-topology:ttp-transceiver"\
\: [
                    {
                      "transponder-ref": 2,
                      "transceiver-ref": 1
                    },
                    {
                      "transponder-ref": 2,
                      "transceiver-ref": 2
                    }
                  ],
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:2",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 2,
                            "ttp-transceiver-ref": 1,
                            "is-allowed": true
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:3",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 2,
                            "ttp-transceiver-ref": 2,
                            "is-allowed": true
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "AQ=="
                }
              },
              {
                "tp-id": "example:2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "Ag=="
                }
              },
              {
                "tp-id": "example:3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "Awo="
                }
              },
              {
                "tp-id": "example:23",
                "ietf-te-topology:te-tp-id": 23
              }
            ],
            "ietf-optical-impairment-topology:transponders": {
              "transponder": [
                {
                  "transponder-id": 1,
                  "transceiver": [
                    {
                      "transceiver-id": 1,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Red OTSiG (Forward)",
                        "otsi-ref": 1
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "otsi-ref": 1
                      }
                    }
                  ]
                },
                {
                  "transponder-id": 2,
                  "transceiver": [
                    {
                      "transceiver-id": 1,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "otsi-ref": 1
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "otsi-ref": 1
                      }
                    },
                    {
                      "transceiver-id": 2,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "otsi-ref": 2
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "otsi-ref": 2
                      }
                    }
                  ]
                }
              ]
            }
          }
        ],
        "ietf-network-topology:link": [
          {
            "link-id": "example:Add-Drop-Link-1-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": 1, 
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-1-Reverse",
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 2, 
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": 2, 
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Reverse",
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                    "media-channel-groups": {
                      "media-channel-group": [
                        {
                          "otsi-group-ref": "Green OTSiG (Reverse)",
                          "media-channel": [
                            {
                              "media-channel-id": 3, 
                              "otsi-ref": [
                                {
                                  "carrier-ref": 1
                                } 
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:3"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": 4, 
                            "otsi-ref": [
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Reverse",
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:3"
            },
            "ietf-te-topology:te": {
              "ietf-te-topology:te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 5, 
                            "otsi-ref": [
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Bundled-Link-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:23"
            },
            "ietf-te-topology:te": {
              "bundled-links": {
                "bundled-link": [
                  {
                    "sequence": 1,
                    "src-tp-ref": "example:2"
                  },
                  {
                    "sequence": 2,
                    "src-tp-ref": "example:3"
                  }
                ]
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Bundled-Link-Reverse",
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:23"
            },
            "ietf-te-topology:te": {
              "bundled-links": {
                "bundled-link": [
                  {
                    "sequence": 1,
                    "des-tp-ref": "example:2"
                  },
                  {
                    "sequence": 2,
                    "des-tp-ref": "example:3"
                  }
                ]
              }
            }
          }
        ]
      },
      {
        "network-id": "example:WDM-Network-2",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-optical-impairment-topology:optical-impairment-top\
\ology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "topology-id": "example:WDM-Network-2"
        },
        "ietf-te-topology:te": {},
        "ietf-optical-impairment-topology:otsis": {
          "otsi-group": [
            {
              "otsi-group-id": "Red OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Red OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            }
          ]
        },
        "node": [
          {
            "node-id": "example:WDM-TE-Node-2",
            "ietf-te-topology:te-node-id": "192.0.2.2",
            "ietf-te-topology:te": {},
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:4",
                "ietf-te-topology:te-tp-id": 4,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "AQ=="
                }
              },
              {
                "tp-id": "example:5",
                "ietf-te-topology:te-tp-id": 5,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "Ag=="
                }
              },
              {
                "tp-id": "example:6",
                "ietf-te-topology:te-tp-id": 6,
                "ietf-te-topology:te": {
                  "inter-domain-plug-id": "Awo="
                }
              }
            ]
          }
        ],
        "ietf-network-topology:link": [
          {
            "link-id": "example:Add-Drop-Link-1-Forward",
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:4"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Forward)",    \
\          
                        "media-channel": [
                          {
                            "media-channel-id": -10, 
                            "flexi-n": -10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-1-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:4"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Forward",
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:5"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": -20, 
                            "flexi-n": -20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:5"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Forward",
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:6"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": -20, 
                            "flexi-n": -20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:6"
            },
            "ietf-te-topology:te": {
              "ietf-te-topology:te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ] 
                  }
                }
              }
            }
          }
        ]
      },
      {
        "network-id": "example:WDM-Network-Complete",
        "network-types": {
          "ietf-te-topology:te-topology": {
            "ietf-optical-impairment-topology:optical-impairment-top\
\ology": {}
          }
        },
        "ietf-te-topology:te-topology-identifier": {
          "topology-id": "example:WDM-Network-Complete"
        },
        "ietf-te-topology:te": {},
        "ietf-optical-impairment-topology:otsis": {
          "otsi-group": [
            {
              "otsi-group-id": "Red OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Red OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Forward)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            },
            {
              "otsi-group-id": "Green OTSiG (Reverse)",
              "otsi": [
                {
                  "carrier-id": 1
                },
                {
                  "carrier-id": 2
                }
              ]
            }
          ]
        },
        "node": [
          {
            "node-id": "example:WDM-TE-Node-1",
            "ietf-te-topology:te-node-id": "192.0.2.1",
            "ietf-te-topology:te": {
              "ietf-te-topology:tunnel-termination-point": [
                {
                  "tunnel-tp-id": "AQ==",
                  "ietf-optical-impairment-topology:ttp-transceiver"\
\: [
                    {
                      "transponder-ref": 1,
                      "transceiver-ref": 1
                    }
                  ],
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:1",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 1,
                            "ttp-transceiver-ref": 1,
                            "is-allowed": true
                          }
                        ]
                      }
                    ]
                  }
                },
                {
                  "tunnel-tp-id": "Ag==",
                  "ietf-optical-impairment-topology:ttp-transceiver"\
\: [
                    {
                      "transponder-ref": 2,
                      "transceiver-ref": 1
                    },
                    {
                      "transponder-ref": 2,
                      "transceiver-ref": 2
                    }
                  ],
                  "local-link-connectivities": {
                    "is-allowed": false,
                    "local-link-connectivity": [
                      {
                        "link-tp-ref": "example:2",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 2,
                            "ttp-transceiver-ref": 1,
                            "is-allowed": true
                          }
                        ]
                      },
                      {
                        "link-tp-ref": "example:3",
                        "ietf-optical-impairment-topology:llc-transc\
\eiver": [
                          {
                            "ttp-transponder-ref": 2,
                            "ttp-transceiver-ref": 2,
                            "is-allowed": true
                          }
                        ]
                      }
                    ]
                  }
                }
              ]
            },
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:23",
                "ietf-te-topology:te-tp-id": 23
              }
            ],
            "ietf-optical-impairment-topology:transponders": {
              "transponder": [
                {
                  "transponder-id": 1,
                  "transceiver": [
                    {
                      "transceiver-id": 1,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Red OTSiG (Forward)",
                        "otsi-ref": 1
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "otsi-ref": 1
                      }
                    }
                  ]
                },
                {
                  "transponder-id": 2,
                  "transceiver": [
                    {
                      "transceiver-id": 1,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "otsi-ref": 1
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "otsi-ref": 1
                      }
                    },
                    {
                      "transceiver-id": 2,
                      "outgoing-otsi": {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "otsi-ref": 2
                      },
                      "incoming-otsi": {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "otsi-ref": 2
                      }
                    }
                  ]
                }
              ]
            }
          },
          {
            "node-id": "example:WDM-TE-Node-2",
            "ietf-te-topology:te-node-id": "192.0.2.2",
            "ietf-te-topology:te": {},
            "ietf-network-topology:termination-point": [
              {
                "tp-id": "example:1",
                "ietf-te-topology:te-tp-id": 1,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:2",
                "ietf-te-topology:te-tp-id": 2,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:3",
                "ietf-te-topology:te-tp-id": 3,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:4",
                "ietf-te-topology:te-tp-id": 4,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:5",
                "ietf-te-topology:te-tp-id": 5,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:6",
                "ietf-te-topology:te-tp-id": 6,
                "ietf-te-topology:te": {}
              },
              {
                "tp-id": "example:56",
                "ietf-te-topology:te-tp-id": 56,
                "ietf-te-topology:te": {}
              }
            ]
          }
        ],
        "ietf-network-topology:link": [
          {
            "link-id": "example:Add-Drop-Link-1-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:1"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:4"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": -10, 
                            "flexi-n": -10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-1-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:4"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:1"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",    \
\          
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-1",
              "source-tp": "example:2"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:5"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": -20, 
                            "flexi-n": -20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-2-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:5"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:2"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ] 
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Forward",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:4"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-2",
              "dest-tp": "example:6"
            },
            "ietf-te-topology:te": {
              "te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Green OTSiG (Forward)",
                        "media-channel": [
                          {
                            "media-channel-id": -20, 
                            "flexi-n": -20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          },
          {
            "link-id": "example:Add-Drop-Link-3-Reverse",
            "source": {
              "source-node": "example:WDM-TE-Node-2",
              "source-tp": "example:6"
            },
            "destination": {
              "dest-node": "example:WDM-TE-Node-1",
              "dest-tp": "example:3"
            },
            "ietf-te-topology:te": {
              "ietf-te-topology:te-link-attributes": {
                "ietf-optical-impairment-topology:oms-attributes": {
                  "media-channel-groups": {
                    "media-channel-group": [
                      {
                        "otsi-group-ref": "Red OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 10, 
                            "flexi-n": 10,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              }
                            ]
                          }
                        ]
                      },
                      {
                        "otsi-group-ref": "Green OTSiG (Reverse)",
                        "media-channel": [
                          {
                            "media-channel-id": 20, 
                            "flexi-n": 20,
                            "otsi-ref": [
                              {
                                "carrier-ref": 1
                              },
                              {
                                "carrier-ref": 2
                              }
                            ]
                          }
                        ]
                      }
                    ]  
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
}
    ]]>
  </sourcecode>
  
  </section>
  
  </section>

  
  <section anchor="Contributors" numbered="false">
  <name>Contributors</name>
    <t>Thanks to all contributors.</t>

    <contact fullname="Aihua Guo" initials="A" surname="Guo">
      <organization>Huawei Technologies</organization>
      <address>
        <email>aguo@futurewei.com</email>
      </address>
    </contact>

    <contact fullname="Jonas Martensson" initials="J" surname="Martensson">
      <organization>Smartoptics</organization>
      <address>
        <email>jonas.martensson@smartoptics.com</email>
      </address>
    </contact>

    <contact fullname="Young Lee" initials="Y" surname="Lee">
      <organization>Samsung Electronics</organization>
      <address>
        <email>younglee.tx@gmail.com</email>
      </address>
    </contact>
    
    <contact fullname="Haomian Zheng" initials="H" surname="Zheng">
      <organization>Huawei Technologies</organization>
      <address>
        <email>zhenghaomian@huawei.com</email>
      </address>
    </contact>
    
    <contact fullname="Nicola Sambo" initials="N" surname="Sambo">
      <organization>Scuola Superiore Sant'Anna</organization>
      <address>
        <email>nicosambo@gmail.com</email>
      </address>
    </contact>
    
     <contact fullname="Giovanni Martinelli" initials="G" surname="Martinelli">
      <organization>Cisco</organization>
      <address>
        <email>giomarti@cisco.com</email>
      </address>
    </contact>
    
    <contact fullname="Jean-Luc Auge" initials="JL" surname="Auge">
      <organization>Orange</organization>
      <address>
        <email>jeanluc.auge@orange.com</email>
      </address>
    </contact>
    
    <contact fullname="Julien Meuric" initials="J" surname="Meuric">
      <organization>Orange</organization>
      <address>
        <email>julien.meuric@orange.com</email>
      </address>
    </contact>
    
    <contact fullname="Victor Lopez" initials="V" surname="Lopez">
      <organization>Nokia</organization>
      <address>
        <email>Victor.Lopez@nokia.com</email>
      </address>
    </contact>
    
    <contact fullname="Enrico Griseri" initials="E" surname="Griseri">
      <organization>Nokia</organization>
      <address>
        <email>Enrico.Griseri@nokia.com</email>
      </address>
    </contact>
    
    <contact fullname="Gert Grammel" initials="G" surname="Grammel">
      <organization>Juniper</organization>
      <address>
        <email>ggrammel@juniper.net</email>
      </address>
    </contact>
    
    <contact fullname="Roberto Manzotti" initials="R" surname="Manzotti">
      <organization>Cisco</organization>
      <address>
        <email>rmanzott@cisco.com</email>
      </address>
    </contact>

  </section>

  </back>

  </rfc>
  
