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