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{
267 // [ast] Fix for list without key
272 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
276 "the name of ru-elements in o-ran-processing-elements
277 when TRANSPORT is selected as object-unit for the reception
285 "the number of data packet are counted for the reception
290 "the number of data packet are counted for the reception
291 window stats per TRANSPORT.";
296 list eaxc-measured-result {
297 // [ast] Fix for list without key
305 when EAXC_ID is selected as object-unit for the reception
307 EAXC_ID consists of DU-Port-Id, Band-Selector, CC-id and
308 RU-Port-Id to be used in header of C/U-plane data packet.";
315 "the number of data packet are counted for the reception
318 leaf transport-name {
320 path "/o-ran-elements:processing-elements/o-ran-elements:ru-elements/o-ran-elements:name";
324 "the name of ru-elements in o-ran-processing-elements for the
325 transport information corresponding to this eaxc-id";
329 "the number of data packet are counted for the reception
330 window stats per EAXC-ID.";
335 "measurement-result for the reception window stats depends on the
336 configured object-unit, RU, TRANSPORT or EAXC_ID";
340 grouping measurement-group {
342 "Group of measurement results";
344 leaf enable-SFTP-upload {
348 "Flag to enable upload of performance measurement result files.";
351 leaf enable-random-file-upload {
355 "Flag to enable upload of performance measurement result files at
356 random within file-upload-interval.";
359 list remote-SFTP-uploads {
360 key remote-SFTP-upload-path;
362 "SFTP upload can be done to one or more than one SFTP servers";
364 leaf remote-SFTP-upload-path {
367 "URI specifying the remote location where the files are to uploaded.
368 The following format is possible:
369 sftp://<username>@<host>[:<port>]/path";
372 uses o-ran-fm:credential-information;
375 // transceiver measurements applicable to all O-RAN HW functions
377 leaf transceiver-measurement-interval {
381 "measurement interval to measure the performance of transceiver
382 measurement objects periodically.";
385 // RX Window measurements applicable to O-RAN WG4 defined functions
387 leaf rx-window-measurement-interval {
391 "measurement interval to measure the performance of reception
392 window measurement objects periodically.";
395 leaf notification-interval {
399 "notification interval for the measurement result to be notified
403 leaf file-upload-interval {
407 "file upload interval for the measurement result file to be
408 uploaded periodically.";
416 "indicates the maximum value of configurable bin-count for frequency
417 table in transceiver-measurement-objects as one of module
421 list transceiver-measurement-objects {
422 key "measurement-object";
424 "optional list used to report transceiver measurements
425 applicable to any O-RAN defined hardware function";
426 leaf measurement-object {
430 "Measured Rx input power in mW for SFP or lane 1 of QSFP";
432 enum RX_POWER_LANE_2 {
434 "Measured Rx input power in mW for lane 2 of QSFP";
436 enum RX_POWER_LANE_3 {
438 "Measured Rx input power in mW for lane 3 of QSFP";
440 enum RX_POWER_LANE_4 {
442 "Measured Rx input power in mW for lane 4 of QSFP";
446 "Measured Tx input power in mW.";
448 enum TX_POWER_LANE_2 {
450 "Measured Tx input power in mW for lane 2 of QSFP";
452 enum TX_POWER_LANE_3 {
454 "Measured Tx input power in mW for lane 3 of QSFP";
456 enum TX_POWER_LANE_4 {
458 "Measured Tx input power in mW for lane 4 of QSFP";
462 "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP";
464 enum TX_BIAS_COUNT_LANE_2 {
466 "Internally measured Tx Bias Current in mA for lane 2 of QSFP";
468 enum TX_BIAS_COUNT_LANE_3 {
470 "Internally measured Tx Bias Current in mA for lane 3 of QSFP";
472 enum TX_BIAS_COUNT_LANE_4 {
474 "Internally measured Tx Bias Current in mA for lane 4 of QSFP";
478 "Internally measured transceiver supply voltage in mV";
482 "Internally measured optional laser temperature in degrees Celsius.";
485 description "Target metric to measure the performance";
492 "Enable/disable the performance measurement per Object";
495 leaf-list report-info {
499 "to report maximum value and its recorded time within the
500 measurement-interval for the measurement-object.";
504 "to report minimum value and its recorded time within the
505 measurement-interval for the measurement-object.";
509 "to report first value and its recorded time within the
510 measurement-interval for the measurement-object.";
514 "to report latest value and its recorded time within the
515 measurement-interval for the measurement-object.";
517 enum FREQUENCY_TABLE {
519 "to report frequency bin table within the
520 measurement-interval for the measurement-object.";
523 description "The reporting info to the measurement object.";
530 "unit to measure the performance per object-id";
534 description "unit to measure the performance per object-id.";
541 "the value is expressed by real value.";
545 "the value is expressed by logarithm with base 10.";
550 "the value to be recorded for transceiver-measurement
551 by real value or log 10.";
558 "the number of bin for the frequency table.
559 This value shall be less than max-bin-count";
568 "the lower value of the first bin of frequency table.";
577 "the upper value of the last bin of frequency table.";
579 uses transceiver-measurement-result-grouping;
580 // configuration and measurement result for the transceiver-measurement
584 list rx-window-measurement-objects {
585 key "measurement-object";
587 "optional list used to report RX Window measurements
588 applicable to O-RAN WG4 define O-RU functions";
589 leaf measurement-object {
593 "the number of data packets, received on time within
594 the reception window.";
598 "the number of data packets, received before
599 the reception window.";
603 "the number of data packets, received after
604 the reception window.";
608 "the number of data packets, which are corrupt or whose header
613 "the number of data packets, which is duplicated with other packets,
614 received within the measurement period.";
618 "the total number of received data packets.";
622 "target reception window metric to measure the performance.";
629 "Enable/disable the performance measurement per reception window
630 measurement object.";
637 "the reception window stats are counted per hardware component.
638 This may be the parent 'module' or child 'port' component.";
641 if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
643 "the reception window stats are counted per transport flow.
644 When there are multiple transport flows between O-DU and O-RU,
645 e.g. multiple sets of o-du mac address, ru mac address and
646 vlan-id, the reception window stats per transport flow
647 are counted in this case.
648 This configuration is allowed only when O-RU supports
649 a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
652 if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
655 "the reception window stats are counted per eAxC ID, which is
656 used in the header of receivd data packet.
657 This configuration is allowed only when O-RU supports
658 a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
662 "unit to measure the performance per object-id.";
669 "the number of data packet are counted for the reception
674 "The reporting info to the measurement object.";
677 uses rx-window-measurement-result-grouping;
678 // configuration and measurement result for the reception window stats
683 grouping measurement-notification {
684 list transceiver-stats {
685 key "measurement-object";
686 leaf measurement-object {
688 path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
692 "measurement-object for the transceiver-measurement";
695 uses start-and-end-time;
696 uses transceiver-measurement-result-grouping;
699 "measurement result of transceiver-measurement per measurement-object";
702 list rx-window-stats {
703 key "measurement-object";
704 leaf measurement-object {
706 path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
710 "measurement-object for the reception window measurement";
712 uses start-and-end-time;
713 uses rx-window-measurement-result-grouping;
716 "measurement result for the reception window measurement per
722 "notification may contain measurement result for transceiver-stats
723 and/or rx-window-stats";
726 // Top level container
728 container performance-measurement-objects {
730 "configuration for performance management and measurement-result are
732 uses measurement-group;
737 notification measurement-result-stats {
739 "Notification may contain measurement results for transceiver-stats
740 and/or rx-window-stats";
741 uses measurement-notification;