X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ntsimulator%2Fyang%2Fo-ran-beamforming.yang;fp=ntsimulator%2Fyang%2Fo-ran-beamforming.yang;h=b733430cf1980495bc4294168f76548b976501a6;hb=29ce368a8b49cb41f3a1640581ff9958ea50ad8c;hp=0000000000000000000000000000000000000000;hpb=1d6c03fcfde03df735f82913ea795a75cd3068d9;p=sim%2Fo1-interface.git diff --git a/ntsimulator/yang/o-ran-beamforming.yang b/ntsimulator/yang/o-ran-beamforming.yang new file mode 100644 index 0000000..b733430 --- /dev/null +++ b/ntsimulator/yang/o-ran-beamforming.yang @@ -0,0 +1,502 @@ +module o-ran-beamforming { + yang-version 1.1; + namespace "urn:o-ran:beamforming:1.0"; + prefix "o-ran-bf"; + + import o-ran-uplane-conf { + prefix "up"; + } + + import o-ran-module-cap { + prefix "mcap"; + } + + import o-ran-compression-factors { + prefix "cf"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the beamforming capabilitites of an O-RU. + Only O-RUs that support beamforming shall support this module. + + Copyright 2019 the O-RAN Alliance. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the above disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the above disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the Members of the O-RAN Alliance nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2019-06-19" { + description + "version 1.1.1 + + 1) adding possibilities to provide more compression types for beamforming"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-04-01" { + description + "version 1.1.0 + + 1) corrested xPATH boolean check from TRUE to true"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-02-04" { + description + "version 1.0.0 + + 1) imported model from xRAN + 2) changed namespace and reference from xran to o-ran"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + + feature MODIFY-BF-CONFIG { + description + "This feature indicates that the O-RU supports an optional feature to + modify beamforming configuration information"; + } + + typedef beam-reference { + type leafref { + 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"; + } + description + "This type is used by data models that need to reference a beam."; + } + + + grouping beamforming-parameters { + leaf max-number-of-beam-ids { + type uint16; + mandatory true; + description + "Maximum number of supported Beam ID assigned to domain beamforming control"; + } + + leaf initial-beam-id { + type uint16; + mandatory true; + description + "First Beam ID that can be used for addressing of domain beams"; + } + + description "Group of common beamforming parameters"; + } + + grouping granularity-parameters { + leaf frequency-granularity { + type enumeration { + enum CC { + description + "Frequency granularity: per carrier component"; + } + + enum BAND { + description + "Frequency granularity: per band"; + } + } + mandatory true; + description "Supported time granularity of time-domain beamforming."; + } + + leaf time-granularity { + type enumeration { + enum SLOT { + description + "Time granularity: per slot"; + } + + enum SYMBOL { + description + "Time granularity: per symbol"; + } + } + mandatory true; + description "Supported time granularity of time-domain beamforming."; + } + description ""; + } + + grouping array-lists { + description + "Grouping for array lists"; + + leaf-list tx-array { + type leafref { + path "/up:user-plane-configuration/up:tx-arrays/up:name"; + } + description "tx arrays belonging to this band number"; + } + leaf-list rx-array { + type leafref { + path "/up:user-plane-configuration/up:rx-arrays/up:name"; + } + description "rx arrays belonging to this band number"; + } + } + + grouping static-properties { + description + "Grouping for static beamforming properties"; + + leaf rt-bf-weights-update-support { + type boolean; + description + "The parameter informs if O-RU supports real time beamforming weights update through C-Plane messaging"; + } + + choice beamforming-type { + case frequency { + container frequency-domain-beams { + when "../rt-bf-weights-update-support = 'true'"; + uses beamforming-parameters; + uses cf:compression-details; + + list additional-compression-method-supported { + key "iq-bitwidth compression-type"; + uses cf:compression-details; + + description + "List of additional supported compression methods by O-RU"; + } + + description ""; + } + description "Set of parameters valid for O-RU, that supports beamforming in frequency domain."; + } + + case time { + container time-domain-beams { + when "../rt-bf-weights-update-support = 'true'"; + uses beamforming-parameters; + uses granularity-parameters; + uses cf:compression-details; + + list additional-compression-method-supported { + key "iq-bitwidth compression-type"; + uses cf:compression-details; + + description + "List of additional supported compression methods by O-RU"; + } + + description ""; + } + description "Set of parameters valid for O-RU, that supports beamforming in time domain."; + } + + case hybrid { + container hybrid-beams { + when "../rt-bf-weights-update-support = 'true'"; + uses beamforming-parameters; + uses granularity-parameters; + uses cf:compression-details; + + list additional-compression-method-supported { + key "iq-bitwidth compression-type"; + uses cf:compression-details; + + description + "List of additional supported compression methods by O-RU"; + } + + description ""; + } + description "Set of parameters valid for O-RU, that supports hybrid beamforming - in both time and frequency domain."; + } + description + "This value indicates beamforming type supported by O-RU"; + } + + leaf number-of-beams { + type uint16; + description + "This value indicates the max number of beam patterns O-RU can generate + and apply to the signal of each O-RU port (both DL and UL). + This value is equivalent to the maximum number of used beam IDs."; + } + } + + grouping beamforming-property { + description + "Grouping for beamforming property"; + + leaf beam-type { + type enumeration { + enum COARSE { + description "the beam-id corresponds to a coarse beam"; + } + enum FINE { + description "the beam-id corresponds to a fine beam"; + } + } + description + "This value indicates the beam resolution."; + } + + leaf beam-group-id { + type uint16; + description + "Beams with same beamGroupsID can be transmitted simultaneously."; + } + + leaf-list coarse-fine-beam-relation { + type beam-reference; + description + "List of related coarse/fine beam."; + } + + leaf-list neighbour-beams { + type beam-reference; + description + "A list of neighbor beams which might restrict co-scheduling due + to interference."; + } + } + + grouping beamforming-properties-element { + description + "Grouping for beamforming-properties element"; + + leaf beam-id { + type uint16; + description + "This value indicates the beam ID whose beamforming properties are + described in the container."; + } + + container beamforming-property { + description + "Structure containing single set of beamforming properties."; + + uses beamforming-property; + } + } + + grouping band-num { + description + "Band information for the beamforming + related to the band number from module capabilities"; + + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "band information for the beamforming information + related to the band number of module capabilities"; + } + } + + grouping per-band-config-element { + description + "Grouping for per band config element"; + + uses band-num; + uses array-lists; + + container static-properties { + description + "the static beamforming related information"; + + uses static-properties; + } + + container beam-information { + description + "Beam information which exposes beamforming related O-RU capabilities."; + leaf number-of-beamforming-properties { + type uint16; + description + "This parameter indicates the number of beamFormingProperties entries."; + } + + list beamforming-properties { + key beam-id; + description + "Array for the beamforming properties at O-RU. + These parameters can be used by the beamforming control by the NETCONF client. + 'numberOfBeamformingProperties' indicaets the size of the array."; + + uses beamforming-properties-element; + } + } + } + + grouping operational-properties { + description + "Grouping for operational properties"; + + leaf number-of-writeable-beamforming-files { + type uint8 { + range "1 .. max"; + } + mandatory true; + description + "This leaf indicates the maximum number of writeable beamforming files + containing beamweights and/or attributes that the O-RU can store, taking + into account the maximum number of beam-IDs as defined by 3GPP + TS38.214 v15.x.x"; + } + + leaf update-bf-non-delete { + type boolean; + default false; + description + "When set to TRUE, indicates that an O-RU supports the capability + to apply the modified beamforming weight information by using rpc + activate-beamforming-weight without deletion of tx-array-carriers and + rx-array-carriers in advance, i.e., to a deactivated carrier"; + } + + leaf persistent-bf-files { + type boolean; + default false; + description + "When set to TRUE, indicates that the O-RU supports the capability + to store the modified beamforming weight information file in the + reset persistent memory"; + } + } + + grouping beamforming-supported-type { + description + "Grouping for type of beamforming supported"; + + leaf beamforming-trough-attributes-supported { + type boolean; + description + "Informs if beamforming can be controlled providing attributes to O-RU + (like angles, beamwidth)."; + } + + leaf beamforming-trough-ue-channel-info-supported { + type boolean; + description + "Informs if beamforming can be controlled by UE information."; + } + } + + grouping beamforming-config { + description + "Grouping for beamforming configuration"; + + list per-band-config { + key band-number; + description "beamforming information per band"; + + uses per-band-config-element; + } + + container ue-specific-beamforming { + presence + "Indicates that the O-RU supports optional Section Type '6' Fields + (used for sending channel information for a specific UE)"; + config false; + description + "Information related to supput by the O-RU of Section Type 6 for + signalling UE-specific channel information to the O-RU"; + leaf max-number-of-ues { + type uint8; + description + "Indicates tha maximum number of UE -specific channel information + data sets supported by the O-RU"; + } + } + container operational-properties { + if-feature MODIFY-BF-CONFIG; + description "properties for dynamic beam weight/attribute support"; + + uses operational-properties; + } + } + + container beamforming-config { + config false; + description + "A set of configuration data for the O-RU's beam forming functionality"; + + uses beamforming-config; + uses beamforming-supported-type; + } + + + rpc activate-beamforming-config { + if-feature MODIFY-BF-CONFIG; + description + "rpc to activate beamforming config information by indicating the file + stored in the folder O-RAN/beam-weights in advance"; + input { + leaf beamforming-config-file { + type string; + mandatory true; + description + "file name stored in O-RAN/beamforming/ folder is indicated"; + } + + uses band-num; + } + output { + leaf status { + type enumeration { + enum ACCEPTED { + description "O-RU has accepted the beamforming weight/attribute file"; + } + enum REJECTED { + description + "O-RU has rejected the beamforming weight/attribute file. The O-RU + should then use the default beamforming file."; + } + } + mandatory true; + description "Status of activation of beamforming config information"; + } + leaf error-message { + when "../status='REJECTED'"; + type string; + description + "Detailed error Message when the status is rejected, e.g., + because new beam forming file is attempted to be applied to a + carrier which is still active, or the beam-id does not exist."; + } + } + } + + + //notification statement + notification beamforming-information-update { + uses band-num; + description + "this notification indicates that the beamforming properties are updated for particular band"; + } +}