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-06-05" {
79 1) backward compatible changes according to NOK-0002 sFTP Server Authentication Correction.
80 2) simplifying file management and authentication to reuse from o-ran-file-management module
81 3) minor fixes according to lack of descriptions and reference";
83 reference "ORAN-WG4.M.0-v01.00";
86 revision "2019-03-28" {
90 1) added to descriptions to indicate applicability of leafs and Containers
91 to separate O-RAN use cases";
93 reference "ORAN-WG4.M.0-v01.00";
96 revision "2019-03-07" {
100 1) backward compatible changes to introduce groupings.";
102 reference "ORAN-WG4.M.0-v01.00";
105 revision "2019-02-04" {
109 1) imported model from xRAN
110 2) changed namespace and reference from xran to o-ran";
112 reference "ORAN-WG4.M.0-v01.00";
116 feature GRANULARITY-TRANSPORT-MEASUREMENT {
118 "This feature indicates that the O-RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
121 feature GRANULARITY-EAXC-ID-MEASUREMENT {
123 "This feature indicates that the O-RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
126 grouping start-and-end-time {
128 "Definition for start and end time for an event";
131 type yang-types:date-and-time;
133 "Start time for measurement of object stats";
136 type yang-types:date-and-time;
138 "End time for measurement of object stats";
142 grouping transceiver-measurement-result-grouping {
144 "transceiver-measurement-result are listed per port-number";
146 list transceiver-measurement-result {
147 key "object-unit-id";
149 leaf object-unit-id {
151 path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number";
155 "port-number is used for the object-unit-id for the
156 transceiver-measurement-result, for which object-unit is
161 "minimum value with recorded time are included for the
170 "minimum value for the measurment-object";
173 type yang-types:date-and-time;
176 "recorded time for the minimum value";
181 "maximum value with recorded time are included for the
190 "maximum value for the measurment-object";
193 type yang-types:date-and-time;
196 "recorded time for the maximum value";
201 "first value with the recorded time are included for the
210 "first value of the measurement-object";
213 type yang-types:date-and-time;
216 "recorded time for the first value";
221 "latest value with the recorded time are included for the
230 "latest value of the measurement-object";
233 type yang-types:date-and-time;
236 "recorded time for the latest value";
239 leaf-list frequeny-table {
243 "frequency-table for the measurment-object are included per bin.
244 The configuration parameters for this frequency-table are defined
245 by bin-count, lower-bound and upper-bound";
249 "List of transceiver measurement results";
253 grouping rx-window-measurement-result-grouping{
255 "Group of measurement reasults for rx window measurements";
257 choice object-unit-id {
262 path "/hw:hardware/hw:component/hw:name";
266 "the name of O-RU module or one of its child ports
267 in ietf-hardware/component is used when O-RU is selected as
268 object-unit for the reception window stats.";
275 "the number of data packet are counted for the reception
276 window stats per O-RU.";
281 list tr-measured-result{
285 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
289 "the name of ru-elements in o-ran-processing-elements
290 when TRANSPORT is selected as object-unit for the reception
298 "the number of data packet are counted for the reception
303 "the number of data packet are counted for the reception
304 window stats per TRANSPORT.";
309 list eaxc-measured-result {
316 when EAXC_ID is selected as object-unit for the reception
318 EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
319 RU-Port-Id to be used in header of C/U-plane data packet.";
326 "the number of data packet are counted for the reception
329 leaf transport-name {
331 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
335 "the name of ru-elements in o-ran-processing-elements for the
336 transport information corresponding to this eaxc-id";
340 "the number of data packet are counted for the reception
341 window stats per EAXC-ID.";
346 "measurement-result for the reception window stats depends on the
347 configured object-unit, RU, TRANSPORT or EAXC_ID";
351 grouping measurement-group {
353 "Group of measurement results";
355 leaf enable-SFTP-upload {
359 "Flag to enable upload of performance measurement result files.";
362 leaf enable-random-file-upload {
366 "Flag to enable upload of performance measurement result files at
367 random within file-upload-interval.";
370 list remote-SFTP-uploads {
371 key remote-SFTP-upload-path;
373 "SFTP upload can be done to one or more than one SFTP servers";
375 leaf remote-SFTP-upload-path {
378 "URI specifying the remote location where the files are to uploaded.
379 The following format is possible:
380 sftp://<username>@<host>[:<port>]/path";
383 uses o-ran-fm:credential-information;
386 // transceiver measurements applicable to all O-RAN HW functions
388 leaf transceiver-measurement-interval {
392 "measurement interval to measure the performance of transceiver
393 measurement objects periodically.";
396 // RX Window measurements applicable to O-RAN WG4 defined functions
398 leaf rx-window-measurement-interval {
402 "measurement interval to measure the performance of reception
403 window measurement objects periodically.";
406 leaf notification-interval {
410 "notification interval for the measurement result to be notified
414 leaf file-upload-interval {
418 "file upload interval for the measurement result file to be
419 uploaded periodically.";
427 "indicates the maximum value of configurable bin-count for frequency
428 table in transceiver-measurement-objects as one of module
432 list transceiver-measurement-objects {
433 key "measurement-object";
435 "optional list used to report transceiver measurements
436 applicable to any O-RAN defined hardware function";
437 leaf measurement-object {
441 "Measured Rx input power in mW";
445 "Measured Tx input power in mW.";
449 "Internally measured Tx Bias Current in mA";
453 "Internally measured transceiver supply voltage in mV";
457 "Internally measured optional laser temperature in degrees Celsius.";
460 description "Target metric to measure the performance";
467 "Enable/disable the performance measurement per Object";
470 leaf-list report-info {
474 "to report maximum value and its recorded time within the
475 measurement-interval for the measurement-object.";
479 "to report minimum value and its recorded time within the
480 measurement-interval for the measurement-object.";
484 "to report first value and its recorded time within the
485 measurement-interval for the measurement-object.";
489 "to report latest value and its recorded time within the
490 measurement-interval for the measurement-object.";
492 enum FREQUENCY_TABLE {
494 "to report frequency bin table within the
495 measurement-interval for the measurement-object.";
498 description "The reporting info to the measurement object.";
505 "unit to measure the performance per object-id";
509 description "unit to measure the performance per object-id.";
516 "the value is expressed by real value.";
520 "the value is expressed by logarithm with base 10.";
525 "the value to be recorded for transceiver-measurement
526 by real value or log 10.";
533 "the number of bin for the frequency table.
534 This value shall be less than max-bin-count";
543 "the lower value of the first bin of frequency table.";
552 "the upper value of the last bin of frequency table.";
554 uses transceiver-measurement-result-grouping;
555 // configuration and measurement result for the transceiver-measurement
559 list rx-window-measurement-objects {
560 key "measurement-object";
562 "optional list used to report RX Window measurements
563 applicable to O-RAN WG4 define O-RU functions";
564 leaf measurement-object {
568 "the number of data packets, received on time within
569 the reception window.";
573 "the number of data packets, received before
574 the reception window.";
578 "the number of data packets, received after
579 the reception window.";
583 "the number of data packets, which are corrupt or whose header
588 "the number of data packets, which is duplicated with other packets,
589 received within the measurement period.";
593 "the total number of received data packets.";
597 "target reception window metric to measure the performance.";
604 "Enable/disable the performance measurement per reception window
605 measurement object.";
612 "the reception window stats are counted per hardware component.
613 This may be the parent 'module' or child 'port' component.";
616 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
618 "the reception window stats are counted per transport flow.
619 When there are multiple transport flows between O-DU and O-RU,
620 e.g. multiple sets of o-du mac address, ru mac address and
621 vlan-id, the reception window stats per transport flow
622 are counted in this case.
623 This configuration is allowed only when O-RU supports
624 a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
627 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
630 "the reception window stats are counted per eAxC ID, which is
631 used in the header of receivd data packet.
632 This configuration is allowed only when O-RU supports
633 a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
637 "unit to measure the performance per object-id.";
644 "the number of data packet are counted for the reception
649 "The reporting info to the measurement object.";
652 uses rx-window-measurement-result-grouping;
653 // configuration and measurement result for the reception window stats
658 grouping measurement-notification {
659 list transceiver-stats {
660 key "measurement-object";
661 leaf measurement-object {
663 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
667 "measurement-object for the transceiver-measurement";
670 uses start-and-end-time;
671 uses transceiver-measurement-result-grouping;
674 "measurement result of transceiver-measurement per measurement-object";
677 list rx-window-stats {
678 key "measurement-object";
679 leaf measurement-object {
681 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
685 "measurement-object for the reception window measurement";
687 uses start-and-end-time;
688 uses rx-window-measurement-result-grouping;
691 "measurement result for the reception window measurement per
697 "notification may contain measurement result for transceiver-stats
698 and/or rx-window-stats";
701 // Top level container
703 container performance-measurement-objects {
705 "configuration for performance management and measurement-result are
707 uses measurement-group;
712 notification measurement-result-stats {
714 "Notification may contain measurement results for transceiver-stats
715 and/or rx-window-stats";
716 uses measurement-notification;