blob: d86558d0be146a2e95fc098a44dcae4e5b9aa921 [file] [log] [blame]
Stephane St-Laurent8adec972018-05-15 13:52:41 -07001module opendevice-voa {
2 yang-version 1;
3 namespace "http://www.opendevice.net/yang/opendevice-voa";
4 prefix "od-voa";
5 import opendevice-types {
6 prefix "od-types";
7 revision-date 2017-10-08;
8 }
9
10 organization "Infinera";
11 contact
12 "support@infinera.com";
13 description
14 "
15 This model describes configuration and operational state data for
16 optical VOAs, deployed as part of a transport line system.";
17 revision 2018-05-15 {
18 description "cleanup comment";
19 }
20
21 revision 2017-10-08 {
22 description
23 "Import opendevice-types
24 yang version 1
25 cleanup to match other device
26 remove specification for POC";
27 }
28
29 revision 2017-07-27;
30
31 feature power-control-supported {
32 description
33 "This feature means the device supports power control of a channel.";
34 }
35
36 feature attenuation-control-supported {
37 description
38 "This feature means the device supports attenuation control of a channel.";
39 }
40
41
42 typedef optical-power-absolute {
43 type decimal64 {
44 fraction-digits 2;
45 range "-100.00..100.00";
46 }
47 description
48 "The absolute optical power in dBM.";
49 }
50
51 typedef optical-power-relative {
52 type decimal64 {
53 fraction-digits 2;
54 range "-100.00..100.00";
55 }
56 description
57 "The relative optical power in dB.";
58 }
59 typedef operational-mode {
60 type enumeration {
61 enum auto {
62 value 1;
63 description "Under this mode, the optical amplifier configuration (system) is controlled by a controller";
64 }
65 enum manual {
66 value 2;
67 description "Under this mode, the optical amplifier configuration (base) is controled manually";
68 }
69 }
70 default "auto";
71 description "Determine the configuration set used to configure the optical amplifier";
72 }
73
74 typedef optical-control-mode {
75 type enumeration {
76 enum power {
77
78 value 1;
79 description "This is a close loop control to the output sensor";
80
81 }
82 enum loss {
83 value 2;
84 description "This is a close loop control to the output sensor";
85
86 }
87 enum off {
88 value 3;
89 description
90 "This mode is in open-loop (direct control to the attenuation of the underlying
91 wss module";
92
93 }
94 }
95 description
96 "Optical Control Mode: identifies specific algorithm related to power management and general optical control.";
97 reference "openroadm.org: Open ROADM MSA Specification.";
98 }
99 grouping voa-attenuation-specification {
100 container attenuation-range-spec {
101 leaf min-attenuation {
102 type decimal64 {
103 fraction-digits 1;
104 }
105 units dB;
106 }
107 leaf max-attenuation {
108 type decimal64 {
109 fraction-digits 1;
110 }
111 units dB;
112 }
113 leaf end-of-life-margin {
114 type decimal64 {
115 fraction-digits 1;
116 }
117 units dB;
118 }
119 }
120 }
121
122
123
124 grouping operational-spectrum-spec {
125 description "Define the operational band associated to the VOA ";
126 container optical-spectrum-spec {
127 leaf optical-band-type {
128 type identityref {
129 base od-types:optical-band;
130 }
131 }
132 leaf lower-frequency {
133 type od-types:dwdm-frequency-mhz;
134 units MHz;
135 description
136 "start-frequency represent the lower frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
137 TODO: Need to add the information about the L band";
138
139 }
140 leaf upper-frequency {
141 type od-types:dwdm-frequency-mhz;
142 units MHz;
143 description
144 "stop-frequency represent the upper frquency value. It shall be specified for the C band in reference to 193.1 THz. The alllowed frequency value can be built from the following expression: f = 193.1 THz plus or minus (n x slot-with-granulality)
145 TODO: Need to add the information about the L band";
146
147 }
148 }
149 }
150 grouping voa-specification-top {
151 container specification {
152 container state {
153 config false;
154 uses voa-attenuation-specification;
155 uses operational-spectrum-spec;
156 }
157 }
158 }
159
160
161 grouping voa-system-config {
162 uses voa-base-config;
163 }
164 grouping voa-system-state {
165 uses voa-base-state;
166 }
167 grouping voa-system-top {
168 description "Configuration for auto mode";
169
170 container system {
171 container config {
172 uses voa-system-config;
173 }
174 container state {
175 config false;
176 uses voa-system-config;
177 uses voa-system-state;
178 }
179 }
180 }
181
182 grouping voa-base-config {
183 leaf optical-control-mode-selection {
184 type optical-control-mode;
185 default "off";
186 description
187 "This parameter define the control mode associated to the channel under configuration.
188 When using \"power\" mode, the wss device will use the power-target and the power-target-tolerance to adjust automatically the wss channel attenuation (reported by the state parameter \"attenuation\"). Under that mode, it continously monitor the power associated to the channel and make adjustement to the wss device attenuation.
189 When using \"gain-loss\" mode, the wss device will use the attenuation-target value and apply it the the wss device channel attenuation (reported by the state parameter \"attenuation\").
190 When using \"off\" mode, the wss device will stop to update the wss device channel attenuation (reported by the state parameter \"attenuation\").
191
192 When transiting from \"off\" to \"gain-loss\" mode, the wss device will applied the attenuation-target to the wss attenuation directly without any attenuation ramping, it is up to the controller to control the way any ramp-up or down is applied. The bast approach will be to read the attenuation and apply it to the attenuation-target so no jump is caused on the optical signal ";
193
194 }
195 leaf voa-attenuation {
196 type optical-power-relative;
197 units dB;
198 description "This is the direct attenuation of the underlying device for initialization purpose";
199 }
200
201 leaf blocked {
202 type boolean;
203 description
204 "Optically blocked.";
205 }
206 container attenuation-control {
207
208 when "../optical-control-mode-selection = \"loss\"" {
209 description "";
210 }
211 if-feature attenuation-control-supported;
212 description "parameters used for optical attenuation control";
213 leaf attenuation-target {
214 type optical-power-relative;
215 units dB;
216
217 description
218 "attenuation target";
219 }
220 leaf attenuation-target-tolerance {
221 type optical-power-relative;
222 description
223 "This value represents the tolerance which the attenuation control should try to control the attenuation.";
224 } }
225
226 container power-control {
227 when "../optical-control-mode-selection = \"power\"" {
228 description "";
229 }
230 if-feature power-control-supported;
231 description "parameters used for optical power control";
232
233 leaf power-target {
234 type optical-power-absolute;
235 description
236 "The closed loop control target power of the connection.";
237 }
238 leaf power-target-tolerance {
239 type optical-power-relative;
240 description
241 "This value represents the tolerance which the power control should try to control the power. If the power ";
242 } }
243
244
245 leaf input-port-reference {
246 type string ;
247 description "The input port for the Connection";
248 }
249 leaf output-port-reference {
250 type string ;
251 description "The output port for the Connection";
252 }
253
254 }
255
256 grouping voa-base-state{
257 leaf measured-attenuation {
258 type decimal64 {
259 fraction-digits 1;
260 }
261 units dB;
262 }
263}
264 grouping voa-base-top {
265 description "Configuration for manual mode";
266
267 container base {
268 container config {
269 uses od-voa:voa-base-config;
270 }
271 container state {
272 config false;
273 uses od-voa:voa-base-config;
274 uses od-voa:voa-base-state;
275 }
276 }
277 }
278
279 grouping voa-config {
280 description "Configuration data for VOAs";
281 leaf name {
282 type string;
283 description "User-defined name assigned to identify a specific voa in the device";
284 }
285 leaf controller-mode {
286 type operational-mode ;
287 default "auto";
288
289 }
290
291 }
292 grouping voa-state;
293
294
295 grouping voa-top {
296 description "Top-level grouping for VOA Variable Optical Attenuator";
297 container voas {
298 description "Enclosing container for list of VOAs";
299 list voa {
300 key name;
301 description "List of VOA present in the device";
302 leaf name {
303 type leafref {
304 path "../config/name";
305 }
306 }
307 container config {
308 description "Configuration data for the voa";
309 uses voa-config;
310 }
311 container state {
312 config false;
313 description "Operational state data for the voa";
314 uses od-voa:voa-config;
315 uses od-voa:voa-state;
316
317 }
318 uses od-voa:voa-base-top;
319 uses od-voa:voa-system-top;
320
321 }
322 }
323 }
324
325 uses voa-top;
326}