blob: 852a52a5fea099595658254ebc0e0c6af88fc2ab [file] [log] [blame]
Jeff Groom34c28ce2018-04-26 19:42:18 -06001module ciena-waveserver-pm {
2 namespace "urn:ciena:params:xml:ns:yang:ciena-ws:ciena-waveserver-pm";
3 prefix pm;
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 performance monitoring data for the Waveserver.";
20
21 revision 2018-01-16 {
22 description
23 "Added DGD max/avg and PDL max/avg PM counters to PTP modem performance instances.
24 Updated Valid range for history bin-numbers are defined.";
25 reference "";
26 }
27 revision 2017-09-18 {
28 description
29 "Waveserver Platform Data Model
30 Migrated from Waveserver Classic R1.4 YANG model.
31 Updated namespace to 'ciena-waveserver'.
32 Update 'pm-interface-type' enum values to { ptp | port | channel }.
33 Updated 'pm-profile-type' enum values to { optical-power | modem-performance | otu-performance | odu-performance | ethernet-performance }.
34 Removed obsolete 'mac-layer' containers.
35 Removed 'instance-type' leafs and typedef.
36 Removed 'pm-bin-state' leafs and typedef.
37 Removed 'actual' from power-counts grouping.
38 Removed 'post-fec-bit-error-rate' leafs.
39 Removed 'alignment' from 'instance-properties' grouping.
40 Restructured pm bin and instance data into nested groupings.
41 Changed pm counters from leafs to containers with 'value', 'invalid-data-flag', and 'supported' leafs for each.
42 Updated several counter attributes to match the Waveserver Ai data model.
43 Removed 'current-bin-id' from pm instance state container.
44 Removed 'bin-number' from the current bin id containers, only needed for history bins list.
45 Removed 'persistence-interval' and 'persistence-storage-location' from 'global-config' container.";
46 reference "";
47 }
48
49 grouping pm-instance-id-container {
50 description
51 "Grouping for PM instance id container and attributes.";
52 container id {
53 config false;
54 description
55 "PM instance identification.";
56 leaf instance-id {
57 type uint32;
58 description
59 "ID of the PM instance.";
60 }
61 leaf profile-type {
62 type pm-profile-type;
63 description
64 "The PM profile type.";
65 }
66 }
67 }
68
69 grouping pm-instance-state-container {
70 description
71 "Grouping for PM instance state container and attributes.";
72 container state {
73 description
74 "PM instance state.";
75 leaf admin-state {
76 type cienawstypes:enabled-disabled-enum;
77 description
78 "The configured administrative state of the port.";
79 }
80 leaf operational-state {
81 type cienawstypes:enabled-disabled-enum;
82 config false;
83 description
84 "The operational state of the PM instance.";
85 }
86 leaf collection-start-date-time {
87 type cienawstypes:string-maxl-64;
88 config false;
89 description
90 "The PM stats collection starting date and time.";
91 }
92 leaf collection-end-date-time {
93 type cienawstypes:string-maxl-64;
94 config false;
95 description
96 "The PM stats collection ending date and time.";
97 }
98 }
99 }
100
101 grouping pm-instance-properties-container {
102 description
103 "Grouping for PM instance properties container and attributes.";
104 container properties {
105 config false;
106 description
107 "PM instance properties.";
108 leaf configuration-mode {
109 type pm-configuration-mode;
110 description
111 "The PM instance configuration mode";
112 }
113 leaf configured-bin-count {
114 type uint32;
115 description
116 "The configured number of history bins.";
117 }
118 leaf configured-bin-duration {
119 type uint32;
120 units "minutes";
121 description
122 "The configured PM bin duration in minutes.";
123 }
124 }
125 container attached-interface {
126 config false;
127 description
128 "Attached interface.";
129 leaf type {
130 type pm-interface-type;
131 description
132 "Attached interface type.";
133 }
134 leaf name {
135 type cienawstypes:string-maxl-32;
136 description
137 "Attached interface name.";
138 }
139 leaf operational-state {
140 type cienawstypes:enabled-disabled-enum;
141 description
142 "Attached interface operational state.";
143 }
144 }
145 }
146
147 grouping pm-bin-id-container {
148 description
149 "Grouping for PM bin id container and attributes.";
150 container id {
151 config false;
152 description
153 "PM Bin identification.";
154 leaf bin-name {
155 type cienawstypes:string-maxl-32;
156 description
157 "The PM bin name.";
158 }
159 }
160 }
161
162 grouping pm-current-bin-state-container {
163 description
164 "Grouping for PM current bin state container and attributes.";
165 container state {
166 config false;
167 description
168 "PM bin state.";
169 leaf start-date-time {
170 type cienawstypes:string-maxl-32;
171 description
172 "Start date and time.";
173 }
174 leaf cleared-date-time {
175 type cienawstypes:string-maxl-32;
176 description
177 "Cleared date and time.";
178 }
179 }
180 }
181
182 grouping pm-history-bin-state-container {
183 description
184 "Grouping for PM history bin state container and attributes.";
185 container state {
186 config false;
187 description
188 "PM bin state.";
189 leaf start-date-time {
190 type cienawstypes:string-maxl-32;
191 description
192 "Start date and time.";
193 }
194 leaf end-date-time {
195 type cienawstypes:string-maxl-32;
196 description
197 "End date and time.";
198 }
199 }
200 }
201
202 grouping pm-counter-meta {
203 description
204 "Grouping for PM counter metadata, including IDF and supported flags.";
205 leaf invalid-data-flag {
206 type boolean;
207 description
208 "Invalid Data Flag (IDF) value. Reports the validity of the corresponding
209 PM data. Reported only with previous interval PM counters. A value of true
210 indicates the PM data for the specified counter or interval is incomplete
211 or invalid.";
212 reference "ITU-T G.997.2, sections 7.7.2 and 7.8.2.";
213 }
214 leaf supported {
215 type boolean;
216 description
217 "Indicates whether the specified counter is supported on associated
218 hardware version and interface type.";
219 }
220 }
221
222 grouping pm-counter-group {
223 description
224 "Grouping for basic PM counters, including count value and metadata.";
225 leaf value {
226 type uint64;
227 description
228 "PM counter value.";
229 }
230 uses pm-counter-meta;
231 }
232
233 grouping pm-counter-percent-group {
234 description
235 "Grouping for PM counters with percent units, including count value and metadata.";
236 leaf value {
237 type cienawstypes:decimal-1-dig;
238 units "percent";
239 description
240 "PM value, as a percentage.";
241 }
242 uses pm-counter-meta;
243 }
244
245 grouping pm-counter-dbm-group {
246 description
247 "Grouping for PM counters with dBm units, including count value and metadata.";
248 leaf value {
249 type cienawstypes:decimal-3-dig;
250 units "dBm";
251 description
252 "PM value, as a power level in dBm.";
253 }
254 uses pm-counter-meta;
255 }
256
257 grouping pm-counter-db-group {
258 description
259 "Grouping for PM counters with dB units, including count value and metadata.";
260 leaf value {
261 type cienawstypes:decimal-3-dig;
262 units "dB";
263 description
264 "PM value, as loss or gain in dB.";
265 }
266 uses pm-counter-meta;
267 }
268
269 grouping pm-counter-qfac-group {
270 description
271 "Grouping for q-factor PMs, including count value and metadata.";
272 leaf value {
273 type cienawstypes:decimal-3-dig;
274 description
275 "PM value, as a q-factor.";
276 }
277 uses pm-counter-meta;
278 }
279
280 grouping pm-counter-ber-group {
281 description
282 "Grouping for BER PM counters in scientific notation, including count value and metadata.";
283 leaf value {
284 type cienawstypes:string-sci;
285 description
286 "PM value, as a bit error rate in scientific notation.";
287 }
288 uses pm-counter-meta;
289 }
290
291 grouping ethernet-pm-counts-rx {
292 description
293 "Grouping for Ethernet port PM Rx counters.";
294 container bytes {
295 description
296 "Number of bytes received including good and bad packets. This includes
297 FCS bytes, but excludes framing bits.";
298 uses pm-counter-group;
299 }
300 container packets {
301 description
302 "Number of packets received, including all unicast, multicast, broadcast, MAC control, and bad packets";
303 uses pm-counter-group;
304 }
305 container crc-errored-packets {
306 description
307 "Number of packets received which contained an FCS error and were between 64 and 1518 bytes in length.";
308 uses pm-counter-group;
309 }
310 container multicast-packets {
311 description
312 "Number of good multicast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
313 uses pm-counter-group;
314 }
315 container broadcast-packets {
316 description
317 "Number of good broadcast packets received that were between 64 and 1518 bytes in length. Excludes MAC control frames";
318 uses pm-counter-group;
319 }
320 container undersized-packets {
321 description
322 "Number of packets received that were less than 64 bytes (excluding framing bits but including FCS bytes) and were otherwise well formed. This counter also includes the number of packets discarded because of Ethernet length check errors. Undersize packets are discarded.";
323 uses pm-counter-group;
324 }
325 container oversized-packets {
326 description
327 "Number of packets received (including unicast, multicast, and broadcast packets) that were longer than 1518 bytes up to the configured maximum frame size, that contained a valid FCS (excluding framing bits but including FCS bytes), and that were otherwise well formed";
328 uses pm-counter-group;
329 }
330 container fragment-packets {
331 description
332 "Number of packets received between 10 and 63 bytes in length (excluding framing bits but including FCS bytes) that had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Fragment packets are discarded.";
333 uses pm-counter-group;
334 }
335 container jabber-packets {
336 description
337 "Number of packets received that were longer than 1518 bytes up to the configured maximum frame size (excluding framing bits, but including FCS bytes), and had either a bad FCS with an integral number of bytes (FCS Error) or a bad FCS with a non-integral number of bytes (Alignment Error). Jabber packets are discarded";
338 uses pm-counter-group;
339 }
340 container length-out-of-range-packets {
341 description
342 "Number of Rx length out-of-range packets transmitted";
343 uses pm-counter-group;
344 }
345 container pause-packets {
346 description
347 "Number of received valid pause packets that were between 64 and 1518 bytes in length";
348 uses pm-counter-group;
349 }
350 container packets-64-octet {
351 description
352 "Number of packets (including bad packets) received that were 64 bytes in length (excluding framing bits but including FCS bytes).";
353 uses pm-counter-group;
354 }
355 container packets-65-127-octet {
356 description
357 "Number of good and bad packets received that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
358 uses pm-counter-group;
359 }
360 container packets-128-255-octet {
361 description
362 "Number of good and bad packets received that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
363 uses pm-counter-group;
364 }
365 container packets-256-511-octet {
366 description
367 "Number of good and bad packets received that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
368 uses pm-counter-group;
369 }
370 container packets-512-1023-octet {
371 description
372 "Number of good and bad packets received that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
373 uses pm-counter-group;
374 }
375 container packets-1024-1518-octet {
376 description
377 "Number of good and bad packets received that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
378 uses pm-counter-group;
379 }
380 container packets-1519-jumbo-octet {
381 description
382 "Number of good and bad packets received that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
383 uses pm-counter-group;
384 }
385 container jumbo-octet-packets {
386 description
387 "Number of good and bad packets received that were greater than MTU size.";
388 uses pm-counter-group;
389 }
390 container bytes-per-second {
391 description
392 "Average number bytes received per second during this period.";
393 uses pm-counter-group;
394 }
395 container frames-per-second {
396 description
397 "Average number frames received per second during this period.";
398 uses pm-counter-group;
399 }
400 container average-link-utilization {
401 description
402 "Average percent utilization derived from Rx bytes and port speed.";
403 uses pm-counter-percent-group;
404 }
405 container minimum-link-utilization {
406 description
407 "Minimum percent utilization derived from Rx bytes and port speed.";
408 uses pm-counter-percent-group;
409 }
410 container maximum-link-utilization {
411 description
412 "Maximum percent utilization derived from Rx bytes and port speed.";
413 uses pm-counter-percent-group;
414 }
415 container block-errors {
416 description
417 "PCS block errors.";
418 uses pm-counter-group;
419 }
420 container multilane-bip-errors {
421 description
422 "PCS lane BIP errors.";
423 uses pm-counter-group;
424 }
425 container frame-error-ratio {
426 description
427 "Frame error ratio.";
428 uses pm-counter-group;
429 }
430 }
431
432 grouping ethernet-pm-counts-tx {
433 description
434 "Grouping for Ethernet port PM Tx counters.";
435 container bytes {
436 description
437 "Number of transmitted bytes in good and bad packets including FCS bytes and excluding frame bits.";
438 uses pm-counter-group;
439 }
440 container packets {
441 description
442 "Number of transmitted packets, including all unicast, multicast, broadcast, MAC control, and bad packets";
443 uses pm-counter-group;
444 }
445 container excessive-deferred-packets {
446 description
447 "Number of transmitted packets experiencing two or more deferrals. Applicable to copper ports only";
448 uses pm-counter-group;
449 }
450 container underrun-packets {
451 description
452 "Number of underrun packets transmitted";
453 uses pm-counter-group;
454 }
455 container crc-errored-packets {
456 description
457 "Number of transmitted packets with an FCS error";
458 uses pm-counter-group;
459 }
460 container length-check-error-packets {
461 description
462 "Number of length check packets transmitted";
463 uses pm-counter-group;
464 }
465 container length-out-of-range-packets {
466 description
467 "Number of Tx length out-of-range packets transmitted";
468 uses pm-counter-group;
469 }
470 container pause-packets {
471 description
472 "Number of pause packets transmitted";
473 uses pm-counter-group;
474 }
475 container giant-packets {
476 description
477 "Number of well-formed packets larger than 1518 bytes, including FCS bytes but excluding framing bits.";
478 uses pm-counter-group;
479 }
480 container multicast-packets {
481 description
482 "Number of good multicast packets transmitted";
483 uses pm-counter-group;
484 }
485 container broadcast-packets {
486 description
487 "Number of good broadcast packets transmitted";
488 uses pm-counter-group;
489 }
490 container packets-64-octet {
491 description
492 "Number of packets (including bad packets) transmitted that were 64 bytes in length (excluding framing bits but including FCS bytes).";
493 uses pm-counter-group;
494 }
495 container packets-65-127-octet {
496 description
497 "Number of good and bad packets transmitted that were between 65 and 127 bytes in length (excluding framing bits but including FCS bytes).";
498 uses pm-counter-group;
499 }
500 container packets-128-255-octet {
501 description
502 "Number of good and bad packets transmitted that were between 128 and 255 bytes in length inclusive (excluding framing bits but including FCS bytes).";
503 uses pm-counter-group;
504 }
505 container packets-256-511-octet {
506 description
507 "Number of good and bad packets transmitted that were between 256 and 511 bytes in length inclusive (excluding framing bits but including FCS bytes).";
508 uses pm-counter-group;
509 }
510 container packets-512-1023-octet {
511 description
512 "Number of good and bad packets transmitted that were between 512 and 1023 bytes in length inclusive (excluding framing bits but including FCS bytes).";
513 uses pm-counter-group;
514 }
515 container packets-1024-1518-octet {
516 description
517 "Number of good and bad packets transmitted that were between 1024 and 1518 bytes in length inclusive (excluding framing bits but including FCS bytes).";
518 uses pm-counter-group;
519 }
520 container packets-1519-jumbo-octet {
521 description
522 "Number of good and bad packets transmitted that were between 1519 bytes in length up to MTU size (excluding framing bits but including FCS bytes).";
523 uses pm-counter-group;
524 }
525 container jumbo-octet-packets {
526 description
527 "Number of good and bad packets transmitted that were greater than MTU size.";
528 uses pm-counter-group;
529 }
530 container bytes-per-second {
531 description
532 "Average number bytes transmitted per second during this period.";
533 uses pm-counter-group;
534 }
535 container frames-per-second {
536 description
537 "Average number frames transmitted per second during this period.";
538 uses pm-counter-group;
539 }
540 container average-link-utilization {
541 description
542 "Average percent utilization derived from Tx bytes and port speed.";
543 uses pm-counter-percent-group;
544 }
545 container minimum-link-utilization {
546 description
547 "Minimum percent utilization derived from Tx bytes and port speed.";
548 uses pm-counter-percent-group;
549 }
550 container maximum-link-utilization {
551 description
552 "Maximum percent utilization derived from Tx bytes and port speed.";
553 uses pm-counter-percent-group;
554 }
555 container block-errors {
556 description
557 "PCS block errors.";
558 uses pm-counter-group;
559 }
560 container multilane-bip-errors {
561 description
562 "PCS lane BIP errors.";
563 uses pm-counter-group;
564 }
565 container frame-error-ratio {
566 description
567 "Frame error ratio.";
568 uses pm-counter-group;
569 }
570 }
571
572 grouping error-counts {
573 description
574 "Grouping for common PM error counts (ES, SES, UAS).";
575 container errored-seconds {
576 description
577 "Number of seconds that error happened.";
578 uses pm-counter-group;
579 }
580 container severely-errored-seconds {
581 description
582 "Number of seconds that severe error happened.";
583 uses pm-counter-group;
584 }
585 container unavailable-seconds {
586 description
587 "Number of seconds that the interface was unavailable.";
588 uses pm-counter-group;
589 }
590 }
591
592 grouping fec-layer-counts {
593 description
594 "Grouping for Ethernet port FEC layer counts.";
595 container corrected-codeword-count {
596 description
597 "FEC layer corrected codeword count";
598 uses pm-counter-group;
599 }
600 container uncorrected-codeword-count {
601 description
602 "FEC layer uncorrected codeword count";
603 uses pm-counter-group;
604 }
605 container symbol-error-count {
606 description
607 "FEC layer symbol error count. This is the total of error counts across all PMA lanes on this interface.";
608 uses pm-counter-group;
609 }
610 }
611
612 grouping dgd-counts {
613 description
614 "Differential Group Delay (DGD) Grouping.";
615 container maximum {
616 description
617 "Maximum differential group delay (in ps).";
618 uses pm-counter-group;
619 }
620 container average {
621 description
622 "Average differential group delay (in ps).";
623 uses pm-counter-group;
624 }
625 }
626
627 grouping pdl-counts {
628 description
629 "Polarization Dependent Loss (PDL) Grouping.";
630 container maximum {
631 description
632 "Maximum polarization dependent loss (in dB).";
633 uses pm-counter-db-group;
634 }
635 container average {
636 description
637 "Average polarization dependent loss (in dB).";
638 uses pm-counter-db-group;
639 }
640 }
641
642 grouping power-counts {
643 description
644 "Optical Power Grouping. Can be used for Tx or Rx optical power PM instances.";
645 container minimum {
646 description
647 "Minimum power reading.";
648 uses pm-counter-dbm-group;
649 }
650 container maximum {
651 description
652 "Maximum power reading.";
653 uses pm-counter-dbm-group;
654 }
655 container average {
656 description
657 "Average power reading.";
658 uses pm-counter-dbm-group;
659 }
660 }
661
662 grouping ber-counts {
663 description
664 "Grouping for common PM Bit-Error-Rate values.";
665 container bit-error-rate {
666 description
667 "Bit error rate reading.";
668 uses pm-counter-ber-group;
669 }
670 container maximum {
671 description
672 "Maximum BER reading.";
673 uses pm-counter-ber-group;
674 }
675 }
676
677 grouping q-factor-counts {
678 description
679 "Grouping for PM modem Q-Factor values.";
680 container q-factor {
681 description
682 "Q-Factor reading.";
683 uses pm-counter-qfac-group;
684 }
685 container minimum {
686 description
687 "Minimum Q-Factor reading.";
688 uses pm-counter-qfac-group;
689 }
690 container maximum {
691 description
692 "Maximum Q-Factor reading.";
693 uses pm-counter-qfac-group;
694 }
695 }
696
697 grouping fec-error-counts {
698 description
699 "Grouping for line PTP FEC counts.";
700 container frame-error-count {
701 description
702 "FEC Frame error counts.";
703 uses pm-counter-group;
704 }
705 container frame-error-count-second {
706 description
707 "FEC Frame error count second.";
708 uses pm-counter-group;
709 }
710 container uncorrected-block-count {
711 description
712 "FEC uncorrected block count.";
713 uses pm-counter-group;
714 }
715 container high-correction-count-seconds {
716 description
717 "FEC high correction count seconds.";
718 uses pm-counter-group;
719 }
720 }
721
722 grouping pm-ethernet-stats-group {
723 description
724 "Grouping for Ethernet port statistics containers and attributes.";
725 container interface-counts {
726 description
727 "Ethernet PM interface counts.";
728 container rx {
729 description
730 "Ethernet interface Rx counts.";
731 uses ethernet-pm-counts-rx;
732 }
733 container tx {
734 description
735 "Ethernet interface Tx counts.";
736 uses ethernet-pm-counts-tx;
737 }
738 }
739 container pcs-layer {
740 description
741 "PCS layer statistics.";
742 container sync-header-errors {
743 description
744 "PCS sync header errors.";
745 uses pm-counter-group;
746 }
747 uses error-counts;
748 }
749 container fec-layer {
750 description
751 "Ethernet FEC layer PM statistics.";
752 uses fec-layer-counts;
753 }
754 }
755
756 grouping pm-optical-power-stats-group {
757 description
758 "Grouping for PTP optical power statistics containers and attributes.";
759 leaf number-of-lanes {
760 type uint16;
761 description
762 "Number of optical lanes.";
763 }
764 list optical-power {
765 key "lane-number";
766 config false;
767 max-elements "4";
768 description
769 "Statistics for a PTP optical lane.";
770 leaf lane-number {
771 type cienawstypes:lanes-number;
772 config false;
773 description
774 "Lane number.";
775 }
776 container rx-power {
777 config false;
778 uses power-counts;
779 description
780 "Rx power reading.";
781 }
782 container tx-power {
783 config false;
784 uses power-counts;
785 description
786 "Tx power reading.";
787 }
788 }
789 container channel-power {
790 config false;
791 description
792 "Total optical channel power readings. Only applies to line PTP in 'colourless' mode.";
793 container rx-power {
794 config false;
795 uses power-counts;
796 description
797 "Rx power reading.";
798 }
799 }
800 }
801
802 grouping pm-modem-stats-group {
803 description
804 "Grouping for PTP modem statistics containers and attributes.";
805 container pre-fec-bit-error-rate {
806 config false;
807 uses ber-counts;
808 description
809 "Pre-FEC BER counts.";
810 }
811 container q-factor {
812 config false;
813 uses q-factor-counts;
814 description
815 "Q-Factor count.";
816 }
817 container fec-error {
818 config false;
819 uses fec-error-counts;
820 description
821 "FEC error counts.";
822 }
823 container dgd {
824 description
825 "Differential group delay (DGD) counts.";
826 uses dgd-counts;
827 }
828 container pdl {
829 description
830 "Polarization dependent loss (PDL) counts.";
831 uses pdl-counts;
832 }
833 }
834
835 grouping pm-otn-stats-group {
836 description
837 "Grouping for OTN port/channel statistics containers and attributes.";
838 container background-block-errors {
839 description
840 "Background Block Errors (BBE).";
841 uses pm-counter-group;
842 }
843 uses error-counts;
844 container far-end {
845 description
846 "Far-end statistics.";
847 container background-block-errors {
848 description
849 "Background Block Errors (BBE).";
850 uses pm-counter-group;
851 }
852 uses error-counts;
853 }
854 }
855
856 typedef pm-persistence-status {
857 type enumeration {
858 enum "none" {
859 description
860 "Save to persistence not attempted.";
861 }
862 enum "inprogress" {
863 description
864 "Save to persistence in progress.";
865 }
866 enum "complete" {
867 description
868 "Save to persistence complete.";
869 }
870 enum "not-found" {
871 description
872 "File not found.";
873 }
874 enum "inaccessible" {
875 description
876 "Unable to access persistence storage location.";
877 }
878 enum "aborted" {
879 description
880 "Save to persistence aborted.";
881 }
882 enum "corrupt" {
883 description
884 "Persistence file is corrupt.";
885 }
886 enum "failed" {
887 description
888 "Save to persistence failed.";
889 }
890 enum "partial" {
891 description
892 "Save to persistence was only partially successful.";
893 }
894 enum "not-ready" {
895 description
896 "Persistence not ready.";
897 }
898 }
899 description
900 "PM persistence status.";
901 }
902
903 typedef pm-persistence-state {
904 type enumeration {
905 enum "not-initialized" {
906 description
907 "PM persistence not-initialized";
908 }
909 enum "initialized" {
910 description
911 "PM persistence initialized";
912 }
913 }
914 description
915 "PM persistence state.";
916 }
917
918 typedef pm-configuration-mode {
919 type enumeration {
920 enum "unknown" {
921 description
922 "Unknown PM instance configuration mode.";
923 }
924 enum "auto-created" {
925 description
926 "PM instance is auto-created (default).";
927 }
928 enum "user-created" {
929 description
930 "PM instance is user-created.";
931 }
932 }
933 description
934 "PM configuration mode.";
935 }
936
937 typedef pm-interface-type {
938 type enumeration {
939 enum "ptp" {
940 description
941 "Associated interface is a PTP.";
942 }
943 enum "port" {
944 description
945 "Associated interface is an Ethernet or OTN port.";
946 }
947 enum "channel" {
948 description
949 "Associated interface is an ODU channel.";
950 }
951 }
952 description
953 "PM interface type. The object type on which the PMs are being collected/reported.";
954 }
955
956 typedef pm-profile-type {
957 type enumeration {
958 enum "optical-power" {
959 description
960 "PTP Optical Power PM profile type.";
961 }
962 enum "modem-performance" {
963 description
964 "PTP Modem PM profile type.";
965 }
966 enum "otu-performance" {
967 description
968 "Port OTU PM profile type.";
969 }
970 enum "odu-performance" {
971 description
972 "Port/Channel ODU profile type.";
973 }
974 enum "ethernet-performance" {
975 description
976 "Port Ethernet PM profile type.";
977 }
978 }
979 description
980 "PM profile type.";
981 }
982
983 container waveserver-pm {
984 description
985 "Waveserver performance monitoring configuration and operational data.";
986 container global-config {
987 description
988 "Performance monitoring global configuration on the Waveserver.";
989 leaf admin-state {
990 type cienawstypes:enabled-disabled-enum;
991 description
992 "Global admin state.";
993 }
994 }
995 container persistence-state {
996 config false;
997 description
998 "Performance monitoring persistence state on the Waveserver.";
999 leaf state {
1000 type pm-persistence-state;
1001 description
1002 "Persistence state initialized or not.";
1003 }
1004 leaf next-history-bin-save {
1005 type uint32;
1006 units "seconds";
1007 description
1008 "Number of seconds left before current bin is saved to history.";
1009 }
1010 leaf current-file-size {
1011 type uint32;
1012 units "bytes";
1013 description
1014 "Current file size.";
1015 }
1016 leaf save-status {
1017 type pm-persistence-status;
1018 description
1019 "Persistence storage setting.";
1020 }
1021 leaf instances-saved {
1022 type uint32;
1023 description
1024 "Number of the PM instances saved.";
1025 }
1026 leaf elapsed-save-time {
1027 type uint32;
1028 units "seconds";
1029 description
1030 "Number of seconds passed since the save begin.";
1031 }
1032 leaf load-status {
1033 type pm-persistence-status;
1034 description
1035 "Persistence load status.";
1036 }
1037 leaf instances-in-file {
1038 type uint32;
1039 description
1040 "Total number of PM instances in file.";
1041 }
1042 leaf instances-loaded {
1043 type uint32;
1044 description
1045 "Number of loaded instances.";
1046 }
1047 leaf elapsed-load-time {
1048 type uint32;
1049 units "seconds";
1050 description
1051 "Elaspsed Load Time.";
1052 }
1053 }
1054 container auto-created {
1055 config false;
1056 description
1057 "PM auto created instances.";
1058 list instances {
1059 key "instance-id";
1060 config false;
1061 description
1062 "PM auto-created instance list.";
1063 leaf instance-id {
1064 type uint32;
1065 description
1066 "ID of the PM instance.";
1067 }
1068 leaf instance-name {
1069 type cienawstypes:string-maxl-32;
1070 description
1071 "The PM instance name.";
1072 }
1073 leaf admin-state {
1074 type cienawstypes:enabled-disabled-enum;
1075 description
1076 "The configured administrative state of the PM instance.";
1077 }
1078 leaf operational-state {
1079 type cienawstypes:enabled-disabled-enum;
1080 description
1081 "The operational state of the PM instance.";
1082 }
1083 leaf bin-count {
1084 type uint32;
1085 description
1086 "The number of history bins.";
1087 }
1088 leaf bin-duration {
1089 type uint32;
1090 units "minutes";
1091 description
1092 "The PM bin duration in minutes.";
1093 }
1094 leaf attached-interface-type {
1095 type pm-interface-type;
1096 description
1097 "Attached interface type.";
1098 }
1099 leaf attached-interface-name {
1100 type cienawstypes:string-maxl-32;
1101 description
1102 "Attached interface name.";
1103 }
1104 }
1105 }
1106 list ethernet-performance-instances {
1107 key "instance-name";
1108 description
1109 "Ethernet port PM instances.";
1110 leaf instance-name {
1111 type cienawstypes:string-maxl-32;
1112 description
1113 "Unique name for PM instance.";
1114 }
1115 uses pm-instance-id-container;
1116 uses pm-instance-state-container;
1117 uses pm-instance-properties-container;
1118 container current-bin {
1119 config false;
1120 description
1121 "PM current 15-minute bin.";
1122 uses pm-bin-id-container;
1123 uses pm-current-bin-state-container;
1124 container statistics {
1125 config false;
1126 description
1127 "Statistics data.";
1128 uses pm-ethernet-stats-group;
1129 }
1130 }
1131 container current-24-hour-bin {
1132 config false;
1133 description
1134 "PM current 24-hour bin.";
1135 uses pm-bin-id-container;
1136 uses pm-current-bin-state-container;
1137 container statistics {
1138 config false;
1139 description
1140 "Statistics data.";
1141 uses pm-ethernet-stats-group;
1142 }
1143 }
1144 container untimed-bin {
1145 config false;
1146 description
1147 "PM untimed bin.";
1148 uses pm-bin-id-container;
1149 uses pm-current-bin-state-container;
1150 container statistics {
1151 config false;
1152 description
1153 "Statistics data.";
1154 uses pm-ethernet-stats-group;
1155 }
1156 }
1157 container history {
1158 config false;
1159 description
1160 "PM 15-minute bin history";
1161 list bins {
1162 key "bin-number";
1163 config false;
1164 description
1165 "PM history 15-minute bin list.";
1166 leaf bin-number {
1167 type uint32 {
1168 range "1..96";
1169 }
1170 description
1171 "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
1172 }
1173 uses pm-bin-id-container;
1174 uses pm-history-bin-state-container;
1175 container statistics {
1176 config false;
1177 description
1178 "Statistics data.";
1179 uses pm-ethernet-stats-group;
1180 }
1181 }
1182 }
1183 container history-24-hour-bin {
1184 config false;
1185 description
1186 "PM History 24-hour bin.";
1187 uses pm-bin-id-container;
1188 uses pm-history-bin-state-container;
1189 container statistics {
1190 config false;
1191 description
1192 "Statistics data.";
1193 uses pm-ethernet-stats-group;
1194 }
1195 }
1196 }
1197 list optical-power-instances {
1198 key "instance-name";
1199 description
1200 "PTP Optical Power PM instances.";
1201 leaf instance-name {
1202 type cienawstypes:string-maxl-32;
1203 description
1204 "Unique name for PM instance.";
1205 }
1206 uses pm-instance-id-container;
1207 uses pm-instance-state-container;
1208 uses pm-instance-properties-container;
1209 container current-bin {
1210 config false;
1211 description
1212 "PM current 15-minute bin.";
1213 uses pm-bin-id-container;
1214 uses pm-current-bin-state-container;
1215 container statistics {
1216 config false;
1217 description
1218 "Statistics data.";
1219 uses pm-optical-power-stats-group;
1220 }
1221 }
1222 container current-24-hour-bin {
1223 config false;
1224 description
1225 "PM current 24-hour bin.";
1226 uses pm-bin-id-container;
1227 uses pm-current-bin-state-container;
1228 container statistics {
1229 config false;
1230 description
1231 "Statistics data.";
1232 uses pm-optical-power-stats-group;
1233 }
1234 }
1235 container untimed-bin {
1236 config false;
1237 description
1238 "PM untimed bin.";
1239 uses pm-bin-id-container;
1240 uses pm-current-bin-state-container;
1241 container statistics {
1242 config false;
1243 description
1244 "Statistics data.";
1245 uses pm-optical-power-stats-group;
1246 }
1247 }
1248 container history {
1249 config false;
1250 description
1251 "PM 15-minute bin history.";
1252 list bins {
1253 key "bin-number";
1254 config false;
1255 description
1256 "PM history 15-minute bin list.";
1257 leaf bin-number {
1258 type uint32 {
1259 range "1..96";
1260 }
1261 description
1262 "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
1263 }
1264 uses pm-bin-id-container;
1265 uses pm-history-bin-state-container;
1266 container statistics {
1267 config false;
1268 description
1269 "Statistics data.";
1270 uses pm-optical-power-stats-group;
1271 }
1272 }
1273 }
1274 container history-24-hour-bin {
1275 config false;
1276 description
1277 "PM History 24-hour bin.";
1278 uses pm-bin-id-container;
1279 uses pm-history-bin-state-container;
1280 container statistics {
1281 config false;
1282 description
1283 "Statistics data.";
1284 uses pm-optical-power-stats-group;
1285 }
1286 }
1287 }
1288 list modem-performance-instances {
1289 key "instance-name";
1290 description
1291 "PTP Modem PM instances.";
1292 leaf instance-name {
1293 type cienawstypes:string-maxl-32;
1294 description
1295 "Unique name for PM instance.";
1296 }
1297 uses pm-instance-id-container;
1298 uses pm-instance-state-container;
1299 uses pm-instance-properties-container;
1300 container current-bin {
1301 config false;
1302 description
1303 "PM current 15-minute bin.";
1304 uses pm-bin-id-container;
1305 uses pm-current-bin-state-container;
1306 container statistics {
1307 config false;
1308 description
1309 "Statistics data.";
1310 uses pm-modem-stats-group;
1311 }
1312 }
1313 container current-24-hour-bin {
1314 config false;
1315 description
1316 "PM current 24-hour bin.";
1317 uses pm-bin-id-container;
1318 uses pm-current-bin-state-container;
1319 container statistics {
1320 config false;
1321 description
1322 "Statistics data.";
1323 uses pm-modem-stats-group;
1324 }
1325 }
1326 container untimed-bin {
1327 config false;
1328 description
1329 "PM untimed bin.";
1330 uses pm-bin-id-container;
1331 uses pm-current-bin-state-container;
1332 container statistics {
1333 config false;
1334 description
1335 "Statistics data.";
1336 uses pm-modem-stats-group;
1337 }
1338 }
1339 container history {
1340 config false;
1341 description
1342 "PM 15-minute bin history.";
1343 list bins {
1344 key "bin-number";
1345 config false;
1346 description
1347 "PM history 15-minute bin list.";
1348 leaf bin-number {
1349 type uint32 {
1350 range "1..96";
1351 }
1352 description
1353 "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
1354 }
1355 uses pm-bin-id-container;
1356 uses pm-history-bin-state-container;
1357 container statistics {
1358 config false;
1359 description
1360 "Statistics data.";
1361 uses pm-modem-stats-group;
1362 }
1363 }
1364 }
1365 container history-24-hour-bin {
1366 config false;
1367 description
1368 "PM History 24-hour bin.";
1369 uses pm-bin-id-container;
1370 uses pm-history-bin-state-container;
1371 container statistics {
1372 config false;
1373 description
1374 "Statistics data.";
1375 uses pm-modem-stats-group;
1376 }
1377 }
1378 }
1379 list otu-performance-instances {
1380 key "instance-name";
1381 description
1382 "Port OTU PM instances.";
1383 leaf instance-name {
1384 type cienawstypes:string-maxl-32;
1385 description
1386 "Unique name for PM instance.";
1387 }
1388 uses pm-instance-id-container;
1389 uses pm-instance-state-container;
1390 uses pm-instance-properties-container;
1391 container current-bin {
1392 config false;
1393 description
1394 "PM current 15-minute bin.";
1395 uses pm-bin-id-container;
1396 uses pm-current-bin-state-container;
1397 container statistics {
1398 config false;
1399 description
1400 "Statistics data.";
1401 uses pm-otn-stats-group;
1402 }
1403 }
1404 container current-24-hour-bin {
1405 config false;
1406 description
1407 "PM current 24-hour bin.";
1408 uses pm-bin-id-container;
1409 uses pm-current-bin-state-container;
1410 container statistics {
1411 config false;
1412 description
1413 "Statistics data.";
1414 uses pm-otn-stats-group;
1415 }
1416 }
1417 container untimed-bin {
1418 config false;
1419 description
1420 "PM untimed bin.";
1421 uses pm-bin-id-container;
1422 uses pm-current-bin-state-container;
1423 container statistics {
1424 config false;
1425 description
1426 "Statistics data.";
1427 uses pm-otn-stats-group;
1428 }
1429 }
1430 container history {
1431 config false;
1432 description
1433 "PM 15-minute bin history.";
1434 list bins {
1435 key "bin-number";
1436 config false;
1437 description
1438 "PM history 15-minute bin list.";
1439 leaf bin-number {
1440 type uint32 {
1441 range "1..96";
1442 }
1443 description
1444 "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
1445 }
1446 uses pm-bin-id-container;
1447 uses pm-history-bin-state-container;
1448 container statistics {
1449 config false;
1450 description
1451 "Statistics data.";
1452 uses pm-otn-stats-group;
1453 }
1454 }
1455 }
1456 container history-24-hour-bin {
1457 config false;
1458 description
1459 "PM History 24-hour bin.";
1460 uses pm-bin-id-container;
1461 uses pm-history-bin-state-container;
1462 container statistics {
1463 config false;
1464 description
1465 "Statistics data.";
1466 uses pm-otn-stats-group;
1467 }
1468 }
1469 }
1470 list odu-performance-instances {
1471 key "instance-name";
1472 description
1473 "Port/channel ODU PM instances.";
1474 leaf instance-name {
1475 type cienawstypes:string-maxl-32;
1476 description
1477 "Unique name for PM instance.";
1478 }
1479 uses pm-instance-id-container;
1480 uses pm-instance-state-container;
1481 uses pm-instance-properties-container;
1482 container current-bin {
1483 config false;
1484 description
1485 "PM current 15-minute bin.";
1486 uses pm-bin-id-container;
1487 uses pm-current-bin-state-container;
1488 container statistics {
1489 config false;
1490 description
1491 "Statistics data.";
1492 uses pm-otn-stats-group;
1493 }
1494 }
1495 container current-24-hour-bin {
1496 config false;
1497 description
1498 "PM current 24-hour bin.";
1499 uses pm-bin-id-container;
1500 uses pm-current-bin-state-container;
1501 container statistics {
1502 config false;
1503 description
1504 "Statistics data.";
1505 uses pm-otn-stats-group;
1506 }
1507 }
1508 container untimed-bin {
1509 config false;
1510 description
1511 "PM untimed bin.";
1512 uses pm-bin-id-container;
1513 uses pm-current-bin-state-container;
1514 container statistics {
1515 config false;
1516 description
1517 "Statistics data.";
1518 uses pm-otn-stats-group;
1519 }
1520 }
1521 container history {
1522 config false;
1523 description
1524 "PM 15-minute bin history.";
1525 list bins {
1526 key "bin-number";
1527 config false;
1528 description
1529 "PM history 15-minute bin list.";
1530 leaf bin-number {
1531 type uint32 {
1532 range "1..96";
1533 }
1534 description
1535 "The PM bin number, an index value representing the current position in the list of historical PM bins at the time the data is requested. 1 is the most recent history bin, and 96 is the oldest.";
1536 }
1537 uses pm-bin-id-container;
1538 uses pm-history-bin-state-container;
1539 container statistics {
1540 config false;
1541 description
1542 "Statistics data.";
1543 uses pm-otn-stats-group;
1544 }
1545 }
1546 }
1547 container history-24-hour-bin {
1548 config false;
1549 description
1550 "PM History 24-hour bin.";
1551 uses pm-bin-id-container;
1552 uses pm-history-bin-state-container;
1553 container statistics {
1554 config false;
1555 description
1556 "Statistics data.";
1557 uses pm-otn-stats-group;
1558 }
1559 }
1560 }
1561 }
1562 rpc waveserver-pm-clear-instance {
1563 description
1564 "Clear statistics for the specified instance.";
1565 input {
1566 leaf instance-name {
1567 type cienawstypes:string-maxl-32;
1568 description
1569 "Unique name for PM instance.";
1570 }
1571 leaf history {
1572 type boolean;
1573 description
1574 "Whether to clear history.";
1575 }
1576 }
1577 output {
1578 leaf return-code {
1579 type uint32 {
1580 range "0..990";
1581 }
1582 description
1583 "return code: 0 is success; non-zero is failure";
1584 }
1585 }
1586 }
1587 rpc waveserver-pm-clear-interface {
1588 description
1589 "Clear statistics for the specified interface.";
1590 input {
1591 leaf interface-name {
1592 type cienawstypes:string-maxl-32;
1593 mandatory true;
1594 description
1595 "Interface name.";
1596 }
1597 leaf interface-type {
1598 type pm-interface-type;
1599 mandatory true;
1600 description
1601 "Interface type (PTP, Port, Channel)";
1602 }
1603 leaf profile-type {
1604 type pm-profile-type;
1605 description
1606 "The PM profile type. Can be optionally specified to clear only a specific profile on this interface.";
1607 }
1608 leaf history {
1609 type boolean;
1610 description
1611 "Whether to clear history.";
1612 }
1613 }
1614 output {
1615 leaf return-code {
1616 type uint32 {
1617 range "0..990";
1618 }
1619 description
1620 "return code: 0 is success; non-zero is failure";
1621 }
1622 }
1623 }
1624}