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 uses cf:compression-details;
194 "List of additional supported compression methods by O-RU";
199 description "Set of parameters valid for O-RU, that supports beamforming in frequency domain.";
203 container time-domain-beams {
204 when "../rt-bf-weights-update-support = 'true'";
205 uses beamforming-parameters;
206 uses granularity-parameters;
207 uses cf:compression-details;
209 list additional-compression-method-supported {
210 uses cf:compression-details;
213 "List of additional supported compression methods by O-RU";
218 description "Set of parameters valid for O-RU, that supports beamforming in time domain.";
222 container hybrid-beams {
223 when "../rt-bf-weights-update-support = 'true'";
224 uses beamforming-parameters;
225 uses granularity-parameters;
226 uses cf:compression-details;
228 list additional-compression-method-supported {
229 uses cf:compression-details;
232 "List of additional supported compression methods by O-RU";
237 description "Set of parameters valid for O-RU, that supports hybrid beamforming - in both time and frequency domain.";
240 "This value indicates beamforming type supported by O-RU";
243 leaf number-of-beams {
246 "This value indicates the max number of beam patterns O-RU can generate
247 and apply to the signal of each O-RU port (both DL and UL).
248 This value is equivalent to the maximum number of used beam IDs.";
252 grouping beamforming-property {
254 "Grouping for beamforming property";
259 description "the beam-id corresponds to a coarse beam";
262 description "the beam-id corresponds to a fine beam";
266 "This value indicates the beam resolution.";
272 "Beams with same beamGroupsID can be transmitted simultaneously.";
275 leaf-list coarse-fine-beam-relation {
278 "List of related coarse/fine beam.";
281 leaf-list neighbour-beams {
284 "A list of neighbor beams which might restrict co-scheduling due
289 grouping beamforming-properties-element {
291 "Grouping for beamforming-properties element";
296 "This value indicates the beam ID whose beamforming properties are
297 described in the container.";
300 container beamforming-property {
302 "Structure containing single set of beamforming properties.";
304 uses beamforming-property;
310 "Band information for the beamforming
311 related to the band number from module capabilities";
315 path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
318 "band information for the beamforming information
319 related to the band number of module capabilities";
325 "Capabilities group grouping";
327 leaf capabilities-group {
329 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
333 "Capabilities group identification number to which it refers.";
338 grouping per-band-config-element {
340 "Grouping for per band config element";
345 container static-properties {
347 "the static beamforming related information";
349 uses static-properties;
352 container beam-information {
354 "Beam information which exposes beamforming related O-RU capabilities.";
355 leaf number-of-beamforming-properties {
358 "This parameter indicates the number of beamFormingProperties entries.";
361 list beamforming-properties {
364 "Array for the beamforming properties at O-RU.
365 These parameters can be used by the beamforming control by the NETCONF client.
366 'numberOfBeamformingProperties' indicaets the size of the array.";
368 uses beamforming-properties-element;
373 grouping operational-properties {
375 "Grouping for operational properties";
377 leaf number-of-writeable-beamforming-files {
383 "This leaf indicates the maximum number of writeable beamforming files
384 containing beamweights and/or attributes that the O-RU can store, taking
385 into account the maximum number of beam-IDs as defined by 3GPP
389 leaf update-bf-non-delete {
393 "When set to TRUE, indicates that an O-RU supports the capability
394 to apply the modified beamforming weight information by using rpc
395 activate-beamforming-weight without deletion of tx-array-carriers and
396 rx-array-carriers in advance, i.e., to a deactivated carrier";
399 leaf persistent-bf-files {
403 "When set to TRUE, indicates that the O-RU supports the capability
404 to store the modified beamforming weight information file in the
405 reset persistent memory";
409 grouping beamforming-supported-type {
411 "Grouping for type of beamforming supported";
413 leaf beamforming-trough-attributes-supported {
417 "Informs if beamforming can be controlled providing attributes to O-RU
418 (like angles, beamwidth).";
421 leaf beamforming-trough-ue-channel-info-supported {
425 "Informs if beamforming can be controlled by UE information.";
429 grouping beamforming-config {
431 "Grouping for beamforming configuration";
433 list per-band-config {
437 description "beamforming information per band";
438 uses per-band-config-element;
441 list capabilities-groups {
442 key capabilities-group;
444 "Capabilities groups identification number assigned to be referenced by operations
446 This also help to group particular beamforming capabilities and bind it with arrays";
448 leaf capabilities-group {
451 "Capabilities group identification number. Number which is used just for reference in RPC
454 uses per-band-config-element;
457 container ue-specific-beamforming {
459 "Indicates that the O-RU supports optional Section Type '6' Fields
460 (used for sending channel information for a specific UE)";
463 "Information related to supput by the O-RU of Section Type 6 for
464 signalling UE-specific channel information to the O-RU";
465 leaf max-number-of-ues {
468 "Indicates tha maximum number of UE -specific channel information
469 data sets supported by the O-RU";
472 container operational-properties {
473 if-feature MODIFY-BF-CONFIG;
475 description "properties for dynamic beam weight/attribute support";
477 uses operational-properties;
481 grouping beam-tilt-configuration {
482 description "grouping for beam-tilt feature";
483 list predefined-beam-tilt-offset {
484 if-feature BEAM-TILT;
485 key capabilities-group;
486 description "Configuration of the predefined-beam-tilt-offset per capabilities-group";
487 leaf capabilities-group {
489 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
490 require-instance false;
494 "Capabilities group identification number for which
495 the predefined-beam-tilt-offset relates to";
497 leaf elevation-tilt-offset-angle {
504 "Value 0 represents the default service area of the predefined-beams
505 in elevation domain, i.e. no tilt offset.
507 Values smaller than 0 represents an up-shift of the default service area
508 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
509 values larger than 0 represent a down-shift of the default service area
510 away from the zenith (i.e., corresponding to an increase in zenith angle).
512 If the value is greater than the maximum supported angle, then the maximum
513 angle is used for configuration.
514 If the value is less than the minimum supported angle, then the minimum
515 angle is used for configuration.
516 The actual angle used is (angle DIV granularity) * granularity.
518 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
519 its offset angle to its default value.";
521 leaf azimuth-tilt-offset-angle {
528 "Value 0 represents the default service area of the predefined-beams
529 in azimuth domain, i.e., no tile offset.
531 Azimuth tilt offset angle, represents counter-clockwise rotation around
532 z-axis. I.e., assuming view from the UE (observation of the O-RU
533 from the front), value larger than 0 and smaller than 0
534 respectively represent right-shifted and left-shifted of the default
535 service area in azimuth domain.
537 If the value is greater than the maximum supported angle, then the maximum
538 angle is used for configuration.
539 If the value is less than the minimum supported angle, then the minimum
540 angle is used for configuration.
541 The actual angle used is (angle DIV granularity) * granularity.
543 Any O-RU which is reset using the o-ran-operations:reset RPC shall reset
544 its offset angle to its default value.";
549 grouping beam-tilt-state {
551 "Grouping for beam tilt state";
553 list predefined-beam-tilt-offset-information {
554 key capabilities-group;
557 "Information which exposes predefined-beam-tilt-offset related O-RU capabilities.";
558 leaf capabilities-group {
560 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
564 "Capabilities group identification number for which
565 the predefined-beam-tilt-offset-information relates to";
567 leaf elevation-tilt-offset-granularity {
574 "Indication of the supported granularity for the
575 predefined-beam-tilt-offset in elevation domain.
577 Value 0 represents that the O-RU doesn't support
578 the predefined-beam-tilt-offset in elevation domain.";
580 leaf azimuth-tilt-offset-granularity {
587 "Indication of the supported granularity for the
588 predefined-beam-tilt-offset in azimuth domain.
590 Value '0' represents that the O-RU doesn't support
591 the predefined-beam-tilt-offset in azimuth domain.";
593 leaf minimum-supported-elevation-tilt-offset {
600 "The minimum value which can be configured for
601 'elevation-tilt-offset-angle'.";
603 leaf maximum-supported-elevation-tilt-offset {
610 "The maximum value which can be configured for
611 'elevation-tilt-offset-angle'.";
613 leaf minimum-supported-azimuth-tilt-offset {
620 "The minimum value which can be configured for
621 'azimuth-tilt-offset-angle'.";
623 leaf maximum-supported-azimuth-tilt-offset {
630 "The maximum value which can be configured for
631 'azimuth-tilt-offset-angle'.";
633 leaf run-time-tilt-offset-supported {
637 "If 'run-time-tilt-offset-supported' is FALSE, changing the values in
638 'predefined-beam-tilt-offset' for a specific band shall be allowed only
639 if all 'tx-array-carriers' and 'rx-array-carriers' corresponding
640 to the band are INACTIVE.";
646 grouping beam-tilt-report {
648 "Grouping for beam tilt report";
650 list predefined-beam-tilt-state {
651 key capabilities-group;
654 "Information which exposes state of predefined-beam-tilt-offset.";
655 leaf capabilities-group {
657 path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group";
661 "Capabilities group identification number for which
662 the predefined-beam-tilt-state relates to";
664 leaf elevation-tilt-offset-angle {
671 "Value 'zero' represents the default service area of the
672 predefined-beams in elevation domain.
674 Values smaller than 0 represents an up-shift of the default service area
675 towards the zenith (i.e., corresponding to a decrease in zenith angle) and
676 values larger than 0 represent a down-shift of the default service area
677 away from the zenith (i.e., corresponding to an increase in zenith angle).";
679 leaf azimuth-tilt-offset-angle {
686 "Value 'zero' represents the default service area of the
687 predefined-beams in azimuth domain.
689 Azimuth tilt offset angle, represents counter-clockwise rotation around
690 z-axis. I.e., assuming view from the UE (observation of the O-RU from
691 the front), value larger than 'zero' and smaller than 'zero'
692 respectively represent right-shifted and left-shifted of the default
693 service area in azimuth domain.";
699 container beamforming-config {
702 "A set of configuration data for the O-RU's beam forming functionality";
704 uses beamforming-config;
705 uses beamforming-supported-type;
706 container beam-tilt {
707 if-feature BEAM-TILT;
708 description "container for pre-defined beam tilt feature";
709 uses beam-tilt-state;
710 uses beam-tilt-report;
715 rpc activate-beamforming-config {
716 if-feature MODIFY-BF-CONFIG;
718 "rpc to activate beamforming config information by indicating the file
719 stored in the folder O-RAN/beam-weights in advance";
721 leaf beamforming-config-file {
725 "file name stored in O-RAN/beamforming/ folder is indicated";
734 description "O-RU has accepted the beamforming weight/attribute file";
738 "O-RU has rejected the beamforming weight/attribute file. The O-RU
739 should then use the default beamforming file.";
743 description "Status of activation of beamforming config information";
746 when "../status='REJECTED'";
749 "Detailed error Message when the status is rejected, e.g.,
750 because new beam forming file is attempted to be applied to a
751 carrier which is still active, or the beam-id does not exist.";
756 rpc activate-beamforming-config-by-capability-group {
757 if-feature MODIFY-BF-CONFIG;
759 "rpc to activate beamforming config information by indicating the file
760 stored in the folder O-RAN/beam-weights in advance";
762 leaf beamforming-config-file {
766 "file name stored in O-RAN/beamforming/ folder is indicated";
775 description "O-RU has accepted the beamforming weight/attribute file";
779 "O-RU has rejected the beamforming weight/attribute file. The O-RU
780 should then use the default beamforming file.";
784 description "Status of activation of beamforming config information";
787 when "../status='REJECTED'";
790 "Detailed error Message when the status is rejected, e.g.,
791 because new beam forming file is attempted to be applied to a
792 carrier which is still active, or the beam-id does not exist.";
798 rpc modify-predefined-beam-tilt-offset {
799 if-feature BEAM-TILT;
801 "rpc to trigger the modification of the predefined beam tilt offset";
803 uses beam-tilt-configuration;
809 description "O-RU has accepted the predefind beamtilt offset configuration";
813 "O-RU has rejected the predefind beamtilt offset configuration.";
817 description "Status of acceptance of pre-defined beamtilt offset configuration";
820 when "../status='REJECTED'";
823 "Detailed error message when the pre-defined beam tilt configuration
824 is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the
825 NETCONF client is attempting to modify the beam tilt on a band where
826 one or more array-carriers are still ACTIVE.";
832 //notification statement
833 notification beamforming-information-update {
836 "this notification indicates that the beamforming properties are updated for particular band";
839 notification capability-group-beamforming-information-update {
842 "this notification indicates that the beamforming properties are updated for particular band
843 or capability group";
846 notification predefined-beam-tilt-offset-complete {
847 if-feature BEAM-TILT;
848 uses beam-tilt-report;
850 "this notification indicates that the re-generation of the predefined