Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-performance-management@2020-04-17.yang
1 module o-ran-performance-management {
2   yang-version 1.1;
3   namespace "urn:o-ran:performance-management:1.0";
4   prefix "o-ran-pm";
5
6   import ietf-yang-types {
7     prefix "yang-types";
8     revision-date 2013-07-15;
9   }
10
11   // import idetifier for O-RU
12   import ietf-hardware {
13     prefix "hw";
14   }
15
16   // import ietf-interface
17   import ietf-interfaces {
18     prefix "if";
19   }
20
21   // import ietf-inet-type
22   import ietf-inet-types {
23     prefix "inet";
24   }
25
26   // import port-number
27   import o-ran-interfaces {
28     prefix "o-ran-int";
29   }
30
31   // import ru-mac-address, o-du-mac-address and vlan-id
32   import o-ran-processing-element {
33     prefix "o-ran-elements";
34   }
35
36   import o-ran-file-management {
37     prefix "o-ran-fm";
38   }
39
40   import iana-hardware {
41     prefix ianahw;
42   }
43
44   organization "O-RAN Alliance";
45
46   contact
47     "www.o-ran.org";
48
49   description
50     "This module defines the configuration for performance measurement for
51     transceiver and rx-window measurement objects.
52
53     NOTE, whereas this YANG model may define support of schema nodes associated
54     with O-RU measurements as optional, the CU-Plane specification may further
55     specify whether, according to a particular version of the CU plane
56     specification, which specific measurements are mandatory to support
57     from an O-RU perspective. In such a situation, the definition of mandatory
58     performance counters in sub-section 7.1 of the CU-plane specification shall
59     take precedence.
60
61     Copyright 2020 the O-RAN Alliance.
62
63     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
64     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
65     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
66     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
67     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
68     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
69     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
70     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
71     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
72     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
73     POSSIBILITY OF SUCH DAMAGE.
74
75     Redistribution and use in source and binary forms, with or without
76     modification, are permitted provided that the following conditions are met:
77
78     * Redistributions of source code must retain the above copyright notice,
79     this list of conditions and the above disclaimer.
80     * Redistributions in binary form must reproduce the above copyright notice,
81     this list of conditions and the above disclaimer in the documentation
82     and/or other materials provided with the distribution.
83     * Neither the Members of the O-RAN Alliance nor the names of its
84     contributors may be used to endorse or promote products derived from
85     this software without specific prior written permission.";
86
87   revision "2020-04-17" {
88     description
89       "version 3.0.0
90
91       1) updated top level model description concerning optionality of measurements
92       2) added new rx window counters
93       3) added new TX stats measurements
94       4) added new EPE measurements
95       5) fixed typo in enumeration - TX_POPWER
96       6) introduced config false data indicating which type of measurmeents are supported";
97
98     reference "ORAN-WG4.M.0-v03.00";
99   }
100
101   revision "2019-07-03" {
102     description
103       "version 2.0.0
104
105       1) added new measurement objects for QSFP
106       2) backward compatible changes to correct sFTP Server Authentication.
107       3) simplifying file management and authentication to reuse from o-ran-file-management module
108       4) minor fixes according to lack of descriptions and reference
109       5) added to descriptions to indicate applicability of leafs and Containers
110       to separate O-RAN use cases
111       6) backward compatible changes to introduce groupings.";
112
113     reference "ORAN-WG4.M.0-v02.00";
114   }
115
116   revision "2019-02-04" {
117     description
118       "version 1.0.0
119
120       1) imported model from xRAN
121       2) changed namespace and reference from xran to o-ran";
122
123     reference "ORAN-WG4.M.0-v01.00";
124   }
125
126
127   feature GRANULARITY-TRANSPORT-MEASUREMENT {
128     description
129       "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
130   }
131
132   feature GRANULARITY-EAXC-ID-MEASUREMENT {
133     description
134       "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
135   }
136
137   grouping start-and-end-time {
138     description
139       "Definition for start and end time for an event";
140
141     leaf start-time {
142       type yang-types:date-and-time;
143       description
144         "Start time for measurement of object stats";
145     }
146     leaf end-time {
147       type yang-types:date-and-time;
148       description
149         "End time for measurement of object stats";
150     }
151   }
152
153   grouping epe-measurement-result-grouping {
154     description
155       "energy, power and environmental measurement-result are listed for O-RU";
156
157     list epe-measurement-result {
158       key "object-unit-id";
159       config false;
160       leaf object-unit-id {
161         type leafref {
162           path "/hw:hardware/hw:component/hw:class";
163         }
164
165         description
166           "the hardware component type is used for the object-unit-id for the
167            EPE measurements. For example, the object-unit-id will be set to
168            or-hw:O-RAN-RADIO if the measurement applies to the complete O-RU
169            self-contained sub-system.
170
171            Other hardware-classes include: or-hw:O-RU-POWER-AMPLIFIER,
172            ianahw:power-supply, ianahw:fan, ianahw:cpu";
173       }
174       leaf min {
175         type decimal64 {
176           fraction-digits 4;
177         }
178
179         description
180           "minimum value for the measurment-object";
181       }
182       leaf max {
183         type decimal64 {
184           fraction-digits 4;
185         }
186         description
187           "maximum value for the measurment-object";
188       }
189       leaf average {
190         type decimal64 {
191           fraction-digits 4;
192         }
193         description
194           "average value of the measurement-object";
195       }
196     }
197   }
198
199   grouping transceiver-measurement-result-grouping {
200     description
201       "transceiver-measurement-result are listed per port-number";
202
203     list transceiver-measurement-result {
204       key "object-unit-id";
205       config false;
206       leaf object-unit-id {
207         type leafref {
208           path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
209         }
210
211         description
212           "port-number is used for the object-unit-id for the
213            transceiver-measurement-result, for which object-unit is
214            PORT_NUMBER only";
215       }
216       container min {
217         description
218           "minimum value with recorded time are included for the
219            measurement-object";
220
221         leaf value {
222           type decimal64 {
223             fraction-digits 4;
224           }
225
226           description
227             "minimum value for the measurment-object";
228         }
229         leaf time {
230           type yang-types:date-and-time;
231
232           description
233             "recorded time for the minimum value";
234         }
235       }
236       container max {
237         description
238         "maximum value with recorded time are included for the
239          measurement-object";
240
241         leaf value {
242           type decimal64 {
243             fraction-digits 4;
244           }
245
246           description
247             "maximum value for the measurment-object";
248         }
249         leaf time {
250           type yang-types:date-and-time;
251
252           description
253             "recorded time for the maximum value";
254         }
255       }
256       container first {
257         description
258           "first value with the recorded time are included for the
259            measurement-object";
260
261         leaf value {
262           type decimal64 {
263             fraction-digits 4;
264           }
265
266           description
267             "first value of the measurement-object";
268         }
269         leaf time {
270           type yang-types:date-and-time;
271
272           description
273             "recorded time for the first value";
274         }
275       }
276       container latest {
277         description
278           "latest value with the recorded time are included for the
279            measurement-object";
280
281         leaf value {
282           type decimal64 {
283             fraction-digits 4;
284           }
285
286           description
287             "latest value of the measurement-object";
288         }
289         leaf time {
290           type yang-types:date-and-time;
291
292           description
293             "recorded time for the latest value";
294         }
295       }
296       leaf-list frequeny-table {
297         type uint32;
298
299         description
300           "frequency-table for the measurment-object are included per bin.
301            The configuration parameters for this frequency-table are defined
302            by bin-count, lower-bound and upper-bound";
303       }
304
305       description
306         "List of transceiver measurement results";
307     }
308   }
309
310   grouping rx-window-measurement-result-grouping{
311     description
312       "Group of measurement reasults for rx window measurements";
313
314     choice object-unit-id {
315       config false;
316       case RU {
317         leaf name{
318           type leafref {
319             path "/hw:hardware/hw:component/hw:name";
320           }
321
322           description
323             "the name of O-RU module or one of its child ports
324             in ietf-hardware/component is used when O-RU is selected as
325             object-unit for the reception window stats.";
326         }
327         leaf count {
328           type uint64;
329           mandatory true;
330
331           description
332             "the number of data packet are counted for the reception
333              window stats per O-RU.";
334         }
335       }
336
337       case TRANSPORT {
338         list tr-measured-result{
339           leaf name{
340             type leafref{
341               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
342             }
343
344             description
345               "the name of ru-elements in o-ran-processing-elements
346                when TRANSPORT is selected as object-unit for the reception
347                window stats.";
348           }
349           leaf count {
350             type uint64;
351             mandatory true;
352
353             description
354               "the number of data packet are counted for the reception
355                window stats.";
356           }
357
358           description
359             "the number of data packet are counted for the reception
360              window stats per TRANSPORT.";
361         }
362       }
363
364       case EAXC_ID {
365         list eaxc-measured-result {
366           leaf eaxc-id{
367             type uint16;
368
369             description
370               "eaxc-id is used
371                when EAXC_ID is selected as object-unit for the reception
372                window stats.
373                EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
374                RU-Port-Id to be used in header of C/U-plane data packet.";
375           }
376           leaf count {
377             type uint64;
378             mandatory true;
379
380             description
381               "the number of data packet are counted for the reception
382                window stats.";
383           }
384           leaf transport-name {
385             type leafref{
386               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
387             }
388
389             description
390               "the name of ru-elements in o-ran-processing-elements for the
391                transport information corresponding to this eaxc-id";
392           }
393
394           description
395             "the number of data packet are counted for the reception
396              window stats per EAXC-ID.";
397         }
398       }
399
400       description
401         "measurement-result for the reception window stats depends on the
402          configured object-unit, RU, TRANSPORT or EAXC_ID";
403     }
404   }
405
406   grouping tx-measurement-result-grouping{
407     description
408       "Group of measurement reasults for tx stats";
409
410     choice object-unit-id {
411       config false;
412       case RU {
413         leaf name{
414           type leafref {
415             path "/hw:hardware/hw:component/hw:name";
416           }
417
418           description
419             "the name of O-RU module or one of its child ports
420             in ietf-hardware/component is used when O-RU is selected as
421             object-unit for the reception window stats.";
422         }
423         leaf count {
424           type uint64;
425           mandatory true;
426
427           description
428             "the number of data packet are counted for the tx stats per O-RU.";
429         }
430       }
431
432       case TRANSPORT {
433         list tr-measured-result{
434           leaf name{
435             type leafref{
436               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
437             }
438
439             description
440               "the name of ru-elements in o-ran-processing-elements
441                when TRANSPORT is selected as object-unit for the tx stats.";
442           }
443           leaf count {
444             type uint64;
445             mandatory true;
446
447             description
448               "the number of data packet are counted for the tx stats.";
449           }
450
451           description
452             "the number of data packet are counted for the tx stats per TRANSPORT.";
453         }
454       }
455
456       case EAXC_ID {
457         list eaxc-measured-result {
458           leaf eaxc-id{
459             type uint16;
460
461             description
462               "eaxc-id is used
463                when EAXC_ID is selected as object-unit for the tx stats.
464                EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
465                RU-Port-Id to be used in header of C/U-plane data packet.";
466           }
467           leaf count {
468             type uint64;
469             mandatory true;
470
471             description
472               "the number of data packet are counted for the tx stats.";
473           }
474           leaf transport-name {
475             type leafref{
476               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
477             }
478
479             description
480               "the name of ru-elements in o-ran-processing-elements for the
481                transport information corresponding to this eaxc-id";
482           }
483
484           description
485             "the number of data packet are counted for the tx stats per EAXC-ID.";
486         }
487       }
488
489       description
490         "measurement-result for the tx stats depends on the
491          configured object-unit, RU, TRANSPORT or EAXC_ID";
492     }
493   }
494
495
496   grouping measurement-group {
497     description
498       "Group of measurement results";
499
500     uses measurement-capabilities;
501     leaf enable-SFTP-upload {
502       type boolean;
503       default false;
504       description
505         "Flag to enable upload of performance measurement result files.";
506     }
507
508     leaf enable-random-file-upload {
509       type boolean;
510       default false;
511       description
512         "Flag to enable upload of performance measurement result files at
513          random within file-upload-interval.";
514     }
515
516     list remote-SFTP-uploads {
517       key remote-SFTP-upload-path;
518       description
519         "SFTP upload can be done to one or more than one SFTP servers";
520
521       leaf remote-SFTP-upload-path {
522         type inet:uri;
523         description
524           "URI specifying the remote location where the files are to uploaded.
525           The following format is possible:
526           sftp://<username>@<host>[:<port>]/path";
527       }
528
529       uses o-ran-fm:credential-information;
530     }
531
532 // transceiver measurements applicable to all O-RAN HW functions
533
534     leaf transceiver-measurement-interval {
535       type uint16;
536       units seconds;
537       description
538         "measurement interval to measure the performance of transceiver
539          measurement objects periodically.";
540     }
541
542 // EPE measurements applicable to all O-RAN HW functions
543
544     leaf epe-measurement-interval {
545       type uint16;
546       units seconds;
547       description
548         "measurement interval to measure the energy, power and environmental
549          measurement objects periodically.";
550     }
551
552 // RX Window measurements applicable to O-RAN WG4 defined functions
553
554     leaf rx-window-measurement-interval {
555       type uint16;
556       units seconds;
557       description
558         "measurement interval to measure the performance of reception
559          window measurement objects periodically.";
560     }
561
562     leaf tx-measurement-interval {
563       type uint16;
564       units seconds;
565       description
566         "measurement interval to measure the tx (outbound)
567          window measurement objects periodically.";
568     }
569
570     leaf notification-interval {
571       type uint16;
572       units seconds;
573       description
574         "notification interval for the measurement result to be notified
575          periodically.";
576     }
577
578     leaf file-upload-interval {
579       type uint16;
580       units seconds;
581       description
582         "file upload interval for the measurement result file to be
583          uploaded periodically.";
584     }
585
586     leaf max-bin-count{
587       type uint16;
588       config false;
589       mandatory true;
590       description
591         "indicates the maximum value of configurable bin-count for frequency
592          table in transceiver-measurement-objects as one of module
593          capabilities.";
594     }
595
596     list transceiver-measurement-objects {
597       key "measurement-object";
598       description
599         "optional list used to report transceiver measurements
600         applicable to any O-RAN defined hardware function";
601       leaf measurement-object {
602         type enumeration {
603           enum RX_POWER {
604             description
605               "Measured Rx input power in mW for SFP or lane 1 of QSFP";
606           }
607           enum RX_POWER_LANE_2 {
608             description
609               "Measured Rx input power in mW for lane 2 of QSFP";
610           }
611           enum RX_POWER_LANE_3 {
612             description
613               "Measured Rx input power in mW for lane 3 of QSFP";
614           }
615           enum RX_POWER_LANE_4 {
616             description
617               "Measured Rx input power in mW for lane 4 of QSFP";
618           }
619           enum TX_POPWER {
620             status deprecated;
621             description
622               "Measured Tx input power in mW.";
623           }
624           enum TX_POWER {
625             description
626               "Measured Tx input power in mW.";
627           }
628           enum TX_POWER_LANE_2 {
629             description
630               "Measured Tx input power in mW for lane 2 of QSFP";
631           }
632           enum TX_POWER_LANE_3 {
633             description
634               "Measured Tx input power in mW for lane 3 of QSFP";
635           }
636           enum TX_POWER_LANE_4 {
637             description
638               "Measured Tx input power in mW for lane 4 of QSFP";
639           }
640           enum TX_BIAS_COUNT {
641             description
642               "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
643           }
644           enum TX_BIAS_COUNT_LANE_2 {
645             description
646               "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
647           }
648           enum TX_BIAS_COUNT_LANE_3 {
649             description
650               "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
651           }
652           enum TX_BIAS_COUNT_LANE_4 {
653             description
654               "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
655           }
656           enum VOLTAGE {
657             description
658               "Internally measured transceiver supply voltage in mV";
659           }
660           enum TEMPERATURE {
661             description
662               "Internally measured optional laser temperature in degrees Celsius.";
663           }
664         }
665         description "Target metric to measure the performance";
666       }
667
668       leaf active {
669         type boolean;
670         default false;
671         description
672           "Enable/disable the performance measurement per Object";
673       }
674
675       leaf-list report-info {
676         type enumeration {
677           enum MAXIMUM {
678             description
679               "to report maximum value and its recorded time within the
680                measurement-interval for the measurement-object.";
681           }
682           enum MINIMUM {
683             description
684               "to report minimum value and its recorded time within the
685                measurement-interval for the measurement-object.";
686           }
687           enum FIRST {
688             description
689               "to report first value and its recorded time within the
690                measurement-interval for the measurement-object.";
691           }
692           enum LATEST {
693             description
694               "to report latest value and its recorded time within the
695                measurement-interval for the measurement-object.";
696           }
697           enum FREQUENCY_TABLE {
698             description
699               "to report frequency bin table within the
700                measurement-interval for the measurement-object.";
701           }
702         }
703         description "The reporting info to the measurement object.";
704       }
705
706       leaf object-unit {
707         type enumeration {
708           enum PORT_NUMBER {
709             description
710               "unit to measure the performance per object-id";
711           }
712         }
713         mandatory true;
714         description "unit to measure the performance per object-id.";
715       }
716
717       leaf function {
718         type enumeration {
719           enum RAW {
720             description
721               "the value is expressed by real value.";
722           }
723           enum LOG_10 {
724             description
725               "the value is expressed by logarithm with base 10.";
726           }
727         }
728
729         description
730           "the value to be recorded for transceiver-measurement
731            by real value or log 10.";
732       }
733
734       leaf bin-count {
735         type uint16;
736
737         description
738           "the number of bin for the frequency table.
739            This value shall be less than max-bin-count";
740       }
741
742       leaf lower-bound {
743         type decimal64 {
744           fraction-digits 4;
745         }
746
747         description
748           "the lower value of the first bin of frequency table.";
749       }
750
751       leaf upper-bound {
752         type decimal64 {
753           fraction-digits 4;
754         }
755
756         description
757           "the upper value of the last bin of frequency table.";
758       }
759       uses transceiver-measurement-result-grouping;
760 // configuration and measurement result for the transceiver-measurement
761
762     }
763
764     list rx-window-measurement-objects {
765       key "measurement-object";
766       description
767         "optional list used to report RX Window measurements
768         applicable to O-RAN WG4 define O-RU functions";
769       leaf measurement-object {
770         type enumeration {
771           enum RX_ON_TIME {
772             description
773               "the number of data packets, received on time within
774                the reception window.";
775           }
776           enum RX_EARLY {
777             description
778               "the number of data packets, received before
779                the reception window.";
780           }
781           enum RX_LATE {
782             description
783               "the number of data packets, received after
784                the reception window.";
785           }
786           enum RX_CORRUPT {
787             description
788               "the number of data packets, which are corrupt or whose header
789                is incorrect.";
790           }
791           enum RX_DUPL {
792             status deprecated;
793             description
794               "the number of data packets, which is duplicated with other packets,
795                received within the measurement period.";
796           }
797           enum RX_TOTAL {
798             description
799               "the total number of received packets (data and control) within the measurement period.";
800           }
801           enum RX_ON_TIME_C {
802             description
803               "the number of control packets, received on time within
804                the reception window.";
805           }
806           enum RX_EARLY_C {
807             description
808               "the number of control packets, received before
809                the reception window.";
810           }
811           enum RX_LATE_C {
812             description
813               "the number of control packets, received after
814                the reception window.";
815           }
816           enum RX_SEQID_ERR {
817             description
818               "the number of data packets, received with an erroneous sequence ID.";
819           }
820           enum RX_SEQID_ERR_C {
821             description
822               "the number of control packets, received with an erroneous sequence ID.";
823           }
824           enum RX_ERR_DROP {
825             description
826               "The total number of inbound messages which are discarded by the receiving
827               O-RAN entity for any reason.";
828           }
829         }
830         description
831           "target reception window metric to measure the performance.";
832       }
833
834       leaf active {
835         type boolean;
836         default false;
837         description
838           "Enable/disable the performance measurement per reception window
839            measurement object.";
840       }
841
842       leaf object-unit {
843         type enumeration {
844           enum RU {
845             description
846               "the reception window stats are counted per hardware component.
847               This may be the parent 'module' or child 'port' component.";
848           }
849           enum TRANSPORT {
850             if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
851             description
852               "the reception window stats are counted per transport flow.
853               When there are multiple transport flows between O-DU and O-RU,
854                e.g. multiple sets of o-du mac address, ru mac address and
855                     vlan-id, the reception window stats per transport flow
856                     are counted in this case.
857               This configuration is allowed only when O-RU supports
858               a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
859           }
860           enum EAXC_ID {
861             if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
862
863             description
864               "the reception window stats are counted per eAxC ID, which is
865                used in the header of receivd data packet.
866               This configuration is allowed only when O-RU supports
867               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
868           }
869         }
870         description
871           "unit to measure the performance per object-id.";
872       }
873
874       leaf report-info {
875         type enumeration {
876           enum COUNT {
877             description
878               "the number of data packet are counted for the reception
879                window stats.";
880           }
881         }
882         description
883           "The reporting info to the measurement object.";
884       }
885
886       uses rx-window-measurement-result-grouping;
887 // configuration and measurement result for the reception window stats
888
889     }
890
891
892     list tx-measurement-objects {
893       key "measurement-object";
894       description
895         "optional list used to report TX measurements
896         applicable to O-RAN WG4 define O-RU functions";
897       leaf measurement-object {
898         type enumeration {
899           enum TX_TOTAL {
900             description
901               "the number of outbound packets (data and control), transmitted within
902                the measurement period";
903           }
904           enum TX_TOTAL_C {
905             description
906               "the number of outbound control packets, transmitted within
907                the measurement period.
908                This counter is required only if RU supports LAA/LBT capabilities.";
909           }
910         }
911         description
912           "CU-plane transmission counters";
913       }
914
915       leaf active {
916         type boolean;
917         default false;
918         description
919           "Enable/disable the measurement per measurement object.";
920       }
921
922       leaf object-unit {
923         type enumeration {
924           enum RU {
925             description
926               "the transmission stats are counted per hardware component.
927               This may be the parent 'module' or child 'port' component.";
928           }
929           enum TRANSPORT {
930             if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
931             description
932               "the transmission stats are counted per transport flow.
933               When there are multiple transport flows between O-DU and O-RU,
934                e.g. multiple sets of o-du mac address, ru mac address and
935                     vlan-id, the transmission stats per transport flow
936                     are counted in this case.
937               This configuration is allowed only when O-RU supports
938               a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
939           }
940           enum EAXC_ID {
941             if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
942
943             description
944               "the transmission stats are counted per eAxC ID, which is
945                used in the header of receivd data packet.
946               This configuration is allowed only when O-RU supports
947               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
948           }
949         }
950         description
951           "unit to measure the performance per object-id.";
952       }
953
954       leaf report-info {
955         type enumeration {
956           enum COUNT {
957             description
958               "the number of data packet are counted for the reception
959                window stats.";
960           }
961         }
962         description
963           "The reporting info to the measurement object.";
964       }
965
966       uses tx-measurement-result-grouping;
967     // configuration and measurement result for the tx stats
968
969     }
970
971     list epe-measurement-objects {
972       key "measurement-object";
973       description
974         "optional list used to report energy, power and environmental
975         measurements applicable to any O-RAN defined hardware function";
976       leaf measurement-object {
977         type enumeration {
978           enum TEMPERATURE {
979             description
980               "Measured temperature in degrees celcius";
981           }
982           enum POWER  {
983             description
984               "Measured power consumed, in watts (W)";
985           }
986         }
987         description "Target metric to measure the performance";
988       }
989
990       leaf active {
991         type boolean;
992         default false;
993         description
994           "Enable/disable the performance measurement per Object";
995       }
996
997       leaf-list report-info {
998         type enumeration {
999           enum MAXIMUM {
1000             description
1001               "to report maximum value and its recorded time within the
1002                measurement-interval for the measurement-object.";
1003           }
1004           enum MINIMUM {
1005             description
1006               "to report minimum value and its recorded time within the
1007                measurement-interval for the measurement-object.";
1008           }
1009           enum AVERAGE {
1010             description
1011               "to report average value within the
1012                measurement-interval for the measurement-object.";
1013           }
1014         }
1015         description "The reporting info to the measurement object.";
1016       }
1017
1018
1019       uses epe-measurement-result-grouping;
1020     // configuration and measurement result for the epe-measurement
1021
1022     }
1023
1024
1025   }
1026
1027   grouping measurement-capabilities {
1028     container measurement-capabilitites {
1029       config false;
1030       description "the type of measurement objects supported by the O-RU";
1031
1032       list transceiver-objects {
1033         key measurement-object;
1034         leaf measurement-object {
1035           type leafref {
1036             path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1037           }
1038         }
1039       }
1040       list rx-window-objects {
1041         key measurement-object;
1042         leaf measurement-object {
1043           type leafref {
1044             path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1045           }
1046         }
1047       }
1048       list tx-stats-objects {
1049         key measurement-object;
1050         leaf measurement-object {
1051           type leafref {
1052             path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1053           }
1054         }
1055       }
1056       list epe-stats-objects {
1057         key "measurement-object";
1058         description
1059           "An optional list describing the energy, power and environmental measurements supported
1060           by the O-RU. Measurements are defined per hardware component.";
1061         leaf measurement-object {
1062           type leafref {
1063             path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1064           }
1065         }
1066         leaf-list component-class {
1067           type identityref {
1068             base ianahw:hardware-class;
1069           }
1070           description
1071             "An indication of the general hardware type of the
1072              component for which EPE measurements are supported.";
1073
1074         }
1075       }
1076     }
1077   }
1078
1079   grouping measurement-notification {
1080     list transceiver-stats {
1081       key "measurement-object";
1082       leaf measurement-object {
1083         type leafref {
1084           path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1085         }
1086
1087         description
1088           "measurement-object for the transceiver-measurement";
1089       }
1090
1091       uses start-and-end-time;
1092       uses transceiver-measurement-result-grouping;
1093
1094       description
1095         "measurement result of transceiver-measurement per measurement-object";
1096     }
1097
1098     list rx-window-stats {
1099       key "measurement-object";
1100       leaf measurement-object {
1101         type leafref {
1102           path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1103         }
1104
1105         description
1106           "measurement-object for the reception window measurement";
1107       }
1108       uses start-and-end-time;
1109       uses rx-window-measurement-result-grouping;
1110
1111       description
1112         "measurement result for the reception window measurement per
1113          measurement-object";
1114
1115     }
1116
1117     list tx-stats {
1118       key "measurement-object";
1119       leaf measurement-object {
1120         type leafref {
1121           path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1122         }
1123
1124         description
1125           "measurement-object for the tx stats measurement";
1126       }
1127       uses start-and-end-time;
1128       uses tx-measurement-result-grouping;
1129
1130       description
1131         "measurement result for the tx stats measurement per
1132          measurement-object";
1133
1134     }
1135
1136     container epe-stats {
1137       description
1138         "container for the epe stats measurement";
1139
1140       uses start-and-end-time;
1141       uses epe-measurement-result-grouping;
1142
1143
1144     }
1145
1146     description
1147       "notification may contain measurement result for transceiver-stats
1148        and/or rx-window-stats";
1149   }
1150
1151   // Top level container
1152
1153   container performance-measurement-objects {
1154     description
1155       "configuration for performance management and measurement-result are
1156        included";
1157     uses measurement-group;
1158   }
1159
1160 // Notifications
1161
1162   notification measurement-result-stats {
1163     description
1164       "Notification may contain measurement results for transceiver-stats
1165        and/or rx-window-stats";
1166     uses measurement-notification;
1167   }
1168 }