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 {
18 organization "O-RAN Alliance";
24 "This module defines the beamforming capabilitites of an O-RU.
25 Only O-RUs that support beamforming shall support this module.
27 Copyright 2019 the O-RAN Alliance.
29 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
30 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
33 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
34 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
35 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
36 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
37 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
39 POSSIBILITY OF SUCH DAMAGE.
41 Redistribution and use in source and binary forms, with or without
42 modification, are permitted provided that the following conditions are met:
44 * Redistributions of source code must retain the above copyright notice,
45 this list of conditions and the above disclaimer.
46 * Redistributions in binary form must reproduce the above copyright notice,
47 this list of conditions and the above disclaimer in the documentation
48 and/or other materials provided with the distribution.
49 * Neither the Members of the O-RAN Alliance nor the names of its
50 contributors may be used to endorse or promote products derived from
51 this software without specific prior written permission.";
53 revision "2019-07-03" {
57 1) re-designed/switched from per band to per capabilities-group for
59 2) added in new beam tilt feature
60 3) adding possibilities to provide more compression types for beamforming
61 4) Adding possibility to configure beamforming per capabilities group
62 5) corrected xPATH boolean check from TRUE to true";
64 reference "ORAN-WG4.M.0-v02.00";
67 revision "2019-02-04" {
71 1) imported model from xRAN
72 2) changed namespace and reference from xran to o-ran";
74 reference "ORAN-WG4.M.0-v01.00";
78 feature MODIFY-BF-CONFIG {
80 "This feature indicates that the O-RU supports an optional feature to
81 modify beamforming configuration information";
86 "This feature indicates that the O-RU supports an optional feature to
87 allows to shift beam characteristic of all predefined-beams in elevation
88 and/or azimuth direction (i.e. changing the service area or sector
89 coverage) while preserving the beam adjacency among the beams within
93 typedef beam-reference {
95 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";
98 "This type is used by data models that need to reference a beam.";
102 grouping beamforming-parameters {
103 leaf max-number-of-beam-ids {
107 "Maximum number of supported Beam ID assigned to domain beamforming control";
110 leaf initial-beam-id {
114 "First Beam ID that can be used for addressing of domain beams";
117 description "Group of common beamforming parameters";
120 grouping granularity-parameters {
121 leaf frequency-granularity {
125 "Frequency granularity: per carrier component";
130 "Frequency granularity: per band";
134 description "Supported time granularity of time-domain beamforming.";
137 leaf time-granularity {
141 "Time granularity: per slot";
146 "Time granularity: per symbol";
150 description "Supported time granularity of time-domain beamforming.";
155 grouping array-lists {
157 "Grouping for array lists";
161 path "/up:user-plane-configuration/up:tx-arrays/up:name";
163 description "tx arrays belonging to this band number";
167 path "/up:user-plane-configuration/up:rx-arrays/up:name";
169 description "rx arrays belonging to this band number";
173 grouping static-properties {
175 "Grouping for static beamforming properties";
177 leaf rt-bf-weights-update-support {
180 "The parameter informs if O-RU supports real time beamforming weights update through C-Plane messaging";
183 choice beamforming-type {
185 container frequency-domain-beams {
186 when "../rt-bf-weights-update-support = 'true'";
187 uses beamforming-parameters;
188 uses cf:compression-details;
190 list additional-compression-method-supported {
191 key "iq-bitwidth compression-type";
192 uses cf:compression-details;
195 "List of additional supported compression methods by O-RU";
200 description "Set of parameters valid for O-RU, that supports beamforming in frequency domain.";
204 container time-domain-beams {
205 when "../rt-bf-weights-update-support = 'true'";
206 uses beamforming-parameters;
207 uses granularity-parameters;
208 uses cf:compression-details;
210 list additional-compression-method-supported {
211 key "iq-bitwidth compression-type";
212 uses cf:compression-details;
215 "List of additional supported compression methods by O-RU";
220 description "Set of parameters valid for O-RU, that supports beamforming in time domain.";
224 container hybrid-beams {
225 when "../rt-bf-weights-update-support = 'true'";
226 uses beamforming-parameters;
227 uses granularity-parameters;
228 uses cf:compression-details;
230 list additional-compression-method-supported {
231 key "iq-bitwidth compression-type";
232 uses cf:compression-details;
235 "List of additional supported compression methods by O-RU";
240 description "Set of parameters valid for O-RU, that supports hybrid beamforming - in both time and frequency domain.";
243 "This value indicates beamforming type supported by O-RU";
246 leaf number-of-beams {
249 "This value indicates the max number of beam patterns O-RU can generate
250 and apply to the signal of each O-RU port (both DL and UL).
251 This value is equivalent to the maximum number of used beam IDs.";
255 grouping beamforming-property {
257 "Grouping for beamforming property";
262 description "the beam-id corresponds to a coarse beam";
265 description "the beam-id corresponds to a fine beam";
269 "This value indicates the beam resolution.";
275 "Beams with same beamGroupsID can be transmitted simultaneously.";
278 leaf-list coarse-fine-beam-relation {
281 "List of related coarse/fine beam.";
284 leaf-list neighbour-beams {
287 "A list of neighbor beams which might restrict co-scheduling due
292 grouping beamforming-properties-element {
294 "Grouping for beamforming-properties element";
299 "This value indicates the beam ID whose beamforming properties are
300 described in the container.";
303 container beamforming-property {
305 "Structure containing single set of beamforming properties.";
307 uses beamforming-property;
313 "Band information for the beamforming
314 related to the band number from module capabilities";
318 path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
321 "band information for the beamforming information
322 related to the band number of module capabilities";
328 "Capabilities group grouping";
330 leaf capabilities-group {
332 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
336 "Capabilities group identification number to which it refers.";
341 grouping per-band-config-element {
343 "Grouping for per band config element";
348 container static-properties {
350 "the static beamforming related information";
352 uses static-properties;
355 container beam-information {
357 "Beam information which exposes beamforming related O-RU capabilities.";
358 leaf number-of-beamforming-properties {
361 "This parameter indicates the number of beamFormingProperties entries.";
364 list beamforming-properties {
367 "Array for the beamforming properties at O-RU.
368 These parameters can be used by the beamforming control by the NETCONF client.
369 'numberOfBeamformingProperties' indicaets the size of the array.";
371 uses beamforming-properties-element;
376 grouping operational-properties {
378 "Grouping for operational properties";
380 leaf number-of-writeable-beamforming-files {
386 "This leaf indicates the maximum number of writeable beamforming files
387 containing beamweights and/or attributes that the O-RU can store, taking
388 into account the maximum number of beam-IDs as defined by 3GPP
392 leaf update-bf-non-delete {
396 "When set to TRUE, indicates that an O-RU supports the capability
397 to apply the modified beamforming weight information by using rpc
398 activate-beamforming-weight without deletion of tx-array-carriers and
399 rx-array-carriers in advance, i.e., to a deactivated carrier";
402 leaf persistent-bf-files {
406 "When set to TRUE, indicates that the O-RU supports the capability
407 to store the modified beamforming weight information file in the
408 reset persistent memory";
412 grouping beamforming-supported-type {
414 "Grouping for type of beamforming supported";
416 leaf beamforming-trough-attributes-supported {
420 "Informs if beamforming can be controlled providing attributes to O-RU
421 (like angles, beamwidth).";
424 leaf beamforming-trough-ue-channel-info-supported {
428 "Informs if beamforming can be controlled by UE information.";
432 grouping beamforming-config {
434 "Grouping for beamforming configuration";
436 list per-band-config {
439 // [ast] libyang does not accept referencing deprecated leafs from non-deprecated elements
440 // status deprecated;
441 description "beamforming information per band";
442 uses per-band-config-element;
445 list capabilities-groups {
446 key capabilities-group;
448 "Capabilities groups identification number assigned to be referenced by operations
450 This also help to group particular beamforming capabilities and bind it with arrays";
452 leaf capabilities-group {
455 "Capabilities group identification number. Number which is used just for reference in RPC
458 uses per-band-config-element;
461 container ue-specific-beamforming {
463 "Indicates that the O-RU supports optional Section Type '6' Fields
464 (used for sending channel information for a specific UE)";
467 "Information related to supput by the O-RU of Section Type 6 for
468 signalling UE-specific channel information to the O-RU";
469 leaf max-number-of-ues {
472 "Indicates tha maximum number of UE -specific channel information
473 data sets supported by the O-RU";
476 container operational-properties {
477 if-feature MODIFY-BF-CONFIG;
479 description "properties for dynamic beam weight/attribute support";
481 uses operational-properties;
485 grouping beam-tilt-configuration {
486 description "grouping for beam-tilt feature";
487 list predefined-beam-tilt-offset {
488 if-feature BEAM-TILT;
489 key capabilities-group;
490 description "Configuration of the predefined-beam-tilt-offset per capabilities-group";
491 leaf capabilities-group {
493 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
494 require-instance false;
498 "Capabilities group identification number for which
499 the predefined-beam-tilt-offset relates to";
501 leaf elevation-tilt-offset-angle {
508 "Value 0 represents the default service area of the predefined-beams
509 in elevation domain, i.e. no tilt offset.
511 Values smaller than 0 represents an up-shift of the default service area
512 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
513 values larger than 0 represent a down-shift of the default service area
514 away from the zenith (i.e., corresponding to an increase in zenith angle).
516 If the value is greater than the maximum supported angle, then the maximum
517 angle is used for configuration.
518 If the value is less than the minimum supported angle, then the minimum
519 angle is used for configuration.
520 The actual angle used is (angle DIV granularity) * granularity.
522 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
523 its offset angle to its default value.";
525 leaf azimuth-tilt-offset-angle {
532 "Value 0 represents the default service area of the predefined-beams
533 in azimuth domain, i.e., no tile offset.
535 Azimuth tilt offset angle, represents counter-clockwise rotation around
536 z-axis. I.e., assuming view from the UE (observation of the O-RU
537 from the front), value larger than 0 and smaller than 0
538 respectively represent right-shifted and left-shifted of the default
539 service area in azimuth domain.
541 If the value is greater than the maximum supported angle, then the maximum
542 angle is used for configuration.
543 If the value is less than the minimum supported angle, then the minimum
544 angle is used for configuration.
545 The actual angle used is (angle DIV granularity) * granularity.
547 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
548 its offset angle to its default value.";
553 grouping beam-tilt-state {
555 "Grouping for beam tilt state";
557 list predefined-beam-tilt-offset-information {
558 key capabilities-group;
561 "Information which exposes predefined-beam-tilt-offset related O-RU capabilities.";
562 leaf capabilities-group {
564 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
568 "Capabilities group identification number for which
569 the predefined-beam-tilt-offset-information relates to";
571 leaf elevation-tilt-offset-granularity {
578 "Indication of the supported granularity for the
579 predefined-beam-tilt-offset in elevation domain.
581 Value 0 represents that the O-RU doesn't support
582 the predefined-beam-tilt-offset in elevation domain.";
584 leaf azimuth-tilt-offset-granularity {
591 "Indication of the supported granularity for the
592 predefined-beam-tilt-offset in azimuth domain.
594 Value '0' represents that the O-RU doesn't support
595 the predefined-beam-tilt-offset in azimuth domain.";
597 leaf minimum-supported-elevation-tilt-offset {
604 "The minimum value which can be configured for
605 'elevation-tilt-offset-angle'.";
607 leaf maximum-supported-elevation-tilt-offset {
614 "The maximum value which can be configured for
615 'elevation-tilt-offset-angle'.";
617 leaf minimum-supported-azimuth-tilt-offset {
624 "The minimum value which can be configured for
625 'azimuth-tilt-offset-angle'.";
627 leaf maximum-supported-azimuth-tilt-offset {
634 "The maximum value which can be configured for
635 'azimuth-tilt-offset-angle'.";
637 leaf run-time-tilt-offset-supported {
641 "If 'run-time-tilt-offset-supported' is FALSE, changing the values in
642 'predefined-beam-tilt-offset' for a specific band shall be allowed only
643 if all 'tx-array-carriers' and 'rx-array-carriers' corresponding
644 to the band are INACTIVE.";
650 grouping beam-tilt-report {
652 "Grouping for beam tilt report";
654 list predefined-beam-tilt-state {
655 key capabilities-group;
658 "Information which exposes state of predefined-beam-tilt-offset.";
659 leaf capabilities-group {
661 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
665 "Capabilities group identification number for which
666 the predefined-beam-tilt-state relates to";
668 leaf elevation-tilt-offset-angle {
675 "Value 'zero' represents the default service area of the
676 predefined-beams in elevation domain.
678 Values smaller than 0 represents an up-shift of the default service area
679 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
680 values larger than 0 represent a down-shift of the default service area
681 away from the zenith (i.e., corresponding to an increase in zenith angle).";
683 leaf azimuth-tilt-offset-angle {
690 "Value 'zero' represents the default service area of the
691 predefined-beams in azimuth domain.
693 Azimuth tilt offset angle, represents counter-clockwise rotation around
694 z-axis. I.e., assuming view from the UE (observation of the O-RU from
695 the front), value larger than 'zero' and smaller than 'zero'
696 respectively represent right-shifted and left-shifted of the default
697 service area in azimuth domain.";
703 container beamforming-config {
706 "A set of configuration data for the O-RU's beam forming functionality";
708 uses beamforming-config;
709 uses beamforming-supported-type;
710 container beam-tilt {
711 if-feature BEAM-TILT;
712 description "container for pre-defined beam tilt feature";
713 uses beam-tilt-state;
714 uses beam-tilt-report;
719 rpc activate-beamforming-config {
720 if-feature MODIFY-BF-CONFIG;
722 "rpc to activate beamforming config information by indicating the file
723 stored in the folder O-RAN/beam-weights in advance";
725 leaf beamforming-config-file {
729 "file name stored in O-RAN/beamforming/ folder is indicated";
738 description "O-RU has accepted the beamforming weight/attribute file";
742 "O-RU has rejected the beamforming weight/attribute file. The O-RU
743 should then use the default beamforming file.";
747 description "Status of activation of beamforming config information";
750 when "../status='REJECTED'";
753 "Detailed error Message when the status is rejected, e.g.,
754 because new beam forming file is attempted to be applied to a
755 carrier which is still active, or the beam-id does not exist.";
760 rpc activate-beamforming-config-by-capability-group {
761 if-feature MODIFY-BF-CONFIG;
763 "rpc to activate beamforming config information by indicating the file
764 stored in the folder O-RAN/beam-weights in advance";
766 leaf beamforming-config-file {
770 "file name stored in O-RAN/beamforming/ folder is indicated";
779 description "O-RU has accepted the beamforming weight/attribute file";
783 "O-RU has rejected the beamforming weight/attribute file. The O-RU
784 should then use the default beamforming file.";
788 description "Status of activation of beamforming config information";
791 when "../status='REJECTED'";
794 "Detailed error Message when the status is rejected, e.g.,
795 because new beam forming file is attempted to be applied to a
796 carrier which is still active, or the beam-id does not exist.";
802 rpc modify-predefined-beam-tilt-offset {
803 if-feature BEAM-TILT;
805 "rpc to trigger the modification of the predefined beam tilt offset";
807 uses beam-tilt-configuration;
813 description "O-RU has accepted the predefind beamtilt offset configuration";
817 "O-RU has rejected the predefind beamtilt offset configuration.";
821 description "Status of acceptance of pre-defined beamtilt offset configuration";
824 when "../status='REJECTED'";
827 "Detailed error message when the pre-defined beam tilt configuration
828 is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the
829 NETCONF client is attempting to modify the beam tilt on a band where
830 one or more array-carriers are still ACTIVE.";
836 //notification statement
837 notification beamforming-information-update {
840 "this notification indicates that the beamforming properties are updated for particular band";
843 notification capability-group-beamforming-information-update {
846 "this notification indicates that the beamforming properties are updated for particular band
847 or capability group";
850 notification predefined-beam-tilt-offset-complete {
851 if-feature BEAM-TILT;
852 uses beam-tilt-report;
854 "this notification indicates that the re-generation of the predefined