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 organization "O-RAN Alliance";
46 "This module defines the configuration for performance measurement for
47 transceiver and rx-window measurement objects.
49 Copyright 2019 the O-RAN Alliance.
51 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
52 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
53 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
54 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
55 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
56 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
57 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
58 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
59 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
60 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
61 POSSIBILITY OF SUCH DAMAGE.
63 Redistribution and use in source and binary forms, with or without
64 modification, are permitted provided that the following conditions are met:
66 * Redistributions of source code must retain the above copyright notice,
67 this list of conditions and the above disclaimer.
68 * Redistributions in binary form must reproduce the above copyright notice,
69 this list of conditions and the above disclaimer in the documentation
70 and/or other materials provided with the distribution.
71 * Neither the Members of the O-RAN Alliance nor the names of its
72 contributors may be used to endorse or promote products derived from
73 this software without specific prior written permission.";
75 revision "2019-07-03" {
79 1) added new measurement objects for QSFP
80 2) backward compatible changes to correct sFTP Server Authentication.
81 3) simplifying file management and authentication to reuse from o-ran-file-management module
82 4) minor fixes according to lack of descriptions and reference
83 5) added to descriptions to indicate applicability of leafs and Containers
84 to separate O-RAN use cases
85 6) backward compatible changes to introduce groupings.";
87 reference "ORAN-WG4.M.0-v02.00";
90 revision "2019-02-04" {
94 1) imported model from xRAN
95 2) changed namespace and reference from xran to o-ran";
97 reference "ORAN-WG4.M.0-v01.00";
101 feature GRANULARITY-TRANSPORT-MEASUREMENT {
103 "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
106 feature GRANULARITY-EAXC-ID-MEASUREMENT {
108 "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
111 grouping start-and-end-time {
113 "Definition for start and end time for an event";
116 type yang-types:date-and-time;
118 "Start time for measurement of object stats";
121 type yang-types:date-and-time;
123 "End time for measurement of object stats";
127 grouping transceiver-measurement-result-grouping {
129 "transceiver-measurement-result are listed per port-number";
131 list transceiver-measurement-result {
132 key "object-unit-id";
134 leaf object-unit-id {
136 path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
140 "port-number is used for the object-unit-id for the
141 transceiver-measurement-result, for which object-unit is
146 "minimum value with recorded time are included for the
155 "minimum value for the measurment-object";
158 type yang-types:date-and-time;
161 "recorded time for the minimum value";
166 "maximum value with recorded time are included for the
175 "maximum value for the measurment-object";
178 type yang-types:date-and-time;
181 "recorded time for the maximum value";
186 "first value with the recorded time are included for the
195 "first value of the measurement-object";
198 type yang-types:date-and-time;
201 "recorded time for the first value";
206 "latest value with the recorded time are included for the
215 "latest value of the measurement-object";
218 type yang-types:date-and-time;
221 "recorded time for the latest value";
224 leaf-list frequeny-table {
228 "frequency-table for the measurment-object are included per bin.
229 The configuration parameters for this frequency-table are defined
230 by bin-count, lower-bound and upper-bound";
234 "List of transceiver measurement results";
238 grouping rx-window-measurement-result-grouping{
240 "Group of measurement reasults for rx window measurements";
242 choice object-unit-id {
247 path "/hw:hardware/hw:component/hw:name";
251 "the name of O-RU module or one of its child ports
252 in ietf-hardware/component is used when O-RU is selected as
253 object-unit for the reception window stats.";
260 "the number of data packet are counted for the reception
261 window stats per O-RU.";
266 list tr-measured-result{
269 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
273 "the name of ru-elements in o-ran-processing-elements
274 when TRANSPORT is selected as object-unit for the reception
282 "the number of data packet are counted for the reception
287 "the number of data packet are counted for the reception
288 window stats per TRANSPORT.";
293 list eaxc-measured-result {
299 when EAXC_ID is selected as object-unit for the reception
301 EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
302 RU-Port-Id to be used in header of C/U-plane data packet.";
309 "the number of data packet are counted for the reception
312 leaf transport-name {
314 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
318 "the name of ru-elements in o-ran-processing-elements for the
319 transport information corresponding to this eaxc-id";
323 "the number of data packet are counted for the reception
324 window stats per EAXC-ID.";
329 "measurement-result for the reception window stats depends on the
330 configured object-unit, RU, TRANSPORT or EAXC_ID";
334 grouping measurement-group {
336 "Group of measurement results";
338 leaf enable-SFTP-upload {
342 "Flag to enable upload of performance measurement result files.";
345 leaf enable-random-file-upload {
349 "Flag to enable upload of performance measurement result files at
350 random within file-upload-interval.";
353 list remote-SFTP-uploads {
354 key remote-SFTP-upload-path;
356 "SFTP upload can be done to one or more than one SFTP servers";
358 leaf remote-SFTP-upload-path {
361 "URI specifying the remote location where the files are to uploaded.
362 The following format is possible:
363 sftp://<username>@<host>[:<port>]/path";
366 uses o-ran-fm:credential-information;
369 // transceiver measurements applicable to all O-RAN HW functions
371 leaf transceiver-measurement-interval {
375 "measurement interval to measure the performance of transceiver
376 measurement objects periodically.";
379 // RX Window measurements applicable to O-RAN WG4 defined functions
381 leaf rx-window-measurement-interval {
385 "measurement interval to measure the performance of reception
386 window measurement objects periodically.";
389 leaf notification-interval {
393 "notification interval for the measurement result to be notified
397 leaf file-upload-interval {
401 "file upload interval for the measurement result file to be
402 uploaded periodically.";
410 "indicates the maximum value of configurable bin-count for frequency
411 table in transceiver-measurement-objects as one of module
415 list transceiver-measurement-objects {
416 key "measurement-object";
418 "optional list used to report transceiver measurements
419 applicable to any O-RAN defined hardware function";
420 leaf measurement-object {
424 "Measured Rx input power in mW for SFP or lane 1 of QSFP";
426 enum RX_POWER_LANE_2 {
428 "Measured Rx input power in mW for lane 2 of QSFP";
430 enum RX_POWER_LANE_3 {
432 "Measured Rx input power in mW for lane 3 of QSFP";
434 enum RX_POWER_LANE_4 {
436 "Measured Rx input power in mW for lane 4 of QSFP";
440 "Measured Tx input power in mW.";
442 enum TX_POWER_LANE_2 {
444 "Measured Tx input power in mW for lane 2 of QSFP";
446 enum TX_POWER_LANE_3 {
448 "Measured Tx input power in mW for lane 3 of QSFP";
450 enum TX_POWER_LANE_4 {
452 "Measured Tx input power in mW for lane 4 of QSFP";
456 "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
458 enum TX_BIAS_COUNT_LANE_2 {
460 "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
462 enum TX_BIAS_COUNT_LANE_3 {
464 "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
466 enum TX_BIAS_COUNT_LANE_4 {
468 "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
472 "Internally measured transceiver supply voltage in mV";
476 "Internally measured optional laser temperature in degrees Celsius.";
479 description "Target metric to measure the performance";
486 "Enable/disable the performance measurement per Object";
489 leaf-list report-info {
493 "to report maximum value and its recorded time within the
494 measurement-interval for the measurement-object.";
498 "to report minimum value and its recorded time within the
499 measurement-interval for the measurement-object.";
503 "to report first value and its recorded time within the
504 measurement-interval for the measurement-object.";
508 "to report latest value and its recorded time within the
509 measurement-interval for the measurement-object.";
511 enum FREQUENCY_TABLE {
513 "to report frequency bin table within the
514 measurement-interval for the measurement-object.";
517 description "The reporting info to the measurement object.";
524 "unit to measure the performance per object-id";
528 description "unit to measure the performance per object-id.";
535 "the value is expressed by real value.";
539 "the value is expressed by logarithm with base 10.";
544 "the value to be recorded for transceiver-measurement
545 by real value or log 10.";
552 "the number of bin for the frequency table.
553 This value shall be less than max-bin-count";
562 "the lower value of the first bin of frequency table.";
571 "the upper value of the last bin of frequency table.";
573 uses transceiver-measurement-result-grouping;
574 // configuration and measurement result for the transceiver-measurement
578 list rx-window-measurement-objects {
579 key "measurement-object";
581 "optional list used to report RX Window measurements
582 applicable to O-RAN WG4 define O-RU functions";
583 leaf measurement-object {
587 "the number of data packets, received on time within
588 the reception window.";
592 "the number of data packets, received before
593 the reception window.";
597 "the number of data packets, received after
598 the reception window.";
602 "the number of data packets, which are corrupt or whose header
607 "the number of data packets, which is duplicated with other packets,
608 received within the measurement period.";
612 "the total number of received data packets.";
616 "target reception window metric to measure the performance.";
623 "Enable/disable the performance measurement per reception window
624 measurement object.";
631 "the reception window stats are counted per hardware component.
632 This may be the parent 'module' or child 'port' component.";
635 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
637 "the reception window stats are counted per transport flow.
638 When there are multiple transport flows between O-DU and O-RU,
639 e.g. multiple sets of o-du mac address, ru mac address and
640 vlan-id, the reception window stats per transport flow
641 are counted in this case.
642 This configuration is allowed only when O-RU supports
643 a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
646 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
649 "the reception window stats are counted per eAxC ID, which is
650 used in the header of receivd data packet.
651 This configuration is allowed only when O-RU supports
652 a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
656 "unit to measure the performance per object-id.";
663 "the number of data packet are counted for the reception
668 "The reporting info to the measurement object.";
671 uses rx-window-measurement-result-grouping;
672 // configuration and measurement result for the reception window stats
677 grouping measurement-notification {
678 list transceiver-stats {
679 key "measurement-object";
680 leaf measurement-object {
682 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
686 "measurement-object for the transceiver-measurement";
689 uses start-and-end-time;
690 uses transceiver-measurement-result-grouping;
693 "measurement result of transceiver-measurement per measurement-object";
696 list rx-window-stats {
697 key "measurement-object";
698 leaf measurement-object {
700 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
704 "measurement-object for the reception window measurement";
706 uses start-and-end-time;
707 uses rx-window-measurement-result-grouping;
710 "measurement result for the reception window measurement per
716 "notification may contain measurement result for transceiver-stats
717 and/or rx-window-stats";
720 // Top level container
722 container performance-measurement-objects {
724 "configuration for performance management and measurement-result are
726 uses measurement-group;
731 notification measurement-result-stats {
733 "Notification may contain measurement results for transceiver-stats
734 and/or rx-window-stats";
735 uses measurement-notification;