X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ntsimulator%2Fyang%2Fx-ran%2Fxran-uplane-conf.yang;fp=ntsimulator%2Fyang%2Fx-ran%2Fxran-uplane-conf.yang;h=5ca7e3c35b9be7c03bf734a6713dd00e79ab9499;hb=1f1479ff8ce3a268acb7b70a32bb789d859a915b;hp=0000000000000000000000000000000000000000;hpb=34ec819462d5f81ceeb723e47467bf50a8454f34;p=sim%2Fo1-interface.git diff --git a/ntsimulator/yang/x-ran/xran-uplane-conf.yang b/ntsimulator/yang/x-ran/xran-uplane-conf.yang new file mode 100644 index 0000000..5ca7e3c --- /dev/null +++ b/ntsimulator/yang/x-ran/xran-uplane-conf.yang @@ -0,0 +1,948 @@ +module xran-uplane-conf { + yang-version 1.1; + namespace "urn:xran:uplane-conf:1.0"; + prefix "xran-uplane-conf"; + + import xran-processing-element { + prefix "xran-pe"; + } + + import ietf-interfaces { + prefix "if"; + } + + import xran-module-cap { + prefix "mcap"; + } + + organization "xRAN Forum"; + + contact + "www.xran.org"; + + description + "This module defines the module capabilities for + the xRAN Radio Unit U-Plane configuration. + + Copyright 2018 the xRAN Forum. + + 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 xRAN Forum nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission."; + + revision "2018-07-20" { + description + "version 1.0.0 - First release of the xRAN YANG M-Plane models. + + This version of the model supports v01.00 of the corrsponding xRAN + M-Plane Specification."; + reference "XRAN-FH.MP.0-v01.00"; + } + + 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: + * CU_Port_ID: Used to differentiate processing units at lls-CU + * BandSector_ID: Aggregated cell identifier + * CC_ID: distinguishes Carrier Components + * RU_Port_ID: Used to differentiate spatial streams or beams on the 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 cu-port-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode CU 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 RU Port ID"; + } + + leaf eaxc-id { + type uint16; + mandatory true; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + + container user-plane-configuration { + description "top level container for user plane configuration"; + + container compression { + description + "Container which consists of global configurable parameters for compression"; + + leaf compression-type { + type enumeration { + enum STATIC { + description + "Indicates that static compression method will be used (both compression and IQ bitwidth)"; + } + + enum DYNAMIC { + description + "Indicates that dynamic compresion method will be used"; + } + } + description + "Compression type that lls-CU wants to be supported"; + } + + leaf bitwidth { + when "./../compression-type = 'STATIC'"; + type uint8; + description + "Bitwidth to be used in compression"; + } + + leaf compression-method { + when "./../compression-type = 'STATIC'"; + 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 RU"; + } + } + + 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 "/xran-pe:processing-elements/xran-pe:ru-elements/xran-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 string; + must "boolean(../../low-level-tx-endpoints[name = current()])" { + error-message "low-level-tx-endpoint you want to set does not exists in /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"; + } + + container remote-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains address of remote TX endpoint served by NETCONF client."; + } + } + + 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 "/xran-pe:processing-elements/xran-pe:ru-elements/xran-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 string; + must "boolean(../../low-level-rx-endpoints[name = current()])" { + error-message "low-level-rx-endpoint you want to set does not exists in /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"; + } + + container remote-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask +ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains address of remote RX endpoint served by Netconf client."; + } + + leaf priority { + type enumeration { + enum HIGH { + description + "Means high priority for link"; + } + enum LOW { + description + "Means low priority for link"; + } + } + + description + "Parameter to set priority for this link"; + } + } + + list static-low-level-tx-endpoints { + key name; + config false; + description + "Object model for static-low-level-tx-endpoints configuration"; + + leaf name { + type string; + + description + "Unique name of static-low-level-tx-endpoints object."; + } + + leaf interface { + type string; + must "boolean(/if:interfaces/if:interface[if:name = current()])" { + error-message "ethernet-interface you want to set does not exists in /interfaces/interface/name"; + } + + description + "Contains name of ietf:interface to be used as transport by low-level-tx-endpoints"; + } + + leaf array { + type leafref { + path "/user-plane-configuration/tx-arrays/name"; + } + description + "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with. + Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints + (e.g. to allow DU to handle multiple fronthauls and multiple component carriers)."; + } + } + + list static-low-level-rx-endpoints { + key name; + config false; + description + "Object model for static-low-level-rx-endpoints configuration"; + + leaf name { + type string; + + description + "Unique name of static-low-level-rx-endpoints object."; + } + + leaf interface { + type string; + must "boolean(/if:interfaces/if:interface[if:name = current()])" { + error-message "interface you want to set does not exists in /interfaces/interface/name"; + } + + description + "Contains name of ietf:interface to be used as transport by low-level-rx-endpoints"; + } + + leaf array { + type leafref { + path "/user-plane-configuration/rx-arrays/name"; + } + description + "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with. + Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints + (e.g. to allow DU to handle multiple fronthauls and multiple component carriers)."; + } + } + + list low-level-tx-endpoints { + key name; + description + "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address + which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type string; + must "boolean(../../static-low-level-tx-endpoints[name = current()])" { + error-message "name you want to set does not exist in /static-low-level-tx-endpoints/name"; + } + + description + "Unique name of low-level-tx-endpoint object."; + } + + container local-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + description + "Contains local address of low level TX endpoint offered by Netconf server."; + } + } + + + list low-level-rx-endpoints { + key name; + description + "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address + which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type string; + must "boolean(../../static-low-level-rx-endpoints[name = current()])" { + error-message "name you want to set does not exist in /static-low-level-rx-endpoints/name"; + } + + description + "Unique name of low-level-rx-endpoint object."; + } + + container local-address { + uses eaxc; + + must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) = + '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" { + error-message "Bitmasks for eaxc-id is badly formatted"; + } + + description + "Contains local address of low level RX endpoint offered by Netconf server."; + } + } + + list tx-array-carriers { + key name; + description + "Object model for tx-array-carriers configuration"; + + leaf name { + type string; + + description + "Unique name of tx-array-carriers object."; + } + + leaf absolute-frequency-center { + type uint32; + mandatory true; + description + "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal."; + } + + 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 power { + type decimal64 { + fraction-digits 4; + } + mandatory true; + + description + "Transmission power in dBm. Value applicable to each array element carrier belonging to array carrier."; + } + + 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 tx-array-carriers. Note that Netconf server uses state parameter + to indicate actual state of tx-array-carriers operation. When tx-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 + "tx-array-carrier is not active - transmission of signal is disabled."; + } + enum BUSY { + description + "tx-array-carrier is processing an operation requested by change of active parameter. + When tx-array-carriers is BUSY the transmission of signal is not guaranteed."; + } + enum READY { + description + "tx-array-carrier had completed activation operation - is active and transmission of signal is ongoing."; + } + } + config false; + + description + "Indicates state of tx-array-carriers activation operation"; + } + + leaf type { + type enumeration { + enum NR { + description + "5G technology"; + } + } + config false; + + description + "Type of carrier. Indicates array-carrier technology."; + } + + leaf fft-size { + type uint32; + + description + "The FFT size defines the number of bins used for dividing the window into equal strips, or bins. + Hence, a bin is a spectrum sample, and defines the frequency resolution of the window."; + } + + leaf downlink-radio-frame-offset { + type uint32 { + range 0..12288000; + } + mandatory true; + + description + "This parameter is used for offsetting the starting position of 10ms radio frame. + Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth. + Note2: Unit is 1/1.2288e9 Hz and accuracy is 1/4 Tc. Then, its range is calculated 0..12288000."; + } + + leaf downlink-sfn-offset { + type int16 { + range -32768..32767; + } + mandatory true; + + description + "This parameter is used for offsetting SFN value. + Unit is in 10ms. + Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth."; + } + + leaf default-scs { + 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_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + + mandatory true; + + description + "Sub-carrier spacing configuration"; + } + + list scs-specific-config { + key scs; + description + "List of scs-specific configurations"; + uses scs-config; + } + leaf cp-length { + type uint32; + description + "CP length woud be determined by deployment types that has different + delay spread requirements, and/or determined by frequency bands, service type + or determined by whether beam forming technology is used or not"; + } + } + + list rx-array-carriers { + key name; + description + "Object model for rx-array-carriers configuration"; + + leaf name { + type string; + description + "Unique name of rx-array-carriers object."; + } + + + leaf absolute-frequency-center { + type uint32; + mandatory true; + description + "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal."; + } + leaf center-of-channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Center frequency of channel bandwidth. 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 rx-array-carriers. Note that Netconf server uses state parameter + to indicate actual state of rx-array-carriers operation. When rx-array-carriers is in sleep status, + Netconf server rejects all other operation request to rx-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 + "rx-array-carrier is not active - transmission of signal is disabled."; + } + enum BUSY { + description + "rx-array-carrier is processing an operation requested by change of active parameter. + When tx-array-carriers is BUSY the transmission of signal is not guaranteed."; + } + enum READY { + description + "rx-array-carrier had completed activation operation - is active and transmission of signal is ongoing."; + } + } + config false; + + description + "Indicates state of rx-array-carriers activation operation"; + } + + leaf type { + type enumeration { + enum NR { + description + "5G technology"; + } + } + config false; + + description + "Type of carrier. Indicates array-carrier technology."; + } + + leaf fft-size { + type uint32; + description + "FFT size"; + } + + leaf ul-fft-sampling-offset { + type uint32; + description + "uplink FFT sampling offset"; + } + + leaf n-ta-offset { + type uint32; + description + "Value of configurable N-TA offset"; + } + leaf default-scs { + 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_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + mandatory true; + + description + "Sub-carrier spacing configuration"; + } + + list scs-specific-config { + key scs; + description + "List of static scs-specific configurations"; + uses scs-config; + } + + + leaf cp-length { + type uint32; + description + "CP length woud be determined by deployment types that has different + delay spread requirements, and/or determined by frequency bands, service type + or determined by whether beam forming technology is used or not"; + } + + } + + list tx-arrays { + key name; + config false; + description + "Object model for tx-arrays configuration"; + + leaf name { + type string; + description + "Unique name of tx-arrays object."; + } + + leaf polarisation { + type int8 { + range "-45 | 0 | 45 | 90"; + } + description + "This parameter informing which polarization is served by particular antenna array + as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg. + Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning: + either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band. + Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected."; + } + + leaf panel-id { + type uint8; + description + "This parameter informing panel particular antenna array is built into. + Intended use is to indicate if two orthogonal arrays occupy the same physical panel (e.g. as cross-polarized + radiators) or if arrays of different polarizations are built into physically separated panels."; + } + + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multiband solutions."; + } + } + + list rx-arrays { + key name; + config false; + description + "Object model for rx-arrays configuration"; + + leaf name { + type string; + description + "Unique name of rx-arrays object."; + } + + leaf polarisation { + type int8 { + range "-45 | 0 | 45 | 90"; + } + description + "This parameter informing which polarization is served by particular antenna array + as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg. + Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning: + either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band. + Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected."; + } + + leaf panel-id { + type uint8; + description + "This parameter informing panel particular antenna array is built + into. + Intended use is to indicate if two orthogonal arrays occupy the same + physical panel (e.g. as cross-polarized radiators) or if arrays of + different polarizations are built into physically separated panels."; + } + + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multiband solutions."; + } + } + } + + grouping scs-config { + description + "It groups all parameters related to SCS configuration"; + + leaf scs { + 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_5 { + value 14; + description + "5kHz sub carrier spacing"; + } + } + description + "Sub-carrier spacing configuration"; + } + leaf offset-to-absolute-frequency-center { + type int32; + mandatory true; + description + "Offset to center-of-carrier-bandwidth. Mostly negative value. Granularity of this parameter is 0.5 SCS"; + } + + leaf number-of-prbs { + type uint32; + mandatory true; + description + "Number of physical resource blocks."; + } + } + + +}