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