module ietf-optical-impairment-topology {
yang-version 1.1;
namespace "urn:ietf:params:xml"
+ ":ns:yang:ietf-optical-impairment-topology";
prefix "optical-imp-topo";
import ietf-network {
prefix "nw";
}
import ietf-network-topology {
prefix "nt";
}
import ietf-te-topology {
prefix "tet";
}
import ietf-layer0-types {
prefix "l0-types";
}
organization
"IETF CCAMP Working Group";
contact
"WG Web:
WG List:
Editor: Young Lee
Editor: Haomian Zheng
Editor: Nicola Sambo
Editor: Victor Lopez
Editor: Gabriele Galimberti
Editor: Giovanni Martinelli
Editor: Jean-Luc Auge
Editor: Le Rouzic Esther
Editor: Julien Meuric
Editor: Italo Busi
Editor: Dieter Beller
Editor: Sergio Belotti
Editor: Griseri Enrico
Editor: Gert Grammel ";
description
"This module contains a collection of YANG definitions for
impairment-aware optical networks.
Within this module, if the value of a mandatory attribute is
unknown, it MUST be reported using the empty type.
If an optional attribute is applicable but its value is unknown,
it MUST be reported using the empty type.
If an optional attribute is not applicable to an entity, it MUST
be omitted (not be present in the datastore).
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.
Copyright (c) 2022 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject
to the license terms contained in, the Revised BSD
License set forth in Section 4.c of the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices.";
// 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 2022-07-06 {
description
"Initial Version";
reference
"RFC XXXX: A Yang Data Model for Impairment-aware
Optical Networks";
}
// grouping
grouping sliceable-transponder-attributes {
description
"Configuration of a sliceable transponder.";
list sliceable-transponder-list {
key "carrier-id";
config false;
description "List of carriers";
leaf carrier-id {
type uint32;
config false;
description "Identifier of the carrier";
}
}
}
/*
* Groupings
*/
grouping amplifier-params {
description "describes parameters for an amplifier";
container amplifier {
description
"amplifier type, operatonal parameters are described.";
leaf type-variety {
type string;
mandatory true ;
description
"String identifier of amplifier type referencing
a specification in a separate equipment catalog";
}
container operational {
description "amplifier operational parameters";
list amplifier-element {
description
"The list of parallel amplifier elements within an
amplifier used to amplify different frequency ranges.";
leaf name {
type string;
description
"The name of the amplifier element as specified in
the vendor's specification associated with the
type-variety.";
}
container frequency-range {
description
"The frequency range amplified by the amplifier
element.";
uses l0-types:frequency-range;
}
leaf actual-gain {
type l0-types:power-in-db-or-null;
mandatory true ;
description "..";
}
leaf tilt-target {
type l0-types:decimal-2-digits-or-null;
mandatory true ;
description
"The tilt target defined between lower and upper
frequency of the amplifier frequency range.";
}
leaf out-voa {
type l0-types:power-in-db-or-null;
units dB;
mandatory true;
description "..";
}
leaf in-voa {
type l0-types:power-in-db-or-null;
mandatory true;
description "..";
}
leaf total-output-power {
type l0-types:power-in-db-or-null;
mandatory true;
description
"It represent 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.";
}
uses power-param;
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 {
description
"The list of pumps for the Raman amplifier.";
leaf frequency {
type l0-types:frequency-thz;
description
"The raman pump central frequency.";
}
leaf power {
type l0-types:decimal-2-digits-or-null;
units "Watts";
description
"The total pump power considering a depolarized pump
at the raman pump central frequency.";
}
}
} // 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";
leaf type-variety {
type string ;
mandatory true ;
description "fiber type";
}
leaf length {
type l0-types:decimal-2-digits-or-null;
units km;
mandatory true ;
description "length of fiber";
}
leaf loss-coef {
type l0-types:decimal-2-digits-or-null;
units dB/km;
mandatory true ;
description "loss coefficient of the fiber";
}
leaf total-loss {
type l0-types:power-in-db-or-null;
mandatory true ;
description
"includes all losses: fiber loss and conn-in and
conn-out losses";
}
leaf pmd{
type l0-types:decimal-2-digits-or-null;
units sqrt(ps);
description "pmd of the fiber";
}
leaf conn-in{
type l0-types:power-in-db-or-null;
description "connector-in";
}
leaf conn-out{
type l0-types:power-in-db-or-null;
description "connector-out";
}
}
}
grouping roadm-express-path {
description
"The optical impairments of a ROADM express path.";
leaf roadm-pmd {
type union {
type decimal64 {
fraction-digits 8;
range "0..max";
}
type empty;
}
units "ps/(km)^0.5";
description
"Polarization Mode Dispersion";
}
leaf roadm-cd {
type union {
type decimal64 {
fraction-digits 5;
}
type empty;
}
units "ps/nm";
description "Chromatic Dispersion";
}
leaf roadm-pdl {
type l0-types:power-in-db-or-null;
description "Polarization dependent loss";
}
leaf roadm-inband-crosstalk {
type l0-types:power-in-db-or-null;
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 1 blocked";
}
leaf roadm-maxloss {
type l0-types:power-in-db-or-null;
description
"This is the maximum expected add path loss from the
ROADM ingress to the ROADM egress
assuming no additional add path loss is added";
}
}
grouping roadm-add-path {
description "The optical impairments of a ROADM add path.";
leaf roadm-pmd {
type union {
type decimal64 {
fraction-digits 8;
range "0..max";
}
type empty;
}
units "ps";
description
"Polarization Mode Dispersion";
}
leaf roadm-cd {
type union {
type decimal64 {
fraction-digits 5;
}
type empty;
}
units "ps/nm";
description "Cromatic Dispersion";
}
leaf roadm-pdl {
type l0-types:power-in-db-or-null;
description "Polarization dependent loss";
}
leaf roadm-inband-crosstalk {
type l0-types:power-in-db-or-null;
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 1 blocked.
In the case of add path it is the total
of the add block
+ egress WSS crosstalk contributions.";
}
leaf roadm-maxloss {
type l0-types:power-in-db-or-null;
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 should be based
on worst case expected amplifier gain due to
ripple or gain uncertainty";
}
leaf roadm-pmax {
type l0-types:power-in-dbm-or-null;
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 may reflect either add amplifier power
contraints or WSS adjustment limits.
Higher power transponders would need to have
their launch power reduced
to this value or lower";
}
leaf roadm-osnr {
type l0-types:snr-or-null;
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, should be used
(if both are defined).";
}
leaf roadm-noise-figure {
type union {
type decimal64 {
fraction-digits 5;
}
type empty;
}
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.";
}
}
grouping roadm-drop-path {
description "roadm drop block path optical impairments";
leaf roadm-pmd {
type union {
type decimal64 {
fraction-digits 8;
range "0..max";
}
type empty;
}
units "ps/(km)^0.5";
description
"Polarization Mode Dispersion";
}
leaf roadm-cd {
type union {
type decimal64 {
fraction-digits 5;
}
type empty;
}
units "ps/nm";
description "Chromatic Dispersion";
}
leaf roadm-pdl {
type l0-types:power-in-db-or-null;
description "Polarization dependent loss";
}
leaf roadm-inband-crosstalk {
type l0-types:power-in-db-or-null;
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 1 blocked.
In the case of drop path it is the total
of the ingress
to drop e.g. WSS and drop block crosstalk
contributions.";
}
leaf roadm-maxloss {
type l0-types:power-in-db-or-null;
description
"The net loss from the ROADM input,to the output
of the drop block.
If ROADM ingress to drop path includes an amplifier,
the amplifier gain reduces the net loss.
This is before any additional drop path attenuation
that may be required
due to drop amplifier power contraints.
The max value correspond to 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-in-db-or-null;
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
contraints.
The min value correspond to best case expected loss,
including amplifier gain ripple or uncertainty.";
}
leaf roadm-typloss {
type l0-types:power-in-db-or-null;
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 contraints.
The typ value correspond to typical case
expected loss.";
}
leaf roadm-pmin {
type l0-types:power-in-dbm-or-null;
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 min per
carrier power levels
expected at the output of the drop block.
A detail example of the comparison using
these parameters is
detailed in section xxx of the document yyy.";
}
leaf roadm-pmax {
type l0-types:power-in-dbm-or-null;
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 best case per
carrier power levels expected at the output of the
drop block.
A detail example of the comparison using
these parameters
is detailed in section xxx of the document yyy";
}
leaf roadm-ptyp {
type l0-types:power-in-dbm-or-null;
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-null;
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 should be used";
}
leaf roadm-noise-figure {
type union {
type decimal64 {
fraction-digits 5;
}
type empty;
}
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";
}
}
grouping concentratedloss-params{
description "concentrated loss";
container concentratedloss{
description "concentrated loss";
leaf loss {
type l0-types:power-in-db-or-null;
mandatory true;
description "..";
}
}
}
grouping power-param{
description
"optical power or PSD after the ROADM or after the out-voa";
choice power-param {
description
"select the mode: channel power or power spectral density";
case channel-power {
when "/nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/OMS-attributes
/equalization-mode='carrier-power'";
leaf nominal-carrier-power{
type l0-types:power-in-dbm-or-null;
description
" Reference channel power. Same grouping is used for the
OMS power after the ROADM (input of the OMS) or after the
out-voa of each amplifier. ";
}
}
case power-spectral-density{
when "/nw:networks/nw:network/nt:link/tet:te
/tet:te-link-attributes/OMS-attributes
/equalization-mode='power-spectral-density'";
leaf nominal-power-spectral-density{
type union {
type decimal64 {
fraction-digits 16;
}
type empty;
}
units W/Hz ;
description
" Reference power spectral density after
the ROADM or after the out-voa.
Typical value : 3.9 E-14, resolution 0.1nW/MHz";
}
}
}
}
grouping oms-general-optical-params {
description "OMS link optical parameters";
leaf generalized-snr {
type l0-types:snr;
description "generalized snr";
}
leaf equalization-mode{
type identityref {
base l0-types:type-power-mode;
}
mandatory true;
description "equalization mode";
}
uses power-param;
}
grouping otsi-group {
description "OTSiG definition , representing client
digital information stream supported by 1 or more OTSi";
list otsi {
key "otsi-carrier-id";
config false;
description
"list of OTSi contained in 1 OTSiG.
The list could also be of only 1 element";
leaf otsi-carrier-id {
type uint16;
description "OTSi carrier-id";
}
leaf otsi-carrier-frequency {
type union {
type l0-types:frequency-thz;
type empty;
}
description
"OTSi carrier frequency, equivalent to the
actual configured transmitter frequency";
}
leaf-list nmc-path-id {
type uint16;
description
"The list of the possible Network Media Channel (NMC) paths
associated with the OTSi which have different optical
impairments.
This list is meaningful in case the OTSi can be associated
with multiple NMC paths
(e.g., when OPS protection is configured).
The list can be empty when the OTSi has only one
NMC path.";
}
} // OTSi list
} // OTSiG grouping
grouping media-channel-groups {
description "media channel groups";
list media-channel-group {
key "i";
description
"list of media channel groups";
leaf i {
type int16;
description "index of media channel group member";
}
list media-channels {
key "flexi-n";
description
"list of media channels represented as (n,m)";
// this grouping add both n.m values
uses l0-types:flexi-grid-frequency-slot;
leaf otsi-group-ref {
type leafref {
path "/nw:networks/nw:network/otsi-group/otsi-group-id";
}
description
"Reference to the otsi-group list to get otsi-group
identifier of the
OTSiG carried by this media channel
that reports the transient stat";
}
list otsi-ref {
description
"The list of references to the OTSis and their NMC paths
within the OTSiG carried by this media channel.";
leaf otsi-carrier-ref {
type leafref {
path "/nw:networks/nw:network/"
+ "otsi-group[otsi-group-id=current()"
+ "/../../otsi-group-ref]/"
+ "otsi/otsi-carrier-id" ;
}
description
"Reference to the OTSi within the OTSiG carried
by this media channel.";
}
leaf-list nmc-path-ref {
type leafref {
path "/nw:networks/nw:network/"
+ "otsi-group[otsi-group-id=current()"
+ "/../../otsi-group-ref]/"
+ "otsi[otsi-carrier-id=current()"
+ "/../otsi-carrier-ref]/nmc-path-id" ;
}
description
"References to the NMC paths of this OTSi which are
routed through this media channel.";
}
}
leaf delta-power {
type l0-types:power-in-dbm-or-null;
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 "OMS description";
list OMS-elements {
key "elt-index";
description
"defines the spans and the amplifier blocks of
the amplified lines";
leaf elt-index {
type uint16;
description
"ordered list of Index of OMS element
(whether it's a Fiber, an EDFA or a
Concentratedloss)";
}
leaf oms-element-uid {
type union {
type string;
type empty;
}
description
"unique id of the element if it exists";
}
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/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 concentratedloss {
uses concentratedloss-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 "../../../../../otsi-group/otsi-group-id";
}
description
"The OTSi generated by the transceiver's transmitter.";
}
leaf otsi-ref {
type leafref {
path "../../../../../otsi-group[otsi-group-id=" +
"current()/../otsi-group-ref]/otsi/otsi-carrier-id";
}
description
"The OTSi generated by the transceiver's transmitter.";
}
}
/* 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";
}
}
augment "/nw:networks/nw:network" {
when "nw:network-types/tet:te-topology" +
"/optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment.";
}
description
"Network augmentation for optical impairments data.";
list otsi-group {
key "otsi-group-id";
config false;
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 an URI or as an UUID.";
}
uses otsi-group;
} // list of OTSiG
}
augment "/nw:networks/nw:network/nw:node" {
when "../nw:network-types/tet:te-topology" +
"/optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment.";
}
description
"Node augmentation for optical impairments data.";
list transponder {
key "transponder-id";
config false;
description "list of transponder";
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 configure to 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";
config false;
description "list of transceiver related to a transponder";
leaf transceiver-id {
type uint32;
description "transceiver identifier";
}
uses l0-types:transceiver-capabilities;
leaf configured-mode {
type leafref {
path "../supported-modes/supported-mode/mode-id";
}
description
"Reference to the configured mode for transceiver
compatibility approach.";
}
uses l0-types:common-transceiver-configured-param;
container outgoing-otsi {
description
"The OTSi generated by the transceiver's transmitter.";
uses otsi-ref;
}
container incoming-otsi {
description
"The OTSi received by the transceiver's received.";
uses otsi-ref;
}
leaf configured-termination-type {
type enumeration {
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 transcevier is not used.";
}
} // end of list of transceiver
} // end list of transponder
list regen-group {
key "group-id";
config false;
description
"List of 3R groups.
Any 3R group represent a group of transponder in which an a
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 group of
transponders during path computation";
}
leaf-list transponder-ref {
type leafref {
path "../../transponder/transponder-id";
}
description
"The list of transponder belonging to this 3R group.";
}
} // end 3R-group
}
augment "/nw:networks/nw:network/nt:link/tet:te"
+ "/tet:te-link-attributes" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment.";
}
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:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Impairment with
non-sliceable transponder model";
}
description
"Tunnel termination point augmentation for non-sliceable
transponder model.";
list ttp-transceiver {
key "transponder-ref transceiver-ref";
config false;
description
"The list of the transceivers used by the TTP.";
leaf transponder-ref {
type leafref {
path "../../../../transponder/transponder-id";
}
description
"The reference to the transponder hosting the transceiver
of the TTP.";
}
leaf transceiver-ref {
type leafref {
path "../../../../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/tet:te"
+ "/tet:tunnel-termination-point" {
when "/nw:networks/nw:network/nw:network-types"
+"/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for optical impairment
with sliceable transponder model";
}
description
"Tunnel termination point augmentation for sliceable
transponder model.";
uses sliceable-transponder-attributes;
}
augment "/nw:networks/nw:network/nw:node/tet:te"
+ "/tet:te-node-attributes" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology"
+ "/optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment
topology";
}
description
"node attributes augmentantion for optical-impairment ROADM
node";
list roadm-path-impairments {
key "roadm-path-impairments-id";
config false;
description
"The set of optical impairments related to a ROADM path.";
leaf roadm-path-impairments-id {
type uint32;
description "index of the ROADM path-impairment list";
}
choice impairment-type {
description "type path impairment";
case roadm-express-path {
list roadm-express-path {
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.";
container frequency-range {
description
"The frequency range for which these optical
impairments apply.";
uses l0-types:frequency-range;
}
uses roadm-express-path;
}
}
case roadm-add-path {
list roadm-add-path {
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.";
container frequency-range {
description
"The frequency range for which these optical
impairments apply.";
uses l0-types:frequency-range;
}
uses roadm-add-path;
}
}
case roadm-drop-path {
list roadm-drop-path {
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.";
container frequency-range {
description
"The frequency range for which these optical
impairments apply.";
uses l0-types:frequency-range;
}
uses roadm-drop-path;
}
}
}
} // list path impairments
} // augmentation for optical-impairment ROADM
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices"{
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment
topology ";
}
description
"Augment default TE node connectivity matrix information
source.";
leaf roadm-path-impairments {
type leafref {
path "../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id";
}
description "pointer to the list set of ROADM optical
impairments";
}
} // augmentation connectivity-matrices information-source
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:information-source-entry/tet:connectivity-matrices/"
+ "tet:connectivity-matrix" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo: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 {
type leafref {
path "../../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id";
}
description "pointer to the list set of ROADM optical
impairments";
}
} // augmentation connectivity-matrix information-source
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/tet:connectivity-matrices" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment
topology ";
}
description
"Augment default TE node connectivity matrix.";
leaf roadm-path-impairments {
type leafref {
path "../../roadm-path-impairments/"
+ "roadm-path-impairments-id";
}
config false; /*the identifier in the list */
/*"roadm-path-impairments" of ROADM optical impairment*/
/*is read-only as the rest of attributes*/
description "pointer to the list set of ROADM optical
impairments";
}
} // augmentation connectivity-matrices
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:te-node-attributes/"
+ "tet:connectivity-matrices/tet:connectivity-matrix" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for
Optical Impairment topology ";
}
description
"Augment TE node connectivity matrix entry.";
leaf roadm-path-impairments {
type leafref {
path "../../../roadm-path-impairments/"
+ "roadm-path-impairments-id";
}
config false;
description "pointer to the list set of ROADM optical
impairments";
}
} // augmentation connectivity-matrix
augment "/nw:networks/nw:network/nw:node/tet:te/"
+ "tet:tunnel-termination-point/"
+ "tet:local-link-connectivities" {
when "/nw:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for Optical Impairment topology ";
}
description
"Augment default TTP LLC.";
leaf add-path-impairments {
type leafref {
path "../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM optical
impairments";
}
leaf drop-path-impairments {
type leafref {
path "../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM
optical impairments";
}
} // 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:networks/nw:network/nw:network-types"
+ "/tet:te-topology/"
+ "optical-imp-topo:optical-impairment-topology" {
description
"This augment is only valid for
Optical Impairment topology ";
}
description
"Augment TTP LLC entry.";
leaf add-path-impairments {
type leafref {
path "../../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM optical
impairments";
}
leaf drop-path-impairments {
type leafref {
path "../../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM optical
impairments";
}
list llc-transceiver {
key "ttp-transponder-ref ttp-transceiver-ref";
config false;
description
"The list of transceivers having a 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 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 {
type leafref {
path "../../../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM optical
impairments";
}
leaf drop-path-impairments {
type leafref {
path "../../../../../tet:te-node-attributes/"
+ "roadm-path-impairments/roadm-path-impairments-id" ;
}
config false;
description "pointer to the list set of ROADM
optical impairments";
}
}
} // augmentation local-link-connectivity
}