--- /dev/null
+module org-openroadm-operational-mode-catalog {
+ namespace "http://org/openroadm/operational-mode-catalog";
+ prefix org-openroadm-operational-mode-catalog;
+
+ import org-openroadm-common-optical-channel-types {
+ prefix org-openroadm-common-optical-channel-types;
+ revision-date 2021-12-10;
+ }
+ import org-openroadm-common-link-types {
+ prefix org-openroadm-common-link-types;
+ revision-date 2019-11-29;
+ }
+ import org-openroadm-common-types {
+ prefix org-openroadm-common-types;
+ revision-date 2021-12-10;
+ }
+
+ organization
+ "Open ROADM MSA";
+ contact
+ "OpenROADM.org";
+ description
+ "YANG definitions of common attributes.
+
+ Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
+ All other rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ * Neither the Members of the Open ROADM MSA Agreement nor the names of its
+ contributors may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''AS IS''
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+ OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE";
+
+ revision 2021-12-10 {
+ description
+ "Version 10.1";
+ }
+ revision 2021-09-24 {
+ description
+ "Version 10";
+ }
+
+ typedef impairment-type {
+ type enumeration {
+ enum CD-ps/nm;
+ enum PDL-dB;
+ enum PMD-ps;
+ enum power-dBm;
+ enum cross-talk-total-power-dB;
+ enum colorless-drop-adjacent-channel-crosstalk-GHz;
+ }
+ description
+ "definition of impairment type and unit used in penaty list";
+ }
+
+ grouping operational-mode-grid-parameters {
+ description
+ "main parameters required to describe grid usage";
+ leaf min-central-frequency {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ mandatory true;
+ description
+ "min supported frequency";
+ }
+ leaf max-central-frequency {
+ type org-openroadm-common-optical-channel-types:frequency-THz;
+ mandatory true;
+ description
+ "max supported frequency";
+ }
+ leaf central-frequency-granularity {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ mandatory true;
+ description
+ "granularity supported for the central frequency setting";
+ }
+ leaf min-spacing {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ mandatory true;
+ description
+ "minimum spacing required between 2 channels";
+ }
+ }
+
+ grouping operational-mode-roadm-base-parameters {
+ description
+ "main parameters used to qualify amplifier and ROADM (express/add/drop)";
+ leaf per-channel-Pin-min {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "minimum input power";
+ }
+ leaf per-channel-Pin-max {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "maximum output power";
+ }
+ leaf max-introduced-pdl {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "polarization dependent gain/loss";
+ }
+ leaf max-introduced-dgd {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "ps/nm";
+ description
+ "Maximum diferential group delay";
+ }
+ leaf max-introduced-cd {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "ps";
+ description
+ "Maximum introduced chromatic dispersion";
+ }
+ }
+
+ grouping polynomial-fit {
+ description
+ "polynomial fit used to model noise mask";
+ container osnr-polynomial-fit {
+ description
+ "describe the osnr contribution of amplifier/roadm
+ OSNR (dB/0.1nm) = A*Pin^3+B*Pin^2+C*Pin+D, Pin (dBm) ";
+ leaf A {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "A*Pin^3";
+ }
+ leaf B {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "B*Pin^2";
+ }
+ leaf C {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "C*Pin";
+ }
+ leaf D {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "Constant";
+ }
+ }
+ }
+
+ grouping power-mask {
+ description
+ "describes how power shall be set according preceeding span loss";
+ list mask-power-vs-pin {
+ key "lower-boundary upper-boundary";
+ description
+ "for power range provides C and D parameter : Pout[50GHz BW] (dBm) = C*span-loss (dBm)+ D";
+ leaf lower-boundary {
+ type uint32;
+ description
+ "defines the lower Power boundary for which C & Dparameters apply";
+ }
+ leaf upper-boundary {
+ type uint32;
+ description
+ "defines the upper Power boundary for which C & Dparameters apply";
+ }
+ leaf C {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "C*span-loss";
+ }
+ leaf D {
+ type decimal64 {
+ fraction-digits 8;
+ }
+ description
+ "Constant";
+ }
+ leaf fiber-type {
+ type enumeration {
+ enum smf {
+ value 0;
+ description
+ "Single Mode Fiber";
+ }
+ enum eleaf {
+ value 1;
+ description
+ "ELEAF";
+ }
+ enum oleaf {
+ value 2;
+ description
+ "OLEAF";
+ }
+ enum dsf {
+ value 3;
+ description
+ "DSF";
+ }
+ enum truewave {
+ value 4;
+ description
+ "TRUEWAVE Reduced Slope";
+ }
+ enum truewavec {
+ value 5;
+ description
+ "TRUEWAVE Classic";
+ }
+ enum nz-dsf {
+ value 6;
+ description
+ "NZ-DSF";
+ }
+ enum ull {
+ value 7;
+ description
+ "Ultra Low Loss (ULL)";
+ }
+ }
+ description
+ "enumeration of the different existing fiber type";
+ }
+ }
+ }
+
+ grouping operational-mode-roadm-add-parameters {
+ description
+ "includes parameters to be used for specification modeling";
+ container Add {
+ description
+ "add block-specification";
+ list add-openroadm-operational-mode {
+ key "openroadm-operational-mode-id";
+ description
+ "defines the openroadm operational mode pointing to an official specification ";
+ leaf openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+ }
+ leaf incremental-osnr {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "incremental osnr considering noisless input at 0dBm";
+ }
+ uses operational-mode-roadm-base-parameters;
+ uses power-mask;
+ }
+ }
+ }
+
+ grouping operational-mode-common-amplifier-drop-parameters {
+ description
+ "includes parameters to be used for specification modeling";
+ list openroadm-operational-mode {
+ key "openroadm-operational-mode-id";
+ description
+ "defines the openroadm operational mode pointing to an official specification ";
+ leaf openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+ }
+ uses operational-mode-roadm-base-parameters;
+ uses polynomial-fit;
+ leaf per-channel-Pout-min {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "Minimum output power";
+ }
+ leaf per-channel-Pout-max {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "Maximum output power";
+ }
+ }
+ }
+
+ grouping operational-mode-roadm-drop-parameters {
+ description
+ "includes parameters to be used for specification modeling";
+ container Drop {
+ description
+ "drop block-specification";
+ uses operational-mode-common-amplifier-drop-parameters;
+ }
+ }
+
+ grouping operational-mode-roadm-express-parameters {
+ description
+ "includes parameters to be used for specification modeling";
+ container Express {
+ description
+ "Express specifications";
+ list openroadm-operational-mode {
+ key "openroadm-operational-mode-id";
+ description
+ "defines the openroadm operational mode pointing to an official specification ";
+ leaf openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+ }
+ uses operational-mode-roadm-base-parameters;
+ uses polynomial-fit;
+ uses power-mask;
+ }
+ }
+ }
+
+ grouping operational-mode-amplifier-parameters {
+ description
+ "includes parameters to be used for specification modeling";
+ container Amplifier {
+ description
+ "drop block-specification";
+ uses operational-mode-common-amplifier-drop-parameters;
+ leaf min-gain {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "minimum gain of nominal gain range";
+ }
+ leaf max-gain {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "maximum gain of nominal gain range";
+ }
+ leaf max-extended-gain {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "maximum gain of extended gain range";
+ }
+ list mask-gain-ripple-vs-tilt {
+ key "lower-boundary upper-boundary";
+ description
+ "for gain ripple, provides C and D parameter : Max-gain-ripple (dB) = C*target-tilt (dB)+ D.
+ Tilt applies to extended gain range";
+ leaf lower-boundary {
+ type int32;
+ description
+ "defines the lower tilt boundary for which C & Dparameters apply";
+ }
+ leaf upper-boundary {
+ type int32;
+ description
+ "defines the upper tilt boundary for which C & Dparameters apply";
+ }
+ leaf C {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ description
+ "C*span-loss";
+ }
+ leaf D {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ description
+ "Constant";
+ }
+ }
+ }
+ }
+
+ grouping operational-mode-transponder-parameters {
+ description
+ "describes parameters used to qualify xponders line performances";
+ leaf baud-rate {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units "Gbauds";
+ description
+ "baud-rate in Gbauds";
+ }
+ leaf line-rate {
+ type decimal64 {
+ fraction-digits 1;
+ }
+ units "Gbps";
+ mandatory true;
+ description
+ "line coding rate in Gbps";
+ }
+ leaf modulation-format {
+ type org-openroadm-common-optical-channel-types:modulation-format;
+ mandatory true;
+ description
+ "modulation format as defined in openroadm";
+ }
+ leaf min-TX-osnr {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "Defined in 0.1 nm @ 193.6 Thz bandwidth";
+ }
+ list TX-OOB-osnr {
+ key "WR-openroadm-operational-mode-id";
+ description
+ "describe noise contribution associated with a specific transponder
+ according to the multiplexing architecture of the SRG it is connected to";
+ leaf WR-openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode of the multiplexor which the transponder is connected to";
+ }
+ leaf min-OOB-osnr-multi-channel-value {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "Measured outside +/-150GHz BW, including SMSR, and 15 channels worst case contribution";
+ }
+ leaf min-OOB-osnr-single-channel-value {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "Measured outside +/-150GHz BW, excluding SMSR, single channel";
+ }
+ }
+ list output-power-range {
+ key "WR-openroadm-operational-mode-id";
+ description
+ "describe output power range associated with a specific transponder
+ according to the multiplexing architecture of the SRG it is connected to";
+ leaf WR-openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode of the multiplexor which the transponder is connected to";
+ }
+ leaf min-output-power {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "minimum supported output-power";
+ }
+ leaf max-output-power {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "maximum supported output-power";
+ }
+ }
+ leaf min-RX-osnr-tolerance {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "Defined in 0.1 nm @ 193.6 Thz bandwidth";
+ }
+ leaf min-input-power-at-RX-osnr {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "minimum input-power for given osnr tolerance";
+ }
+ leaf max-input-power {
+ type org-openroadm-common-link-types:ratio-dB;
+ mandatory true;
+ description
+ "maximum supported intput-power causing either an overload or the damage of the receiver";
+ }
+ leaf channel-width {
+ type org-openroadm-common-optical-channel-types:frequency-GHz;
+ description
+ "-20 dB channel width, required for target power calculation";
+ }
+ leaf fec-type {
+ type identityref {
+ base org-openroadm-common-types:fec-identity;
+ }
+ description
+ "fec type";
+ }
+ leaf min-roll-off {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "dB/decade";
+ description
+ "Minimum Roll-off factor";
+ }
+ leaf max-roll-off {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ units "dB/decade";
+ description
+ "Maximum Roll-off factor";
+ }
+ list penalties {
+ key "parameter-and-unit up-to-boundary";
+ description
+ "Penalties includes contributions from different impairments including
+ cd, pmd, low RX Power, pdl,...";
+ leaf parameter-and-unit {
+ type impairment-type;
+ description
+ "impairment leading to the penalty";
+ }
+ leaf up-to-boundary {
+ type decimal64 {
+ fraction-digits 2;
+ }
+ description
+ "defines the upper (for positive values) and lower (for negative values)
+ limit for which the penalty value is valid";
+ }
+ leaf penalty-value {
+ type org-openroadm-common-link-types:ratio-dB;
+ description
+ "defined penalty in dB";
+ }
+ }
+ }
+
+ grouping operational-mode-catalog {
+ description
+ "this catalog is used to store data related to operational modes and related specifications
+ for OpenROADM operational modes this allows translating official specifications
+ for other Operational modes this provides the controller with the specifications
+ of bookended/alien transponders
+ The catalog shall be fed using operational-mode-setting rpc";
+ container openroadm-operational-modes {
+ description
+ "All operational modes corresponding to official OpenROAM specifications";
+ container grid-parameters {
+ description
+ "Parameters associated with global spectrum use";
+ uses operational-mode-grid-parameters;
+ }
+ container xponders-pluggables {
+ presence "Container includes mandatory nodes but may however not be present
+ in the rpc used to feed the catalog (merge operation)";
+ description
+ "Parameters associated with xponders and pluggables";
+ list xponder-pluggable-openroadm-operational-mode {
+ key "openroadm-operational-mode-id";
+ description
+ "defines the openroadm operational mode pointing to an official specification ";
+ leaf openroadm-operational-mode-id {
+ type string;
+ description
+ "openroadm operational mode which points to a specific spreadsheet of optical specifications";
+ }
+ uses operational-mode-transponder-parameters;
+ }
+ }
+ container roadms {
+ description
+ "Parameters associated with roadms";
+ uses operational-mode-roadm-express-parameters;
+ uses operational-mode-roadm-add-parameters;
+ uses operational-mode-roadm-drop-parameters;
+ }
+ container amplifiers {
+ description
+ "Parameters associated with amplifiers";
+ uses operational-mode-amplifier-parameters;
+ }
+ }
+ container specific-operational-modes {
+ description
+ "All specific operational modes corresponding to bookended or alien units";
+ list specific-operational-mode {
+ key "operational-mode-id";
+ description
+ "List of all declared specific operationnal modes";
+ leaf operational-mode-id {
+ type string;
+ description
+ "unique identifier which identifies the operational mode";
+ }
+ leaf originator {
+ type string;
+ description
+ "identifies the system vendor which originated associated specification";
+ }
+ leaf sponsor {
+ type string;
+ description
+ "identifies the service provider which reviewed and sponsored associated specification";
+ }
+ uses operational-mode-grid-parameters;
+ uses operational-mode-transponder-parameters;
+ leaf configurable-output-power {
+ type boolean;
+ mandatory true;
+ description
+ "defines whether the output power can be set or not";
+ }
+ }
+ }
+ }
+}