blob: bda3aa78a7f6b6cec4953dd80c662fb0f4c8ae03 [file] [log] [blame]
Jeff Groom34c28ce2018-04-26 19:42:18 -06001module ciena-waveserver-xcvr {
2 namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-xcvr";
3 prefix xcvr;
4
5 import ciena-waveserver-typedefs {
6 prefix cienawstypes;
7 }
8
9 organization
10 "Ciena Corporation";
11 contact
12 "Web URL: http://www.ciena.com/
13 Postal: 7035 Ridge Road
14 Hanover, Maryland 21076
15 U.S.A.
16 Phone: +1 800-921-1144
17 Fax: +1 410-694-5750";
18 description
19 "This module defines the common XCVR model. The XCVR is augmented by specific types of transceiver modules if applicable. XCVR objects are permanently available for all ports and reported as empty if the device is not physically present. Attributes read from the device are only available while the device is present.";
20
21 revision 2017-11-27 {
22 description
23 "Added 'mandatory' statement to 'properties/mode' leaf.";
24 reference "Waveserver Ai user's guide.";
25 }
26 revision 2017-08-27 {
27 description
28 "Waveserver Platform Data Model
29 Migrated from Waveserver Classic R1.4 YANG model.
30 Updated namespace to 'ciena-waveserver'.
31 Changed 'xcvrs' list key from 'xcvr-index' (integer type) to 'xcvr-id' (string type) to accommodate '<slot>-<port>' format.
32 Changed 'child-ptp-id' type from integer to string to accommodate '<slot>-<port>' format.
33 Changed 'power-state' enum values to use common typedef.
34 Renamed 'channels' to 'lanes'.
35 Updated description strings, fixed several lint errors/warnings.
36 Updated 'operational-state' enum values.
37 Removed 'description' attribute from 'id' container.
38 Removed 'xcvr-delete' RPC (deletes will be handled via native delete operation instead).";
39 reference "Waveserver Ai user's guide.";
40 }
41
42 typedef xcvr-op-enum {
43 type enumeration {
44 enum "unknown" {
45 description
46 "Unknown operational state.";
47 }
48 enum "up" {
49 description
50 "XCVR is up/operational.";
51 }
52 enum "down" {
53 description
54 "XCVR is down/failed.";
55 }
56 enum "fault" {
57 description
58 "There is an active alarm associated with the XCVR.";
59 }
60 enum "shutdown" {
61 description
62 "XCVR is shutdown/off.";
63 }
64 enum "lower-layer-down" {
65 description
66 "The XCVR is enabled, but a parent object is faulted.";
67 }
68 enum "unequipped" {
69 description
70 "XCVR is unequipped.";
71 }
72 enum "uncertified" {
73 description
74 "XCVR is uncertified.";
75 }
76 }
77 description
78 "XCVR operational state values.";
79 }
80
81 grouping optical-power-group {
82 description
83 "Group of optical power related operational data leafs. Can be used for Rx or Tx";
84 leaf actual {
85 type cienawstypes:decimal-1-dig;
86 units "dBm";
87 config false;
88 description
89 "Actual Tx or Rx optical power in dBm.";
90 }
91 leaf maximum {
92 type cienawstypes:decimal-1-dig;
93 units "dBm";
94 config false;
95 description
96 "Maximum actual recorded Tx or Rx optical power in dBm.";
97 }
98 leaf minimum {
99 type cienawstypes:decimal-1-dig;
100 units "dBm";
101 config false;
102 description
103 "Minimum actual recorded Tx or Rx optical power in dBm.";
104 }
105 leaf maximum-recorded-time {
106 type cienawstypes:string-maxl-32;
107 config false;
108 description
109 "The exact date and time when the maximum optical power (Tx or Rx) was recorded. In the format of a date time string.";
110 }
111 leaf minimum-recorded-time {
112 type cienawstypes:string-maxl-32;
113 config false;
114 description
115 "The exact date and time when the minimum optical power (Tx or Rx) was recorded. In the format of a date time string.";
116 }
117 }
118
119 grouping optical-power-threshold-group {
120 description
121 "Group of optical power alarm related operational data leafs. Can be used for Rx or Tx.";
122 leaf high-alarm-threshold {
123 type cienawstypes:decimal-1-dig;
124 units "dBm";
125 config false;
126 description
127 "Optical power high alarm threshold, in dBm. If it is modem Tx-power, the threshold can change based on provisioned tx power. High threshold = target power + 3.";
128 }
129 leaf low-alarm-threshold {
130 type cienawstypes:decimal-1-dig;
131 units "dBm";
132 config false;
133 description
134 "Optical power low alarm threshold, in dBm. If it is modem Tx-power, the threshold can change based on provisioned tx power. Low threshold = target power - 10.";
135 }
136 leaf high-warning-threshold {
137 type cienawstypes:decimal-1-dig;
138 units "dBm";
139 config false;
140 description
141 "Optical power high warning threshold, in dBm.";
142 }
143 leaf low-warning-threshold {
144 type cienawstypes:decimal-1-dig;
145 units "dBm";
146 config false;
147 description
148 "Optical power low warning threshold, in dBm.";
149 }
150 }
151
152 grouping optical-power-status-group {
153 description
154 "Group of optical power status related operational data leafs. Can be used for Rx or Tx";
155 leaf high-alarm-status {
156 type boolean;
157 config false;
158 description
159 "Optical power high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
160 }
161 leaf low-alarm-status {
162 type boolean;
163 config false;
164 description
165 "Optical power low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
166 }
167 leaf high-warning-status {
168 type boolean;
169 config false;
170 description
171 "Optical power high warning status, boolean, true if warning is raised, false if warning is not raised.";
172 }
173 leaf low-warning-status {
174 type boolean;
175 config false;
176 description
177 "Optical power low warning status, boolean, true if warning is raised, false if warning is not raised.";
178 }
179 }
180
181 grouping optical-bias-status-group {
182 description
183 "Group of optical bias related operational data leafs.";
184 leaf high-alarm-status {
185 type boolean;
186 config false;
187 description
188 "Optical bias high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
189 }
190 leaf low-alarm-status {
191 type boolean;
192 config false;
193 description
194 "Optical bias low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
195 }
196 leaf high-warning-status {
197 type boolean;
198 config false;
199 description
200 "Optical bias high warning status, boolean, true if warning is raised, false if warning is not raised.";
201 }
202 leaf low-warning-status {
203 type boolean;
204 config false;
205 description
206 "Optical bias low warning status, boolean, true if warning is raised, false if warning is not raised.";
207 }
208 }
209
210 grouping temperature-threshold-group {
211 description
212 "Group of XCVR temperature alarm and warning operational data leafs.";
213 leaf high-alarm-threshold {
214 type int16;
215 units "C";
216 config false;
217 description
218 "Temperature high alarm threshold, in degrees Celsius (C).";
219 }
220 leaf low-alarm-threshold {
221 type int16;
222 units "C";
223 config false;
224 description
225 "Temperature low alarm threshold, in degrees Celsius (C)";
226 }
227 leaf high-warning-threshold {
228 type int16;
229 units "C";
230 config false;
231 description
232 "Temperature high warning threshold, in degrees Celsius (C)";
233 }
234 leaf low-warning-threshold {
235 type int16;
236 units "C";
237 config false;
238 description
239 "Temperature low warning threshold, in degrees Celsius (C)";
240 }
241 }
242
243 grouping temperature-status-group {
244 description
245 "Group of XCVR temperature related operational data leafs.";
246 leaf high-alarm-status {
247 type boolean;
248 config false;
249 description
250 "Temperature high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
251 }
252 leaf low-alarm-status {
253 type boolean;
254 config false;
255 description
256 "Temperature low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
257 }
258 leaf high-warning-status {
259 type boolean;
260 config false;
261 description
262 "Temperature high warning status, boolean, true if warning is raised, false if warning is not raised.";
263 }
264 leaf low-warning-status {
265 type boolean;
266 config false;
267 description
268 "Temperature low warning status, boolean, true if warning is raised, false if warning is not raised.";
269 }
270 }
271
272 grouping supply-voltage-threshold-group {
273 description
274 "Group of Supply Voltage alarm and warning operational data leafs.";
275 leaf high-alarm-threshold {
276 type cienawstypes:decimal-2-dig;
277 units "V";
278 config false;
279 description
280 "Supply voltage high alarm threshold, in volts (V).";
281 }
282 leaf low-alarm-threshold {
283 type cienawstypes:decimal-2-dig;
284 units "V";
285 config false;
286 description
287 "Supply oltage low alarm threshold, in volts (V).";
288 }
289 leaf high-warning-threshold {
290 type cienawstypes:decimal-2-dig;
291 units "V";
292 config false;
293 description
294 "Supply voltage high warning threshold, in volts (V).";
295 }
296 leaf low-warning-threshold {
297 type cienawstypes:decimal-2-dig;
298 units "V";
299 config false;
300 description
301 "Supply voltage low warning threshold, in volts (V).";
302 }
303 }
304
305 grouping supply-voltage-status-group {
306 description
307 "group of Supply Voltage related operational data leafs. The grouping may be used by various XCVR containers, lists, and augments.";
308 leaf high-alarm-status {
309 type boolean;
310 config false;
311 description
312 "Supply voltage high alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
313 }
314 leaf low-alarm-status {
315 type boolean;
316 config false;
317 description
318 "Supply voltage low alarm status, boolean, true if alarm is raised, false if alarm is not raised.";
319 }
320 leaf high-warning-status {
321 type boolean;
322 config false;
323 description
324 "Supply voltage high warning status, boolean, true if warning is raised, false if warning is not raised.";
325 }
326 leaf low-warning-status {
327 type boolean;
328 config false;
329 description
330 "Supply voltage low warning status, boolean, true if warning is raised, false if warning is not raised.";
331 }
332 }
333
334 container waveserver-xcvrs {
335 description
336 "Waveserver transceivers (XCVR) configuration and operational data.";
337 list xcvrs {
338 key "xcvr-id";
339 description
340 "Waveserver transceiver (XCVR) list.";
341 leaf xcvr-id {
342 type cienawstypes:name-string;
343 mandatory true;
344 description
345 "Unique, access identifier string of the XCVR (e.g. '1-1'). Key value for the XCVR List.";
346 }
347 container id {
348 config false;
349 description
350 "Identification information of this XCVR instance.";
351 leaf name {
352 type cienawstypes:name-string;
353 config false;
354 description
355 "Name of the XCVR transceiver. Auto generated, and cannot be modified.";
356 }
357 }
358 container state {
359 description
360 "State information of this XCVR instance.";
361 leaf admin-state {
362 type cienawstypes:enabled-disabled-enum;
363 description
364 "Whether Admin State is enabled or disabled for this XCVR's PTP.";
365 }
366 leaf operational-state {
367 type xcvr-op-enum;
368 config false;
369 description
370 "Operational state of this XCVR, for Waveserver, it will be empty by default.";
371 }
372 leaf power-state {
373 type cienawstypes:power-state;
374 config false;
375 description
376 "Power State of the XCVR. If it is in automatic (normal) or shutdown (low power).";
377 }
378 }
379 container properties {
380 description
381 "All the Configurable and operational data of this XCVR instance.";
382 leaf type {
383 type cienawstypes:xcvr-type;
384 config false;
385 description
386 "Transceiver type, different transceiver types will have different operational data. Type depends on what is physically plugged in.";
387 }
388 leaf mode {
389 type cienawstypes:xcvr-mode;
390 mandatory true;
391 description
392 "Mode of the XCVR.";
393 }
394 leaf number-of-lanes {
395 type cienawstypes:lanes-number;
396 config false;
397 description
398 "Number of lanes this tranceiver has. Only applicable if a transceiver is plugged in.";
399 }
400 leaf-list child-ptp-id {
401 type cienawstypes:name-string;
402 config false;
403 description
404 "The child ptp this xcvr is associated with.";
405 }
406 container vendor-data {
407 config false;
408 description
409 "vendor-data, the container or its subcontainers may be augmented by pluggable or modem specific yang modules, depending on transceiver type.";
410 container id {
411 description
412 "XCVR Vendor ID";
413 container ciena-id {
414 description
415 "If the plugged transceiver is a Ciena product, display the Ciena product information. The leafs in this container will be blank if the transceiver is not plugged in or if it is not a Ciena product.";
416 leaf ciena-item-number {
417 type cienawstypes:string-maxl-32;
418 config false;
419 description
420 "If the plugged transceiver is a Ciena product, display the product item number. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
421 }
422 leaf revision {
423 type cienawstypes:string-maxl-32;
424 config false;
425 description
426 "If the plugged transceiver is a Ciena product, display the Ciena revision in the format of <prefix>.<number>.<suffix>. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
427 }
428 leaf description {
429 type cienawstypes:string-maxl-254;
430 config false;
431 description
432 "If the plugged transceiver is a Ciena product, display the Ciena description. If it is not a Ciena product or if nothing is plugged in, this field will be blank";
433 }
434 }
435 container vendor-id {
436 description
437 "Display the transceiver vendor identification information.";
438 leaf name {
439 type cienawstypes:string-maxl-32;
440 config false;
441 description
442 "Name of the Vendor that produced this transceiver. For Ciena transceiver, the value will be Ciena.";
443 }
444 leaf part-number {
445 type cienawstypes:string-maxl-32;
446 config false;
447 description
448 "Vendor part number of the transceiver.";
449 }
450 leaf revision {
451 type cienawstypes:string-maxl-32;
452 config false;
453 description
454 "Vendor Revision of the transceiver.";
455 }
456 leaf serial-number {
457 type cienawstypes:string-maxl-32;
458 config false;
459 description
460 "Vendor serial number of the XCVR transceiver.";
461 }
462 leaf manufactured-date {
463 type cienawstypes:string-maxl-16;
464 config false;
465 description
466 "Manufactured Date, in the format of mm/dd/yy.";
467 }
468 }
469 }
470 container properties {
471 description
472 "XCVR vendor data properties.";
473 container device-id {
474 description
475 "Vendor Device ID properties.";
476 leaf connector-type {
477 type cienawstypes:connector-type-desc-enum;
478 config false;
479 description
480 "Human readable description of Vendor's connector type byte value. Reference SFF-8024, table 4-3";
481 }
482 }
483 container transmitter {
484 description
485 "Transmitter properties.";
486 leaf nominal-bit-rate {
487 type cienawstypes:string-maxl-16;
488 units "Gbps";
489 config false;
490 description
491 "Bit rate, nominal, in Gbps for pluggable XCVRs. For modem XCVR objects, this will be OTUCn.";
492 }
493 }
494 container diagnostic-monitoring {
495 description
496 "XCVR diagnostic monitoring properties.";
497 leaf rx-power-measurement {
498 type enumeration {
499 enum "OMA" {
500 description
501 "Optical Modulation Amplitude (OMA) Rx measurement type.";
502 }
503 enum "average-power" {
504 description
505 "Average Power Rx measurement type.";
506 }
507 enum "yes" {
508 description
509 "yes";
510 }
511 enum "no" {
512 description
513 "no";
514 }
515 }
516 config false;
517 description
518 "Rx power measurement, bit 3 of diagnostic monitoring type. Reference SFF 8472 section 8.8 and table 8-5 for detail.";
519 }
520 leaf tx-power-measurement {
521 type enumeration {
522 enum "yes" {
523 description
524 "yes";
525 }
526 enum "no" {
527 description
528 "no";
529 }
530 }
531 config false;
532 description
533 "Tx power measurement, related to diagnostic monitoring type.";
534 }
535 }
536 }
537 }
538 container diagnostics {
539 config false;
540 description
541 "XCVR diagnostic data, the container or its subcontainers may be augmented by pluggable or modem specific yang modules, depending on the transceiver type.";
542 container device {
543 config false;
544 description
545 "container for all common device diagnostic data fields for the XCVR.";
546 container temperature {
547 description
548 "XCVR temperature measurements.";
549 leaf actual {
550 type int16;
551 units "C";
552 config false;
553 description
554 "Temperature Status, actual temperature in degrees Celsius (C). Range must be between -128 and 128.";
555 }
556 container status {
557 description
558 "XCVR temperature status.";
559 uses xcvr:temperature-status-group;
560 }
561 container threshold {
562 description
563 "XCVR temperature threshold.";
564 uses xcvr:temperature-threshold-group;
565 }
566 }
567 }
568 list lane {
569 key "lane-number";
570 config false;
571 max-elements "4";
572 description
573 "List of common xcvr lane diagnostic data fields of the XCVR.";
574 leaf lane-number {
575 type cienawstypes:lanes-number;
576 config false;
577 description
578 "Lane number of XCVR.";
579 }
580 container rx-power {
581 description
582 "Lane Tx power measurements.";
583 leaf actual {
584 type cienawstypes:decimal-1-dig;
585 units "dBm";
586 config false;
587 description
588 "Actual Rx optical power in dBm.";
589 }
590 container status {
591 description
592 "Rx power status.";
593 uses xcvr:optical-power-status-group;
594 }
595 container threshold {
596 description
597 "Rx power threshold.";
598 uses xcvr:optical-power-threshold-group;
599 }
600 }
601 container tx-power {
602 description
603 "Lane Tx power measurements.";
604 leaf actual {
605 type cienawstypes:decimal-1-dig;
606 units "dBm";
607 config false;
608 description
609 "Actual Tx optical power in dBm.";
610 }
611 container status {
612 description
613 "Tx power status.";
614 uses xcvr:optical-power-status-group;
615 }
616 container threshold {
617 description
618 "Tx power threshold.";
619 uses xcvr:optical-power-threshold-group;
620 }
621 }
622 }
623 }
624 }
625 }
626 }
627}