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 2020-08-10;
19 organization "O-RAN Alliance";
25 "This module defines the beamforming capabilitites of an O-RU.
26 Only O-RUs that support beamforming shall support this module.
28 Copyright 2020 the O-RAN Alliance.
30 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
31 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
34 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
35 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
36 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
37 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
38 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
39 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
40 POSSIBILITY OF SUCH DAMAGE.
42 Redistribution and use in source and binary forms, with or without
43 modification, are permitted provided that the following conditions are met:
45 * Redistributions of source code must retain the above copyright notice,
46 this list of conditions and the above disclaimer.
47 * Redistributions in binary form must reproduce the above copyright notice,
48 this list of conditions and the above disclaimer in the documentation
49 and/or other materials provided with the distribution.
50 * Neither the Members of the O-RAN Alliance nor the names of its
51 contributors may be used to endorse or promote products derived from
52 this software without specific prior written permission.";
54 revision "2020-04-17" {
58 1) corrected error where typedef refers to deprecated beam-id by
59 introducing new typedef and deprecating leafs defining coarse/fine
60 relationships that refer to beam-id and replacing with new ones based
61 on capability grouping";
63 reference "ORAN-WG4.M.0-v02.00";
66 revision "2019-07-03" {
70 1) re-designed/switched from per band to per capabilities-group for
72 2) added in new beam tilt feature
73 3) adding possibilities to provide more compression types for beamforming
74 4) Adding possibility to configure beamforming per capabilities group
75 5) corrected xPATH boolean check from TRUE to true";
77 reference "ORAN-WG4.M.0-v02.00";
80 revision "2019-02-04" {
84 1) imported model from xRAN
85 2) changed namespace and reference from xran to o-ran";
87 reference "ORAN-WG4.M.0-v01.00";
91 feature MODIFY-BF-CONFIG {
93 "This feature indicates that the O-RU supports an optional feature to
94 modify beamforming configuration information";
99 "This feature indicates that the O-RU supports an optional feature to
100 allows to shift beam characteristic of all predefined-beams in elevation
101 and/or azimuth direction (i.e. changing the service area or sector
102 coverage) while preserving the beam adjacency among the beams within
106 typedef beam-reference {
108 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";
111 "This type is used by data models that need to reference a beam.";
114 typedef beam-capabilities-reference {
116 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";
119 "This type is used by data models that need to reference a beam based on capability group.";
122 grouping beamforming-parameters {
123 leaf max-number-of-beam-ids {
127 "Maximum number of supported Beam ID assigned to domain beamforming control";
130 leaf initial-beam-id {
134 "First Beam ID that can be used for addressing of domain beams";
137 description "Group of common beamforming parameters";
140 grouping granularity-parameters {
141 leaf frequency-granularity {
145 "Frequency granularity: per carrier component";
150 "Frequency granularity: per band";
154 description "Supported time granularity of time-domain beamforming.";
157 leaf time-granularity {
161 "Time granularity: per slot";
166 "Time granularity: per symbol";
170 description "Supported time granularity of time-domain beamforming.";
175 grouping array-lists {
177 "Grouping for array lists";
181 path "/up:user-plane-configuration/up:tx-arrays/up:name";
183 description "tx arrays belonging to this band number";
187 path "/up:user-plane-configuration/up:rx-arrays/up:name";
189 description "rx arrays belonging to this band number";
193 grouping static-properties {
195 "Grouping for static beamforming properties";
197 leaf rt-bf-weights-update-support {
200 "The parameter informs if O-RU supports real time beamforming weights update through C-Plane messaging";
203 choice beamforming-type {
205 container frequency-domain-beams {
206 when "../rt-bf-weights-update-support = 'true'";
207 uses beamforming-parameters;
208 uses cf:compression-details;
210 list additional-compression-method-supported {
211 uses cf:compression-details;
214 "List of additional supported compression methods by O-RU";
219 description "Set of parameters valid for O-RU, that supports beamforming in frequency domain.";
223 container time-domain-beams {
224 when "../rt-bf-weights-update-support = 'true'";
225 uses beamforming-parameters;
226 uses granularity-parameters;
227 uses cf:compression-details;
229 list additional-compression-method-supported {
230 uses cf:compression-details;
233 "List of additional supported compression methods by O-RU";
238 description "Set of parameters valid for O-RU, that supports beamforming in time domain.";
242 container hybrid-beams {
243 when "../rt-bf-weights-update-support = 'true'";
244 uses beamforming-parameters;
245 uses granularity-parameters;
246 uses cf:compression-details;
248 list additional-compression-method-supported {
249 uses cf:compression-details;
252 "List of additional supported compression methods by O-RU";
257 description "Set of parameters valid for O-RU, that supports hybrid beamforming - in both time and frequency domain.";
260 "This value indicates beamforming type supported by O-RU";
263 leaf number-of-beams {
266 "This value indicates the max number of beam patterns O-RU can generate
267 and apply to the signal of each O-RU port (both DL and UL).
268 This value is equivalent to the maximum number of used beam IDs.";
272 grouping beamforming-property {
274 "Grouping for beamforming property";
279 description "the beam-id corresponds to a coarse beam";
282 description "the beam-id corresponds to a fine beam";
286 "This value indicates the beam resolution.";
292 "Beams with same beamGroupsID can be transmitted simultaneously.";
295 leaf-list coarse-fine-beam-relation {
299 "List of related coarse/fine beam.";
302 leaf-list neighbour-beams {
306 "A list of neighbor beams which might restrict co-scheduling due
310 leaf-list coarse-fine-beam-capability-based-relation {
311 type beam-capabilities-reference;
313 "List of related coarse/fine beam.";
316 leaf-list neighbour-beams-capability-based {
317 type beam-capabilities-reference;
319 "A list of neighbor beams which might restrict co-scheduling due
324 grouping beamforming-properties-element {
326 "Grouping for beamforming-properties element";
331 "This value indicates the beam ID whose beamforming properties are
332 described in the container.";
335 container beamforming-property {
337 "Structure containing single set of beamforming properties.";
339 uses beamforming-property;
345 "Band information for the beamforming
346 related to the band number from module capabilities";
350 path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
353 "band information for the beamforming information
354 related to the band number of module capabilities";
360 "Capabilities group grouping";
362 leaf capabilities-group {
364 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
368 "Capabilities group identification number to which it refers.";
373 grouping per-band-config-element {
375 "Grouping for per band config element";
380 container static-properties {
382 "the static beamforming related information";
384 uses static-properties;
387 container beam-information {
389 "Beam information which exposes beamforming related O-RU capabilities.";
390 leaf number-of-beamforming-properties {
393 "This parameter indicates the number of beamFormingProperties entries.";
396 list beamforming-properties {
399 "Array for the beamforming properties at O-RU.
400 These parameters can be used by the beamforming control by the NETCONF client.
401 'numberOfBeamformingProperties' indicaets the size of the array.";
403 uses beamforming-properties-element;
408 grouping operational-properties {
410 "Grouping for operational properties";
412 leaf number-of-writeable-beamforming-files {
418 "This leaf indicates the maximum number of writeable beamforming files
419 containing beamweights and/or attributes that the O-RU can store, taking
420 into account the maximum number of beam-IDs as defined by 3GPP
424 leaf update-bf-non-delete {
428 "When set to TRUE, indicates that an O-RU supports the capability
429 to apply the modified beamforming weight information by using rpc
430 activate-beamforming-weight without deletion of tx-array-carriers and
431 rx-array-carriers in advance, i.e., to a deactivated carrier";
434 leaf persistent-bf-files {
438 "When set to TRUE, indicates that the O-RU supports the capability
439 to store the modified beamforming weight information file in the
440 reset persistent memory";
444 grouping beamforming-supported-type {
446 "Grouping for type of beamforming supported";
448 leaf beamforming-trough-attributes-supported {
452 "Informs if beamforming can be controlled providing attributes to O-RU
453 (like angles, beamwidth).";
456 leaf beamforming-trough-ue-channel-info-supported {
460 "Informs if beamforming can be controlled by UE information.";
464 grouping beamforming-config {
466 "Grouping for beamforming configuration";
468 list per-band-config {
472 description "beamforming information per band";
473 uses per-band-config-element;
476 list capabilities-groups {
477 key capabilities-group;
479 "Capabilities groups identification number assigned to be referenced by operations
481 This also help to group particular beamforming capabilities and bind it with arrays";
483 leaf capabilities-group {
486 "Capabilities group identification number. Number which is used just for reference in RPC
489 uses per-band-config-element;
492 container ue-specific-beamforming {
494 "Indicates that the O-RU supports optional Section Type '6' Fields
495 (used for sending channel information for a specific UE)";
498 "Information related to supput by the O-RU of Section Type 6 for
499 signalling UE-specific channel information to the O-RU";
500 leaf max-number-of-ues {
503 "Indicates tha maximum number of UE -specific channel information
504 data sets supported by the O-RU";
507 container operational-properties {
508 if-feature MODIFY-BF-CONFIG;
510 description "properties for dynamic beam weight/attribute support";
512 uses operational-properties;
516 grouping beam-tilt-configuration {
517 description "grouping for beam-tilt feature";
518 list predefined-beam-tilt-offset {
519 if-feature BEAM-TILT;
520 key capabilities-group;
521 description "Configuration of the predefined-beam-tilt-offset per capabilities-group";
522 leaf capabilities-group {
524 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
525 require-instance false;
529 "Capabilities group identification number for which
530 the predefined-beam-tilt-offset relates to";
532 leaf elevation-tilt-offset-angle {
539 "Value 0 represents the default service area of the predefined-beams
540 in elevation domain, i.e. no tilt offset.
542 Values smaller than 0 represents an up-shift of the default service area
543 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
544 values larger than 0 represent a down-shift of the default service area
545 away from the zenith (i.e., corresponding to an increase in zenith angle).
547 If the value is greater than the maximum supported angle, then the maximum
548 angle is used for configuration.
549 If the value is less than the minimum supported angle, then the minimum
550 angle is used for configuration.
551 The actual angle used is (angle DIV granularity) * granularity.
553 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
554 its offset angle to its default value.";
556 leaf azimuth-tilt-offset-angle {
563 "Value 0 represents the default service area of the predefined-beams
564 in azimuth domain, i.e., no tile offset.
566 Azimuth tilt offset angle, represents counter-clockwise rotation around
567 z-axis. I.e., assuming view from the UE (observation of the O-RU
568 from the front), value larger than 0 and smaller than 0
569 respectively represent right-shifted and left-shifted of the default
570 service area in azimuth domain.
572 If the value is greater than the maximum supported angle, then the maximum
573 angle is used for configuration.
574 If the value is less than the minimum supported angle, then the minimum
575 angle is used for configuration.
576 The actual angle used is (angle DIV granularity) * granularity.
578 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
579 its offset angle to its default value.";
584 grouping beam-tilt-state {
586 "Grouping for beam tilt state";
588 list predefined-beam-tilt-offset-information {
589 key capabilities-group;
592 "Information which exposes predefined-beam-tilt-offset related O-RU capabilities.";
593 leaf capabilities-group {
595 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
599 "Capabilities group identification number for which
600 the predefined-beam-tilt-offset-information relates to";
602 leaf elevation-tilt-offset-granularity {
609 "Indication of the supported granularity for the
610 predefined-beam-tilt-offset in elevation domain.
612 Value 0 represents that the O-RU doesn't support
613 the predefined-beam-tilt-offset in elevation domain.";
615 leaf azimuth-tilt-offset-granularity {
622 "Indication of the supported granularity for the
623 predefined-beam-tilt-offset in azimuth domain.
625 Value '0' represents that the O-RU doesn't support
626 the predefined-beam-tilt-offset in azimuth domain.";
628 leaf minimum-supported-elevation-tilt-offset {
635 "The minimum value which can be configured for
636 'elevation-tilt-offset-angle'.";
638 leaf maximum-supported-elevation-tilt-offset {
645 "The maximum value which can be configured for
646 'elevation-tilt-offset-angle'.";
648 leaf minimum-supported-azimuth-tilt-offset {
655 "The minimum value which can be configured for
656 'azimuth-tilt-offset-angle'.";
658 leaf maximum-supported-azimuth-tilt-offset {
665 "The maximum value which can be configured for
666 'azimuth-tilt-offset-angle'.";
668 leaf run-time-tilt-offset-supported {
672 "If 'run-time-tilt-offset-supported' is FALSE, changing the values in
673 'predefined-beam-tilt-offset' for a specific band shall be allowed only
674 if all 'tx-array-carriers' and 'rx-array-carriers' corresponding
675 to the band are INACTIVE.";
681 grouping beam-tilt-report {
683 "Grouping for beam tilt report";
685 list predefined-beam-tilt-state {
686 key capabilities-group;
689 "Information which exposes state of predefined-beam-tilt-offset.";
690 leaf capabilities-group {
692 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
696 "Capabilities group identification number for which
697 the predefined-beam-tilt-state relates to";
699 leaf elevation-tilt-offset-angle {
706 "Value 'zero' represents the default service area of the
707 predefined-beams in elevation domain.
709 Values smaller than 0 represents an up-shift of the default service area
710 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
711 values larger than 0 represent a down-shift of the default service area
712 away from the zenith (i.e., corresponding to an increase in zenith angle).";
714 leaf azimuth-tilt-offset-angle {
721 "Value 'zero' represents the default service area of the
722 predefined-beams in azimuth domain.
724 Azimuth tilt offset angle, represents counter-clockwise rotation around
725 z-axis. I.e., assuming view from the UE (observation of the O-RU from
726 the front), value larger than 'zero' and smaller than 'zero'
727 respectively represent right-shifted and left-shifted of the default
728 service area in azimuth domain.";
734 container beamforming-config {
737 "A set of configuration data for the O-RU's beam forming functionality";
739 uses beamforming-config;
740 uses beamforming-supported-type;
741 container beam-tilt {
742 if-feature BEAM-TILT;
743 description "container for pre-defined beam tilt feature";
744 uses beam-tilt-state;
745 uses beam-tilt-report;
750 rpc activate-beamforming-config {
751 if-feature MODIFY-BF-CONFIG;
753 "rpc to activate beamforming config information by indicating the file
754 stored in the folder O-RAN/beam-weights in advance";
756 leaf beamforming-config-file {
760 "file name stored in O-RAN/beamforming/ folder is indicated";
769 description "O-RU has accepted the beamforming weight/attribute file";
773 "O-RU has rejected the beamforming weight/attribute file. The O-RU
774 should then use the default beamforming file.";
778 description "Status of activation of beamforming config information";
781 when "../status='REJECTED'";
784 "Detailed error Message when the status is rejected, e.g.,
785 because new beam forming file is attempted to be applied to a
786 carrier which is still active, or the beam-id does not exist.";
791 rpc activate-beamforming-config-by-capability-group {
792 if-feature MODIFY-BF-CONFIG;
794 "rpc to activate beamforming config information by indicating the file
795 stored in the folder O-RAN/beam-weights in advance";
797 leaf beamforming-config-file {
801 "file name stored in O-RAN/beamforming/ folder is indicated";
810 description "O-RU has accepted the beamforming weight/attribute file";
814 "O-RU has rejected the beamforming weight/attribute file. The O-RU
815 should then use the default beamforming file.";
819 description "Status of activation of beamforming config information";
822 when "../status='REJECTED'";
825 "Detailed error Message when the status is rejected, e.g.,
826 because new beam forming file is attempted to be applied to a
827 carrier which is still active, or the beam-id does not exist.";
833 rpc modify-predefined-beam-tilt-offset {
834 if-feature BEAM-TILT;
836 "rpc to trigger the modification of the predefined beam tilt offset";
838 uses beam-tilt-configuration;
844 description "O-RU has accepted the predefind beamtilt offset configuration";
848 "O-RU has rejected the predefind beamtilt offset configuration.";
852 description "Status of acceptance of pre-defined beamtilt offset configuration";
855 when "../status='REJECTED'";
858 "Detailed error message when the pre-defined beam tilt configuration
859 is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the
860 NETCONF client is attempting to modify the beam tilt on a band where
861 one or more array-carriers are still ACTIVE.";
867 //notification statement
868 notification beamforming-information-update {
871 "this notification indicates that the beamforming properties are updated for particular band";
874 notification capability-group-beamforming-information-update {
877 "this notification indicates that the beamforming properties are updated for particular band
878 or capability group";
881 notification predefined-beam-tilt-offset-complete {
882 if-feature BEAM-TILT;
883 uses beam-tilt-report;
885 "this notification indicates that the re-generation of the predefined