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.";
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";
95 reference "ORAN-WG4.M.0-v05.00";
98 revision "2020-04-17" {
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";
109 reference "ORAN-WG4.M.0-v03.00";
112 revision "2019-07-03" {
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.";
124 reference "ORAN-WG4.M.0-v02.00";
127 revision "2019-02-04" {
131 1) imported model from xRAN
132 2) changed namespace and reference from xran to o-ran";
134 reference "ORAN-WG4.M.0-v01.00";
138 feature GRANULARITY-TRANSPORT-MEASUREMENT {
140 "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
143 feature GRANULARITY-EAXC-ID-MEASUREMENT {
145 "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
148 grouping start-and-end-time {
150 "Definition for start and end time for an event";
153 type yang-types:date-and-time;
155 "Start time for measurement of object stats";
158 type yang-types:date-and-time;
160 "End time for measurement of object stats";
164 grouping epe-measurement-result-grouping {
166 "energy, power and environmental measurement-result are listed for O-RU";
168 list epe-measurement-result {
169 key "object-unit-id";
171 leaf object-unit-id {
173 path "/hw:hardware/hw:component/hw:class";
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.
182 Other hardware-classes include: or-hw:O-RU-POWER-AMPLIFIER,
183 ianahw:power-supply, ianahw:fan, ianahw:cpu";
191 "minimum value for the measurment-object";
198 "maximum value for the measurment-object";
205 "average value of the measurement-object";
210 grouping transceiver-measurement-result-grouping {
212 "transceiver-measurement-result are listed per port-number";
214 list transceiver-measurement-result {
215 key "object-unit-id";
217 leaf object-unit-id {
219 path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
223 "port-number is used for the object-unit-id for the
224 transceiver-measurement-result, for which object-unit is
229 "minimum value with recorded time are included for the
238 "minimum value for the measurment-object";
241 type yang-types:date-and-time;
244 "recorded time for the minimum value";
249 "maximum value with recorded time are included for the
258 "maximum value for the measurment-object";
261 type yang-types:date-and-time;
264 "recorded time for the maximum value";
269 "first value with the recorded time are included for the
278 "first value of the measurement-object";
281 type yang-types:date-and-time;
284 "recorded time for the first value";
289 "latest value with the recorded time are included for the
298 "latest value of the measurement-object";
301 type yang-types:date-and-time;
304 "recorded time for the latest value";
307 leaf-list frequeny-table {
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";
317 "List of transceiver measurement results";
321 grouping rx-window-measurement-result-grouping{
323 "Group of measurement reasults for rx window measurements";
325 choice object-unit-id {
330 path "/hw:hardware/hw:component/hw:name";
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.";
343 "the number of data packet are counted for the reception
344 window stats per O-RU.";
349 list tr-measured-result{
352 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
356 "the name of ru-elements in o-ran-processing-elements
357 when TRANSPORT is selected as object-unit for the reception
365 "the number of data packet are counted for the reception
370 "the number of data packet are counted for the reception
371 window stats per TRANSPORT.";
376 list eaxc-measured-result {
382 when EAXC_ID is selected as object-unit for the reception
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.";
392 "the number of data packet are counted for the reception
395 leaf transport-name {
397 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
401 "the name of ru-elements in o-ran-processing-elements for the
402 transport information corresponding to this eaxc-id";
406 "the number of data packet are counted for the reception
407 window stats per EAXC-ID.";
412 "measurement-result for the reception window stats depends on the
413 configured object-unit, RU, TRANSPORT or EAXC_ID";
417 grouping tx-measurement-result-grouping{
419 "Group of measurement reasults for tx stats";
421 choice object-unit-id {
426 path "/hw:hardware/hw:component/hw:name";
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.";
439 "the number of data packet are counted for the tx stats per O-RU.";
444 list tr-measured-result{
447 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
451 "the name of ru-elements in o-ran-processing-elements
452 when TRANSPORT is selected as object-unit for the tx stats.";
459 "the number of data packet are counted for the tx stats.";
463 "the number of data packet are counted for the tx stats per TRANSPORT.";
468 list eaxc-measured-result {
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.";
483 "the number of data packet are counted for the tx stats.";
485 leaf transport-name {
487 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
491 "the name of ru-elements in o-ran-processing-elements for the
492 transport information corresponding to this eaxc-id";
496 "the number of data packet are counted for the tx stats per EAXC-ID.";
501 "measurement-result for the tx stats depends on the
502 configured object-unit, RU, TRANSPORT or EAXC_ID";
507 grouping measurement-group {
509 "Group of measurement results";
511 uses measurement-capabilities;
512 leaf enable-SFTP-upload {
516 "Flag to enable upload of performance measurement result files.";
519 leaf enable-random-file-upload {
523 "Flag to enable upload of performance measurement result files at
524 random within file-upload-interval.";
527 list remote-SFTP-uploads {
528 key remote-SFTP-upload-path;
530 "SFTP upload can be done to one or more than one SFTP servers";
532 leaf remote-SFTP-upload-path {
535 "URI specifying the remote location where the files are to uploaded.
536 The following format is possible:
537 sftp://<username>@<host>[:<port>]/path";
540 uses o-ran-fm:credential-information;
543 // transceiver measurements applicable to all O-RAN HW functions
545 leaf transceiver-measurement-interval {
549 "measurement interval to measure the performance of transceiver
550 measurement objects periodically.";
553 // EPE measurements applicable to all O-RAN HW functions
555 leaf epe-measurement-interval {
559 "measurement interval to measure the energy, power and environmental
560 measurement objects periodically.";
563 // RX Window measurements applicable to O-RAN WG4 defined functions
565 leaf rx-window-measurement-interval {
569 "measurement interval to measure the performance of reception
570 window measurement objects periodically.";
573 leaf tx-measurement-interval {
577 "measurement interval to measure the tx (outbound)
578 window measurement objects periodically.";
581 leaf notification-interval {
585 "notification interval for the measurement result to be notified
589 leaf file-upload-interval {
593 "file upload interval for the measurement result file to be
594 uploaded periodically.";
602 "indicates the maximum value of configurable bin-count for frequency
603 table in transceiver-measurement-objects as one of module
607 list transceiver-measurement-objects {
608 key "measurement-object";
610 "optional list used to report transceiver measurements
611 applicable to any O-RAN defined hardware function";
612 leaf measurement-object {
616 "Measured Rx input power in mW for SFP or lane 1 of QSFP";
618 enum RX_POWER_LANE_2 {
620 "Measured Rx input power in mW for lane 2 of QSFP";
622 enum RX_POWER_LANE_3 {
624 "Measured Rx input power in mW for lane 3 of QSFP";
626 enum RX_POWER_LANE_4 {
628 "Measured Rx input power in mW for lane 4 of QSFP";
633 "Measured Tx input power in mW.";
637 "Measured Tx input power in mW.";
639 enum TX_POWER_LANE_2 {
641 "Measured Tx input power in mW for lane 2 of QSFP";
643 enum TX_POWER_LANE_3 {
645 "Measured Tx input power in mW for lane 3 of QSFP";
647 enum TX_POWER_LANE_4 {
649 "Measured Tx input power in mW for lane 4 of QSFP";
653 "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
655 enum TX_BIAS_COUNT_LANE_2 {
657 "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
659 enum TX_BIAS_COUNT_LANE_3 {
661 "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
663 enum TX_BIAS_COUNT_LANE_4 {
665 "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
669 "Internally measured transceiver supply voltage in mV";
673 "Internally measured optional laser temperature in degrees Celsius.";
676 description "Target metric to measure the performance";
683 "Enable/disable the performance measurement per Object";
686 leaf-list report-info {
690 "to report maximum value and its recorded time within the
691 measurement-interval for the measurement-object.";
695 "to report minimum value and its recorded time within the
696 measurement-interval for the measurement-object.";
700 "to report first value and its recorded time within the
701 measurement-interval for the measurement-object.";
705 "to report latest value and its recorded time within the
706 measurement-interval for the measurement-object.";
708 enum FREQUENCY_TABLE {
710 "to report frequency bin table within the
711 measurement-interval for the measurement-object.";
714 description "The reporting info to the measurement object.";
721 "unit to measure the performance per object-id";
725 description "unit to measure the performance per object-id.";
732 "the value is expressed by real value.";
736 "the value is expressed by logarithm with base 10.";
741 "the value to be recorded for transceiver-measurement
742 by real value or log 10.";
749 "the number of bin for the frequency table.
750 This value shall be less than max-bin-count";
759 "the lower value of the first bin of frequency table.";
768 "the upper value of the last bin of frequency table.";
770 uses transceiver-measurement-result-grouping;
771 // configuration and measurement result for the transceiver-measurement
775 list rx-window-measurement-objects {
776 key "measurement-object";
778 "optional list used to report RX Window measurements
779 applicable to O-RAN WG4 define O-RU functions";
780 leaf measurement-object {
784 "the number of data packets, received on time within
785 the reception window.";
789 "the number of data packets, received before
790 the reception window.";
794 "the number of data packets, received after
795 the reception window.";
799 "the number of data packets, which are corrupt or whose header
805 "the number of data packets, which is duplicated with other packets,
806 received within the measurement period.";
810 "the total number of received packets (data and control) within the measurement period.";
814 "the number of control packets, received on time within
815 the reception window.";
819 "the number of control packets, received before
820 the reception window.";
824 "the number of control packets, received after
825 the reception window.";
829 "the number of data packets, received with an erroneous sequence ID.";
831 enum RX_SEQID_ERR_C {
833 "the number of control packets, received with an erroneous sequence ID.";
837 "The total number of inbound messages which are discarded by the receiving
838 O-RAN entity for any reason.";
842 "target reception window metric to measure the performance.";
849 "Enable/disable the performance measurement per reception window
850 measurement object.";
857 "the reception window stats are counted per hardware component.
858 This may be the parent 'module' or child 'port' component.";
861 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
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.";
872 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
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.";
882 "unit to measure the performance per object-id.";
889 "the number of data packet are counted for the reception
894 "The reporting info to the measurement object.";
897 uses rx-window-measurement-result-grouping;
898 // configuration and measurement result for the reception window stats
903 list tx-measurement-objects {
904 key "measurement-object";
906 "optional list used to report TX measurements
907 applicable to O-RAN WG4 define O-RU functions";
908 leaf measurement-object {
912 "the number of outbound packets (data and control), transmitted within
913 the measurement period";
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.";
923 "CU-plane transmission counters";
930 "Enable/disable the measurement per measurement object.";
937 "the transmission stats are counted per hardware component.
938 This may be the parent 'module' or child 'port' component.";
941 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
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.";
952 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
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.";
962 "unit to measure the performance per object-id.";
969 "the number of data packet are counted for the reception
974 "The reporting info to the measurement object.";
977 uses tx-measurement-result-grouping;
978 // configuration and measurement result for the tx stats
982 list epe-measurement-objects {
983 key "measurement-object";
985 "optional list used to report energy, power and environmental
986 measurements applicable to any O-RAN defined hardware function";
987 leaf measurement-object {
991 "Measured temperature in degrees celcius";
995 "Measured power consumed, in watts (W)";
998 description "Target metric to measure the performance";
1005 "Enable/disable the performance measurement per Object";
1008 leaf-list report-info {
1012 "to report maximum value and its recorded time within the
1013 measurement-interval for the measurement-object.";
1017 "to report minimum value and its recorded time within the
1018 measurement-interval for the measurement-object.";
1022 "to report average value within the
1023 measurement-interval for the measurement-object.";
1026 description "The reporting info to the measurement object.";
1030 uses epe-measurement-result-grouping;
1031 // configuration and measurement result for the epe-measurement
1038 grouping measurement-capabilities {
1039 container measurement-capabilitites {
1041 description "the type of measurement objects supported by the O-RU";
1043 list transceiver-objects {
1044 key measurement-object;
1045 leaf measurement-object {
1047 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1051 list rx-window-objects {
1052 key measurement-object;
1053 leaf measurement-object {
1055 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1059 list tx-stats-objects {
1060 key measurement-object;
1061 leaf measurement-object {
1063 path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1067 list epe-stats-objects {
1068 key "measurement-object";
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 {
1074 path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1077 leaf-list component-class {
1079 base ianahw:hardware-class;
1082 "An indication of the general hardware type of the
1083 component for which EPE measurements are supported.";
1090 grouping measurement-notification {
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";
1099 "measurement result of transceiver-measurement per measurement-object";
1100 leaf measurement-object {
1102 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
1106 "measurement-object for the transceiver-measurement";
1109 uses start-and-end-time;
1110 uses transceiver-measurement-result-grouping;
1113 list rx-window-stats {
1114 key "measurement-object";
1117 "measurement result for the reception window measurement per
1118 measurement-object";
1119 leaf measurement-object {
1121 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
1125 "measurement-object for the reception window measurement";
1127 uses start-and-end-time;
1128 uses rx-window-measurement-result-grouping;
1133 key "measurement-object";
1136 "measurement result for the tx stats measurement per
1137 measurement-object";
1138 leaf measurement-object {
1140 path "/performance-measurement-objects/tx-measurement-objects/measurement-object";
1144 "measurement-object for the tx stats measurement";
1146 uses start-and-end-time;
1147 uses tx-measurement-result-grouping;
1151 container epe-stats {
1153 "container for the epe stats measurement - deprecated because measurement object
1157 uses start-and-end-time;
1158 uses epe-measurement-result-grouping;
1163 list epe-statistics {
1164 key "measurement-object";
1167 "measurement result for the epe stats measurement per
1168 measurement-object";
1169 leaf measurement-object {
1171 path "/performance-measurement-objects/epe-measurement-objects/measurement-object";
1175 "measurement-object for the epe stats measurement";
1177 uses start-and-end-time;
1178 uses epe-measurement-result-grouping;
1183 // Top level container
1185 container performance-measurement-objects {
1187 "configuration for performance management and measurement-result are
1189 uses measurement-group;
1194 notification measurement-result-stats {
1196 "Notification may contain measurement results for transceiver-stats
1197 and/or rx-window-stats";
1198 uses measurement-notification;