blob: de5ec05c1a185680c447bf2f6870b44b2e48e46e [file] [log] [blame]
module o-ran-module-cap {
yang-version 1.1;
namespace "urn:o-ran:module-cap:1.0";
prefix "o-ran-module-cap";
import o-ran-compression-factors {
prefix "cf";
}
organization "O-RAN Alliance";
contact
"www.o-ran.org";
description
"This module defines the module capabilities for
the O-RAN Radio Unit.
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-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 LAA {
description
"Indicates that the Radio Unit supports LAA.";
}
feature TRANSPORT-FRAGMENTATION {
description
"This leaf is used to indicate whether the O-RU supports O-RAN Radio Transport Fragmentation";
}
typedef sub-band-string {
type string {
pattern [ABCD];
}
description "Sub bands definition";
}
typedef scs-config-type {
type enumeration {
enum KHZ_15 {
value 0;
description
"15kHz sub carrier spacing";
}
enum KHZ_30 {
value 1;
description
"30kHz sub carrier spacing";
}
enum KHZ_60 {
value 2;
description
"60kHz sub carrier spacing";
}
enum KHZ_120 {
value 3;
description
"120kHz sub carrier spacing";
}
enum KHZ_240 {
value 4;
description
"240kHz sub carrier spacing";
}
enum KHZ_1_25 {
value 12;
description
"1,25kHz sub carrier spacing";
}
enum KHZ_3_75 {
value 13;
description
"3.75kHz sub carrier spacing";
}
enum KHZ_5 {
value 14;
description
"5kHz sub carrier spacing";
}
enum KHZ_7_5 {
value 15;
description
"7.5kHz sub carrier spacing";
}
}
description
"Scs configuration type definition";
}
grouping compression-method-grouping {
description
"Grouping for compression method.";
leaf compression-method {
type enumeration {
enum BLOCK_FLOATING_POINT {
description
"Block floating point compression and decompression will be used";
}
enum BLOCK_SCALING {
description
"Block scaling compression and decompresion will be used";
}
enum U_LAW {
description
"u-Law compression and decompresion method will be used";
}
enum BEAMSPACE {
description
"Beamspace compression and decompression will be used";
}
enum MODULATION {
description
"Modulation compression and decompression will be used";
}
}
description
"Compresion method which can be supported by the O-RU";
}
}
grouping sub-band-max-min-ul-dl-frequency {
description
"Grouping for defining max and min supported frequency - dl and ul.";
leaf max-supported-frequency-dl {
type uint64;
description
"This value indicates Maximum supported downlink frequency in the
LAA subband. Value unit is Hz.";
}
leaf min-supported-frequency-dl {
type uint64;
description
"This value indicates Minimum supported downlink frequency in the
LAA subband. Value unit is Hz.";
}
}
grouping format-of-iq-sample {
description
"Indicates module capabilities about IQ samples";
leaf dynamic-compression-supported {
type boolean;
description
"Informs if radio supports dynamic compression method";
}
leaf realtime-variable-bit-width-supported {
type boolean;
description
"Informs if O-RU supports realtime variable bit with";
}
list compression-method-supported {
key "iq-bitwidth compression-type";
uses cf:compression-details;
description
"List of supported compression methods by O-RU";
}
leaf variable-bit-width-per-channel-supported {
when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
type boolean;
description
"Informs if variable bit width per channel is supported or not";
}
leaf syminc-supported {
type boolean;
description
"Informs if symbol number increment command in a C-Plane is
supported or not";
}
}
grouping scs-a-b {
description
"Grouping for scs-a and scs-b";
leaf scs-a{
type scs-config-type;
description
"Sub-carrier spacing configuration";
}
leaf scs-b{
type scs-config-type;
description
"Sub-carrier spacing configuration";
}
}
grouping ul-mixed-num-required-guard-rbs {
description
"Required number of guard resource blocks for the combination of
subcarrier spacing values for uplink";
uses scs-a-b;
leaf number-of-guard-rbs-ul{
type uint8;
description
"This value indicates the required number of guard resource blocks
between the mixed numerologies, the RB using scs-a and the RB
using scs-b. It's number is based on scs-a";
}
}
grouping dl-mixed-num-required-guard-rbs {
description
"Required number of guard resource blocks for the combination of
subcarrier spacing values for uplink";
uses scs-a-b;
leaf number-of-guard-rbs-dl{
type uint8;
description
"This value indicates the required number of guard resource blocks
between the mixed numerologies, the RB using scs-a and the RB
using scs-b. It's number is based on scs-a";
}
}
grouping ru-capabilities {
description
"Structure representing set of capabilities.";
leaf ru-supported-category {
type enumeration {
enum CAT_A {
description
"Informs that precoding is not supported in O-RU";
}
enum CAT_B {
description
"Informs that precoding is supported in O-RU";
}
}
description
"Informs about which category O-RU supports";
}
leaf number-of-ru-ports {
type uint8;
description
"Assuming all endpoints support time-managed traffic AND non-time-managed traffic (choice is as per configuration)
- the number of O-RU ports is the product of number of spatial streams (leaf number-of-spatial-streams) and number of numerologies O-RU supports.
For example, if the number of spatial streams is 4 then the number of O-RU ports is 8 when PUSCH and PRACH are processed in the different endpoints.
In case there are specific endpoints that support non-time-managed traffic only
- the number of O-RU ports calculated with above mentioned equation is extended by number of endpoints supporting only non-time-managed traffic.";
}
leaf number-of-spatial-streams {
type uint8;
description
"This value indicates the number of spatial streams supported at O-RU for DL and UL.
For DL, it is same as the number of antenna ports specified in 3GPP TS38.214, Section 5.2 and 3GPP TS36.213, Section 5.2.";
}
leaf max-power-per-pa-antenna {
type decimal64{
fraction-digits 4;
}
description
"This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
}
leaf min-power-per-pa-antenna {
type decimal64{
fraction-digits 4;
}
description
"This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
}
leaf fronthaul-split-option {
type uint8 {
range "7";
}
description
"This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
}
container format-of-iq-sample {
description
"Indicates module capabilities about IQ samples";
uses format-of-iq-sample;
}
list ul-mixed-num-required-guard-rbs {
key "scs-a scs-b";
uses ul-mixed-num-required-guard-rbs;
}
list dl-mixed-num-required-guard-rbs {
key "scs-a scs-b";
uses dl-mixed-num-required-guard-rbs;
}
leaf energy-saving-by-transmission-blanks {
type boolean;
mandatory true;
description
"Parameter informs if unit supports energy saving by transmission blanking";
}
leaf dynamic-transport-delay-management-supported {
type boolean;
mandatory true;
description
"Parameter informs if unit supports dynamic transport delay management through eCPRI Msg 5";
}
}
grouping sub-band-info {
description "container for collection of leafs for LAA subband 46";
list sub-band-frequency-ranges {
key sub-band;
description "frequency information on a per sub-band basis";
leaf sub-band {
type sub-band-string;
description "Sub band when band 46";
}
uses sub-band-max-min-ul-dl-frequency;
}
leaf number-of-laa-scarriers {
type uint8;
description
"This value indicates the number of LAA secondary carriers supported at O-RU.";
}
leaf maximum-laa-buffer-size {
type uint16;
description
"Maximum O-RU buffer size in Kilobytes (KB) per CC. This parameter is
needed at the O-DU to know how much data can be sent in advance
and stored at the O-RU to address the LBT uncertainity.";
}
leaf maximum-processing-time {
type uint16;
units microseconds;
description
"Maximum O-RU Processing time in microseconds at the O-RU to handle the
received/transmitted packets from/to the O-DU. This parameter is
needed at the O-DU to determine the time where it needs to send
the data to the O-RU.";
}
leaf self-configure {
type boolean;
description "This value indicates that the O-RU can manage the contention window locally. ";
}
}
grouping support-for-dl {
description
"Grouping for DL specific parameters";
leaf max-supported-frequency-dl {
type uint64;
description
"This value indicates Maximum supported downlink frequency. Value unit is Hz.";
}
leaf min-supported-frequency-dl {
type uint64;
description
"This value indicates Minimum supported downlink frequency. Value unit is Hz.";
}
leaf max-supported-bandwidth-dl {
type uint64;
description
"This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
}
leaf max-num-carriers-dl {
type uint32;
description
"This value indicates Maximum number of downlink carriers in module.";
}
leaf max-carrier-bandwidth-dl {
type uint64;
description
"This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
}
leaf min-carrier-bandwidth-dl {
type uint64;
description
"This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
}
}
grouping support-for-ul {
description
"Grouping for UL specific parameters";
leaf max-supported-frequency-ul {
when "../band-number != '46'";
type uint64;
description
"This value indicates Maximum supported uplink frequency. Value unit is Hz.";
}
leaf min-supported-frequency-ul {
when "../band-number != '46'";
type uint64;
description
"This value indicates Minimum supported uplink frequency. Value unit is Hz.";
}
leaf max-supported-bandwidth-ul {
when "../band-number != '46'";
type uint64;
description
"This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
}
leaf max-num-carriers-ul {
when "../band-number != '46'";
type uint32;
description
"This value indicates Maximum number of uplink carriers in module.";
}
leaf max-carrier-bandwidth-ul {
when "../band-number != '46'";
type uint64;
description
"This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
}
leaf min-carrier-bandwidth-ul {
when "../band-number != '46'";
type uint64;
description
"This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
}
}
grouping band-capabilities {
description
"Capabilities that are needed to be defined per each band";
leaf band-number {
type uint16;
description
"Band number";
}
container sub-band-info {
when "../band-number = '46'";
if-feature "o-ran-module-cap:LAA";
description "container for collection of leafs for LAA subband 46";
uses sub-band-info;
}
uses support-for-dl;
uses support-for-ul;
leaf max-num-component-carriers {
type uint8;
description "maximum number of component carriers supported by the O-RU";
}
leaf max-num-bands {
type uint16;
description "maximum number of bands supported by the O-RU";
}
leaf max-num-sectors {
type uint8;
description "maximum number of sectors supported by the O-RU";
}
leaf max-power-per-antenna {
type decimal64{
fraction-digits 4;
}
description
"This value indicates Maximum Power per band per antenna. Value unit is dBm.";
}
leaf min-power-per-antenna {
type decimal64{
fraction-digits 4;
}
description
"This value indicates Minimum Power per band per antenna. Value unit is dBm.";
}
leaf codebook-configuration_ng {
type uint8;
description
"This parameter informs the precoder codebook_ng that are used for precoding";
}
leaf codebook-configuration_n1 {
type uint8;
description
"This parameter informs the precoder codebook_n1 that are used for precoding";
}
leaf codebook-configuration_n2 {
type uint8;
description
"This parameter informs the precoder codebook_n2 that are used for precoding";
}
}
container module-capability {
config false;
description
"module capability object responsible for providing module capability.";
container ru-capabilities {
description
"Structure representing set of capabilities.";
uses ru-capabilities;
}
list band-capabilities {
key band-number;
description
"Capabilities that are needed to be defined per each band";
uses band-capabilities;
}
}
}