437483aa47823b969206709626a4de8f624c185a
[transportpce.git] / ordmodels / network / src / main / yang / org-openroadm-link@2021-12-10.yang
1 module org-openroadm-link {
2   yang-version 1.1;
3   namespace "http://org/openroadm/link";
4   prefix link;
5
6   import ietf-network {
7     prefix nd;
8     revision-date 2018-02-26;
9   }
10   import org-openroadm-equipment-states-types {
11     prefix org-openroadm-equipment-states-types;
12     revision-date 2019-11-29;
13   }
14   import org-openroadm-common-link-types {
15     prefix org-openroadm-common-link-types;
16     revision-date 2019-11-29;
17   }
18   import org-openroadm-common-node-types {
19     prefix org-openroadm-common-node-types;
20     revision-date 2021-05-28;
21   }
22   import org-openroadm-amplifier {
23     prefix org-openroadm-amplifier;
24     revision-date 2021-09-24;
25   }
26   import org-openroadm-network-types {
27     prefix org-openroadm-network-types;
28     revision-date 2021-12-10;
29   }
30   import org-openroadm-common-network {
31     prefix cnet;
32     revision-date 2021-12-10;
33   }
34
35   organization
36     "Open ROADM MSA";
37   contact
38     "OpenROADM.org.";
39   description
40     "YANG definitions for an amplifier in Network Model
41
42
43      Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2017,
44      All other rights reserved.
45
46      Redistribution and use in source and binary forms, with or without modification,
47      are permitted provided that the following conditions are met:
48
49      * Redistributions of source code must retain the above copyright notice, this
50        list of conditions and the following disclaimer.
51      * Redistributions in binary form must reproduce the above copyright notice,
52        this list of conditions and the following disclaimer in the documentation and/or
53        other materials provided with the distribution.
54      * Neither the Members of the Open ROADM MSA Agreement nor the names of its
55        contributors may be used to endorse or promote products derived from this software
56        without specific prior written permission.
57
58      THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS''
59      AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
60      WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
61      IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT,
62      INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
63      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA,
64      OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
65      WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
66      ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
67      POSSIBILITY OF SUCH DAMAGE.";
68
69   revision 2021-12-10 {
70     description
71       "Version 10.1";
72   }
73   revision 2021-09-24 {
74     description
75       "Version 10.0";
76   }
77   revision 2021-05-28 {
78     description
79       "Version 9.1";
80   }
81   revision 2021-03-26 {
82     description
83       "Version 9.0";
84   }
85   revision 2020-12-11 {
86     description
87       "Version 8.1";
88   }
89   revision 2020-05-29 {
90     description
91       "Version 7.1.0";
92   }
93   revision 2020-03-27 {
94     description
95       "Version 7.0.0";
96   }
97   revision 2019-11-29 {
98     description
99       "Version 6.1.0";
100   }
101   revision 2019-09-27 {
102     description
103       "Version 6.0.0";
104   }
105   revision 2019-05-31 {
106     description
107       "Version 5.1.0";
108   }
109   revision 2019-03-29 {
110     description
111       "Version 5.0.0";
112   }
113   revision 2018-11-30 {
114     description
115       "Version 4.1.0";
116   }
117   revision 2018-09-28 {
118     description
119       "Version 4.0.0";
120   }
121   revision 2018-03-30 {
122     description
123       "Version 3.0.0";
124   }
125   revision 2017-12-15 {
126     description
127       "Version 2.2";
128   }
129   revision 2017-09-29 {
130     description
131       "Version 2.1";
132   }
133   revision 2017-07-28 {
134     description
135       "Version 2.0.1 - added revision-date to imports";
136   }
137   revision 2017-06-17 {
138     description
139       "Version 2.0";
140   }
141
142   grouping span-attributes {
143     leaf auto-spanloss {
144       type boolean;
145       default "true";
146       description
147         "Flag to enable/disable automatic spanloss measurement";
148     }
149     leaf spanloss-base {
150       type org-openroadm-common-link-types:ratio-dB;
151       description
152         "Baseline ROADM span loss measured and accepted during
153          degree turn-up. May be re-set to current value after a fiber repair or change.";
154     }
155     leaf spanloss-current {
156       type org-openroadm-common-link-types:ratio-dB;
157       description
158         "Current ROADM span loss measured and accepted during
159          degree turn-up. Updated periodically if auto-spanloss is enabled.";
160     }
161     leaf spanloss-last-measured {
162       type org-openroadm-common-link-types:ratio-dB;
163       description
164         "Last measured ROADM span loss, may or may not have been accepted and pushed to the NE.";
165     }
166     leaf engineered-spanloss {
167       type org-openroadm-common-link-types:ratio-dB;
168       description
169         "ROADM span loss provided by an external system";
170     }
171     uses org-openroadm-network-types:link-concatenation {
172       augment link-concatenation {
173         leaf fiber-type {
174           type enumeration {
175             enum smf {
176               value 0;
177               description
178                 "Single Mode Fiber";
179             }
180             enum eleaf {
181               value 1;
182               description
183                 "ELEAF";
184             }
185             enum oleaf {
186               value 2;
187               description
188                 "OLEAF";
189             }
190             enum dsf {
191               value 3;
192               description
193                 "DSF";
194             }
195             enum truewave {
196               value 4;
197               description
198                 "TRUEWAVE Reduced Slope";
199             }
200             enum truewavec {
201               value 5;
202               description
203                 "TRUEWAVE Classic";
204             }
205             enum nz-dsf {
206               value 6;
207               description
208                 "NZ-DSF";
209             }
210             enum ull {
211               value 7;
212               description
213                 "Ultra Low Loss (ULL)";
214             }
215           }
216         }
217         leaf pmd {
218           type org-openroadm-common-link-types:fiber-pmd;
219           description
220             "Total PMD";
221         }
222         leaf subject-to-high-SOP-changes {
223           type boolean;
224           description
225                   "identifies fibers that may experience high polarization rotation rates
226                    and which might be inadequate for some modulation format";
227         }
228       }
229     }
230     uses org-openroadm-network-types:future-SRLGs {
231       augment "future-SRLGs" {
232         leaf-list SRLG-Id {
233           type leafref {
234             path "/nd:networks/nd:network/cnet:SRLG-list/cnet:SRLG-Id";
235           }
236         }  
237       }
238     }
239   } 
240   grouping amplified-link-attributes {
241     list amplified-link {
242       key "section-elt-number";
243       description
244         "defines the spans and the amplifier blocks of the amplified lines";
245       leaf section-elt-number {
246         type uint16;
247         description
248           "Id of the section element (whether it's a Span or an Amp)";
249       }
250       container section-element {
251         choice section-element {
252           case ila {
253             container ila {
254               uses org-openroadm-amplifier:amplifier-node-attributes;
255               uses org-openroadm-network-types:type-variety-grp;
256               leaf node-id {
257                 type org-openroadm-common-node-types:node-id-type;
258                 mandatory true;
259                 description
260                   "Node id corresponding to the amplifier ";
261               }
262               leaf administrative-state {
263                 type org-openroadm-equipment-states-types:admin-states;
264               }
265             }
266           }
267           case span {
268             container span {
269               uses link:span-attributes;
270               leaf administrative-state {
271                 type org-openroadm-equipment-states-types:admin-states;
272               }
273             }
274           }
275         }
276       }
277     }
278   }
279 }