Support of WG4 OpenFronthaul Management-Plane VES
[scp/oam/modeling.git] / data-model / yang / published / o-ran / ru-fh / o-ran-performance-management@2022-08-15.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 identifier 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-file-mgmt";
38   }
39
40   import iana-hardware {
41     prefix ianahw;
42   }
43
44   import o-ran-uplane-conf {
45     prefix "up";
46   }
47
48   import o-ran-wg4-features {
49      prefix "feat";
50   }
51
52   organization "O-RAN Alliance";
53
54   contact
55     "www.o-ran.org";
56
57   description
58     "This module defines the configuration for performance measurement for
59     transceiver and rx-window measurement objects.
60
61     NOTE, whereas this YANG model may define support of schema nodes associated
62     with O-RU measurements as optional, the CU-Plane specification may further
63     specify whether, according to a particular version of the CU plane
64     specification, which specific measurements are mandatory to support
65     from an O-RU perspective. In such a situation, the definition of mandatory
66     performance counters in sub-section 7.1 of the CU-plane specification shall
67     take precedence.
68
69     Copyright 2021 the O-RAN Alliance.
70
71     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
72     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
73     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
74     ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
75     LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
76     CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
77     SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
78     INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
79     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
80     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
81     POSSIBILITY OF SUCH DAMAGE.
82
83     Redistribution and use in source and binary forms, with or without
84     modification, are permitted provided that the following conditions are met:
85
86     * Redistributions of source code must retain the above copyright notice,
87     this list of conditions and the above disclaimer.
88     * Redistributions in binary form must reproduce the above copyright notice,
89     this list of conditions and the above disclaimer in the documentation
90     and/or other materials provided with the distribution.
91     * Neither the Members of the O-RAN Alliance nor the names of its
92     contributors may be used to endorse or promote products derived from
93     this software without specific prior written permission.";
94
95   revision 2022-08-15 {
96     description
97       "version 8.1.0
98
99        1) style guide corrections.
100        2) changed import prefix for o-ran-file-management.";
101
102     reference "ORAN-WG4.M.0-v07.00";
103   }
104
105   revision 2021-12-01 {
106     description
107       "version 8.0.0
108
109        1) typographical corrections in descriptions.
110        2) deprecating leaf-list frequency-table and replacing with frequency-bin-table
111        3) Add support for multiple transport-session-type per O-RU";
112
113     reference "ORAN-WG4.M.0-v07.00";
114   }
115
116   revision 2021-07-26 {
117     description
118       "version 7.0.0
119
120        1) added new EPE measurements - VOLTAGE and CURRENT
121        2) added data-direction to rx-window measurements
122        3) added ability to report multiple measurements in notifications
123        4) added new symbol TD-RSSI measurements
124        5) added FTPES file upload support ";
125
126     reference "ORAN-WG4.M.0-v07.00";
127   }
128
129   revision 2021-03-22 {
130     description
131       "version 5.1.0
132
133        1) typographical corrections in descriptions";
134
135     reference "ORAN-WG4.M.0-v05.00";
136   }
137
138   revision 2020-12-10 {
139     description
140       "version 5.0.0
141
142        1) container epe-stats is changed deprecated
143        2) New list epe-statistics and measurement-object is added as key
144        3) bug fix by pyang --lint";
145
146     reference "ORAN-WG4.M.0-v05.00";
147   }
148
149   revision "2020-04-17" {
150     description
151       "version 3.0.0
152
153       1) updated top-level model description concerning optionality of measurements
154       2) added new rx window counters
155       3) added new TX stats measurements
156       4) added new EPE measurements
157       5) fixed typo in enumeration - TX_POPWER
158       6) introduced config false data indicating which type of measurements are supported";
159
160     reference "ORAN-WG4.M.0-v03.00";
161   }
162
163   revision "2019-07-03" {
164     description
165       "version 2.0.0
166
167       1) added new measurement objects for QSFP
168       2) backward compatible changes to correct sFTP Server Authentication.
169       3) simplifying file management and authentication to reuse from o-ran-file-management module
170       4) minor fixes according to lack of descriptions and reference
171       5) added to descriptions to indicate applicability of leafs and Containers
172       to separate O-RAN use cases
173       6) backward compatible changes to introduce groupings.";
174
175     reference "ORAN-WG4.M.0-v02.00";
176   }
177
178   revision "2019-02-04" {
179     description
180       "version 1.0.0
181
182       1) imported model from xRAN
183       2) changed namespace and reference from xran to o-ran";
184
185     reference "ORAN-WG4.M.0-v01.00";
186   }
187
188
189   feature GRANULARITY-TRANSPORT-MEASUREMENT {
190     description
191       "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
192   }
193
194   feature GRANULARITY-EAXC-ID-MEASUREMENT {
195     description
196       "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
197   }
198
199   grouping start-and-end-time {
200     description
201       "Definition for start and end time for an event";
202
203     leaf start-time {
204       type yang-types:date-and-time;
205       description
206         "Start time for measurement of object stats";
207     }
208     leaf end-time {
209       type yang-types:date-and-time;
210       description
211         "End time for measurement of object stats";
212     }
213   }
214
215   grouping epe-measurement-result-grouping {
216     description
217       "energy, power and environmental measurement-result are listed for O-RU";
218
219     list epe-measurement-result {
220       key "object-unit-id";
221       config false;
222       description "energy power and environmental measurement results";
223       leaf object-unit-id {
224         type leafref {
225           path "/hw:hardware/hw:component/hw:class";
226         }
227
228         description
229           "the hardware component type is used for the object-unit-id for the
230            EPE measurements. For example, the object-unit-id will be set to
231            or-hw:O-RAN-RADIO if the measurement applies to the complete O-RU
232            self-contained sub-system.
233
234            Other hardware-classes include: or-hw:O-RU-POWER-AMPLIFIER,
235            ianahw:power-supply, ianahw:fan, ianahw:cpu";
236       }
237       leaf min {
238         type decimal64 {
239           fraction-digits 4;
240         }
241
242         description
243           "minimum value for the measurement-object";
244       }
245       leaf max {
246         type decimal64 {
247           fraction-digits 4;
248         }
249         description
250           "maximum value for the measurement-object";
251       }
252       leaf average {
253         type decimal64 {
254           fraction-digits 4;
255         }
256         description
257           "average value of the measurement-object";
258       }
259     }
260   }
261
262   grouping transceiver-measurement-result-grouping {
263     description
264       "transceiver-measurement-result are listed per port-number";
265
266     list transceiver-measurement-result {
267       key "object-unit-id";
268       config false;
269       leaf object-unit-id {
270         type leafref {
271           path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
272         }
273
274         description
275           "port-number is used for the object-unit-id for the
276            transceiver-measurement-result, for which object-unit is
277            PORT_NUMBER only";
278       }
279       container min {
280         description
281           "minimum value with recorded time are included for the
282            measurement-object";
283
284         leaf value {
285           type decimal64 {
286             fraction-digits 4;
287           }
288
289           description
290             "minimum value for the measurement-object";
291         }
292         leaf time {
293           type yang-types:date-and-time;
294
295           description
296             "recorded time for the minimum value";
297         }
298       }
299       container max {
300         description
301         "maximum value with recorded time are included for the
302          measurement-object";
303
304         leaf value {
305           type decimal64 {
306             fraction-digits 4;
307           }
308
309           description
310             "maximum value for the measurement-object";
311         }
312         leaf time {
313           type yang-types:date-and-time;
314
315           description
316             "recorded time for the maximum value";
317         }
318       }
319       container first {
320         description
321           "first value with the recorded time are included for the
322            measurement-object";
323
324         leaf value {
325           type decimal64 {
326             fraction-digits 4;
327           }
328
329           description
330             "first value of the measurement-object";
331         }
332         leaf time {
333           type yang-types:date-and-time;
334
335           description
336             "recorded time for the first value";
337         }
338       }
339       container latest {
340         description
341           "latest value with the recorded time are included for the
342            measurement-object";
343
344         leaf value {
345           type decimal64 {
346             fraction-digits 4;
347           }
348
349           description
350             "latest value of the measurement-object";
351         }
352         leaf time {
353           type yang-types:date-and-time;
354
355           description
356             "recorded time for the latest value";
357         }
358       }
359       leaf-list frequeny-table {
360         type uint32;
361         status deprecated;
362         description
363           "frequency-table for the measurement-object are included per bin.
364            The configuration parameters for this frequency-table are defined
365            by bin-count, lower-bound and upper-bound";
366       }
367       list frequency-bin-table {
368         key bin-id;
369         leaf bin-id {
370            type uint32;
371            description "Sequence number of the bin";
372         }
373         leaf value {
374            type uint32;
375            description "count corresponding to the bin";
376          }
377         description
378           "frequency-table for the measurement-object are included per bin.
379            The configuration parameters for this frequency-table are defined
380            by bin-count, lower-bound and upper-bound";
381       }
382       description
383         "List of transceiver measurement results";
384     }
385   }
386
387   grouping rx-window-measurement-result-grouping{
388     description
389       "Group of measurement results for rx window measurements";
390
391     choice object-unit-id {
392       config false;
393       case RU {
394         leaf name{
395           type leafref {
396             path "/hw:hardware/hw:component/hw:name";
397           }
398
399           description
400             "the name of O-RU module or one of its child ports
401             in ietf-hardware/component is used when O-RU is selected as
402             object-unit for the reception window stats.";
403         }
404         leaf count {
405           type uint64;
406           mandatory true;
407
408           description
409             "the number of data packet are counted for the reception
410              window stats per O-RU.";
411         }
412       }
413
414       case TRANSPORT {
415         list tr-measured-result{
416           leaf name{
417             type leafref{
418               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
419             }
420
421             description
422               "the name of ru-elements in o-ran-processing-elements
423                when TRANSPORT is selected as object-unit for the reception
424                window stats.";
425           }
426
427           leaf transport-session-type {
428             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
429             type enumeration {
430               enum ETH-INTERFACE {
431                 description "VLAN based CUS Transport ";
432               }
433               enum UDPIP-INTERFACE {
434                 description "UDP/IP based CUS Transport ";
435               }
436               enum ALIASMAC-INTERFACE{
437                 description "Alias MAC address based CUS Transport ";
438               }
439             }
440             description
441               "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
442                in which case it is used for referencing a processing element in 'transport-qualified-name'";
443           }
444
445           leaf transport-qualified-name {
446             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
447             type leafref {
448               path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
449             }
450             description
451                "the name of ru-elements in o-ran-processing-elements
452                when TRANSPORT is selected as object-unit for the reception
453                window stats. Used when the processing element is configured
454                by the list 'additional-transport-session-type-elements'";
455           }
456
457           leaf count {
458             type uint64;
459             mandatory true;
460
461             description
462               "the number of data packet are counted for the reception
463                window stats.";
464           }
465
466           description
467             "the number of data packet are counted for the reception
468              window stats per TRANSPORT.";
469         }
470       }
471
472       case EAXC_ID {
473         list eaxc-measured-result {
474           leaf eaxc-id{
475             type uint16;
476
477             description
478               "eaxc-id is used
479                when EAXC_ID is selected as object-unit for the reception
480                window stats.
481                EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
482                RU-Port-Id to be used in header of C/U-plane data packet.";
483           }
484           leaf count {
485             type uint64;
486             mandatory true;
487
488             description
489               "the number of data packet are counted for the reception
490                window stats.";
491           }
492           leaf data-direction {
493             type enumeration {
494               enum DL {
495                 description
496                   "reported measurement refers to control plane messages with dataDirection bit = 1.";
497               }
498               enum UL {
499                 description
500                   "reported measurement refers to control plane messages with dataDirection bit = 0.";
501               }
502               enum DLUL {
503                 description
504                   "reported measurement refers to control plane messages irrespective of dataDirection bit setting.";
505               }
506             }
507             description
508               "An optional leaf used when reporting rx window measurement associated with
509               control plane messages. See CUS-Plane Specification for more details of the dataDirection bit.
510
511               When not present and reporting rx window measurement associated with control plane messages,
512               the receiving entity can assume that the reported control plane rx window measurement refers
513               to control plane messages irrespective of dataDirection bit setting.
514
515               Can be ignored when received in rx window measurements not corresponding to control plane messages.";
516           }
517           leaf transport-name {
518             type leafref{
519               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
520             }
521
522             description
523               "the name of ru-elements in o-ran-processing-elements for the
524                transport information corresponding to this eaxc-id";
525           }
526
527           leaf transport-session-type {
528             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
529             type enumeration {
530               enum ETH-INTERFACE {
531                 description "VLAN based CUS Transport ";
532               }
533               enum UDPIP-INTERFACE {
534                 description "UDP/IP based CUS Transport ";
535               }
536               enum ALIASMAC-INTERFACE{
537                 description "Alias MAC address based CUS Transport ";
538               }
539             }
540             description
541               "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
542                in which case it is used for referencing a processing element in 'transport-qualified-name'";
543           }
544
545           leaf transport-qualified-name {
546           if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
547             type leafref {
548               path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
549             }
550             description
551                "the name of ru-elements in o-ran-processing-elements for the
552                transport information corresponding to this eaxc-id.
553                Used when the processing element is configured
554                by the list 'additional-transport-session-type-elements'";
555           }
556
557           description
558             "the number of data packet are counted for the reception
559              window stats per EAXC-ID.";
560         }
561       }
562
563       description
564         "measurement-result for the reception window stats depends on the
565          configured object-unit, RU, TRANSPORT or EAXC_ID";
566     }
567   }
568
569   grouping tx-measurement-result-grouping{
570     description
571       "Group of measurement results for tx stats";
572
573     choice object-unit-id {
574       config false;
575       case RU {
576         leaf name{
577           type leafref {
578             path "/hw:hardware/hw:component/hw:name";
579           }
580
581           description
582             "the name of O-RU module or one of its child ports
583             in ietf-hardware/component is used when O-RU is selected as
584             object-unit for the reception window stats.";
585         }
586         leaf count {
587           type uint64;
588           mandatory true;
589
590           description
591             "the number of data packet are counted for the tx stats per O-RU.";
592         }
593       }
594
595       case TRANSPORT {
596         list tr-measured-result{
597           leaf name{
598             type leafref{
599               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
600             }
601
602             description
603               "the name of ru-elements in o-ran-processing-elements
604                when TRANSPORT is selected as object-unit for the tx stats.";
605           }
606
607           leaf transport-session-type {
608             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
609             type enumeration {
610               enum ETH-INTERFACE {
611                 description "VLAN based CUS Transport ";
612               }
613               enum UDPIP-INTERFACE {
614                 description "UDP/IP based CUS Transport ";
615               }
616               enum ALIASMAC-INTERFACE{
617                 description "Alias MAC address based CUS Transport ";
618               }
619             }
620             description
621               "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
622                in which case it is used for referencing a processing element in 'transport-qualified-name'";
623           }
624
625           leaf transport-qualified-name {
626             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
627             type leafref {
628               path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
629             }
630             description
631                "the name of ru-elements in o-ran-processing-elements
632                when TRANSPORT is selected as object-unit for the tx stats.
633                Used when the processing element is configured
634                by the list 'additional-transport-session-type-elements'";
635           }
636
637           leaf count {
638             type uint64;
639             mandatory true;
640
641             description
642               "the number of data packet are counted for the tx stats.";
643           }
644
645           description
646             "the number of data packet are counted for the tx stats per TRANSPORT.";
647         }
648       }
649
650       case EAXC_ID {
651         list eaxc-measured-result {
652           leaf eaxc-id{
653             type uint16;
654
655             description
656               "eaxc-id is used
657                when EAXC_ID is selected as object-unit for the tx stats.
658                EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
659                RU-Port-Id to be used in header of C/U-plane data packet.";
660           }
661           leaf count {
662             type uint64;
663             mandatory true;
664
665             description
666               "the number of data packet are counted for the tx stats.";
667           }
668           leaf transport-name {
669             type leafref{
670               path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
671             }
672
673             description
674               "the name of ru-elements in o-ran-processing-elements for the
675                transport information corresponding to this eaxc-id";
676           }
677
678           leaf transport-session-type {
679             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
680             type enumeration {
681               enum ETH-INTERFACE {
682                 description "VLAN based CUS Transport ";
683               }
684               enum UDPIP-INTERFACE {
685                 description "UDP/IP based CUS Transport ";
686               }
687               enum ALIASMAC-INTERFACE{
688                 description "Alias MAC address based CUS Transport ";
689               }
690             }
691             description
692               "transport session type used when an O-RU is configured with multiple processing elements of different transport session types,
693                in which case it is used for referencing a processing element in 'transport-qualified-name'";
694           }
695
696           leaf transport-qualified-name {
697             if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE";
698             type leafref {
699               path "/o-ran-elements:processing-elements/o-ran-elements:additional-transport-session-type-elements[o-ran-elements:transport-session-type = current()/../transport-session-type]/o-ran-elements:ru-elements/o-ran-elements:name";
700             }
701             description
702                "the name of ru-elements in o-ran-processing-elements for the
703                transport information corresponding to this eaxc-id.
704                Used when the processing element is configured
705                by the list 'additional-transport-session-type-elements'";
706           }
707
708           description
709             "the number of data packet are counted for the tx stats per EAXC-ID.";
710         }
711       }
712
713       description
714         "measurement-result for the tx stats depends on the
715          configured object-unit, RU, TRANSPORT or EAXC_ID";
716     }
717   }
718
719   grouping symbol-rssi-measurement-result-grouping {
720
721     description
722       "symbol-rssi-measurement-result is the time domain RSSI per symbol,
723       the reference point for the TD-RSSI shall be the antenna connector of the O-RU.
724       The value of Received Signal Strength Indicator(RSSI) per rx-array-carrier per configured OFDM symbol is measured.
725       the RSSI shall be calculated as the linear average of the total received power observed in the configured
726       OFDM symbol in the measurement bandwidth from all sources including co-channel serving and non-serving cells,
727       adjacent channel interference, thermal noise etc., over the total number of antenna elements of the array.
728       The unit of the reported RSSI is dBm.
729       If analogue or hybrid beamforming is enabled, the beamId used for RSSI measurement is:
730         - When there is allocation of a beamId in this symbol, O-RU use that beamId for RSSI measurement;
731         - When there is no allocation of a beamId in this symbol, it is up to O-RU implementation, for example,
732           the O-RU can choose to use a common beamId or use a previous allocated beamId";
733
734     list symbol-rssi-measurement-result {
735       key "object-unit-id";
736       config false;
737       leaf object-unit-id {
738         type leafref {
739           path "/up:user-plane-configuration/up:rx-array-carriers/up:name";
740         }
741
742         description
743           "rx-array-carrier is used for the object-unit-id for the
744            symbol-rssi-measurement-result, for which object-unit is RX-ARRAY-CARRIER only.
745            this measurement is only supported by the rx-array-carriers which are configured with single numerology.
746            an O-RU shall reject any configuration for an object-unit-id that references a mixed numerology array carrier.";
747       }
748
749       list per-symbol-index-result {
750         key "symbol-index";
751         description
752           "the symbol index for the measurement result";
753
754         leaf symbol-index{
755           type uint16;
756
757           description
758             "symbol-index is the symbol indexes within a configured 'period', These symbols include
759                - all UL symbols within a configured number of slots if measurement-object is ALL-UL-SYMBOLS,
760                  and the UL symbols are decided by 'configurable-tdd-pattern', 'static-srs-configuration', 'static-prach-configuration',
761                  and 'dataDirection' in the C-plane messages.
762                - configured symbols by 'symbol-index' within a configured 'period' if measurement-object is CONFIGURED-SYMBOLS,
763                  If a c-plane message indicates a symbol within the 'symbol-index' list to be a DL symbol,
764                  O-RU shall not measure RSSI on this symbol";
765         }
766
767         container min {
768           description
769             "minimum value with recorded time are included for the
770             measurement-object";
771
772           leaf value {
773             type decimal64 {
774               fraction-digits 1;
775             }
776             units dBm;
777             description
778               "minimum value for the TD-RSSI measurement in dBm";
779           }
780         }
781
782         container max {
783           description
784           "maximum value with recorded time are included for the
785            measurement-object";
786
787           leaf value {
788             type decimal64 {
789               fraction-digits 1;
790             }
791             units dBm;
792             description
793               "maximum value for the TD-RSSI measurement in dBm";
794           }
795         }
796
797         container avg {
798           description
799           "average value with recorded time are included for the
800            measurement-object";
801
802           leaf value {
803             type decimal64 {
804               fraction-digits 1;
805             }
806             units dBm;
807             description
808               "the dBm value of the linear average of TD-RSSI [Watt] value across the symbols with same symbol-index
809                if same symbol-index occurs multiple times within a given measurement interval.";
810           }
811         }
812
813         leaf-list frequency-table {
814           type uint32;
815           status deprecated;
816           description
817           "frequency-table for the measurment-object are included per bin.
818            The configuration parameters for this frequency-table are defined
819            by bin-count, lower-bound and upper-bound";
820         }
821
822         list frequency-bin-table {
823           key bin-id;
824           leaf bin-id {
825              type uint32;
826              description "Sequence number of the bin";
827           }
828           leaf value {
829              type uint32;
830              description "count corresponding to the bin";
831            }
832           description
833             "frequency-table for the measurement-object are included per bin.
834              The configuration parameters for this frequency-table are defined
835              by bin-count, lower-bound and upper-bound";
836         }
837       }
838       description
839          "measurement-result for the symbol-wise TD-RSSI depends on the
840           configured object-unit, RX-ARRAY-CARRIER";
841     }
842   }
843
844   grouping measurement-group {
845     description
846       "Group of measurement results";
847
848     uses measurement-capabilities;
849     leaf enable-SFTP-upload {
850       type boolean;
851       default false;
852       status deprecated;
853       description
854         "Flag to enable upload of performance measurement result files.";
855     }
856
857     leaf enable-file-upload {
858       type boolean;
859       default false;
860       description
861         "Flag to enable upload of performance measurement result files.
862         A single schema node is used to enable/disable file uploads
863         over either SFTP or FTPES with the format of the upload
864         path being used to signal which protocol to use.
865
866         An O-RU receiving this schema node should ignore the deprecated
867         enable-SFTP-upload schema node, if received.";
868     }
869
870     leaf enable-random-file-upload {
871       type boolean;
872       default false;
873       description
874         "Flag to enable upload of performance measurement result files at
875          random within file-upload-interval.";
876     }
877
878     list remote-SFTP-uploads {
879       key remote-SFTP-upload-path;
880       status deprecated;
881       description
882         "SFTP upload can be done to one or more than one SFTP servers";
883
884       leaf remote-SFTP-upload-path {
885         type inet:uri;
886         description
887           "URI specifying the remote location where the files are to be uploaded.
888           The following format is possible:
889           sftp://<username>@<host>[:<port>]/path";
890       }
891
892       uses o-ran-file-mgmt:credential-information;
893     }
894
895     list remote-file-uploads {
896       key remote-file-upload-path;
897       description
898         "file upload can be done to one or more than one file servers
899
900         An O-RU receiving this list should ignore the deprecated
901         remote-SFTP-uploads list, if received";
902
903       leaf remote-file-upload-path {
904         type inet:uri;
905         description
906           "URI specifying the remote location where the files are to be uploaded.
907
908           When upload is via SFTP, the format shall be of the form
909           sftp://<username>@<host>[:port]/path
910           When upload is via FTPES, the format shall be of the form
911           ftpes://<username>@<host>[:port]/path
912
913           Note, ftpes is not an IANA registered URI scheme, but used here to signal
914           that a file transfer should be performed over FTPES";
915       }
916
917       uses o-ran-file-mgmt:credential-information;
918     }
919
920 // transceiver measurements applicable to all O-RAN HW functions
921
922     leaf transceiver-measurement-interval {
923       type uint16;
924       units seconds;
925       description
926         "measurement interval to measure the performance of transceiver
927          measurement objects periodically.";
928     }
929
930 // EPE measurements applicable to all O-RAN HW functions
931
932     leaf epe-measurement-interval {
933       type uint16;
934       units seconds;
935       description
936         "measurement interval to measure the energy, power and environmental
937          measurement objects periodically.";
938     }
939
940 // RX Window measurements applicable to O-RAN WG4 defined functions
941
942     leaf rx-window-measurement-interval {
943       type uint16;
944       units seconds;
945       description
946         "measurement interval to measure the performance of reception
947          window measurement objects periodically.";
948     }
949
950     leaf tx-measurement-interval {
951       type uint16;
952       units seconds;
953       description
954         "measurement interval to measure the tx (outbound)
955          window measurement objects periodically.";
956     }
957
958     leaf symbol-rssi-measurement-interval {
959       type uint16;
960       units seconds;
961       description
962         "measurement interval to measure the symbol-wise TD-RSSI measurement objects periodically.";
963     }
964
965     leaf notification-interval {
966       type uint16;
967       units seconds;
968       description
969         "notification interval for the measurement result to be notified
970          periodically.";
971     }
972
973     leaf file-upload-interval {
974       type uint16;
975       units seconds;
976       description
977         "file upload interval for the measurement result file to be
978          uploaded periodically.";
979     }
980
981     leaf max-bin-count{
982       type uint16;
983       config false;
984       mandatory true;
985       description
986         "indicates the maximum value of configurable bin-count for frequency
987          table in transceiver-measurement-objects as one of module
988          capabilities.";
989     }
990
991     list transceiver-measurement-objects {
992       key "measurement-object";
993       description
994         "optional list used to report transceiver measurements
995         applicable to any O-RAN defined hardware function";
996       leaf measurement-object {
997         type enumeration {
998           enum RX_POWER {
999             description
1000               "Measured Rx input power in mW for SFP or lane 1 of QSFP";
1001           }
1002           enum RX_POWER_LANE_2 {
1003             description
1004               "Measured Rx input power in mW for lane 2 of QSFP";
1005           }
1006           enum RX_POWER_LANE_3 {
1007             description
1008               "Measured Rx input power in mW for lane 3 of QSFP";
1009           }
1010           enum RX_POWER_LANE_4 {
1011             description
1012               "Measured Rx input power in mW for lane 4 of QSFP";
1013           }
1014           enum TX_POPWER {
1015             status deprecated;
1016             description
1017               "Measured Tx input power in mW.";
1018           }
1019           enum TX_POWER {
1020             description
1021               "Measured Tx input power in mW.";
1022           }
1023           enum TX_POWER_LANE_2 {
1024             description
1025               "Measured Tx input power in mW for lane 2 of QSFP";
1026           }
1027           enum TX_POWER_LANE_3 {
1028             description
1029               "Measured Tx input power in mW for lane 3 of QSFP";
1030           }
1031           enum TX_POWER_LANE_4 {
1032             description
1033               "Measured Tx input power in mW for lane 4 of QSFP";
1034           }
1035           enum TX_BIAS_COUNT {
1036             description
1037               "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
1038           }
1039           enum TX_BIAS_COUNT_LANE_2 {
1040             description
1041               "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
1042           }
1043           enum TX_BIAS_COUNT_LANE_3 {
1044             description
1045               "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
1046           }
1047           enum TX_BIAS_COUNT_LANE_4 {
1048             description
1049               "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
1050           }
1051           enum VOLTAGE {
1052             description
1053               "Internally measured transceiver supply voltage in mV";
1054           }
1055           enum TEMPERATURE {
1056             description
1057               "Internally measured optional laser temperature in degrees Celsius.";
1058           }
1059         }
1060         description "Target metric to measure the performance";
1061       }
1062
1063       leaf active {
1064         type boolean;
1065         default false;
1066         description
1067           "Enable/disable the performance measurement per Object";
1068       }
1069
1070       leaf-list report-info {
1071         type enumeration {
1072           enum MAXIMUM {
1073             description
1074               "to report maximum value and its recorded time within the
1075                measurement-interval for the measurement-object.";
1076           }
1077           enum MINIMUM {
1078             description
1079               "to report minimum value and its recorded time within the
1080                measurement-interval for the measurement-object.";
1081           }
1082           enum FIRST {
1083             description
1084               "to report first value and its recorded time within the
1085                measurement-interval for the measurement-object.";
1086           }
1087           enum LATEST {
1088             description
1089               "to report latest value and its recorded time within the
1090                measurement-interval for the measurement-object.";
1091           }
1092           enum FREQUENCY_TABLE {
1093             description
1094               "to report frequency bin table within the
1095                measurement-interval for the measurement-object.";
1096           }
1097         }
1098         description "The reporting info to the measurement object.";
1099       }
1100
1101       leaf object-unit {
1102         type enumeration {
1103           enum PORT_NUMBER {
1104             description
1105               "unit to measure the performance per object-id";
1106           }
1107         }
1108         mandatory true;
1109         description "unit to measure the performance per object-id.";
1110       }
1111
1112       leaf function {
1113         type enumeration {
1114           enum RAW {
1115             description
1116               "the value is expressed by real value.";
1117           }
1118           enum LOG_10 {
1119             description
1120               "the value is expressed by logarithm with base 10.";
1121           }
1122         }
1123
1124         description
1125           "the value to be recorded for transceiver-measurement
1126            by real value or log 10.";
1127       }
1128
1129       leaf bin-count {
1130         type uint16;
1131
1132         description
1133           "the number of bin for the frequency table.
1134            This value shall be less than max-bin-count";
1135       }
1136
1137       leaf lower-bound {
1138         type decimal64 {
1139           fraction-digits 4;
1140         }
1141
1142         description
1143           "the lower value of the first bin of frequency table.";
1144       }
1145
1146       leaf upper-bound {
1147         type decimal64 {
1148           fraction-digits 4;
1149         }
1150
1151         description
1152           "the upper value of the last bin of frequency table.";
1153       }
1154       uses transceiver-measurement-result-grouping;
1155 // configuration and measurement result for the transceiver-measurement
1156
1157     }
1158
1159     list rx-window-measurement-objects {
1160       key "measurement-object";
1161       description
1162         "optional list used to report RX Window measurements
1163         applicable to O-RAN WG4 define O-RU functions";
1164       leaf measurement-object {
1165         type enumeration {
1166           enum RX_ON_TIME {
1167             description
1168               "the number of data packets, received on time within
1169                the reception window.";
1170           }
1171           enum RX_EARLY {
1172             description
1173               "the number of data packets, received before
1174                the reception window.";
1175           }
1176           enum RX_LATE {
1177             description
1178               "the number of data packets, received after
1179                the reception window.";
1180           }
1181           enum RX_CORRUPT {
1182             description
1183               "the number of data packets, which are corrupt or whose header
1184                is incorrect.";
1185           }
1186           enum RX_DUPL {
1187             status deprecated;
1188             description
1189               "the number of data packets, which is duplicated with other packets,
1190                received within the measurement period.";
1191           }
1192           enum RX_TOTAL {
1193             description
1194               "the total number of received packets (data and control) within the measurement period.";
1195           }
1196           enum RX_ON_TIME_C {
1197             description
1198               "the number of control packets, received on time within
1199                the reception window.";
1200           }
1201           enum RX_EARLY_C {
1202             description
1203               "the number of control packets, received before
1204                the reception window.";
1205           }
1206           enum RX_LATE_C {
1207             description
1208               "the number of control packets, received after
1209                the reception window.";
1210           }
1211           enum RX_SEQID_ERR {
1212             description
1213               "the number of data packets, received with an erroneous sequence ID.";
1214           }
1215           enum RX_SEQID_ERR_C {
1216             description
1217               "the number of control packets, received with an erroneous sequence ID.";
1218           }
1219           enum RX_ERR_DROP {
1220             description
1221               "The total number of inbound messages which are discarded by the receiving
1222               O-RAN entity for any reason.";
1223           }
1224         }
1225         description
1226           "target reception window metric to measure the performance.";
1227       }
1228
1229       leaf active {
1230         type boolean;
1231         default false;
1232         description
1233           "Enable/disable the performance measurement per reception window
1234            measurement object.";
1235       }
1236
1237       leaf object-unit {
1238         type enumeration {
1239           enum RU {
1240             description
1241               "the reception window stats are counted per hardware component.
1242               This may be the parent 'module' or child 'port' component.";
1243           }
1244           enum TRANSPORT {
1245             if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
1246             description
1247               "the reception window stats are counted per transport flow.
1248               When there are multiple transport flows between O-DU and O-RU,
1249                e.g. multiple sets of o-du-mac-address, ru-mac-address and
1250                     vlan-id, the reception window stats per transport flow
1251                     are counted in this case.
1252               This configuration is allowed only when O-RU supports
1253               a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
1254           }
1255           enum EAXC_ID {
1256             if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
1257
1258             description
1259               "the reception window stats are counted per eAxC ID, which is
1260                used in the header of received data packet.
1261               This configuration is allowed only when O-RU supports
1262               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
1263           }
1264         }
1265         description
1266           "unit to measure the performance per object-id.";
1267       }
1268
1269       leaf report-info {
1270         type enumeration {
1271           enum COUNT {
1272             description
1273               "the number of data packet are counted for the reception
1274                window stats.";
1275           }
1276         }
1277         description
1278           "The reporting info to the measurement object.";
1279       }
1280
1281       uses rx-window-measurement-result-grouping;
1282 // configuration and measurement result for the reception window stats
1283
1284     }
1285
1286
1287     list tx-measurement-objects {
1288       key "measurement-object";
1289       description
1290         "optional list used to report TX measurements
1291         applicable to O-RAN WG4 define O-RU functions";
1292       leaf measurement-object {
1293         type enumeration {
1294           enum TX_TOTAL {
1295             description
1296               "the number of outbound packets (data and control), transmitted within
1297                the measurement period";
1298           }
1299           enum TX_TOTAL_C {
1300             description
1301               "the number of outbound control packets, transmitted within
1302                the measurement period.
1303                This counter is required only if RU supports LAA/LBT capabilities.";
1304           }
1305         }
1306         description
1307           "CU-plane transmission counters";
1308       }
1309
1310       leaf active {
1311         type boolean;
1312         default false;
1313         description
1314           "Enable/disable the measurement per measurement object.";
1315       }
1316
1317       leaf object-unit {
1318         type enumeration {
1319           enum RU {
1320             description
1321               "the transmission stats are counted per hardware component.
1322               This may be the parent 'module' or child 'port' component.";
1323           }
1324           enum TRANSPORT {
1325             if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
1326             description
1327               "the transmission stats are counted per transport flow.
1328               When there are multiple transport flows between O-DU and O-RU,
1329                e.g. multiple sets of o-du-mac-address, ru-mac-address and
1330                     vlan-id, the transmission stats per transport flow
1331                     are counted in this case.
1332               This configuration is allowed only when O-RU supports
1333               a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
1334           }
1335           enum EAXC_ID {
1336             if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
1337
1338             description
1339               "the transmission stats are counted per eAxC ID, which is
1340                used in the header of received data packet.
1341               This configuration is allowed only when O-RU supports
1342               a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
1343           }
1344         }
1345         description
1346           "unit to measure the performance per object-id.";
1347       }
1348
1349       leaf report-info {
1350         type enumeration {
1351           enum COUNT {
1352             description
1353               "the number of data packet are counted for the reception
1354                window stats.";
1355           }
1356         }
1357         description
1358           "The reporting info to the measurement object.";
1359       }
1360
1361       uses tx-measurement-result-grouping;
1362     // configuration and measurement result for the tx stats
1363
1364     }
1365
1366     list epe-measurement-objects {
1367       key "measurement-object";
1368       description
1369         "optional list used to report energy, power and environmental
1370         measurements applicable to any O-RAN defined hardware function";
1371       leaf measurement-object {
1372         type enumeration {
1373           enum TEMPERATURE {
1374             description
1375               "Measured temperature in degrees Celsius";
1376           }
1377           enum POWER  {
1378             description
1379               "Measured power consumed, in watts (W)";
1380           }
1381           enum VOLTAGE  {
1382             description
1383               "Measured voltage, in volts (V)";
1384           }
1385           enum CURRENT  {
1386             description
1387               "Measured current consumption, in amperes (A)";
1388           }
1389         }
1390         description "Target metric to measure the performance";
1391       }
1392
1393       leaf active {
1394         type boolean;
1395         default false;
1396         description
1397           "Enable/disable the performance measurement per Object";
1398       }
1399
1400       leaf-list report-info {
1401         type enumeration {
1402           enum MAXIMUM {
1403             description
1404               "to report maximum value and its recorded time within the
1405                measurement-interval for the measurement-object.";
1406           }
1407           enum MINIMUM {
1408             description
1409               "to report minimum value and its recorded time within the
1410                measurement-interval for the measurement-object.";
1411           }
1412           enum AVERAGE {
1413             description
1414               "to report average value within the
1415                measurement-interval for the measurement-object.";
1416           }
1417         }
1418         description "The reporting info to the measurement object.";
1419       }
1420
1421
1422       uses epe-measurement-result-grouping;
1423     // configuration and measurement result for the epe-measurement
1424
1425     }
1426
1427     list symbol-rssi-measurement-objects {
1428       key "measurement-object";
1429       description
1430         "optional list used to measure and report symbol-wise time domain RSSI for all UL symbols or configured symbols";
1431
1432       leaf measurement-object {
1433         type enumeration {
1434           enum ALL-UL-SYMBOLS {
1435             description
1436               "Measure and report symbol-rssi separately for all UL symbols in every configured number of slots (as defined by 'period' in 'symbol-rssi-measurement-objects'.
1437                And the UL symbols are decided by 'configurable-tdd-pattern', 'static-srs-configuration', 'static-prach-configuration',
1438                and 'dataDirection' in the C-plane messages.
1439                This option is recommended for static TDD case. If this option is used in dynamic TDD case, then O-RU measures
1440                only the allocates UL symbols because O-RU may not know 'candidate UL symbols' which are not allocated. ";
1441           }
1442
1443           enum CONFIGURED-SYMBOLS {
1444             description
1445               "Measure and report symbol-rssi separately for all configured symbols as defined by the leaf-list 'symbol-index',
1446               This can be used for non-dynamic TDD as well as dynamic TDD cases,
1447               the O-RU should measure all configured symbols, irrespective of whether the UL symbol is allocated or not,
1448               If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol,
1449               O-RU shall not measure RSSI on this symbol.";
1450           }
1451         }
1452         description "Target metric to measure the symbol-rssi";
1453       }
1454
1455       leaf object-unit {
1456         type enumeration {
1457           enum RX-ARRAY-CARRIER {
1458             description
1459               "unit to measure the performance per object-id,
1460                only the rx-array-carriers which are not configured with mixed numerology will be measured";
1461           }
1462         }
1463         mandatory true;
1464         description "unit to measure the performance per object-id.";
1465       }
1466
1467       list per-rx-array-carrier-configuration {
1468         key "rx-array-carrier";
1469         description
1470           "measurement configuration per rx-array-carrier to accommodate different Subcarrier Spacing
1471            and TDD pattern per rx-array-carrier, and only the symbol-wise TD-RSSI of the rx-array-carriers
1472            included in per-rx-array-carrier-configuration will be measured and reported";
1473
1474         leaf rx-array-carrier {
1475           type leafref {
1476             path "/up:user-plane-configuration/up:rx-array-carriers/up:name";
1477           }
1478           description "reference to the name of rx-array-carriers";
1479         }
1480
1481         leaf period  {
1482           type uint16;
1483
1484           description
1485             "the number of slots that correspond to the period of a TDD-Configuration,
1486              and the start point of the 1st period is subframe#0, slot#0 of the 1st even number radio frame after this configuration is received,
1487              here even number radio frame is used because according to 3GPP TS 38.213, A UE expects that P1 + P2 divides 20 msec";
1488         }
1489
1490         leaf-list symbol-index  {
1491           type uint16;
1492
1493           description
1494             "the index of the symbols within 'period'. The first symbol within the 'period is symbol-index=0, next symbol is symbol-index =1 etc.
1495              This symbol-index is different from how symbolId is defined in CUS plane spec.
1496              These symbols are configured for O-RU to measure and report symbol-wise rssi,
1497              used only when 'measurement-object' = 'CONFIGURED-SYMBOLS'.
1498              If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol,
1499              O-RU shall not measure rssi on this symbol";
1500         }
1501
1502         leaf active {
1503           type boolean;
1504           default false;
1505           description
1506             "Enable/disable the symbol-rssi measurement per Object";
1507         }
1508
1509         leaf-list report-info {
1510           type enumeration {
1511             enum MAXIMUM {
1512               description
1513                 "to report maximum value and its recorded time within the
1514                  measurement-interval for the measurement-object.";
1515             }
1516             enum MINIMUM {
1517               description
1518                 "to report minimum value and its recorded time within the
1519                  measurement-interval for the measurement-object.";
1520             }
1521             enum AVERAGE {
1522               description
1523                 "to report average value within the
1524                  measurement-interval for the measurement-object.";
1525             }
1526             enum FREQUENCY_TABLE {
1527               description
1528                 "to report frequency bin table within the
1529                  measurement-interval for the measurement-object.";
1530             }
1531           }
1532           description "The reporting info to the measurement object.";
1533         }
1534
1535         leaf bin-count {
1536           type uint16;
1537
1538           description
1539             "the number of bin for the frequency table.
1540              This value shall be less than max-bin-count";
1541         }
1542
1543         leaf lower-bound {
1544           type int16;
1545           units dBm;
1546           description
1547             "the lower value of the first bin of frequency table.";
1548         }
1549
1550         leaf upper-bound {
1551           type int16;
1552           units dBm;
1553           description
1554             "the upper value of the last bin of frequency table.";
1555         }
1556       }
1557
1558       uses symbol-rssi-measurement-result-grouping;
1559       // configuration and measurement result for the symbol-rssi-measurement
1560     }
1561
1562   }
1563
1564   grouping measurement-capabilities {
1565     description "a measurement capabilities grouping";
1566     container measurement-capabilitites {
1567       config false;
1568       description "the type of measurement objects supported by the O-RU";
1569
1570       list transceiver-objects {
1571         key measurement-object;
1572         description "list of transceiver objects";
1573         leaf measurement-object {
1574           type leafref {
1575             path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1576           }
1577           description "a measurement object";
1578         }
1579       }
1580       list rx-window-objects {
1581         key measurement-object;
1582         description "list of rx window objects";
1583         leaf measurement-object {
1584           type leafref {
1585             path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1586           }
1587           description "a measurement object";
1588         }
1589       }
1590       list tx-stats-objects {
1591         key measurement-object;
1592         description "list of tx stats objects";
1593         leaf measurement-object {
1594           type leafref {
1595             path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1596           }
1597           description "a measurement object";
1598         }
1599       }
1600       list epe-stats-objects {
1601         key "measurement-object";
1602         description
1603           "An optional list describing the energy, power and environmental measurements supported
1604           by the O-RU. Measurements are defined per hardware component.";
1605         leaf measurement-object {
1606           type leafref {
1607             path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1608           }
1609           description "a measurement object";
1610         }
1611         leaf-list component-class {
1612           type identityref {
1613             base ianahw:hardware-class;
1614           }
1615           description
1616             "An indication of the general hardware type of the
1617              component for which EPE measurements are supported.";
1618
1619         }
1620       }
1621
1622       list symbol-rssi-stats-objects {
1623         key measurement-object;
1624         description "list of symbol-wise TD-RSSI stats objects";
1625         leaf measurement-object {
1626           type leafref {
1627             path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object";
1628           }
1629           description "a measurement object";
1630         }
1631       }
1632     }
1633   }
1634
1635   grouping measurement-notification {
1636
1637     description
1638       "notification may contain measurement result for transceiver-stats
1639        and/or rx-window-stats and/or tx-stats and/or epe-stats";
1640     list transceiver-stats {
1641       key "measurement-object";
1642
1643       description
1644         "measurement result of transceiver-measurement per measurement-object";
1645       leaf measurement-object {
1646         type leafref {
1647           path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1648         }
1649
1650         description
1651           "measurement-object for the transceiver-measurement";
1652       }
1653
1654       uses start-and-end-time;
1655       uses transceiver-measurement-result-grouping;
1656
1657       list multiple-transceiver-measurement-result {
1658         config false;
1659         description
1660           "Multiple measurement results of transceiver-measurement.
1661
1662           The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
1663
1664           In addition, the O-RU shall always use the
1665
1666           measurement-result-stats/transceiver-stats[measurement-object]/transceiver-measurement-result
1667
1668           schema-node to report a single transceiver measurement-object. The O-RU should report its latest
1669           transceiver measurements available. This ensures O-DUs supporting earlier versions
1670           of this specification can recover the measurement.";
1671
1672         uses start-and-end-time;
1673         uses transceiver-measurement-result-grouping;
1674       }
1675
1676     }
1677
1678     list rx-window-stats {
1679       key "measurement-object";
1680
1681       description
1682         "measurement result for the reception window measurement per
1683          measurement-object";
1684       leaf measurement-object {
1685         type leafref {
1686           path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1687         }
1688
1689         description
1690           "measurement-object for the reception window measurement";
1691       }
1692       uses start-and-end-time;
1693       uses rx-window-measurement-result-grouping;
1694
1695       list multiple-rx-window-measurement-result {
1696         config false;
1697         description
1698           "Multiple measurement results of rx-window-measurement.
1699
1700           The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
1701
1702           In addition, the O-RU shall always use one of the
1703
1704           measurement-result-stats/rx-window-stats[measurement-object]/count or
1705           measurement-result-stats/rx-window-stats[measurement-object]/tr-measured-result/count or
1706           measurement-result-stats/rx-window-stats[measurement-object]/eaxc-measured-result/count
1707
1708           schema-nodes to report a single rx-window measurement-object. The O-RU should report its latest
1709           rx-window measurement available. This ensures O-DUs supporting earlier versions
1710           of this specification can recover the measurement.";
1711
1712         uses start-and-end-time;
1713         uses rx-window-measurement-result-grouping;
1714       }
1715
1716     }
1717
1718     list tx-stats {
1719       key "measurement-object";
1720
1721       description
1722         "measurement result for the tx stats measurement per
1723          measurement-object";
1724       leaf measurement-object {
1725         type leafref {
1726           path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1727         }
1728
1729         description
1730           "measurement-object for the tx stats measurement";
1731       }
1732       uses start-and-end-time;
1733       uses tx-measurement-result-grouping;
1734
1735       list multiple-tx-measurement-result {
1736         config false;
1737         description
1738           "Multiple measurement results of tx-measurement.
1739
1740           The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
1741
1742           In addition, the O-RU shall always use one of the
1743
1744           measurement-result-stats/tx-stats[measurement-object]/count or
1745           measurement-result-stats/tx-stats[measurement-object]/tr-measured-result/count or
1746           measurement-result-stats/tx-stats[measurement-object]/eaxc-measured-result/count
1747
1748           schema-nodes to report a single tx-measurement. The O-RU should report its latest
1749           tx-measurement available. This ensures O-DUs supporting earlier versions
1750           of this specification can recover the measurement.";
1751
1752         uses start-and-end-time;
1753         uses tx-measurement-result-grouping;
1754       }
1755
1756     }
1757
1758     container epe-stats {
1759       status deprecated;
1760       description
1761         "container for the EPE stats measurement - deprecated because measurement object
1762         isn't included";
1763
1764       uses start-and-end-time;
1765       uses epe-measurement-result-grouping;
1766
1767
1768     }
1769
1770     list epe-statistics {
1771       key "measurement-object";
1772
1773       description
1774         "measurement result for the EPE stats measurement per
1775          measurement-object";
1776       leaf measurement-object {
1777         type leafref {
1778           path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1779         }
1780
1781         description
1782           "measurement-object for the EPE stats measurement";
1783       }
1784       uses start-and-end-time;
1785       uses epe-measurement-result-grouping;
1786
1787       list multiple-epe-measurement-result {
1788         config false;
1789         description
1790           "Multiple measurement results of epe-measurement.
1791
1792           The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
1793
1794           In addition, the O-RU shall always use the
1795
1796           measurement-result-stats/epe-statistics[measurement-object]/epe-measurement-result/
1797
1798           schema-nodes to report a single epe-measurement for a measurement-object. The O-RU
1799           should report its latest epe-measurement available. This ensures O-DUs supporting earlier
1800           versions of this specification can recover the measurement.";
1801
1802         uses start-and-end-time;
1803         uses epe-measurement-result-grouping;
1804       }
1805
1806     }
1807
1808     list symbol-rssi-stats {
1809       key "measurement-object";
1810
1811       description
1812         "measurement result of symbol-rssi-measurement per measurement-object";
1813       leaf measurement-object {
1814         type leafref {
1815           path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object";
1816         }
1817
1818         description
1819           "measurement-object for the symbol-rssi-measurement";
1820       }
1821
1822       uses start-and-end-time;
1823       uses symbol-rssi-measurement-result-grouping;
1824
1825       list multiple-symbol-rssi-measurement-result {
1826         config false;
1827         description
1828           "Multiple measurement results of symbol-rssi-measurement.
1829
1830           The O-RU shall use this list to report one or more measurements per measurement-object in a single notification.
1831
1832           In addition, the O-RU shall always use one of the
1833
1834           measurement-result-stats/symbol-rssi-stats[measurement-object]/
1835
1836           schema-nodes to report a single symbol-rssi measurement for a measurement-object.
1837           The O-RU should report its latest symbol-rssi measurement available.";
1838
1839          uses start-and-end-time;
1840          uses symbol-rssi-measurement-result-grouping;
1841       }
1842     }
1843
1844   }
1845
1846   // Top level container
1847
1848   container performance-measurement-objects {
1849     description
1850       "configuration for performance management and measurement-result are
1851        included";
1852     uses measurement-group;
1853   }
1854
1855 // Notifications
1856
1857   notification measurement-result-stats {
1858     description
1859       "Notification may contain measurement results for transceiver-stats
1860        and/or rx-window-stats";
1861     uses measurement-notification;
1862   }
1863 }