module gnpy-eqpt-config { yang-version 1; namespace "gnpy:gnpy-eqpt-config"; prefix "gnpyeqpt"; organization "Telecom Infra Project OOPT PSE Working Group"; contact "WG Web: contact: contact: "; description "Base YANG model for gnpy equipment library input - The license used for all the yang files of GNPy is BSD 3-Clause License BSD 3-Clause License Copyright (c) 2018, Telecom Infra Project All 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 name of the copyright holder 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 COPYRIGHT HOLDERS AND CONTRIBUTORS '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 SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 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 2022-02-21 { description "draft for GNPy4TPCE preversion - non official version relevant for v2.4 GNPy file format"; reference "YANG model for api input for path computation with gnpy"; } revision 2020-10-22 { description "draft for experimental/2020-candi"; reference "Base YANG model for equipment library input for path computation with gnpy"; } revision 2019-01-03 { description "first draft for GNPy4TPCE preversion - non official version relevant for v1.2 GNPy file format"; reference "YANG model for api input for path computation with gnpy"; } identity edfa-type-def { description "base identity for variable gain and fixed gain"; } identity variable-gain{ base edfa-type-def ; description "'variable_gain' is a simplified model simulating a 2-coil EDFA with internal, input and output VOAs. The NF vs gain response is calculated accordingly based on the input parameters: nf_min, nf_max, and gain_flatmax. It is not a simple interpolation but a 2-stage NF calculation."; } identity fixed-gain{ base edfa-type-def ; description "'fixed_gain' is a fixed gain model. NF == Cte == nf0 if gain_min < gain < gain_flatmax"; } identity fiber-variety { description "base identity for fiber variety"; } identity transceiver-variety { description "base identity for transceiver variety"; } grouping variable-gain { leaf nf_min { type decimal64 { fraction-digits 2; } units dB; } leaf nf_max { type decimal64 { fraction-digits 2; } units dB; } leaf out_voa_auto{ type boolean ; description "auto_design feature to optimize the amplifier output VOA. If true, output VOA is present and will be used to push amplifier gain to its maximum, within EOL power margins."; } } grouping fixed-gain{ leaf nf0 { type decimal64 { fraction-digits 2; } units dB; } } grouping no-type-def{ leaf advanced_config_from_json { type string ; description " filename with json edfa"; } } grouping openroadm{ leaf-list nf_coef { type decimal64 { fraction-digits 5; } //default [8.1e-4,6.142e-2,1.558,19.97] ; } } grouping dual-stage { leaf raman { type boolean; } leaf preamp_variety { type leafref { path "../../Edfa/type_variety"; } } leaf booster_variety { type leafref { path "../../Edfa/type_variety"; } } } grouping edfa-common { leaf allowed_for_design{ type boolean ; description "If false, the amplifier will not be picked by auto-design but it can still be used as a manual input (from JSON or Excel template topology files.)"; } leaf gain_flatmax { type decimal64 { fraction-digits 2; } units dB; } leaf gain_min { type decimal64 { fraction-digits 2; } units dB; } leaf p_max { type decimal64 { fraction-digits 2; } units dBm; } leaf type_def { type identityref{ base edfa-type-def ; } } choice type_of_model { case variable-gain { when "type_def = 'variable-gain'"; uses variable-gain ; } case fixed-gain{ when "type_def = 'fixed-gain'"; uses fixed-gain; } case no-type-def{ when "type_def = 'no-type-def'"; uses no-type-def; } case openroadm{ when "type_def = 'openroadm'"; uses openroadm; } case dual_stage { when "type_def = 'dual_stage'"; uses dual-stage ; } } } grouping common-fiber { description "common parameters for fiber and raman fiber"; leaf type_variety { type string ; } leaf dispersion{ type decimal64 { fraction-digits 8; } units s.m-1.m-1; } leaf gamma{ type decimal64 { fraction-digits 8; } units w-1.m-1 ; description "2pi.n2/(lambda*Aeff) (w-2.m-1)"; } leaf pmd_coef{ type decimal64 { fraction-digits 16; } units s.sqrt(m)-1; } } grouping eqpt{ list Edfa { key type_variety; leaf type_variety { type string; description "a unique name to ID the amplifier in the JSON/Excel template topology input file"; } uses edfa-common; } list Fiber { key type_variety; uses common-fiber; } list RamanFiber { uses common-fiber; container raman_efficiency { leaf-list cr { type decimal64 { fraction-digits 8; } } leaf-list frequency_offset { type decimal64 { fraction-digits 8; } } } } list Span { leaf power_mode { type boolean ; } leaf-list delta_power_range_db { type decimal64 { fraction-digits 2; } } leaf max_length { type decimal64 { fraction-digits 2; } units km; default 150.0 ; } leaf max_loss { type decimal64 { fraction-digits 2; } units dB; } leaf max_fiber_lineic_loss_for_raman { type decimal64 { fraction-digits 2; } units dB.km-1; } leaf target_extended_gain { type decimal64 { fraction-digits 2; } units dB; } leaf length_units{ type string ; default "km"; } leaf padding{ type decimal64 { fraction-digits 2; } default 10.0 ; } leaf EOL{ type decimal64 { fraction-digits 2; } default 0.0 ; } leaf con_in{ type decimal64 { fraction-digits 2; } default 0.0 ; } leaf con_out{ type decimal64 { fraction-digits 2; } default 0.0 ; } } list Roadm { leaf target_pch_out_db { type decimal64 { fraction-digits 2; } } leaf add_drop_osnr { type decimal64 { fraction-digits 2; } } leaf pmd { type decimal64 { fraction-digits 2; } } container restrictions { leaf-list preamp_variety_list { type string; } leaf-list booster_variety_list { type string; } } } list SI { leaf f_min { type decimal64 { fraction-digits 2; } } leaf f_max { type decimal64 { fraction-digits 2; } } leaf baud_rate { type decimal64 { fraction-digits 2; } } leaf spacing { type decimal64 { fraction-digits 2; } } leaf power_dbm { type decimal64 { fraction-digits 2; } } leaf-list power_range_db { type decimal64 { fraction-digits 2; } } leaf roll_off { type decimal64 { fraction-digits 2; } } leaf tx_osnr { type decimal64 { fraction-digits 2; } } leaf sys_margins { type decimal64 { fraction-digits 2; } } } list Transceiver { leaf type_variety { type string ; description "a unique name to ID the transceiver in the JSON or Excel template topology input file"; } container frequency { leaf min { type decimal64 { fraction-digits 2; } units Hz ; } leaf max { type decimal64 { fraction-digits 2; } units Hz ; } description "Min/max frequency of transponder eg 191.35e12 and 196.1e12"; } list mode { leaf format { type string ; description "unique name of the mode"; } leaf baud_rate { type decimal64 { fraction-digits 2; } units baud ; description "baud_rate"; } leaf OSNR { type decimal64 { fraction-digits 2; } units dB ; description "min required OSNR in 0.1nm (dB)"; } leaf tx_osnr { type decimal64 { fraction-digits 2; } units dB ; description "min required OSNR in 0.1nm (dB)"; } leaf min_spacing { type decimal64 { fraction-digits 2; } units GHz ; description "..."; } leaf bit_rate { type decimal64 { fraction-digits 2; } units bit/s ; description "bit rate"; } leaf roll_off { type decimal64 { fraction-digits 2; } description "..."; } leaf cost { type decimal64 { fraction-digits 2; } description "arbitrary unit"; } } } } }