1 module o-ran-performance-management {
3 namespace "urn:o-ran:performance-management:1.0";
6 import ietf-yang-types {
8 revision-date 2013-07-15;
11 // import idetifier for O-RU
12 import ietf-hardware {
16 // import ietf-interface
17 import ietf-interfaces {
21 // import ietf-inet-type
22 import ietf-inet-types {
27 import o-ran-interfaces {
31 // import ru-mac-address, o-du-mac-address and vlan-id
32 import o-ran-processing-element {
33 prefix "o-ran-elements";
36 import o-ran-file-management {
40 import iana-hardware {
44 organization "O-RAN Alliance";
50 "This module defines the configuration for performance measurement for
51 transceiver and rx-window measurement objects.
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
61 Copyright 2020 the O-RAN Alliance.
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.
75 Redistribution and use in source and binary forms, with or without
76 modification, are permitted provided that the following conditions are met:
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.";
87 revision "2020-04-17" {
91 1) updated top level model description concerning optionality of measurements
92 2) added new rx window counters
93 3) added new TX stats measurements
94 4) added new EPE measurements
95 5) fixed typo in enumeration - TX_POPWER
96 6) introduced config false data indicating which type of measurmeents are supported";
98 reference "ORAN-WG4.M.0-v03.00";
101 revision "2019-07-03" {
105 1) added new measurement objects for QSFP
106 2) backward compatible changes to correct sFTP Server Authentication.
107 3) simplifying file management and authentication to reuse from o-ran-file-management module
108 4) minor fixes according to lack of descriptions and reference
109 5) added to descriptions to indicate applicability of leafs and Containers
110 to separate O-RAN use cases
111 6) backward compatible changes to introduce groupings.";
113 reference "ORAN-WG4.M.0-v02.00";
116 revision "2019-02-04" {
120 1) imported model from xRAN
121 2) changed namespace and reference from xran to o-ran";
123 reference "ORAN-WG4.M.0-v01.00";
127 feature GRANULARITY-TRANSPORT-MEASUREMENT {
129 "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
132 feature GRANULARITY-EAXC-ID-MEASUREMENT {
134 "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
137 grouping start-and-end-time {
139 "Definition for start and end time for an event";
142 type yang-types:date-and-time;
144 "Start time for measurement of object stats";
147 type yang-types:date-and-time;
149 "End time for measurement of object stats";
153 grouping epe-measurement-result-grouping {
155 "energy, power and environmental measurement-result are listed for O-RU";
157 list epe-measurement-result {
158 key "object-unit-id";
160 leaf object-unit-id {
162 path "/hw:hardware/hw:component/hw:class";
166 "the hardware component type is used for the object-unit-id for the
167 EPE measurements. For example, the object-unit-id will be set to
168 or-hw:O-RAN-RADIO if the measurement applies to the complete O-RU
169 self-contained sub-system.
171 Other hardware-classes include: or-hw:O-RU-POWER-AMPLIFIER,
172 ianahw:power-supply, ianahw:fan, ianahw:cpu";
180 "minimum value for the measurment-object";
187 "maximum value for the measurment-object";
194 "average value of the measurement-object";
199 grouping transceiver-measurement-result-grouping {
201 "transceiver-measurement-result are listed per port-number";
203 list transceiver-measurement-result {
204 key "object-unit-id";
206 leaf object-unit-id {
208 path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
212 "port-number is used for the object-unit-id for the
213 transceiver-measurement-result, for which object-unit is
218 "minimum value with recorded time are included for the
227 "minimum value for the measurment-object";
230 type yang-types:date-and-time;
233 "recorded time for the minimum value";
238 "maximum value with recorded time are included for the
247 "maximum value for the measurment-object";
250 type yang-types:date-and-time;
253 "recorded time for the maximum value";
258 "first value with the recorded time are included for the
267 "first value of the measurement-object";
270 type yang-types:date-and-time;
273 "recorded time for the first value";
278 "latest value with the recorded time are included for the
287 "latest value of the measurement-object";
290 type yang-types:date-and-time;
293 "recorded time for the latest value";
296 leaf-list frequeny-table {
300 "frequency-table for the measurment-object are included per bin.
301 The configuration parameters for this frequency-table are defined
302 by bin-count, lower-bound and upper-bound";
306 "List of transceiver measurement results";
310 grouping rx-window-measurement-result-grouping{
312 "Group of measurement reasults for rx window measurements";
314 choice object-unit-id {
319 path "/hw:hardware/hw:component/hw:name";
323 "the name of O-RU module or one of its child ports
324 in ietf-hardware/component is used when O-RU is selected as
325 object-unit for the reception window stats.";
332 "the number of data packet are counted for the reception
333 window stats per O-RU.";
338 list tr-measured-result{
341 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
345 "the name of ru-elements in o-ran-processing-elements
346 when TRANSPORT is selected as object-unit for the reception
354 "the number of data packet are counted for the reception
359 "the number of data packet are counted for the reception
360 window stats per TRANSPORT.";
365 list eaxc-measured-result {
371 when EAXC_ID is selected as object-unit for the reception
373 EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
374 RU-Port-Id to be used in header of C/U-plane data packet.";
381 "the number of data packet are counted for the reception
384 leaf transport-name {
386 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
390 "the name of ru-elements in o-ran-processing-elements for the
391 transport information corresponding to this eaxc-id";
395 "the number of data packet are counted for the reception
396 window stats per EAXC-ID.";
401 "measurement-result for the reception window stats depends on the
402 configured object-unit, RU, TRANSPORT or EAXC_ID";
406 grouping tx-measurement-result-grouping{
408 "Group of measurement reasults for tx stats";
410 choice object-unit-id {
415 path "/hw:hardware/hw:component/hw:name";
419 "the name of O-RU module or one of its child ports
420 in ietf-hardware/component is used when O-RU is selected as
421 object-unit for the reception window stats.";
428 "the number of data packet are counted for the tx stats per O-RU.";
433 list tr-measured-result{
436 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
440 "the name of ru-elements in o-ran-processing-elements
441 when TRANSPORT is selected as object-unit for the tx stats.";
448 "the number of data packet are counted for the tx stats.";
452 "the number of data packet are counted for the tx stats per TRANSPORT.";
457 list eaxc-measured-result {
463 when EAXC_ID is selected as object-unit for the tx stats.
464 EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
465 RU-Port-Id to be used in header of C/U-plane data packet.";
472 "the number of data packet are counted for the tx stats.";
474 leaf transport-name {
476 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
480 "the name of ru-elements in o-ran-processing-elements for the
481 transport information corresponding to this eaxc-id";
485 "the number of data packet are counted for the tx stats per EAXC-ID.";
490 "measurement-result for the tx stats depends on the
491 configured object-unit, RU, TRANSPORT or EAXC_ID";
496 grouping measurement-group {
498 "Group of measurement results";
500 uses measurement-capabilities;
501 leaf enable-SFTP-upload {
505 "Flag to enable upload of performance measurement result files.";
508 leaf enable-random-file-upload {
512 "Flag to enable upload of performance measurement result files at
513 random within file-upload-interval.";
516 list remote-SFTP-uploads {
517 key remote-SFTP-upload-path;
519 "SFTP upload can be done to one or more than one SFTP servers";
521 leaf remote-SFTP-upload-path {
524 "URI specifying the remote location where the files are to uploaded.
525 The following format is possible:
526 sftp://<username>@<host>[:<port>]/path";
529 uses o-ran-fm:credential-information;
532 // transceiver measurements applicable to all O-RAN HW functions
534 leaf transceiver-measurement-interval {
538 "measurement interval to measure the performance of transceiver
539 measurement objects periodically.";
542 // EPE measurements applicable to all O-RAN HW functions
544 leaf epe-measurement-interval {
548 "measurement interval to measure the energy, power and environmental
549 measurement objects periodically.";
552 // RX Window measurements applicable to O-RAN WG4 defined functions
554 leaf rx-window-measurement-interval {
558 "measurement interval to measure the performance of reception
559 window measurement objects periodically.";
562 leaf tx-measurement-interval {
566 "measurement interval to measure the tx (outbound)
567 window measurement objects periodically.";
570 leaf notification-interval {
574 "notification interval for the measurement result to be notified
578 leaf file-upload-interval {
582 "file upload interval for the measurement result file to be
583 uploaded periodically.";
591 "indicates the maximum value of configurable bin-count for frequency
592 table in transceiver-measurement-objects as one of module
596 list transceiver-measurement-objects {
597 key "measurement-object";
599 "optional list used to report transceiver measurements
600 applicable to any O-RAN defined hardware function";
601 leaf measurement-object {
605 "Measured Rx input power in mW for SFP or lane 1 of QSFP";
607 enum RX_POWER_LANE_2 {
609 "Measured Rx input power in mW for lane 2 of QSFP";
611 enum RX_POWER_LANE_3 {
613 "Measured Rx input power in mW for lane 3 of QSFP";
615 enum RX_POWER_LANE_4 {
617 "Measured Rx input power in mW for lane 4 of QSFP";
622 "Measured Tx input power in mW.";
626 "Measured Tx input power in mW.";
628 enum TX_POWER_LANE_2 {
630 "Measured Tx input power in mW for lane 2 of QSFP";
632 enum TX_POWER_LANE_3 {
634 "Measured Tx input power in mW for lane 3 of QSFP";
636 enum TX_POWER_LANE_4 {
638 "Measured Tx input power in mW for lane 4 of QSFP";
642 "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
644 enum TX_BIAS_COUNT_LANE_2 {
646 "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
648 enum TX_BIAS_COUNT_LANE_3 {
650 "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
652 enum TX_BIAS_COUNT_LANE_4 {
654 "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
658 "Internally measured transceiver supply voltage in mV";
662 "Internally measured optional laser temperature in degrees Celsius.";
665 description "Target metric to measure the performance";
672 "Enable/disable the performance measurement per Object";
675 leaf-list report-info {
679 "to report maximum value and its recorded time within the
680 measurement-interval for the measurement-object.";
684 "to report minimum value and its recorded time within the
685 measurement-interval for the measurement-object.";
689 "to report first value and its recorded time within the
690 measurement-interval for the measurement-object.";
694 "to report latest value and its recorded time within the
695 measurement-interval for the measurement-object.";
697 enum FREQUENCY_TABLE {
699 "to report frequency bin table within the
700 measurement-interval for the measurement-object.";
703 description "The reporting info to the measurement object.";
710 "unit to measure the performance per object-id";
714 description "unit to measure the performance per object-id.";
721 "the value is expressed by real value.";
725 "the value is expressed by logarithm with base 10.";
730 "the value to be recorded for transceiver-measurement
731 by real value or log 10.";
738 "the number of bin for the frequency table.
739 This value shall be less than max-bin-count";
748 "the lower value of the first bin of frequency table.";
757 "the upper value of the last bin of frequency table.";
759 uses transceiver-measurement-result-grouping;
760 // configuration and measurement result for the transceiver-measurement
764 list rx-window-measurement-objects {
765 key "measurement-object";
767 "optional list used to report RX Window measurements
768 applicable to O-RAN WG4 define O-RU functions";
769 leaf measurement-object {
773 "the number of data packets, received on time within
774 the reception window.";
778 "the number of data packets, received before
779 the reception window.";
783 "the number of data packets, received after
784 the reception window.";
788 "the number of data packets, which are corrupt or whose header
794 "the number of data packets, which is duplicated with other packets,
795 received within the measurement period.";
799 "the total number of received packets (data and control) within the measurement period.";
803 "the number of control packets, received on time within
804 the reception window.";
808 "the number of control packets, received before
809 the reception window.";
813 "the number of control packets, received after
814 the reception window.";
818 "the number of data packets, received with an erroneous sequence ID.";
820 enum RX_SEQID_ERR_C {
822 "the number of control packets, received with an erroneous sequence ID.";
826 "The total number of inbound messages which are discarded by the receiving
827 O-RAN entity for any reason.";
831 "target reception window metric to measure the performance.";
838 "Enable/disable the performance measurement per reception window
839 measurement object.";
846 "the reception window stats are counted per hardware component.
847 This may be the parent 'module' or child 'port' component.";
850 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
852 "the reception window stats are counted per transport flow.
853 When there are multiple transport flows between O-DU and O-RU,
854 e.g. multiple sets of o-du mac address, ru mac address and
855 vlan-id, the reception window stats per transport flow
856 are counted in this case.
857 This configuration is allowed only when O-RU supports
858 a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
861 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
864 "the reception window stats are counted per eAxC ID, which is
865 used in the header of receivd data packet.
866 This configuration is allowed only when O-RU supports
867 a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
871 "unit to measure the performance per object-id.";
878 "the number of data packet are counted for the reception
883 "The reporting info to the measurement object.";
886 uses rx-window-measurement-result-grouping;
887 // configuration and measurement result for the reception window stats
892 list tx-measurement-objects {
893 key "measurement-object";
895 "optional list used to report TX measurements
896 applicable to O-RAN WG4 define O-RU functions";
897 leaf measurement-object {
901 "the number of outbound packets (data and control), transmitted within
902 the measurement period";
906 "the number of outbound control packets, transmitted within
907 the measurement period.
908 This counter is required only if RU supports LAA/LBT capabilities.";
912 "CU-plane transmission counters";
919 "Enable/disable the measurement per measurement object.";
926 "the transmission stats are counted per hardware component.
927 This may be the parent 'module' or child 'port' component.";
930 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
932 "the transmission stats are counted per transport flow.
933 When there are multiple transport flows between O-DU and O-RU,
934 e.g. multiple sets of o-du mac address, ru mac address and
935 vlan-id, the transmission stats per transport flow
936 are counted in this case.
937 This configuration is allowed only when O-RU supports
938 a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
941 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
944 "the transmission stats are counted per eAxC ID, which is
945 used in the header of receivd data packet.
946 This configuration is allowed only when O-RU supports
947 a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
951 "unit to measure the performance per object-id.";
958 "the number of data packet are counted for the reception
963 "The reporting info to the measurement object.";
966 uses tx-measurement-result-grouping;
967 // configuration and measurement result for the tx stats
971 list epe-measurement-objects {
972 key "measurement-object";
974 "optional list used to report energy, power and environmental
975 measurements applicable to any O-RAN defined hardware function";
976 leaf measurement-object {
980 "Measured temperature in degrees celcius";
984 "Measured power consumed, in watts (W)";
987 description "Target metric to measure the performance";
994 "Enable/disable the performance measurement per Object";
997 leaf-list report-info {
1001 "to report maximum value and its recorded time within the
1002 measurement-interval for the measurement-object.";
1006 "to report minimum value and its recorded time within the
1007 measurement-interval for the measurement-object.";
1011 "to report average value within the
1012 measurement-interval for the measurement-object.";
1015 description "The reporting info to the measurement object.";
1019 uses epe-measurement-result-grouping;
1020 // configuration and measurement result for the epe-measurement
1027 grouping measurement-capabilities {
1028 container measurement-capabilitites {
1030 description "the type of measurement objects supported by the O-RU";
1032 list transceiver-objects {
1033 key measurement-object;
1034 leaf measurement-object {
1036 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1040 list rx-window-objects {
1041 key measurement-object;
1042 leaf measurement-object {
1044 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1048 list tx-stats-objects {
1049 key measurement-object;
1050 leaf measurement-object {
1052 path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1056 list epe-stats-objects {
1057 key "measurement-object";
1059 "An optional list describing the energy, power and environmental measurements supported
1060 by the O-RU. Measurements are defined per hardware component.";
1061 leaf measurement-object {
1063 path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1066 leaf-list component-class {
1068 base ianahw:hardware-class;
1071 "An indication of the general hardware type of the
1072 component for which EPE measurements are supported.";
1079 grouping measurement-notification {
1080 list transceiver-stats {
1081 key "measurement-object";
1082 leaf measurement-object {
1084 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1088 "measurement-object for the transceiver-measurement";
1091 uses start-and-end-time;
1092 uses transceiver-measurement-result-grouping;
1095 "measurement result of transceiver-measurement per measurement-object";
1098 list rx-window-stats {
1099 key "measurement-object";
1100 leaf measurement-object {
1102 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1106 "measurement-object for the reception window measurement";
1108 uses start-and-end-time;
1109 uses rx-window-measurement-result-grouping;
1112 "measurement result for the reception window measurement per
1113 measurement-object";
1118 key "measurement-object";
1119 leaf measurement-object {
1121 path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1125 "measurement-object for the tx stats measurement";
1127 uses start-and-end-time;
1128 uses tx-measurement-result-grouping;
1131 "measurement result for the tx stats measurement per
1132 measurement-object";
1136 container epe-stats {
1138 "container for the epe stats measurement";
1140 uses start-and-end-time;
1141 uses epe-measurement-result-grouping;
1147 "notification may contain measurement result for transceiver-stats
1148 and/or rx-window-stats";
1151 // Top level container
1153 container performance-measurement-objects {
1155 "configuration for performance management and measurement-result are
1157 uses measurement-group;
1162 notification measurement-result-stats {
1164 "Notification may contain measurement results for transceiver-stats
1165 and/or rx-window-stats";
1166 uses measurement-notification;