Upgrade openroadm service models to 10.1
[transportpce.git] / ordmodels / service / src / main / yang / org-openroadm-operational-mode-catalog@2021-12-10.yang
diff --git a/ordmodels/service/src/main/yang/org-openroadm-operational-mode-catalog@2021-12-10.yang b/ordmodels/service/src/main/yang/org-openroadm-operational-mode-catalog@2021-12-10.yang
new file mode 100644 (file)
index 0000000..51a059e
--- /dev/null
@@ -0,0 +1,624 @@
+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";
+        }
+      }
+    }
+  }
+}