1 module o-ran-beamforming {
3 namespace "urn:o-ran:beamforming:1.0";
6 import o-ran-uplane-conf {
10 import o-ran-module-cap {
14 import o-ran-compression-factors {
16 revision-date 2021-12-01;
19 import o-ran-wg4-features {
23 organization "O-RAN Alliance";
29 "This module defines the beamforming capabilities of an O-RU.
30 Only O-RUs that support beamforming shall support this module.
32 Copyright 2021 the O-RAN Alliance.
34 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
35 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
36 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
37 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
38 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
39 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
40 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
41 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
42 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
43 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44 POSSIBILITY OF SUCH DAMAGE.
46 Redistribution and use in source and binary forms, with or without
47 modification, are permitted provided that the following conditions are met:
49 * Redistributions of source code must retain the above copyright notice,
50 this list of conditions and the above disclaimer.
51 * Redistributions in binary form must reproduce the above copyright notice,
52 this list of conditions and the above disclaimer in the documentation
53 and/or other materials provided with the distribution.
54 * Neither the Members of the O-RAN Alliance nor the names of its
55 contributors may be used to endorse or promote products derived from
56 this software without specific prior written permission.";
58 revision "2022-12-05" {
62 1) introduce p-dash parameter";
64 reference "ORAN-WG4.M.0-v11.00";
67 revision "2022-08-15" {
71 1) clarified description statements for component carrier
72 2) clarified path/folder description";
74 reference "ORAN-WG4.M.0-v08.00";
77 revision "2021-12-01" {
81 1) typographical corrections in descriptions.
82 2) Configuration for Beamforming weights were added together with changes and updates
85 reference "ORAN-WG4.M.0-v08.00";
88 revision "2021-07-26" {
92 1) Ensuring beam-ids can only be 15 bits.
93 2) Correcting maximum number of UEs from 8 bit to 15 bit";
95 reference "ORAN-WG4.M.0-v02.00";
97 revision "2021-03-22" {
101 1) typographical corrections in descriptions.";
103 reference "ORAN-WG4.M.0-v02.00";
106 revision "2020-04-17" {
110 1) corrected error where typedef refers to deprecated beam-id by
111 introducing new typedef and deprecating leafs defining coarse/fine
112 relationships that refer to beam-id and replacing with new ones based
113 on capability grouping";
115 reference "ORAN-WG4.M.0-v02.00";
118 revision "2019-07-03" {
122 1) re-designed/switched from per band to per capabilities-group for
124 2) added in new beam tilt feature
125 3) adding possibilities to provide more compression types for beamforming
126 4) Adding possibility to configure beamforming per capabilities group
127 5) corrected xPATH boolean check from TRUE to true";
129 reference "ORAN-WG4.M.0-v02.00";
132 revision "2019-02-04" {
136 1) imported model from xRAN
137 2) changed namespace and reference from xran to o-ran";
139 reference "ORAN-WG4.M.0-v01.00";
143 feature MODIFY-BF-CONFIG {
145 "This feature indicates that the O-RU supports an optional feature to
146 modify beamforming configuration information";
151 "This feature indicates that the O-RU supports an optional feature to
152 allows to shift beam characteristic of all predefined-beams in elevation
153 and/or azimuth direction (i.e. changing the service area or sector
154 coverage) while preserving the beam adjacency among the beams within
158 typedef beam-reference {
160 path "/o-ran-bf:beamforming-config/o-ran-bf:per-band-config/o-ran-bf:beam-information/o-ran-bf:beamforming-properties/o-ran-bf:beam-id";
163 "This type is used by data models that need to reference a beam.";
166 typedef beam-capabilities-reference {
168 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:beam-information/o-ran-bf:beamforming-properties/o-ran-bf:beam-id";
171 "This type is used by data models that need to reference a beam based on capability group.";
174 grouping beamforming-parameters {
175 leaf max-number-of-beam-ids {
177 range "min .. 32767";
182 "Maximum number of supported Beam ID assigned to domain beamforming control";
185 leaf initial-beam-id {
187 range "min .. 32767";
191 "First Beam ID that can be used for addressing of domain beams";
194 description "Group of common beamforming parameters";
197 grouping granularity-parameters {
198 leaf frequency-granularity {
202 "Frequency granularity: per Component Carrier";
207 "Frequency granularity: per band";
211 description "Supported time granularity of time-domain beamforming.";
214 leaf time-granularity {
218 "Time granularity: per slot";
223 "Time granularity: per symbol";
227 description "Supported time granularity of time-domain beamforming.";
232 grouping array-lists {
234 "Grouping for array lists";
238 path "/up:user-plane-configuration/up:tx-arrays/up:name";
240 description "tx arrays belonging to this band number";
244 path "/up:user-plane-configuration/up:rx-arrays/up:name";
246 description "rx arrays belonging to this band number";
250 grouping static-properties {
252 "Grouping for static beamforming properties";
254 leaf rt-bf-weights-update-support {
257 "The parameter informs if O-RU supports real time beamforming weights update through C-Plane messaging";
260 choice beamforming-type {
262 container frequency-domain-beams {
263 when "../rt-bf-weights-update-support = 'true'";
264 uses beamforming-parameters;
265 uses cf:bf-compression-details;
267 list additional-compression-method-supported {
268 uses cf:bf-compression-details;
271 "List of additional supported compression methods by O-RU";
276 description "Set of parameters valid for O-RU, that supports beamforming in frequency domain.";
280 container time-domain-beams {
281 when "../rt-bf-weights-update-support = 'true'";
282 uses beamforming-parameters;
283 uses granularity-parameters;
284 uses cf:bf-compression-details;
286 list additional-compression-method-supported {
287 uses cf:bf-compression-details;
290 "List of additional supported compression methods by O-RU";
295 description "Set of parameters valid for O-RU, that supports beamforming in time domain.";
299 container hybrid-beams {
300 when "../rt-bf-weights-update-support = 'true'";
301 uses beamforming-parameters;
302 uses granularity-parameters;
303 uses cf:bf-compression-details;
305 list additional-compression-method-supported {
306 uses cf:bf-compression-details;
309 "List of additional supported compression methods by O-RU";
314 description "Set of parameters valid for O-RU, that supports hybrid beamforming - in both time and frequency domain.";
317 "This value indicates beamforming type supported by O-RU";
320 leaf number-of-beams {
323 "This value indicates the max number of beam patterns O-RU can generate
324 and apply to the signal of each O-RU port (both DL and UL).
325 This value is equivalent to the maximum number of used beam IDs.";
330 "This parameters specifies the dimesionality of the time-domain beamforming operation. Refer to description of parameter p'
331 in clause 12.4.3.4.2 of CUS-Plane specification. This parameter is required to define the size of time-domain beamforming
332 vector in case of hybrid/time-domain beamforming is supported by O-RU";
336 grouping beamforming-property {
338 "Grouping for beamforming property";
343 description "the beam-id corresponds to a coarse beam";
346 description "the beam-id corresponds to a fine beam";
350 "This value indicates the beam resolution.";
356 "Beams with same beamGroupsID can be transmitted simultaneously.";
359 leaf-list coarse-fine-beam-relation {
363 "List of related coarse/fine beam.";
366 leaf-list neighbour-beams {
370 "A list of neighbour beams which might restrict co-scheduling due
374 leaf-list coarse-fine-beam-capability-based-relation {
375 type beam-capabilities-reference;
377 "List of related coarse/fine beam.";
380 leaf-list neighbour-beams-capability-based {
381 type beam-capabilities-reference;
383 "A list of neighbour beams which might restrict co-scheduling due
388 grouping beamforming-properties-element {
390 "Grouping for beamforming-properties element";
394 range "min .. 32767";
397 "This value indicates the beam ID whose beamforming properties are
398 described in the container.";
401 container beamforming-property {
403 "Structure containing single set of beamforming properties.";
405 uses beamforming-property;
411 "Band information for the beamforming
412 related to the band number from module capabilities";
416 path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
419 "band information for the beamforming information
420 related to the band number of module capabilities";
426 "Capabilities group grouping";
428 leaf capabilities-group {
430 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
434 "Capabilities group identification number to which it refers.";
439 grouping per-band-config-element {
441 "Grouping for per band config element";
446 container static-properties {
448 "the static beamforming related information";
450 uses static-properties;
453 container beam-information {
455 "Beam information which exposes beamforming related O-RU capabilities.";
456 leaf number-of-beamforming-properties {
459 "This parameter indicates the number of beamFormingProperties entries.";
462 list beamforming-properties {
465 "Array for the beamforming properties at O-RU.
466 These parameters can be used by the beamforming control by the NETCONF client.
467 'numberOfBeamformingProperties' indicates the size of the array.";
469 uses beamforming-properties-element;
474 grouping operational-properties {
476 "Grouping for operational properties";
478 leaf number-of-writeable-beamforming-files {
484 "This leaf indicates the maximum number of writable beamforming files
485 containing beamweights and/or attributes that the O-RU can store, taking
486 into account the maximum number of beam-IDs as defined by 3GPP
490 leaf update-bf-non-delete {
494 "When set to TRUE, indicates that an O-RU supports the capability
495 to apply the modified beamforming weight information by using RPC
496 activate-beamforming-weight without deletion of tx-array-carriers and
497 rx-array-carriers in advance, i.e., to a deactivated carrier";
500 leaf persistent-bf-files {
504 "When set to TRUE, indicates that the O-RU supports the capability
505 to store the modified beamforming weight information file in the
506 reset persistent memory";
510 grouping beamforming-supported-type {
512 "Grouping for type of beamforming supported";
514 leaf beamforming-trough-attributes-supported {
518 "Informs if beamforming can be controlled providing attributes to O-RU
519 (like angles, beamwidth).";
522 leaf beamforming-trough-ue-channel-info-supported {
526 "Informs if beamforming can be controlled by UE information.";
530 grouping beamforming-config {
532 "Grouping for beamforming configuration";
534 list per-band-config {
538 description "beamforming information per band";
539 uses per-band-config-element;
542 list capabilities-groups {
543 key capabilities-group;
545 "Capabilities groups identification number assigned to be referenced by operations
547 This also help to group particular beamforming capabilities and bind it with arrays";
549 leaf capabilities-group {
552 "Capabilities group identification number. Number which is used just for reference in RPC
555 uses per-band-config-element;
558 container ue-specific-beamforming {
560 "Indicates that the O-RU supports optional Section Type '6' Fields
561 (used for sending channel information for a specific UE)";
564 "Information related to support by the O-RU of Section Type 6 for
565 signalling UE-specific channel information to the O-RU";
567 leaf max-number-of-ues {
571 "Indicates the maximum number of UE -specific channel information
572 data sets supported by the O-RU.
574 Leaf is deprecated as it only enabled a maximum of 255 UEs to be supported,
575 compared with ST5 and ST6 which supports a 15 bit value.
577 NETCONF client instead uses max-number-ues-15bit schema node";
579 leaf max-number-of-ues-15bit {
584 "Indicates the maximum number of UE -specific channel information
585 data sets supported by the O-RU,
586 It is restricted to 15 bits value because of the 15bits ueId field in ST5 and ST6";
589 leaf-list channel-information-compression-method-supported {
590 if-feature "feat:CHANNEL-INFORMATION-COMPRESSION";
591 type cf:ci-compression-method-def;
593 "list of channel information compression methods supported by the O-RU";
596 leaf dynamic-channel-information-compression-supported {
597 if-feature "feat:CHANNEL-INFORMATION-COMPRESSION";
600 "Informs if dynamic channel information compression supported by the O-RU,
601 if its value is true, the compression method and IQ bit width can be dynamic in ciCompHdr;
602 if its value is false, only static configuration compression configuration is supported, and ciCompHdr
603 shall be set to a fixed value corresponding to the static configured compression method and IQ bit width.";
606 container operational-properties {
607 if-feature MODIFY-BF-CONFIG;
609 description "properties for dynamic beam weight/attribute support";
611 uses operational-properties;
615 grouping beam-tilt-configuration {
616 description "grouping for beam-tilt feature";
617 list predefined-beam-tilt-offset {
618 if-feature BEAM-TILT;
619 key capabilities-group;
620 description "Configuration of the predefined-beam-tilt-offset per capabilities-group";
621 leaf capabilities-group {
623 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
624 require-instance false;
628 "Capabilities group identification number for which
629 the predefined-beam-tilt-offset relates to";
631 leaf elevation-tilt-offset-angle {
638 "Value 0 represents the default service area of the predefined-beams
639 in elevation domain, i.e. no tilt offset.
641 Values smaller than 0 represents an up-shift of the default service area
642 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
643 values larger than 0 represent a down-shift of the default service area
644 away from the zenith (i.e., corresponding to an increase in zenith angle).
646 If the value is greater than the maximum supported angle, then the maximum
647 angle is used for configuration.
648 If the value is less than the minimum supported angle, then the minimum
649 angle is used for configuration.
650 The actual angle used is (angle DIV granularity) * granularity.
652 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
653 its offset angle to its default value.";
655 leaf azimuth-tilt-offset-angle {
662 "Value 0 represents the default service area of the predefined-beams
663 in azimuth domain, i.e., no tile offset.
665 Azimuth tilt offset angle, represents counter-clockwise rotation around
666 z-axis. I.e., assuming view from the UE (observation of the O-RU
667 from the front), value larger than 0 and smaller than 0
668 respectively represent right-shifted and left-shifted of the default
669 service area in azimuth domain.
671 If the value is greater than the maximum supported angle, then the maximum
672 angle is used for configuration.
673 If the value is less than the minimum supported angle, then the minimum
674 angle is used for configuration.
675 The actual angle used is (angle DIV granularity) * granularity.
677 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
678 its offset angle to its default value.";
683 grouping beam-tilt-state {
685 "Grouping for beam tilt state";
687 list predefined-beam-tilt-offset-information {
688 key capabilities-group;
691 "Information which exposes predefined-beam-tilt-offset related O-RU capabilities.";
692 leaf capabilities-group {
694 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
698 "Capabilities group identification number for which
699 the predefined-beam-tilt-offset-information relates to";
701 leaf elevation-tilt-offset-granularity {
708 "Indication of the supported granularity for the
709 predefined-beam-tilt-offset in elevation domain.
711 Value 0 represents that the O-RU doesn't support
712 the predefined-beam-tilt-offset in elevation domain.";
714 leaf azimuth-tilt-offset-granularity {
721 "Indication of the supported granularity for the
722 predefined-beam-tilt-offset in azimuth domain.
724 Value '0' represents that the O-RU doesn't support
725 the predefined-beam-tilt-offset in azimuth domain.";
727 leaf minimum-supported-elevation-tilt-offset {
734 "The minimum value which can be configured for
735 'elevation-tilt-offset-angle'.";
737 leaf maximum-supported-elevation-tilt-offset {
744 "The maximum value which can be configured for
745 'elevation-tilt-offset-angle'.";
747 leaf minimum-supported-azimuth-tilt-offset {
754 "The minimum value which can be configured for
755 'azimuth-tilt-offset-angle'.";
757 leaf maximum-supported-azimuth-tilt-offset {
764 "The maximum value which can be configured for
765 'azimuth-tilt-offset-angle'.";
767 leaf run-time-tilt-offset-supported {
771 "If 'run-time-tilt-offset-supported' is FALSE, changing the values in
772 'predefined-beam-tilt-offset' for a specific band shall be allowed only
773 if all 'tx-array-carriers' and 'rx-array-carriers' corresponding
774 to the band are INACTIVE.";
780 grouping beam-tilt-report {
782 "Grouping for beam tilt report";
784 list predefined-beam-tilt-state {
785 key capabilities-group;
788 "Information which exposes state of predefined-beam-tilt-offset.";
789 leaf capabilities-group {
791 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
795 "Capabilities group identification number for which
796 the predefined-beam-tilt-state relates to";
798 leaf elevation-tilt-offset-angle {
805 "Value 'zero' represents the default service area of the
806 predefined-beams in elevation domain.
808 Values smaller than 0 represents an up-shift of the default service area
809 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
810 values larger than 0 represent a down-shift of the default service area
811 away from the zenith (i.e., corresponding to an increase in zenith angle).";
813 leaf azimuth-tilt-offset-angle {
820 "Value 'zero' represents the default service area of the
821 predefined-beams in azimuth domain.
823 Azimuth tilt offset angle, represents counter-clockwise rotation around
824 z-axis. I.e., assuming view from the UE (observation of the O-RU from
825 the front), value larger than 'zero' and smaller than 'zero'
826 respectively represent right-shifted and left-shifted of the default
827 service area in azimuth domain.";
833 container beamforming-config {
836 "A set of configuration data for the O-RU's beam forming functionality";
838 uses beamforming-config;
839 uses beamforming-supported-type;
840 container beam-tilt {
841 if-feature BEAM-TILT;
842 description "container for pre-defined beam tilt feature";
843 uses beam-tilt-state;
844 uses beam-tilt-report;
849 rpc activate-beamforming-config {
850 if-feature MODIFY-BF-CONFIG;
852 "RPC to activate beamforming config information by indicating the file
853 stored in the folder o-ran/beamforming in advance";
855 leaf beamforming-config-file {
859 "file name stored in o-ran/beamforming folder is indicated";
868 description "O-RU has accepted the beamforming weight/attribute file";
872 "O-RU has rejected the beamforming weight/attribute file. The O-RU
873 should then use the default beamforming file.";
877 description "Status of activation of beamforming config information";
880 when "../status='REJECTED'";
883 "Detailed error Message when the status is rejected, e.g.,
884 because new beam forming file is attempted to be applied to a
885 carrier which is still active, or the beam-id does not exist.";
890 rpc activate-beamforming-config-by-capability-group {
891 if-feature MODIFY-BF-CONFIG;
893 "RPC to activate beamforming config information by indicating the file
894 stored in the folder o-ran/beamforming in advance";
896 leaf beamforming-config-file {
900 "file name stored in o-ran/beamforming folder is indicated";
909 description "O-RU has accepted the beamforming weight/attribute file";
913 "O-RU has rejected the beamforming weight/attribute file. The O-RU
914 should then use the default beamforming file.";
918 description "Status of activation of beamforming config information";
921 when "../status='REJECTED'";
924 "Detailed error Message when the status is rejected, e.g.,
925 because new beam forming file is attempted to be applied to a
926 carrier which is still active, or the beam-id does not exist.";
932 rpc modify-predefined-beam-tilt-offset {
933 if-feature BEAM-TILT;
935 "RPC to trigger the modification of the predefined beam tilt offset";
937 uses beam-tilt-configuration;
943 description "O-RU has accepted the predefind beamtilt offset configuration";
947 "O-RU has rejected the predefind beamtilt offset configuration.";
951 description "Status of acceptance of pre-defined beamtilt offset configuration";
954 when "../status='REJECTED'";
957 "Detailed error message when the pre-defined beam tilt configuration
958 is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the
959 NETCONF client is attempting to modify the beam tilt on a band where
960 one or more array-carriers are still ACTIVE.";
966 //notification statement
967 notification beamforming-information-update {
970 "this notification indicates that the beamforming properties are updated for particular band";
973 notification capability-group-beamforming-information-update {
976 "this notification indicates that the beamforming properties are updated for particular band
977 or capability group";
980 notification predefined-beam-tilt-offset-complete {
981 if-feature BEAM-TILT;
982 uses beam-tilt-report;
984 "this notification indicates that the re-generation of the predefined