Hi Cohult,
I was not able to attach the complete file .So I have pasted almost everything of the yang file.
Otherwise if you can create a link to attach and share it with me then i can attach it
module o-ran-uplane-conf {
yang-version 1.1;
namespace “urn:o-ran:uplane-conf:1.0”;
prefix “o-ran-uplane-conf”;
import o-ran-processing-element {
prefix “o-ran-pe”;
}
import ietf-interfaces {
prefix “if”;
}
import o-ran-module-cap {
prefix “mcap”;
revision-date 2019-07-03;
// need to align/update with final date of publication
}
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 U-Plane configuration.
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-07-03” {
description
"version 1.1.0
1) added new leaf multiple-numerology-supported to enable O-RU to report
whether it supports multiple numerologies.
2) fixing broken constraints (configuration cannot be dependent on
operational state). This is a backwards incompatible revision.
As these constraints only apply when the LAA feature is used, and also
when considering the limited number of implementation that need to be
taken into consideration for backwards compatibility, it has been
agreed to NOT increment the namespace integer.
3) added frequency related capabilities for tx-arrays and rx-array
4) removed redundant LAA import";
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";
}
typedef polarisation_type {
type enumeration {
enum MINUS_45 {
description “MINUS_45”;
}
enum ZERO {
description “ZERO”;
}
enum PLUS_45 {
description “PLUS_45”;
}
enum PLUS_90 {
description “PLUS_90”;
}
}
description “Type definition for polarisations”;
}
grouping laa-carrier-config {
description "Carrier Configuration for support of LAA. ";
leaf ed-threshold-pdsch {
type int8;
units dBm;
description
“This value indicates Energy Detection(ED) threshold for LBT for PDSCH and for measurements in dBm.”;
}
leaf ed-threshold-drs {
type int8;
units dBm;
description
"This value indicates Energy Detection(ED) threshold for LBT for DRS in dBm.";
}
leaf tx-antenna-ports {
type uint8;
description
"This value indicates Tx antenna ports for DRS (1, 2, 4)";
}
leaf transmission-power-for-drs {
type int8;
units decibels;
description
"This value indicates offset of Cell specific reference Signal(CRS) power to reference signal power (dB).
DRS signal consists of CRS, PSS, SSS, and optionally CSI-RS.";
}
leaf dmtc-period {
type enumeration {
enum FORTY {
description
"40 ms";
}
enum EIGHTY {
description
"80 ms";
}
enum ONE-HUNDRED-SIXTY {
description
"160 ms";
}
}
units milliseconds;
description
"This value indicates DRS measurement timing configuration (DMTC) period in ms";
}
leaf dmtc-offset {
type uint8;
units subframes;
description
"This value indicates dmtc offset in Subframes.";
}
leaf lbt-timer {
type uint16;
units milliseconds;
description
"This value indicates LBT Timer in milliseconds.";
}
list max-cw-usage-counter {
when "/mcap:module-capability/mcap:rw-sub-band-info/mcap:rw-self-configure = 'true'";
key "priority";
description "";
leaf priority {
type enumeration {
enum P1 {
description "priority 1";
}
enum P2 {
description "priority 2";
}
enum P3 {
description "priority 3";
}
enum P4 {
description "priority 4";
}
}
description "This value provides the priority class traffic for which the counter is calculated.";
}
leaf counter-value {
type uint8 {
range "1..8";
}
description "This value indicates the maximum value of counter
which shows how many max congestion window value is used for backoff
number of priority class traffic. This value is defined at 3GPP 36.213
section 15.1.3 as K.";
}
}
}
grouping eaxc {
description
"One eAxC identifier (eAxC ID) comprises a band and sector
identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a
spatial stream identifier (RU_Port_ID).
In this version of the specification, one eAxC contains only one spatial
stream (i.e. one beam per subcarrier) at a time.
Bit allocation is subdivided as follows:
* O_DU_Port_ID: Used to differentiate processing units at O-DU
* BandSector_ID: Aggregated cell identifier
* CC_ID: distinguishes Carrier Components
* RU_Port_ID: Used to differentiate spatial streams or beams on the O-RU
The bitwidth of each of the above fields is variable this model is supposed to check
if we are occpying bits continuously but we do not have to occupy all 16 bits";
leaf o-du-port-bitmask {
type uint16;
mandatory true;
description
"mask for eaxc-id bits used to encode O-DU Port ID";
}
leaf band-sector-bitmask {
type uint16;
mandatory true;
description
"mask for eaxc-id bits used to encode the band sector ID";
}
leaf ccid-bitmask {
type uint16;
mandatory true;
description
"mask for eaxc-id bits used to encode the component carrier id";
}
leaf ru-port-bitmask {
type uint16;
mandatory true;
description
"mask for eaxc-id bits used to encode the O-RU Port ID";
}
leaf eaxc-id {
type uint16;
mandatory true;
description
"encoded value of eaxcid to be read by CU-Plane";
}
}
grouping parameters {
description
“Grouping of all parameters common between UL and DL”;
leaf name {
type string;
mandatory true;
description "Unique name of array antenna";
}
leaf number-of-rows {
type uint16;
mandatory true;
description "Number of rows array elements are shaped into - M";
}
leaf number-of-columns {
type uint16;
mandatory true;
description "Number of columns array elements are shaped into - N";
}
leaf number-of-array-layers {
type uint8;
mandatory true;
description "Number of array layers array elements are shaped into - Q";
}
leaf horizontal-spacing {
type decimal64 {
fraction-digits 5;
}
units Meter;
description "Average distance between centers of nearby AE in horizontal direction (in array coordinates system)";
}
leaf vertical-spacing{
type decimal64 {
fraction-digits 5;
}
units Meter;
description "Average distance between centers of nearby AE in vertical direction (in array coordinates system)";
}
container normal-vector-direction {
description
"Counter-clockwise rotation around z and y axis.";
leaf azimuth-angle{
type decimal64 {
fraction-digits 4;
}
units Degrees;
description "Azimuth angle, counter-clockwise rotation around z-axis. Value 'zero' points to broad-side, value '90' points to y-axis";
}
leaf zenith-angle{
type decimal64 {
fraction-digits 4;
}
units Degrees;
description "Zenith angle, counter-clockwise rotation around y-axis. Value 'zero' points to zenith, value '90' points to horizon";
}
}
container leftmost-bottom-array-element-position {
description "Structure describing position of leftmost, bottom array element.";
leaf x {
type decimal64 {
fraction-digits 4;
}
units Meter;
description "X dimension of position of leftmost, bottom array element";
}
leaf y {
type decimal64 {
fraction-digits 4;
}
units Meter;
description "Y dimension of position of leftmost, bottom array element";
}
leaf z {
type decimal64 {
fraction-digits 4;
}
units Meter;
description "Z dimension of position of leftmost, bottom array element";
}
}
list polarisations {
key "p";
min-elements 1;
max-elements 2;
description
"List of supported polarisations.";
leaf p {
type uint8;
mandatory true;
description
"Polarisation index. See CUS-plane";
}
leaf polarisation {
type polarisation_type;
mandatory true;
description "Type of polarisation supported by array.";
}
}
leaf band-number {
type leafref {
path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
}
mandatory true;
description
"This parameter informing which frequency band particular antenna
array is serving for.
Intended use is to deal with multiband solutions.";
}
}
grouping array-choice {
choice antenna-type {
case tx {
leaf tx-array-name {
type leafref {
path “/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:tx-arrays/o-ran-uplane-conf:name”;
}
description
"Leafref to tx array if such is choosen";
}
}
case rx {
leaf rx-array-name {
type leafref {
path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:rx-arrays/o-ran-uplane-conf:name";
}
description
"Leafref to rx array if such is choosen";
}
}
description
"Choice for antenna type";
}
description
"Elements which groups choice for antenna type";
}
grouping scs-config {
description
“It groups all parameters related to SCS configuration”;
leaf frame-structure {
type uint8;
description
"This parameter defines the frame structure. The first 4 bits define the FFT/iFFT size
being used for all IQ data processing related to this message.
The second 4 bits define the sub carrier spacing as well as the number of slots per 1ms sub-frame
according to 3GPP TS 38.211, taking for completeness also 3GPP TS 36.211 into account";
}
leaf cp-type {
type enumeration {
enum NORMAL {
description
"Normal cyclic prefix";
}
enum EXTENDED {
description
"Extended cyclic prefix";
}
}
description
"Provides type of CP (cyclic prefix) if section type 3 is not used or type of CP cannot be determined from cpLength.";
}
leaf cp-length {
type uint16;
units Ts;
mandatory true;
description
"Used for symbol 0 for NR & LTE, and symbol 7*2u for NR.
See CUS-plane";
}
leaf cp-length-other {
type uint16;
units Ts;
mandatory true;
description
"Used for other symbols than by cp-length above";
}
leaf offset-to-absolute-frequency-center {
type int32;
mandatory true;
description
"This provides value of freqOffset to be used if section type 3 is not used. See freqOffset in CUS-plane.";
}
list number-of-prb-per-scs {
key scs;
description
"List of configured for each SCS that will be used.";
leaf scs {
type mcap:scs-config-type;
description
"Value corresponds to SCS values defined for frameStructure in C-plane.
Note: set of allowed values is restricted by SCS derived from values in supported-frame-structures.";
}
leaf number-of-prb {
type uint16;
mandatory true;
description
"Determines max number of PRBs that will be used in all sections per one symbol.
This is affecting allocation of resources to endpoint. Value shall not exceed constrains
defined by max-prb-per-symbol of endpoint type. In addition sum (over all used epoints
within a group of endpoints sharing resources) of number-of-prb rounded up to
nearest value from prb-capacity-allocation-granularity shall not exceed max-prb-per-symbol of the group.";
}
}
}
grouping tx-common-array-carrier-elements {
description
“This grouping containes all common parameters for tx-array-carriers and rx-array-carriers”;
leaf absolute-frequency-center {
type uint32;
mandatory true;
description
"Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of signal.
Reflected in arfcn.";
}
leaf center-of-channel-bandwidth {
type uint64;
units Hz;
mandatory true;
description
"Center frequency of channel bandwidth in Hz. Common for all numerologies.";
}
leaf channel-bandwidth {
type uint64;
units Hz;
mandatory true;
description
"Width of carrier given in Hertz";
}
leaf active {
type enumeration {
enum INACTIVE {
description
"carrier does not provide signal - transmission is disabled";
}
enum SLEEP{
description
"carrier is fully configured and was active but is energy saving mode";
}
enum ACTIVE{
description
"carrier is fully configured and properly providing the signal";
}
}
default INACTIVE;
description
"Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
to indicate actual state of array carriers operation. When array carriers is in sleep status,
Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
to active status or delete MO operation (see 4.8) to the object.";
}
leaf state {
type enumeration {
enum DISABLED {
description
"array carrier is not active - transmission of signal is disabled.";
}
enum BUSY {
description
"array carrier is processing an operation requested by change of active parameter.
When array carriers is BUSY the transmission of signal is not guaranteed.";
}
enum READY {
description
"array carrier had completed activation operation - is active and transmission of signal is ongoing.";
}
}
config false;
mandatory true;
description
"Indicates state of array carriers activation operation";
}
leaf type {
type enumeration {
enum NR {
description
"5G technology";
}
enum LTE {
description
"LTE technology";
}
}
config false;
mandatory true;
description
"Type of carrier. Indicates array-carrier technology.";
}
leaf duplex-scheme {
type enumeration {
enum TDD {
description
"TDD scheme";
}
enum FDD {
description
"FDD scheme";
}
}
config false;
description
"Type of duplex scheme O-RU supports.";
}
leaf rw-duplex-scheme {
type leafref {
path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/duplex-scheme";
require-instance false;
}
description
"Config true type of duplex scheme.";
}
leaf rw-type {
type leafref {
path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type";
require-instance false;
}
description
"Config true type of carrier.";
}
}
grouping rx-common-array-carrier-elements {
description
“This grouping containes all common parameters for tx-array-carriers and rx-array-carriers”;
leaf absolute-frequency-center {
type uint32;
mandatory true;
description
"Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of signal.
Reflected in arfcn.";
}
leaf center-of-channel-bandwidth {
type uint64;
units Hz;
mandatory true;
description
"Center frequency of channel bandwidth in Hz. Common for all numerologies.";
}
leaf channel-bandwidth {
type uint64;
units Hz;
mandatory true;
description
"Width of carrier given in Hertz";
}
leaf active {
type enumeration {
enum INACTIVE {
description
"carrier does not provide signal - transmission is disabled";
}
enum SLEEP{
description
"carrier is fully configured and was active but is energy saving mode";
}
enum ACTIVE{
description
"carrier is fully configured and properly providing the signal";
}
}
default INACTIVE;
description
"Indicates if transmission is enabled for this array carriers. Note that Netconf server uses state parameter
to indicate actual state of array carriers operation. When array carriers is in sleep status,
Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
to active status or delete MO operation (see 4.8) to the object.";
}
leaf state {
type enumeration {
enum DISABLED {
description
"array carrier is not active - transmission of signal is disabled.";
}
enum BUSY {
description
"array carrier is processing an operation requested by change of active parameter.
When array carriers is BUSY the transmission of signal is not guaranteed.";
}
enum READY {
description
"array carrier had completed activation operation - is active and transmission of signal is ongoing.";
}
}
config false;
mandatory true;
description
"Indicates state of array carriers activation operation";
}
leaf type {
type enumeration {
enum NR {
description
"5G technology";
}
enum LTE {
description
"LTE technology";
}
}
config false;
mandatory true;
description
"Type of carrier. Indicates array-carrier technology.";
}
leaf duplex-scheme {
type enumeration {
enum TDD {
description
"TDD scheme";
}
enum FDD {
description
"FDD scheme";
}
}
config false;
description
"Type of duplex scheme O-RU supports.";
}
}
grouping endpoint-section-capacity {
leaf max-control-sections-per-data-section {
type uint8 {
range “1…12”;
}
description
“Max number of C-plane sections (C-plane section is part of C-plane message that carries ‘section fields’)
referring to same U-plane section (U-plane section is part of U-plane message that carries
‘section header fields’ and ‘PRB fields’) that is supported by endpoint.
Note that additional limitations specific for each section type apply on top of this number.”;
}
leaf max-sections-per-symbol {
type uint16;
description
“Max number of sections within one symbol that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity”;
}
leaf max-sections-per-slot {
type uint16;
description
“Max number of sections within one slot that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity.”;
}
description
"Parameters describing section capacity where section is undestood as number of different sectionId values";
}
grouping endpoint-beam-capacity {
leaf max-beams-per-symbol {
type uint16;
description
“Max number of beams within one symbol that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity”;
}
leaf max-beams-per-slot {
type uint16;
description
“Max number of beams within one slot that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity”;
}
description
"Parameters describing beam capacity where number of beams is understood as number of different beamId values";
}
grouping endpoint-prb-capacity {
leaf max-prb-per-symbol {
type uint16;
description
“Max number of prbs within one symbol that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity”;
}
description
"Attributes presenting processing capacity related to PRB.";
}
grouping endpoint-numerology-capacity {
leaf max-numerologies-per-symbol {
type uint16;
description
“Max number of numerologies within one symbol that can be processed by endpoint
or processed collectively by group of endpoints sharing capacity”;
}
description
"Attributes presenting processing capacity related to numerology.
This leaf contains valid data only when multiple-numerology-supported
is set to true.";
}
grouping uplane-conf-group {
description
“Grouping for uplane configuration related parameters”;
list low-level-tx-links {
key name;
description
"Object model for low-level-tx-link configuration";
leaf name {
type string;
description
"Unique name of low-level-tx-link object.";
}
leaf processing-element {
type leafref {
path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
}
mandatory true;
description
"Contains name of processing-element to be used as transport by low-level-tx-link";
}
leaf tx-array-carrier {
type leafref {
path "/user-plane-configuration/tx-array-carriers/name";
}
mandatory true;
description
"Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link";
}
leaf low-level-tx-endpoint {
type leafref {
path "/user-plane-configuration/low-level-tx-endpoints/name";
}
mandatory true;
description
"Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link";
}
}
list low-level-rx-links {
key name;
description
"Object model for low-level-rx-links configuration";
leaf name {
type string;
description
"Unique name of low-level-rx-links object.";
}
leaf processing-element {
type leafref {
path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name";
}
mandatory true;
description
"Contains name of processing-element to be used as transport by LowLevelTxLink";
}
leaf rx-array-carrier {
type leafref {
path "/user-plane-configuration/rx-array-carriers/name";
}
mandatory true;
description
"Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links";
}
leaf low-level-rx-endpoint {
type leafref {
path "/user-plane-configuration/low-level-rx-endpoints/name";
}
mandatory true;
description
"Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links";
}
leaf user-plane-uplink-marking {
type leafref {
path "/o-ran-pe:processing-elements/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name";
}
description
"Parameter to set the non-default marking for user-plane";
}
}
list endpoint-types {
key "id";
config false;
description
"Properties of endpoint that are common to multiple endpoints if such are identified";
leaf id {
type uint16;
description
"Identifies type of endpoints sharing same properties. Values shall start with 0 and shall be allocated without gaps.";
}
list supported-section-types {
key "section-type";
description
"Indicates section types and extensions endpoints of this type support";
leaf section-type {
type uint8;
description
"This parameter determines the characteristics of U-plane data to be transferred or received from a beam with one pattern id.";
}
leaf-list supported-section-extensions {
type uint8;
description
"This parameter provides the extension types supported by the O-RU
which provides additional parameters specific to the subject data extension";
}
}
Regards,
Biswajit