From 5a4d5f6105bb5f5fcf3ba92d2e50346766f2f485 Mon Sep 17 00:00:00 2001 From: Martin Skorupski Date: Fri, 31 Mar 2023 14:46:00 +0200 Subject: [PATCH] Add WG4 yangs published 2023-03 (v11) Issue-ID: OAM-322 Change-Id: I2f01d539fc367c6d943ebd0798fd7d5e5f197008 Signed-off-by: Martin Skorupski --- .../o-ran/ru-fh/o-ran-ald-port@2021-12-01.yang | 259 ++ .../o-ran/ru-fh/o-ran-ald@2021-12-01.yang | 172 + .../o-ran-antenna-calibration@2021-12-01.yang | 695 ++++ .../o-ran/ru-fh/o-ran-beamforming@2022-12-05.yang | 987 +++++ .../o-ran/ru-fh/o-ran-certificates@2022-08-15.yang | 83 + .../o-ran-common-identity-refs@2022-08-15.yang | 197 + .../ru-fh/o-ran-common-yang-types@2022-08-15.yang | 419 ++ .../o-ran-compression-factors@2021-12-01.yang | 567 +++ .../ru-fh/o-ran-delay-management@2022-08-15.yang | 414 ++ .../o-ran/ru-fh/o-ran-dhcp@2022-08-15.yang | 408 ++ .../o-ran/ru-fh/o-ran-ecpri-delay@2021-12-01.yang | 214 ++ .../o-ran-ethernet-forwarding@2021-12-01.yang | 136 + .../o-ran/ru-fh/o-ran-externalio@2019-07-03.yang | 2 + .../o-ran/ru-fh/o-ran-fan@2021-12-01.yang | 135 + .../ru-fh/o-ran-file-management@2022-08-15.yang | 270 ++ .../published/o-ran/ru-fh/o-ran-fm@2022-08-15.yang | 343 ++ .../o-ran/ru-fh/o-ran-hardware@2022-12-05.yang | 420 ++ .../o-ran/ru-fh/o-ran-interfaces@2021-12-01.yang | 508 +++ .../ru-fh/o-ran-laa-operations@2021-12-01.yang | 272 ++ .../o-ran/ru-fh/o-ran-laa@2022-08-15.yang | 143 + .../o-ran/ru-fh/o-ran-lbm@2021-12-01.yang | 327 ++ .../o-ran/ru-fh/o-ran-module-cap@2022-12-05.yang | 1021 +++++ .../o-ran/ru-fh/o-ran-mplane-int@2021-12-01.yang | 286 ++ .../o-ran/ru-fh/o-ran-operations@2022-08-15.yang | 378 ++ .../o-ran-performance-management@2022-08-15.yang | 1863 +++++++++ .../ru-fh/o-ran-processing-element@2022-08-15.yang | 475 +++ .../o-ran/ru-fh/o-ran-shared-cell@2022-12-05.yang | 883 +++++ .../o-ran-software-management@2022-12-05.yang | 700 ++++ .../o-ran/ru-fh/o-ran-supervision@2022-12-05.yang | 370 ++ .../o-ran/ru-fh/o-ran-sync@2022-08-15.yang | 1025 +++++ .../o-ran/ru-fh/o-ran-trace@2022-08-15.yang | 123 + .../o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang | 592 +++ .../ru-fh/o-ran-troubleshooting@2022-08-15.yang | 117 + .../o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang | 1 + .../o-ran/ru-fh/o-ran-uplane-conf@2022-12-05.yang | 4058 ++++++++++++++++++++ .../o-ran/ru-fh/o-ran-usermgmt@2022-08-15.yang | 243 ++ .../o-ran/ru-fh/o-ran-wg4-features@2022-12-05.yang | 251 ++ 37 files changed, 19357 insertions(+) create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-ald-port@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-ald@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-beamforming@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-certificates@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-common-identity-refs@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-common-yang-types@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-delay-management@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-ethernet-forwarding@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-fan@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-file-management@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-fm@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-interfaces@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-laa-operations@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-laa@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-lbm@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-module-cap@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-mplane-int@2021-12-01.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-operations@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-performance-management@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-processing-element@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-software-management@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-sync@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-trace@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2022-12-05.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2022-08-15.yang create mode 100644 data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2022-12-05.yang diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-ald-port@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-ald-port@2021-12-01.yang new file mode 100644 index 0000000..728611a --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-ald-port@2021-12-01.yang @@ -0,0 +1,259 @@ +module o-ran-ald-port { + yang-version 1.1; + namespace "urn:o-ran:ald-port:1.0"; + prefix "o-ran-ald-port"; + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the input state and output configuration for + the Antenna Line Device capability. + + Copyright 2021 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 "2021-12-01" { + description + "version 1.3.0 + + 1) Typographical corrections for british english."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2021-03-22" { + description + "version 1.2.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to introduce groupings."; + + 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 OVERCURRENT-SUPPORTED { + description + "This feature indicates that the equipment supports the over-current notification + capability."; + } + +// Groupings + + grouping aldport-group { + description "a port grouping "; + leaf over-current-supported { + type boolean; + config false; + description + "Set to TRUE when the equipment supports over-current notifications"; + } + + list ald-port { + key "name"; + + config false; + + description + "Leaf nodes describing ALD Port"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique that identifies a ald port instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + + leaf port-id { + type uint8; + config false; + mandatory true; + + description + "A number which identifies an ALD Port. + The number of the Physical ALD port connector in the module. + If the module supports 2 ALD Port connectors, use 0 and 1."; + } + + leaf dc-control-support{ + type boolean; + config false; + mandatory true; + + description + "It is shown that on/off in the DC power supply is possible. + In case of False, power supply is always on."; + } + + leaf dc-enabled-status { + when "../dc-control-support = 'true'"; + type boolean; + default false; + description + "Status of DC voltage enabled on antenna line. + Valid only in case dc-control-support is true."; + } + + leaf supported-connector{ + type enumeration { + enum ANTENNA_CONNECTOR { + description + "This ALD port is related to antenna connector"; + } + enum RS485_PORT { + description + "This ALD port is related to RS485 port"; + } + } + config false; + mandatory true; + + description + "Informs about the connectors of Module which ALDs are connected to. + This value is depending on HW design."; + } + } + + list ald-port-dc-control { + key "name"; + + description + "Container needed to manage DC on ALD ports"; + + leaf name { + type leafref { + path "/ald-ports-io/ald-port/name"; + require-instance false; + } + mandatory true; + + description + "Name derived from unmodifiable list ald-port"; + } + + leaf dc-enabled{ + type boolean; + + description + "If dc-control-support is true case, this leaf is effective. + If dc-control-support is not true this leaf makes no action + In case of true, the power supply shall be turned on."; + } + } + } + + grouping overcurrent-group { + description "overcurrent group"; + container overload-condition { + description + "Container used in notification"; + + leaf-list overloaded-ports { + type leafref { + path "/ald-ports-io/ald-port/name"; + } + description + "List of overloaded ports"; + } + } + } + + grouping dc-enabled-group { + description "dc enabled group"; + list ald-port { + key name; + description + "list of ald-ports that has its dc-enabled-status changed"; + leaf name{ + type leafref { + path "/ald-ports-io/ald-port/name"; + } + description "Name of port which has changed"; + } + leaf dc-enabled-status{ + type leafref { + path "/ald-ports-io/ald-port/dc-enabled-status"; + } + description "New status of dc-enabled-status"; + } + } + } + +// Top Level Container + + container ald-ports-io { + description + "ALD port information. + ALD port of the equipment that can be used to connect External Equipment (Antenna Line Devices). + Communication uses AISG over HDLC. + Physical connection depends on connector type offered by the port (RS-485 or antenna line) + Note: Single instance of ALD Port can point to more than one antenna line devices."; + + uses aldport-group; + } + + notification overcurrent-report { + if-feature OVERCURRENT-SUPPORTED; + + description + "The equipment is able to report overcurrent condition about Port. + This function is depending on HW design. + The notification depend on power consumption which connected ALD devices and module."; + + uses overcurrent-group; + } + + notification dc-enabled-status-change { + description + "The equipment is able to report the change of 'dc-enabled-status' of the ald-port. + This is applicable when the leaf 'dc-control-support' of the ald-pot is 'TRUE'."; + + uses dc-enabled-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-ald@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-ald@2021-12-01.yang new file mode 100644 index 0000000..1042b5f --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-ald@2021-12-01.yang @@ -0,0 +1,172 @@ +module o-ran-ald { + yang-version 1.1; + namespace "urn:o-ran:ald:1.0"; + prefix "o-ran-ald"; + + import o-ran-ald-port { + prefix "ap"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the module for the ALD communication. + + 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 "2021-12-01" { + description + "version 1.2.0 + + 1) Typographical corrections."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to introduce groupings."; + + 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"; + } + + grouping ald-input { + description "a grouping for ald input"; + leaf port-id { + type leafref { + path "/ap:ald-ports-io/ap:ald-port/ap:port-id"; + } + mandatory true; + description + "Unique ALD port identifier reported by radio"; + } + + leaf ald-req-msg { + type binary { + length "0..1200"; + } + + description + "Response message to be forwarded to ALD in type of binary-string"; + } + } + + grouping ald-output { + description "a grouping for ald output"; + leaf port-id { + type leafref { + path "/ap:ald-ports-io/ap:ald-port/ap:port-id"; + } + mandatory true; + description + "Unique ALD port identifier reported by radio"; + } + + leaf status { + type enumeration { + enum ACCEPTED { + description + "Operation was accepted, message was processed towards ALD and response is provided"; + } + enum REJECTED { + description + "Operation was rejected by O-RU"; + } + } + mandatory true; + + description + "Status of RPC handling seen from equipment perspective"; + } + + leaf error-message { + when "../status='REJECTED'"; + type string; + + description + "Detailed error message when the status is rejected. E.g. wrong ALD port identifier was used in RPC received from NETCONF Client"; + } + + leaf ald-resp-msg { + type binary { + length "0..1200"; + } + + description + "Response message forwarded from ALD in type of binary-string"; + } + + leaf frames-with-wrong-crc { + type uint32; + + description + "Number of frames with incorrect CRC (FCS) received from ALD - running counter"; + } + + leaf frames-without-stop-flag { + type uint32; + + description + "Number of frames without stop flag received from ALD - running counter"; + } + + leaf number-of-received-octets { + type uint32; + + description + "Number of octets received from HDLC bus - running counter"; + } + } + // rpc-statements + rpc ald-communication { + description + "RPC to support communication between O-DU and Antenna Line Devices"; + + input { + uses ald-input; + } + + output { + uses ald-output; + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2021-12-01.yang new file mode 100644 index 0000000..47941e7 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2021-12-01.yang @@ -0,0 +1,695 @@ +module o-ran-antenna-calibration { + yang-version 1.1; + namespace "urn:o-ran:antcal:1.0"; + prefix "o-ran-antcal"; + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the configuration required for supporting the optional + antenna calibration functionality. + + Copyright 2021 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: + + * Redistribution of source code must retain the above copyright notice, + this list of conditions and the above disclaimer. + * Redistribution 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 2021-12-01 { + description + "version 7.1.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.MP-v07.00"; + } + + revision 2021-07-26 { + description + "version 7.0.0 + + 1) O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE is added as optional feature + to provide support for multiple antenna calibration time resources configurations. + 2) Flag for O-DU to control if O-RU is allowed to support this feature + 'coordinated-calibration-multiple-time-resources-allowed' + 3) defined grouping 'antenna-calibration-multiple-time-resource' from which list + for supporting multiple antenna calibration time resource configuration is supported. + 4) created new container 'antenna-calibration-multiple-time-resource' with list + 'antenna-calibration-multiple-time-resource-list' and key to index the list + 'antenna-calibration-time-resource-index'. + 5) added new notification 'antenna-calibration-multiple-time-resource-params' with + 'antenna-calibration-time-resource-index' as a leaf to indicate index of time resource + 6) Added support for configured preparedness timer for co-ordinated calibration"; + + reference "ORAN-WG4.MP-v07.00"; + } + + revision 2021-03-22 { + description + "version 5.1.0 + + 1) removing non-ASCII characters in model."; + + reference "ORAN-WG4.MP-v05.00"; + } + + + revision 2020-12-10 { + description + "version 5.0.0 + + 1) O-RU-COORDINATED-ANT-CAL is added as optional feature + to provide the antenna calibration without RPC + on the condition that coordinated-calibration-support is true + and coordinated-calibration-allowed is true."; + + reference "ORAN-WG4.MP-v05.00"; + } + + revision 2019-07-03 { + description + "version 1.0.0 + + 1) Newly introduced model for supporting optional + antenna calibration functionality"; + + reference "ORAN-WG4.MP-v02.00"; + } + + feature O-RU-COORDINATED-ANT-CAL { + description + "Indicates that the O-RU needs user traffic to be co-ordinated from O-DU for antenna calibration."; + } + + feature O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE { + description + "Indicates O-RU support for antenna calibration with multiple timing resource sets. Refer Section + 'Calibration with multiple timing resource sets' of M-Plane specification v7"; + } + + grouping antenna-calibration-capabilities { + description "container for collection of leafs for antenna calibration"; + + leaf self-calibration-support { + type boolean; + default false; + description + "Indicates whether O-RU supports self-calibration or not. + + When true, indicates O-RU can initiate calibration without receiving an + RPC and/or impacting simultaneous CU-plane operation"; + } + leaf coordinated-calibration-support { + if-feature O-RU-COORDINATED-ANT-CAL; + type boolean; + default false; + description + "True means the O-RU is able to determine priori the time-frequency + resources required for self-calibration and indicate those to the O-DU + in the antenna-calibration-coordinated notification."; + } + leaf number-of-calibration-symbols-per-block-dl { + type uint8 { + range "1..max"; + } + units symbols; + mandatory true; + description + "Indicates how many consecutive symbols are required for DL antenna + calibration operation"; + } + leaf number-of-calibration-symbols-per-block-ul { + type uint8 { + range "1..max"; + } + units symbols; + mandatory true; + description + "Indicates how many consecutive symbols are required for UL antenna + calibration operation"; + } + leaf interval-between-calibration-blocks { + type uint8; + units symbols; + description + "if time interval is required between consecutive antenna calibration + operation, defines this time value as unit of symbols. + + A common value is used here for the intervals + between DL-DL blocks, UL-UL blocks, DL-UL blocks and UL-DL blocks, + which is the largest minimum interval required between any two adjacent + calibration blocks."; + } + leaf number-of-calibration-blocks-per-step-dl { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many blocks are required for one step of DL antenna + calibration operation"; + } + leaf number-of-calibration-blocks-per-step-ul { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many blocks are required for one step of UL antenna + calibration operation"; + } + leaf interval-between-calibration-steps { + type uint8; + units radio-frames; + description + "If time interval is required between consecutive step of antenna + calibration operation, defines this time value as unit of radio frames"; + } + leaf number-of-calibration-steps { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many steps are required for whole DL/UL antenna + calibration operation"; + } + leaf calibration-period { + if-feature O-RU-COORDINATED-ANT-CAL; + type uint16; + units minutes; + description "periodical interval between antenna calibrations in the case of support of feature O-RU-COORDINATED-ANT-CAL"; + } + leaf configured-preparation-timer-supported { + if-feature O-RU-COORDINATED-ANT-CAL; + type boolean; + default false; + description + "indicates if the O-RU supports configuration of the preparedness timer + that controls how far in advance of the co-ordinated self calibration + procedure the O-RU is required to send the notification of impacted + resources."; + } + } + + grouping antenna-calibration-multiple-time-resource { + description + "Grouping for collection of leafs for antenna calibration capability of O-RU supporting + multiple time resource when feature O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE + is supported in the O-RU"; + + leaf number-of-calibration-symbols-per-block-dl { + type uint8 { + range "1..max"; + } + units symbols; + mandatory true; + description + "Indicates how many consecutive symbols are required for DL antenna + calibration operation"; + } + leaf number-of-calibration-symbols-per-block-ul { + type uint8 { + range "1..max"; + } + units symbols; + mandatory true; + description + "Indicates how many consecutive symbols are required for UL antenna + calibration operation"; + } + leaf interval-between-calibration-blocks { + type uint8; + units symbols; + description + "if time interval is required between consecutive antenna calibration + operation, defines this time value as unit of symbols. + + A common value is used here for the intervals + between DL-DL blocks, UL-UL blocks, DL-UL blocks and UL-DL blocks, + which is the largest minimum interval required between any two adjacent + calibration blocks."; + } + leaf number-of-calibration-blocks-per-step-dl { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many blocks are required for one step of DL antenna + calibration operation"; + } + leaf number-of-calibration-blocks-per-step-ul { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many blocks are required for one step of UL antenna + calibration operation"; + } + leaf interval-between-calibration-steps { + type uint8; + units radio-frames; + description + "If time interval is required between consecutive step of antenna + calibration operation, defines this time value as unit of radio frames"; + } + leaf number-of-calibration-steps { + type uint8 { + range "1..max"; + } + mandatory true; + description + "Indicates how many steps are required for whole DL/UL antenna + calibration operation"; + } + leaf calibration-period { + if-feature O-RU-COORDINATED-ANT-CAL; + type uint16; + units minutes; + description "periodical interval between antenna calibrations in the case of support of feature O-RU-COORDINATED-ANT-CAL"; + } + } + + grouping antenna-calibration { + container antenna-calibration-capabilities { + config false; + description + "Describes the antenna calibration capabilities"; + uses antenna-calibration-capabilities; + } + container self-calibration-policy { + leaf self-calibration-allowed { + type boolean; + default false; + description + "whether the self-calibration is allowed by operator. + Note, self-calibration-allowed and coordinated-calibration-allowed cannot both be set to true"; + } + leaf coordinated-calibration-allowed { + if-feature O-RU-COORDINATED-ANT-CAL; + type boolean; + must "../self-calibration-allowed = 'false'"; + default false; + description + "whether the coordinated-calibration is allowed by operator. + + True means that O-DU may beneficially use the indicated time-frequency resources + to adapt its operation during the antenna calibration operation, + e.g., consider the time-frequency resources as reserved for calibration. + Both calibrations (self-calibration-allowed and coordinated-calibration-support) disallowed + or one of them allowed only"; + } + leaf coordinated-ant-calib-prep-timer { + if-feature O-RU-COORDINATED-ANT-CAL; + type uint8 { + range "2..10|60"; + } + units seconds; + must "../coordinated-calibration-allowed = 'true'"; + default 60; + description + "minimum time between O-RU sending notification of time-frequeny resources + for co-ordinated calibration to O-DU and O-RU starting co-ordinated + self-calibration procedure. + + Note, the default value of 60 seconds is to accommodate earlier versions + which hard coded that value in the O-RAN.WG4.MP.0 specification. + + An O-RU that has set configured-preparation-timer-supported=false shall + always use the default value of 60 seconds"; + } + leaf coordinated-calibration-multiple-time-resources-allowed { + if-feature "O-RU-COORDINATED-ANT-CAL and O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE"; + type boolean; + default false; + description + "TRUE: O-RU is allowed to request for this calibration, FALSE: O-RU is prohibited to use this calibration"; + } + description + "Describes the self calibration policies and configuration of the operator"; + } + + container antenna-calibration-multiple-time-resource { + if-feature "O-RU-COORDINATED-ANT-CAL and O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE"; + config false; + list antenna-calibration-multiple-time-resource-list { + key "antenna-calibration-time-resource-index"; + uses antenna-calibration-multiple-time-resource; + + leaf antenna-calibration-time-resource-index { + type uint8; + description + "Key for indexing 'antenna-calibration-multiple-time-resource-list'"; + } + description + "List of antenna calibration time resource configuration indexed by + antenna calibration time resource index"; + } + description + "Container to support multiple antenna calibration resource sets by defining + multiple calibration resources sets for different calibration types."; + } + + description + "Describe the grouping set of antenna calibration"; + } + + grouping antenna-calibration-data { + description "information set for the operation of antenna calibration"; + + leaf symbol-bitmask-dl { + type string { + length "14"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating DL calibration symbol within a calibration slot. + First character in the string indicate first symbol, + next character in the string indicate second symbol and so on. + Value 1 indicates that the symbol may be used for calibration + and 0 means the symbol shall not be used for calibration."; + } + leaf symbol-bitmask-ul { + type string { + length "14"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating UL calibration symbol within a calibration slot. + First character in the string indicate first symbol, + next character in the string indicate second symbol and so on. + Value 1 indicates that the symbol may be used for calibration + and 0 means the symbol shall not be used for calibration."; + } + leaf slot-bitmask-dl { + type string { + length "10..255"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating DL calibration slot within a calibration frame. + First character in the string indicate first slot, + next character in the string indicate second slot and so on. + Value 1 indicates that the slot may be used for calibration + and 0 means the slot shall not be used for calibration."; + } + leaf slot-bitmask-ul { + type string { + length "10..255"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating UL calibration slot within a calibration frame. + First character in the string indicate first slot, + next character in the string indicate second slot and so on. + Value 1 indicates that the slot may be used for calibration + and 0 means the slot shall not be used for calibration."; + } + leaf frame-bitmask-dl { + type string { + length "1..255"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating DL calibration frame within a calibration step. + First character in the string indicate first radio frame equal to + the start-SFN, next character in the string indicate the next frame + and so on. + + Value 1 indicates that the frame may be used for calibration + and 0 means the frame shall not be used for calibration."; + } + leaf frame-bitmask-ul { + type string { + length "1..255"; + pattern "[01]*"; + } + mandatory true; + description + "Bit-mask indicating UL calibration frame within a calibration step. + First character in the string indicate first radio frame equal to + the start-SFN, next character in the string indicate the next frame + and so on. + + Value 1 indicates that the frame is may be used for calibration + and 0 means the frame shall not be used for calibration."; + } + leaf calibration-step-size { + type uint8; + mandatory true; + description " Number of frames within a calibration step"; + } + leaf calibration-step-number { + type uint8; + mandatory true; + description "Number of calibration steps"; + } + leaf start-sfn { + type uint16 { + range "0..1023"; + } + mandatory true; + description "start SFN number of the first calibration step"; + } + } + + container antenna-calibration { + uses antenna-calibration; + description + "Describes the antenna calibration top node"; + } + + rpc start-antenna-calibration { + description + "The antenna calibration operation can start when NETCONF client sends a + calibration start command with resource allocation parameters. + These parameters indicate how the O-RU can perform the antenna + calibration operation; at which Symbol, Slot, and Frame. + This scheduling information can be generated by O-RU itself. + However, in a dynamic TDD environment, the DL and UL configuration + is only determined and known by O-DU. Consequently, only O-DU (NETCONF + client ) can determine and configure the scheduling and resource + allocation permitted for use by the antenna calibration operation"; + input { + uses antenna-calibration-data; + } + output { + leaf status { + type enumeration { + enum ACCEPTED { + description + "Status information to indicate that O-RU accepted RPC + antenna calibration start request"; + } + enum REJECTED { + description + "Status information to indicate that O-RU rejected RPC antenna + calibration start request"; + } + } + mandatory true; + description + "Status of whether antenna calibration trigger by RPC is accepted + by the O-RU"; + } + leaf error-message { + when "../status='REJECTED'"; + type string; + description + "Detailed error Message when the status is rejected, e.g., + because O-RU can not start antenna calibration + such as already running antenna calibration, + resource mask mismatch with O-RU antenna calibration capability, + overlapped DL and UL masks, insufficient memory, O-RU internal reason"; + } + } + } + + notification antenna-calibration-required { + list dl-calibration-frequency-chunk { + leaf start-calibration-frequency-dl { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + leaf end-calibration-frequency-dl { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + description + "min/max frequency of DL spectrum chunk affected by calibration process"; + } + list ul-calibration-frequency-chunk { + leaf start-calibration-frequency-ul { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + leaf end-calibration-frequency-ul { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + description + "min/max frequency of UL spectrum chunk affected by calibration process"; + } + + description + "this notification indicates that the antenna calibration is required in O-RU"; + } + + notification antenna-calibration-coordinated { + if-feature O-RU-COORDINATED-ANT-CAL; + list dl-calibration-frequency-chunk { + leaf start-calibration-frequency-dl { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + leaf end-calibration-frequency-dl { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + description + "min/max frequency of DL spectrum chunk affected by calibration process"; + } + list ul-calibration-frequency-chunk { + leaf start-calibration-frequency-ul { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + leaf end-calibration-frequency-ul { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + description + "min/max frequency of UL spectrum chunk affected by calibration process"; + } + uses antenna-calibration-data { + description + "In the case of support of feature O-RU-COORDINATED-ANT-CAL, + time-frequency resource determined by O-RU will be included"; + } + + description + "this notification indicates that co-ordinated antenna calibration is provided in O-RU. + It indicates the time-frequency resources will be sent to a subscribed O-DU at least 60 seconds + before the operation of the co-ordinated antenna calibration procedure."; + } + + notification antenna-calibration-result { + leaf status { + type enumeration { + enum SUCCESS { + description "O-RU has succeeded in calibrating its antenna"; + } + enum FAILURE { + description + "O-RU attemted to calibrate its antenna, but the procedure failed."; + } + } + mandatory true; + description + "Status of the antenna calibration procedure which has been triggered + by accepting an start-antenna-calibration RPC."; + } + leaf detailed-reason { + when "../status='FAILURE'"; + type string; + description + "Detailed reason when the status is FAILURE, e.g., + O-RU cannot complete the antenna calibration + because of lack of memory, self-calibration failure, etc"; + } + description + "This notification indicates the antenna calibration result"; + } + + notification antenna-calibration-multiple-time-resource-params { + if-feature "O-RU-COORDINATED-ANT-CAL and O-RU-COORDINATED-ANT-CAL-MULTIPLE-TIME-RESOURCE"; + leaf antenna-calibration-time-resource-index { + type uint8; + description + "Index to use applicable antenna calibration time resources from the + list 'antenna-calibration-multiple-time-resource-list'"; + } + list dl-calibration-frequency-chunk { + leaf start-calibration-frequency-dl { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + leaf end-calibration-frequency-dl { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + DL antenna calibration operation."; + } + description + "min/max frequency of DL spectrum chunk affected by calibration process"; + } + list ul-calibration-frequency-chunk { + leaf start-calibration-frequency-ul { + type uint64; + description + "lowest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + leaf end-calibration-frequency-ul { + type uint64; + description + "highest frequency value in Hz of the frequency range is required for + UL antenna calibration operation."; + } + description + "min/max frequency of UL spectrum chunk affected by calibration process"; + } + + description + "This notification indicates sending parameters related to supporting antenna calibration + with multiple time resource"; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-beamforming@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-beamforming@2022-12-05.yang new file mode 100644 index 0000000..1f05383 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-beamforming@2022-12-05.yang @@ -0,0 +1,987 @@ +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"; + revision-date 2021-12-01; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the beamforming capabilities of an O-RU. + Only O-RUs that support beamforming shall support this module. + + Copyright 2021 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 "2022-12-05" { + description + "version 11.0.0 + + 1) introduce p-dash parameter"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + revision "2022-08-15" { + description + "version 8.1.0 + + 1) clarified description statements for component carrier + 2) clarified path/folder description"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) Configuration for Beamforming weights were added together with changes and updates + to compressions."; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-07-26" { + description + "version 2.3.0 + + 1) Ensuring beam-ids can only be 15 bits. + 2) Correcting maximum number of UEs from 8 bit to 15 bit"; + + reference "ORAN-WG4.M.0-v02.00"; + } + revision "2021-03-22" { + description + "version 2.2.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v02.00"; + } + + revision "2020-04-17" { + description + "version 2.1.0 + + 1) corrected error where typedef refers to deprecated beam-id by + introducing new typedef and deprecating leafs defining coarse/fine + relationships that refer to beam-id and replacing with new ones based + on capability grouping"; + + reference "ORAN-WG4.M.0-v02.00"; + } + + revision "2019-07-03" { + description + "version 2.0.0 + + 1) re-designed/switched from per band to per capabilities-group for + addition flexibility + 2) added in new beam tilt feature + 3) adding possibilities to provide more compression types for beamforming + 4) Adding possibility to configure beamforming per capabilities group + 5) corrected xPATH boolean check from TRUE to true"; + + reference "ORAN-WG4.M.0-v02.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"; + } + + feature BEAM-TILT { + description + "This feature indicates that the O-RU supports an optional feature to + allows to shift beam characteristic of all predefined-beams in elevation + and/or azimuth direction (i.e. changing the service area or sector + coverage) while preserving the beam adjacency among the beams within + the service area "; + } + + 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."; + } + + typedef beam-capabilities-reference { + type leafref { + path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/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 based on capability group."; + } + + grouping beamforming-parameters { + leaf max-number-of-beam-ids { + type uint16 { + range "min .. 32767"; + } + + mandatory true; + description + "Maximum number of supported Beam ID assigned to domain beamforming control"; + } + + leaf initial-beam-id { + type uint16 { + range "min .. 32767"; + } + 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 Component Carrier"; + } + + 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:bf-compression-details; + + list additional-compression-method-supported { + uses cf:bf-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:bf-compression-details; + + list additional-compression-method-supported { + uses cf:bf-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:bf-compression-details; + + list additional-compression-method-supported { + uses cf:bf-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."; + } + leaf p-dash { + type uint16; + description + "This parameters specifies the dimesionality of the time-domain beamforming operation. Refer to description of parameter p' + in clause 12.4.3.4.2 of CUS-Plane specification. This parameter is required to define the size of time-domain beamforming + vector in case of hybrid/time-domain beamforming is supported by O-RU"; + } + } + + 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; + status deprecated; + description + "List of related coarse/fine beam."; + } + + leaf-list neighbour-beams { + type beam-reference; + status deprecated; + description + "A list of neighbour beams which might restrict co-scheduling due + to interference."; + } + + leaf-list coarse-fine-beam-capability-based-relation { + type beam-capabilities-reference; + description + "List of related coarse/fine beam."; + } + + leaf-list neighbour-beams-capability-based { + type beam-capabilities-reference; + description + "A list of neighbour beams which might restrict co-scheduling due + to interference."; + } + } + + grouping beamforming-properties-element { + description + "Grouping for beamforming-properties element"; + + leaf beam-id { + type uint16 { + range "min .. 32767"; + } + 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 cap-group { + description + "Capabilities group grouping"; + + leaf capabilities-group { + type leafref { + path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group"; + } + mandatory true; + description + "Capabilities group identification number to which it refers."; + } + + } + + 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' indicates 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 writable 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; + config false; + description + "Informs if beamforming can be controlled providing attributes to O-RU + (like angles, beamwidth)."; + } + + leaf beamforming-trough-ue-channel-info-supported { + type boolean; + config false; + 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; + config false; + status deprecated; + description "beamforming information per band"; + uses per-band-config-element; + } + + list capabilities-groups { + key capabilities-group; + description + "Capabilities groups identification number assigned to be referenced by operations + and notifications. + This also help to group particular beamforming capabilities and bind it with arrays"; + + leaf capabilities-group { + type uint16; + description + "Capabilities group identification number. Number which is used just for reference in RPC + and notification"; + } + 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 support 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; + status deprecated; + description + "Indicates the maximum number of UE -specific channel information + data sets supported by the O-RU. + + Leaf is deprecated as it only enabled a maximum of 255 UEs to be supported, + compared with ST5 and ST6 which supports a 15 bit value. + + NETCONF client instead uses max-number-ues-15bit schema node"; + } + leaf max-number-of-ues-15bit { + type uint16 { + range "1 .. 32767"; + } + description + "Indicates the maximum number of UE -specific channel information + data sets supported by the O-RU, + It is restricted to 15 bits value because of the 15bits ueId field in ST5 and ST6"; + } + + leaf-list channel-information-compression-method-supported { + if-feature "feat:CHANNEL-INFORMATION-COMPRESSION"; + type cf:ci-compression-method-def; + description + "list of channel information compression methods supported by the O-RU"; + } + + leaf dynamic-channel-information-compression-supported { + if-feature "feat:CHANNEL-INFORMATION-COMPRESSION"; + type boolean; + description + "Informs if dynamic channel information compression supported by the O-RU, + if its value is true, the compression method and IQ bit width can be dynamic in ciCompHdr; + if its value is false, only static configuration compression configuration is supported, and ciCompHdr + shall be set to a fixed value corresponding to the static configured compression method and IQ bit width."; + } + } + container operational-properties { + if-feature MODIFY-BF-CONFIG; + config false; + description "properties for dynamic beam weight/attribute support"; + + uses operational-properties; + } + } + + grouping beam-tilt-configuration { + description "grouping for beam-tilt feature"; + list predefined-beam-tilt-offset { + if-feature BEAM-TILT; + key capabilities-group; + description "Configuration of the predefined-beam-tilt-offset per capabilities-group"; + leaf capabilities-group { + type leafref { + path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group"; + require-instance false; + } + mandatory true; + description + "Capabilities group identification number for which + the predefined-beam-tilt-offset relates to"; + } + leaf elevation-tilt-offset-angle { + type int16 { + range "-90..90"; + } + units degrees; + default 0; + description + "Value 0 represents the default service area of the predefined-beams + in elevation domain, i.e. no tilt offset. + + Values smaller than 0 represents an up-shift of the default service area + towards the zenith (i.e., corresponding to a decrease in zenith angle) and + values larger than 0 represent a down-shift of the default service area + away from the zenith (i.e., corresponding to an increase in zenith angle). + + If the value is greater than the maximum supported angle, then the maximum + angle is used for configuration. + If the value is less than the minimum supported angle, then the minimum + angle is used for configuration. + The actual angle used is (angle DIV granularity) * granularity. + + Any O-RU which is reset using the o-ran-operations:reset RPC shall reset + its offset angle to its default value."; + } + leaf azimuth-tilt-offset-angle { + type int16 { + range "-90..90"; + } + units degrees; + default 0; + description + "Value 0 represents the default service area of the predefined-beams + in azimuth domain, i.e., no tile offset. + + Azimuth tilt offset angle, represents counter-clockwise rotation around + z-axis. I.e., assuming view from the UE (observation of the O-RU + from the front), value larger than 0 and smaller than 0 + respectively represent right-shifted and left-shifted of the default + service area in azimuth domain. + + If the value is greater than the maximum supported angle, then the maximum + angle is used for configuration. + If the value is less than the minimum supported angle, then the minimum + angle is used for configuration. + The actual angle used is (angle DIV granularity) * granularity. + + Any O-RU which is reset using the o-ran-operations:reset RPC shall reset + its offset angle to its default value."; + } + } + } + + grouping beam-tilt-state { + description + "Grouping for beam tilt state"; + + list predefined-beam-tilt-offset-information { + key capabilities-group; + config false; + description + "Information which exposes predefined-beam-tilt-offset related O-RU capabilities."; + leaf capabilities-group { + type leafref { + path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group"; + } + mandatory true; + description + "Capabilities group identification number for which + the predefined-beam-tilt-offset-information relates to"; + } + leaf elevation-tilt-offset-granularity { + type uint8 { + range "0..30"; + } + units Degrees; + mandatory true; + description + "Indication of the supported granularity for the + predefined-beam-tilt-offset in elevation domain. + + Value 0 represents that the O-RU doesn't support + the predefined-beam-tilt-offset in elevation domain."; + } + leaf azimuth-tilt-offset-granularity { + type uint8 { + range "0..30"; + } + units Degrees; + mandatory true; + description + "Indication of the supported granularity for the + predefined-beam-tilt-offset in azimuth domain. + + Value '0' represents that the O-RU doesn't support + the predefined-beam-tilt-offset in azimuth domain."; + } + leaf minimum-supported-elevation-tilt-offset { + type int16 { + range "-90..0"; + } + units Degrees; + mandatory true; + description + "The minimum value which can be configured for + 'elevation-tilt-offset-angle'."; + } + leaf maximum-supported-elevation-tilt-offset { + type int16 { + range "0..90"; + } + units Degrees; + mandatory true; + description + "The maximum value which can be configured for + 'elevation-tilt-offset-angle'."; + } + leaf minimum-supported-azimuth-tilt-offset { + type int16 { + range "-90..0"; + } + units Degrees; + mandatory true; + description + "The minimum value which can be configured for + 'azimuth-tilt-offset-angle'."; + } + leaf maximum-supported-azimuth-tilt-offset { + type int16 { + range "0..90"; + } + units Degrees; + mandatory true; + description + "The maximum value which can be configured for + 'azimuth-tilt-offset-angle'."; + } + leaf run-time-tilt-offset-supported { + type boolean; + mandatory true; + description + "If 'run-time-tilt-offset-supported' is FALSE, changing the values in + 'predefined-beam-tilt-offset' for a specific band shall be allowed only + if all 'tx-array-carriers' and 'rx-array-carriers' corresponding + to the band are INACTIVE."; + } + } + + } + + grouping beam-tilt-report { + description + "Grouping for beam tilt report"; + + list predefined-beam-tilt-state { + key capabilities-group; + config false; + description + "Information which exposes state of predefined-beam-tilt-offset."; + leaf capabilities-group { + type leafref { + path "/o-ran-bf:beamforming-config/o-ran-bf:capabilities-groups/o-ran-bf:capabilities-group"; + } + mandatory true; + description + "Capabilities group identification number for which + the predefined-beam-tilt-state relates to"; + } + leaf elevation-tilt-offset-angle { + type int16 { + range "-90..90"; + } + units Degrees; + mandatory true; + description + "Value 'zero' represents the default service area of the + predefined-beams in elevation domain. + + Values smaller than 0 represents an up-shift of the default service area + towards the zenith (i.e., corresponding to a decrease in zenith angle) and + values larger than 0 represent a down-shift of the default service area + away from the zenith (i.e., corresponding to an increase in zenith angle)."; + } + leaf azimuth-tilt-offset-angle { + type int16 { + range "-90..90"; + } + units Degrees; + mandatory true; + description + "Value 'zero' represents the default service area of the + predefined-beams in azimuth domain. + + Azimuth tilt offset angle, represents counter-clockwise rotation around + z-axis. I.e., assuming view from the UE (observation of the O-RU from + the front), value larger than 'zero' and smaller than 'zero' + respectively represent right-shifted and left-shifted of the default + service area in azimuth domain."; + } + } + + } + + 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; + container beam-tilt { + if-feature BEAM-TILT; + description "container for pre-defined beam tilt feature"; + uses beam-tilt-state; + uses beam-tilt-report; + } + } + + + 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/beamforming 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."; + } + } + } + + rpc activate-beamforming-config-by-capability-group { + if-feature MODIFY-BF-CONFIG; + description + "RPC to activate beamforming config information by indicating the file + stored in the folder o-ran/beamforming in advance"; + input { + leaf beamforming-config-file { + type string; + mandatory true; + description + "file name stored in o-ran/beamforming folder is indicated"; + } + + uses cap-group; + } + 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."; + } + } + } + + + rpc modify-predefined-beam-tilt-offset { + if-feature BEAM-TILT; + description + "RPC to trigger the modification of the predefined beam tilt offset"; + input { + uses beam-tilt-configuration; + } + output { + leaf status { + type enumeration { + enum ACCEPTED { + description "O-RU has accepted the predefind beamtilt offset configuration"; + } + enum REJECTED { + description + "O-RU has rejected the predefind beamtilt offset configuration."; + } + } + mandatory true; + description "Status of acceptance of pre-defined beamtilt offset configuration"; + } + leaf error-message { + when "../status='REJECTED'"; + type string; + description + "Detailed error message when the pre-defined beam tilt configuration + is rejected, e.g., used when 'run-time-tilt-offset-supported' is FALSE and the + NETCONF client is attempting to modify the beam tilt on a band where + one or more array-carriers are still ACTIVE."; + } + } + } + + + //notification statement + notification beamforming-information-update { + uses band-num; + description + "this notification indicates that the beamforming properties are updated for particular band"; + } + + notification capability-group-beamforming-information-update { + uses cap-group; + description + "this notification indicates that the beamforming properties are updated for particular band + or capability group"; + } + + notification predefined-beam-tilt-offset-complete { + if-feature BEAM-TILT; + uses beam-tilt-report; + description + "this notification indicates that the re-generation of the predefined + beams is completed"; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-certificates@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-certificates@2022-08-15.yang new file mode 100644 index 0000000..038257c --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-certificates@2022-08-15.yang @@ -0,0 +1,83 @@ +module o-ran-certificates { + yang-version 1.1; + namespace "urn:o-ran:certificates:1.0"; + prefix "o-ran-cert"; + + import ietf-x509-cert-to-name { + prefix x509c2n; + reference + "RFC 7407: A YANG Data Model for SNMP Configuration"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the certificates model for the O-RAN Equipment authorization. + + Copyright 2022 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 "2022-08-15" { + description + "version 10.0.0 + + 1) initial version"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + grouping cert-maps { + uses x509c2n:cert-to-name; + description + "The cert-maps container is used by a TLS- + based NETCONF server to map the NETCONF + client's presented X.509 certificate to + a NETCONF username. If no matching and + valid cert-to-name list entry can be found, + then the NETCONF server MUST close the + connection, and MUST NOT accept NETCONF + messages over it. + Note - when included, the /cert-to-name/name refers to the schema node + users/user/name in o-ran-usermgmt.yang"; + reference + "RFC 7407: NETCONF over TLS, Section 7"; + } + + container certificate-parameters { + description + "Top Level Container for all certificate related parameters"; + + container cert-maps { + description + "Container for certificate maps"; + + uses cert-maps; + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-common-identity-refs@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-common-identity-refs@2022-08-15.yang new file mode 100644 index 0000000..063bb93 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-common-identity-refs@2022-08-15.yang @@ -0,0 +1,197 @@ +module o-ran-common-identity-refs { + yang-version 1.1; + namespace "urn:o-ran:wg1identityref:1.0"; + prefix "o-ran-iref"; + + import iana-hardware { + prefix ianahw; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines a set of re-usable identity references, that can be + re-used across O-RAN working groups. + + Copyright 2020 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 "2022-08-15" { + description + "version 1.1.0 + + 1) style guide corrections"; + + reference "ORAN-WG1.IM.0-v01.00"; + } + + revision "2020-11-01" { + description + "version 1.0.0 + + 1) initial verstion."; + + reference "ORAN-WG1.IM.0-v01.00"; + } + + // O-RAN functional identity types + + identity o-ran-function-base { + description + "Base identity from which all O-RAN defined functions are derived. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-ru-function { + base "o-ran-function-base"; + description + "an identity corresponding to an O-RAN O-RU Function. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-du-function { + base "o-ran-function-base"; + description + "an identity corresponding to all O-RAN O-DU Functions. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-cu-function { + base "o-ran-function-base"; + description + "an identity corresponding to all O-RAN O-CU Functions. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-cu-up-function { + base "o-cu-function"; + description + "an identity corresponding to an O-RAN O-CU UP Function. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-cu-cp-function { + base "o-cu-function"; + description + "an identity corresponding to an O-RAN O-CU CP Function. + + This identity is abstract and MUST NOT be used as a value."; + } + + // O-RAN radio technology identity types + + identity o-ran-radio-technology-base { + description + "Base identity for O-RAN defined radio technology types. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity new-radio-technology { + base "o-ran-radio-technology-base"; + description + "An identity corresponding to new radio technology. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity lte-technology { + base "o-ran-radio-technology-base"; + description + "An identity corresponding to lte technology. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity nb-iot { + base "lte-technology"; + description + "An identity corresponding to nb-iot technology. + + This identity is abstract and MUST NOT be used as a value."; + } + + // O-RAN Transport technology identity types + + identity o-ran-transport-technology-base { + description + "Base identity from which all O-RAN defined transport technology identities are derived. + + This identity is abstract and MUST NOT be used as a value."; + } + + // O-RAN Fronthaul transport identity types + + identity o-ran-fronthaul-transport-base { + description + "Base identity from which all O-RAN defined fronthaul transports are derived. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity ethernet-fronthaul-transport { + base "o-ran-fronthaul-transport-base"; + description + "an identity corresponding to fronthaul transport using ethernet based flows. + + This identity is abstract and MUST NOT be used as a value."; + } + + // Hardware component identity types + + identity o-ran-module { + base ianahw:module; + description + "Any O-RAN module that represents a self-contained sub-system. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity o-ran-hardware-class { + base ianahw:hardware-class; + description + "This identity corresponding to a generic O-RAN hardware class. + + This identity is abstract and MUST NOT be used as a value."; + } + + identity fpga { + base o-ran-hardware-class; + description + "Represent an FPGA. + + This identity is abstract and MUST NOT be used as a value."; + } + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-common-yang-types@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-common-yang-types@2022-08-15.yang new file mode 100644 index 0000000..94bb42d --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-common-yang-types@2022-08-15.yang @@ -0,0 +1,419 @@ +module o-ran-common-yang-types { + yang-version 1.1; + namespace "urn:o-ran:common-yang-types:1.0"; + prefix "o-ran-types"; + + import ietf-inet-types { + prefix inet; + } + + organization "O-RAN Alliance"; + + + + contact + "www.o-ran.org"; + + description + "This module defines ORAN common YANG types. + + Copyright 2020 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 "2022-08-15" { + description + "version 1.1.0 + + 1) style guide corrections"; + + reference "ORAN-WG1.IM.0-v01.00"; + } + + revision "2020-10-10" { + description + "version 1.0.0 + + 1) Initial creation"; + + reference "ORAN-WG1.IM.0-v01.00"; + } + + typedef version { + type string { + pattern '[0-9]+(\.[0-9]+){1,2}'; + } + description + "Definition used to represent a version of an interface."; + } + + typedef timezone-name { + type string; + description + "A time zone name as used by the Time Zone Database, + sometimes referred to as the 'Olson Database'. + + The complete set of valid values is defined in + https://www.iana.org/time-zones. + + The exact set of supported values is an + implementation-specific matter."; + + reference + "RFC 6557: Procedures for Maintaining the Time Zone Database + IANA Time Zone Database https://www.iana.org/time-zones "; + } + + typedef protocol { + type enumeration { + enum ECPRI { + description + "Indicates that an O-RU supports the ecpri header format + for the C/U plane"; + } + enum IEEE-1914-3 { + description + "Indicates that an O-RU supports the 1914.3 header format + for the C/U plane"; + } + } + description "the type of C/U plane protocol"; + } + + typedef duplex-scheme { + type enumeration { + enum TDD { + description + "TDD scheme"; + } + enum FDD { + description + "FDD scheme"; + } + } + description + "Type of duplex scheme O-RU supports."; + } + + typedef 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"; + } + } + description "the active status of a carrier"; + } + + typedef 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."; + } + } + description "the state on an array carrier"; + } + + typedef transport-session { + type enumeration { + enum ETHERNET { + description "VLAN based CUS Transport "; + } + enum UDP_IP { +// if-feature o-ran-int:UDPIP-BASED-CU-PLANE; How to handle enum value constrained by feature defined in o-ran-interface.yang? + description "UDP/IP based CUS Transport "; + } + enum ALIAS_MAC{ +// if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE; How to handle enum value constrained by feature defined in o-ran-interface.yang? + description "Alias MAC address based CUS Transport "; + } + enum SHARED_CELL { +// if-feature o-ran-elements:SHARED_CELL; How to handle enum value constrained by feature defined in o-ran-processing-element.yang? + description "VLAN based CUS Transport used for Shared Cell scenario"; + } + } + description "the transport session type"; + } + + typedef netconf-client-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A NETCONF client identifier"; + } + + typedef ca-ra-server-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A CA/RA Server identifier"; + } + + typedef segw-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A SeGW identifier"; + } + + typedef pcp { + type uint8 { + range "0..7"; + } + description + "Priority Code Point. PCP is a 3-bit field that refers to the + class of service applied to a VLAN tagged frame. The + field specifies a priority value between 0 and 7, these values + can be used by quality of service (QoS) to prioritize + different classes of traffic."; + reference + "IEEE 802.1Q-2014: Virtual Bridged Local Area Networks"; + } + + typedef vlan-id { + type uint16 { + range "1..4094"; + } + description + "The VLAN-ID that uniquely identifies a VLAN. This is the 12-bit VLAN-ID + used in the VLAN Tag header."; + reference "[802.1q] 9.6"; + } + + typedef geographic-coordinate-degree { + type decimal64 { + fraction-digits 8; + } + description + "Decimal degree (DD) used to express latitude and longitude + geographic coordinates."; + } + + typedef prach-preamble-format { + type enumeration { + enum LTE-0 { + description + "LTE PRACH Preamble format 0"; + } + enum LTE-1 { + description + "LTE PRACH Preamble format 1"; + } + enum LTE-2 { + description + "LTE PRACH Preamble format 2"; + } + enum LTE-3 { + description + "LTE PRACH Preamble format 3"; + } + enum LTE-4 { + description + "LTE PRACH Preamble format 4"; + } + enum LTE-NB0 { + description + "LTE Narrowband PRACH format 0"; + } + enum LTE-NB1 { + description + "LTE Narrowband PRACH format 1"; + } + enum NR-0 { + description + "5GNR PRACH Preamble format 0"; + } + enum NR-1 { + description + "5GNR PRACH Preamble format 1"; + } + enum NR-2 { + description + "5GNR PRACH Preamble format 2"; + } + enum NR-3 { + description + "5GNR PRACH Preamble format 3"; + } + enum NR-A1 { + description + "5GNR PRACH Preamble format A1"; + } + enum NR-A2 { + description + "5GNR PRACH Preamble format A2"; + } + enum NR-A3 { + description + "5GNR PRACH Preamble format A3"; + } + enum NR-B1 { + description + "5GNR PRACH Preamble format B1"; + } + enum NR-B2 { + description + "5GNR PRACH Preamble format B2"; + } + enum NR-B3 { + description + "5GNR PRACH Preamble format B3"; + } + enum NR-B4 { + description + "5GNR PRACH Preamble format B4"; + } + enum NR-C0 { + description + "5GNR PRACH Preamble format C0"; + } + enum NR-C2 { + description + "5GNR PRACH Preamble format C2"; + } + enum LTE-NB0-a { + description + "LTE Narrowband PRACH format 0-a"; + } + enum LTE-NB1-a { + description + "LTE Narrowband PRACH format 1-a"; + } + enum LTE-NB2 { + description + "LTE Narrowband PRACH format 2"; + } + } + + description + "PRACH preamble format definition"; + } + + 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"; + } + + typedef bandwidth { + type uint32 { + range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 | + 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000 + | 200000 | 400000" ; + } + units kilohertz; + description + "transmission bandwidth configuration in units of kHz - + covering NBIoT through to New Radio - see 38.104"; + } + + 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"; + } + + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors@2021-12-01.yang new file mode 100644 index 0000000..402ea94 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-compression-factors@2021-12-01.yang @@ -0,0 +1,567 @@ +module o-ran-compression-factors { + yang-version 1.1; + namespace "urn:o-ran:compression-factors:1.0"; + prefix "o-ran-compression-factors"; + + + 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 2021 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 "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) Configuration for Beamforming weights were added together with changes + and updates to compressions. + 3) add new beamspace compression enumeration for BEAMSPACE_TYPEII."; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-03-22" { + description + "version 4.1.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2020-08-10" { + description + "version 4.0.0 + + 1) supporting compression types per endpoint + 2) adding feature for configurable fs-offset for compression"; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) adding selective RE sending compression types"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) changes related to compression bit-width presentation"; + + 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 CONFIGURABLE-FS-OFFSET { + description + "Presence of this feature means that O-RU supports configurable fs-offset for compression."; + } + + typedef ci-compression-method-def { + type enumeration { + enum NO_COMPRESSION { + description + "No compression will be used"; + } + + 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"; + } + } + description + "Available compression methods for channel information (e.g., ST6)."; + } + + typedef compression-type-def { + type enumeration { + enum STATIC { + description + "Indicates that static compression method will be used (both compression and IQ bitwidth)"; + } + enum DYNAMIC { + description + "Indicates that dynamic compression method will be used"; + } + } + description + "Compression type that O-DU wants to be supported"; + } + + typedef bf-compression-method-def { + type enumeration { + enum NO_COMPRESSION { + description + "No compression will be used"; + } + 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 VOID_1 { + description + "Leftover of modulation, not to be used for beamforming weights"; + } + + enum VOID_2 { + description + "Leftover of block-floating-point-selective-re-sending, not to be used for beamforming weights"; + } + + enum VOID_3 { + description + "Leftover of modulation-compression-selective-re-sending, not to be used for beamforming weights"; + } + + enum BEAMSPACE_TYPEII { + description + "Beamspace compression typeII and decompression will be used "; + } + } + description + "Available compression methods for beamforming weights."; + } + + typedef compression-method-def { + type enumeration { + enum NO_COMPRESSION { + description + "No compression will be used"; + } + 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 VOID_1 { + description + "Leftover of beamspace, not to be used for IQ data."; + } + + enum MODULATION { + description + "Modulation compression and decompression will be used"; + } + + enum BLOCK-FLOATING-POINT-SELECTIVE-RE-SENDING { + description + "block floating point with selective re sending + compression and decompression will be used"; + } + + enum MODULATION-COMPRESSION-SELECTIVE-RE-SENDING { + description + "modulation compression with selective re sending + compression and decompression will be used"; + } + } + description + "Available compression methods for the data."; + } + + grouping compression-method-grouping { + description + "Grouping for compression method."; + + leaf iq-bitwidth { + type uint8; + description + "Bit-width to be used in compression"; + } + + leaf compression-method { + type compression-method-def; + description + "Compression method which can be supported by the O-RU"; + } + } + + grouping compression-details { + description ""; + + leaf iq-bitwidth { + type uint8; + description + "Bitwidth to be used in compression"; + } + + leaf compression-type { + type compression-type-def; + mandatory true; + description + "Compression type that O-DU wants to be supported"; + } + + leaf bitwidth { + when "../compression-type = 'STATIC'"; + type uint8; + status deprecated; + description + "Bitwidth to be used in compression. + This has since been replaced in M-Plane version + 2.0.0 with the iq-bitwidth schema node"; + } + + leaf compression-method { + type compression-method-def; + description + "Compression method which can be supported by the O-RU"; + } + + uses compresion-format-grp { + status deprecated; + } + } + + grouping bf-compression-details { + description "Compression formats defined for beamforming"; + + leaf iq-bitwidth { + type uint8; + description + "Bitwidth to be used in compression"; + } + + leaf compression-type { + type compression-type-def; + mandatory true; + description + "Compression type that O-DU wants to be supported"; + } + + leaf bitwidth { + when "../compression-type = 'STATIC'"; + type uint8; + status deprecated; + description + "Bitwidth to be used in compression. + This has since been replaced in M-Plane version + 2.0.0 with the iq-bitwidth schema node"; + } + + leaf compression-method { + type bf-compression-method-def; + description + "Compression method which can be supported by the beamforming"; + } + + uses compresion-format-grp { + status deprecated; + } + } + +// *********** Deprecated *********** + + grouping compression-formats { + status deprecated; + description + "Grouping deicated to list compression formats as choice."; + + uses compresion-format-grp { + status deprecated; + } + } + + grouping compresion-format-grp { + status deprecated; + description + "Grouping to for compression format choice"; + + choice compression-format { + status deprecated; + description + "Choice of compression format for particular element. + Note: This metod is deprecated. All should be done as emumeration as details are configured + by udCompHdr in CU-Plane messaging."; + + case no-compresison { + description "Compression for beam weights is not supported."; + } + case block-floating-point { + description "Block floating-point compression and decompression is supported."; + + leaf exponent { + type uint8 { + range "4"; + } + description "Exponent bit width size in number of bits used when encoding in udCompParam."; + } + } + + case block-floating-point-selective-re-sending { + description + "Block floating-point with selective re sending compression and decompression is supported."; + + leaf sres-exponent { + type uint8 { + range "4"; + } + description "Exponent bit width size in number of bits used when encoding in udCompParam."; + } + } + + case block-scaling { + description "Block scaling compression and decompression is supported."; + leaf block-scalar { + type uint8; + description + "Common scaler for compressed PRB"; + } + } + + case u-law { + description "u-Law compression and decompression method is supported."; + leaf comp-bit-width { + type uint8 { + range "0..15"; + } + description "Bit with for u-law compression"; + } + leaf comp-shift { + type uint8 { + range "0..15"; + } + description + "the shift applied to the entire PRB"; + } + } + + case beam-space-compression { + description "Beamspace compression and decompression is supported. Applies to beamforming weights only."; + leaf-list active-beam-space-coeficient-mask { + type uint8; + description + "active beamspace coefficient indices associated with the compressed beamforming vector"; + } + leaf block-scaler { + type uint8; + description + "Common scaler for compressed beamforming coefficients"; + } + } + + case modulation-compression { + description "Modulation compression and decompression is supported."; + leaf csf { + type uint8 { + range "0..1"; + } + description "Constellation shift flag"; + } + + leaf mod-comp-scaler { + type uint16 { + range "0..32767"; + } + description "Modulation compression scaler value."; + } + } + + case modulation-compression-selective-re-sending { + description "Modulation compression with selective re sending and decompression is supported."; + leaf sres-csf { + type uint8 { + range "0..1"; + } + description "Constellation shift flag"; + } + + leaf sres-mod-comp-scaler { + type uint16 { + range "0..32767"; + } + description "Modulation compression scaler value."; + } + } + + } + } + + grouping compression-params { + status deprecated; + description + "Parameters to define compression"; + + leaf compression-type { + type compression-type-def; + mandatory true; + description + "Compression type that O-DU wants to be supported"; + } + + leaf bitwidth { + when "../compression-type = 'STATIC'"; + type uint8; + status deprecated; + description + "Bit-width to be used in compression. + This has since been replaced in M-Plane version + 2.0.0 with the iq-bitwidth schema node"; + } + + uses compression-formats { + status deprecated; + } + } + + grouping compression-parameters { + status deprecated; + description + "Parameters used to define description type"; + + leaf iq-bitwidth { + type uint8; + description + "Bit-width to be used in compression"; + } + + uses compression-formats { + status deprecated; + } + } + + grouping format-of-iq-sample { + status deprecated; + 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 real-time variable bit with"; + } + + list compression-method-supported { + status deprecated; + uses compression-parameters { + status deprecated; + } + + description + "List of supported compression methods by O-RU + Note: if O-RU supports different compression methods per endpoint + then please refer do endpoints to have information what + exactly is supported on a particular endpoint"; + } + + leaf syminc-supported { + type boolean; + + description + "Informs if symbol number increment command in a C-Plane is + supported or not"; + } + + leaf regularization-factor-se-supported { + type boolean; + + description + "Informs if regularizationFactor in section type 5 is + supported(true) or not(false)"; + } + + leaf little-endian-supported { + type boolean; + default false; + + description + "All O-RUs support bigendian byte order. This node informs if module supports the + the optional capability for little endian byte order for C/U plane data flows. + + Note - little endian support does not invalidate bigendian support."; + } + } + +// *********** Deprecated End *********** + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-delay-management@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-delay-management@2022-08-15.yang new file mode 100644 index 0000000..8a05ddd --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-delay-management@2022-08-15.yang @@ -0,0 +1,414 @@ +module o-ran-delay-management { + yang-version 1.1; + namespace "urn:o-ran:delay:1.0"; + prefix "o-ran-delay"; + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module covers off aspects of O-DU to O-RU delay management, + including configuration data related to O-RU transmission and reception + windows. + + Copyright 2020 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 "2022-08-15" { + description + "version 10.0.0 + + 1) introducing new feature for ACK NACK feedback."; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) add new schema node beam-context-gap-period."; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2020-08-10" { + description + "version 4.0.0 + + 1) introduction of new t1a-max-cp-dl leaf to enable decoupled timing between C- and U-Plane"; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) fixing descriptions of ta3-min and ta3-max. + 2) introducing grouping/uses to enable model re-use by WG5"; + + 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 ADAPTIVE-RU-PROFILE { + description + "This feature indicates that the O-RU supports adaptive O-RU delay profile + based on information provided by the NETCONF client."; + } + + typedef bandwidth { + type uint32 { + range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 | + 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000 + | 200000 | 400000" ; + } + units kilohertz; + description + "transmission bandwidth configuration in units of kHz - + covering NBIoT through to New Radio - see 38.104"; + } + + grouping bandwidth-configuration { + description + "Grouping for bandwidth and SCS configuration"; + + leaf bandwidth { + type bandwidth; + description + "transmission bandwidth configuration in units of kHz - + covering NBIoT through to New Radio - see 38.104"; + } + leaf subcarrier-spacing { + type uint32 { + range "0 .. 240000 "; + } + units Hertz; + description "sub-carrier spacing in Hz"; + } + } + + grouping t2a-up { + description + "configuration of t2a for uplink"; + + leaf t2a-min-up { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum O-RU data processing delay between receiving IQ data + message over the fronthaul interface and transmitting + the corresponding first IQ sample at the antenna"; + } + leaf t2a-max-up { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a data packet is received before + the corresponding first IQ sample is transmitted at the antenna"; + } + } + + grouping t2a-cp-dl { + description + "Grouping for t2a CP for downlink"; + + leaf t2a-min-cp-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum O-RU data processing delay between receiving downlink + real time control plane message over the fronthaul interface and + transmitting the corresponding first IQ sample at the antenna"; + } + leaf t2a-max-cp-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a downlink real time control message + is received before the corresponding first IQ sample is transmitted at + the antenna"; + } + } + + grouping ta3 { + description + "Grouping for ta3 configuration"; + + leaf ta3-min { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum O-RU data processing delay between receiving an IQ sample + at the antenna and transmitting the first data sample over the + fronthaul interface"; + } + leaf ta3-max { + type uint32; + units nanoseconds; + mandatory true; + description + "the maximum O-RU data processing delay between receiving an IQ sample + at the antenna and transmitting the last data sample over the + fronthaul interface"; + } + } + + grouping t2a-cp-ul { + description + "Grouping for t2a CP uplink"; + + leaf t2a-min-cp-ul { + type uint32; + units nanoseconds; + mandatory true; + description + "the minimum O-RU data processing delay between receiving real time + up-link control plane message over the fronthaul interface and + receiving the first IQ sample at the antenna"; + } + leaf t2a-max-cp-ul { + type uint32; + units nanoseconds; + mandatory true; + description + "the earliest allowable time when a real time up-link control message + is received before the corresponding first IQ sample is received at + the antenna"; + } + } + + grouping ta3-ack { + description + "Grouping for ta3-ack configuration"; + leaf ta3-min-ack { + type int32; + units nanoseconds; + description + "the minimum delay between the DL/UL air reference point (tDL=0 or tUL=0) of symbol M + and the time O-RU sends section type 8 (ACK/NACK feedback) to O-DU. + This value can be negative, which indicates it is in advance of the air reference point. + This leaf only exists if section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) + are supported by at least one endpoint."; + } + + leaf ta3-max-ack { + type int32; + units nanoseconds; + description + "the maximum delay between the DL/UL air reference point (tDL=0 or tUL=0) of symbol M + and the time O-RU sends section type 8 (ACK/NACK feedback) to O-DU. + This value can be negative, which indicates it is in advance of the air reference point. + This leaf only exists if section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) + are supported by at least one endpoint."; + } + } + + grouping ru-delay-profile { + description + "Grouping for RU delay profile"; + + uses t2a-up; + uses t2a-cp-dl; + + leaf tcp-adv-dl { + type uint32; + units nanoseconds; + mandatory true; + description + "the time difference (advance) between the reception window for + downlink real time Control messages and reception window for the + corresponding IQ data messages."; + } + + uses ta3; + uses t2a-cp-ul; + uses ta3-ack; + } + + grouping o-du-delay-profile { + description + "Grouping for O-DU delay profile"; + + leaf t1a-max-up { + type uint32; + units nanoseconds; + description + "the earliest possible time which the O-DU can support transmitting + an IQ data message prior to transmission of the corresponding IQ + samples at the antenna"; + } + leaf tx-max { + type uint32; + units nanoseconds; + description + "The maximum amount of time which the O-DU requires to transmit + all downlink user plane IQ data message for a symbol"; + } + leaf ta4-max { + type uint32; + units nanoseconds; + description + "the latest possible time which the O-DU can support receiving the + last uplink user plane IQ data message for a symbol."; + } + leaf rx-max { + type uint32; + units nanoseconds; + description + "The maximum time difference the O-DU can support between + receiving the first user plane IQ data message for a symbol and + receiving the last user plane IQ data message for the same symbol"; + } + leaf t1a-max-cp-dl { + type uint32; + units nanoseconds; + description + "The earliest possible time which the O-DU can support transmitting the + downlink real time control message prior to transmission of the + corresponding IQ samples at the antenna."; + } + } + + grouping t12 { + description + "Grouping for t12"; + + leaf t12-min { + type uint32; + units nanoseconds; + description + "the minimum measured delay between DU port-ID and O-RU port-ID"; + } +// additional leaf added by Samsung + leaf t12-max { + type uint32; + units nanoseconds; + description + "the maximum measured delay between CU port-ID and O-RU port-ID"; + } + } + + grouping t34 { + description + "Grouping for t34"; + + leaf t34-min { + type uint32; + units nanoseconds; + description + "the minimum measured delay between O-RU port-ID and CU port-ID"; + } +// additional leaf added by Samsung + leaf t34-max { + type uint32; + units nanoseconds; + description + "the maximum measured delay between O-RU port-ID and CU port-ID"; + } + } + + grouping delay-management-group { + description "a delay management grouping"; + list bandwidth-scs-delay-state { + key "bandwidth subcarrier-spacing"; + description + "Array of structures containing sets of parameters for delay management."; + + uses bandwidth-configuration; + + container ru-delay-profile { + config false; + description "container for O-RU delay parameters"; + + uses ru-delay-profile; + } + } + + container adaptive-delay-configuration { + if-feature ADAPTIVE-RU-PROFILE; + description "container for adaptive delay parameters"; + list bandwidth-scs-delay-state { + key "bandwidth subcarrier-spacing"; + description + "Array of structures containing sets of parameters for delay management."; + + uses bandwidth-configuration; + + container o-du-delay-profile { + description + "O-DU provided delay profile for adaptive delay configuration"; + + uses o-du-delay-profile; + } + } + + container transport-delay { + description + "O-DU provided transport-delay parameters"; + uses t12; + uses t34; + } + } + + leaf beam-context-gap-period { + type uint16; + units microseconds; + description + "Time gap between the end of reception window of the C-Plane message(Msg-A) with new beam weights for a given beamId and end of the reception window + of the C-Plane message(Msg-B) that cites the same beamId without weights in the new context. + Note: Value of '0' indicates that the end of the Msg-A and Msg-B reception windows are perfectly aligned, which should allow Msg-B to use the new + beamforming weights with a '0' microsecond beam-context-gap-period. Value of '65535' implies infinite gap, which means a beamId may not be reused + at all in a different context (applicable only to weight-based dynamic beamforming). If O-DU chooses not to interpret/honor this value, behaviour + of O-RU is unpredictable if a beamId has new weights loaded in one context and is reused in a different context. Please refer the CUS-Plane spec + Section 'Weight-based dynamic beamforming' for detailed description"; + } + } + container delay-management { + description "top-level tree covering off O-DU to O-RU delay management"; + + uses delay-management-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2022-08-15.yang new file mode 100644 index 0000000..8d2967a --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2022-08-15.yang @@ -0,0 +1,408 @@ +module o-ran-dhcp { + yang-version 1.1; + namespace "urn:o-ran:dhcp:1.0"; + prefix "o-ran-dhcp"; + + import ietf-interfaces { + prefix "if"; + } + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-dhcpv6-types { + prefix dhcpv6-type; + revision-date 2018-09-04; + } + + import ietf-dhcpv6-common { + prefix dhcpv6-type2; + } + + import o-ran-wg4-features { + prefix or-feat; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for managing the DHCP client. + + Copyright 2021 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 "2022-08-15" { + description + "version 10.0.0 + + 1) added DUID/IAID support for IPv4. + 2) switched import FROM ietf-dhcpv6-types TO ietf-dhcpv6-common"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 5.2.0 + + 1) Typographical corrections for british english."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2021-03-22" { + description + "version 5.1.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) added new leafs for reporting discovered event-collectors + used"; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to fix pen number which always + should have been 32 bits + 2) backward compatible changes to introduce reporting of 3GPP + discovered MV-PnP information, including CA/RA Servers and SeGW + 3) backward compatible changes to introduce groupings"; + + 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 netconf-client-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A NETCONF client identifier"; + } + + typedef ca-ra-server-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A CA/RA Server identifier"; + } + + typedef segw-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "A SeGW identifier"; + } + + typedef event-collector-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "An event collector identifier"; + } + + grouping ca-ra-servers { + description + "The CA/RA servers discovered using DHCP, discovered using the 3GPP + defined options in 3GPP 32.509 in vendor specific option 43/17"; + list ca-ra-servers { + key servers; + description "A list of IP addresses or URIs for CA/RA Servers"; + + leaf servers{ + type ca-ra-server-id; + description "the server identifier"; + } + leaf port-number { + type inet:port-number; + description "an optional (non-default) port"; + } + leaf ca-ra-path { + type string; + description + "ASCII string representing the path to the CMP server directory. + A CMP server may be located in an arbitrary path other than root."; + } + leaf subject-name { + type string; + description + "ASCII string representing the subject name of the CA/RA. "; + } + leaf protocol { + type enumeration { + enum HTTP { + description + "HTTP used to communicate with CA/RA server"; + } + enum HTTPS{ + description + "HTTPS used to communicate with CA/RA server"; + } + } + description "the protocol used to communicate with a CA/RA server"; + } + } + } + + grouping security-gateways { + description + "The security gateways discovered using DHCP, discovered using the 3GPP + defined options in 3GPP 32.509 in vendor specific option 43/17"; + list segw { + key gateways; + description "A list of IP addresses or URIs for SeGW"; + + leaf gateways{ + type segw-id; + description "the SeGW identifier"; + } + } + + } + + grouping netconf-clients { + description + "The NETCONF clients discovered using DHCP, discovered using the IANA + defined options or O-RAN defined syntax for encoding IP addresses or FQDNs + in vendor specific option 43/17"; + list netconf-clients{ + key client; + description "A list of IP addresses or URIs for NETCONF clients"; + leaf client{ + type netconf-client-id; + description "the client identifier"; + } + leaf optional-port { + type inet:port-number; + description "an optional (non-default) port"; + } + } + } + + grouping event-collectors { + description + "The event-collectors discovered using DHCP, discovered using the O-RAN + defined syntax for encoding IP addresses or FQDNs in vendor specific + option 43/17"; + leaf-list event-collectors{ + if-feature "or-feat:NON-PERSISTENT-MPLANE"; + type event-collector-id; + max-elements 1; + description + "An event-collector discovered using DHCP that can be used by the O-RU to + send pnfRegistration notification messages. + + The O-RU behaviour when discovering more than one event-collector is not defined."; + } + leaf event-collector-format{ + if-feature "or-feat:NON-PERSISTENT-MPLANE"; + type enumeration { + enum ONAP { + description "ONAP format is used to signal the event-collector"; + } + } + description "the event-collector notification format"; + } + } + + grouping dhcpv4-option { + description "DHCPv4 Configuration options"; + + leaf dhcp-server-identifier { + type inet:ip-address; + description "DHCP server identifier"; + } + leaf domain-name { + type string; + description "Name of the domain"; + } + leaf-list domain-name-servers { + type inet:ip-address; + description "A list of DNS servers"; + } + leaf interface-mtu { + type uint32 { + range "0..65535"; + } + description "Minimum Transmission Unit (MTU) of the interface"; + } + leaf-list default-gateways{ + type inet:ip-address; + description "the list of default gateways on the O-RUs subnet"; + } + uses netconf-clients; + uses ca-ra-servers; + uses security-gateways; + uses event-collectors; + } + + grouping dhcpv6-option { + description "DHCPv6 Configuration options"; + + container dhcp-server-identifier{ + status deprecated; + description "dhcpv6 server identifier - deprecated as this uses import from ietf-dhcpv6-types and not ietf-dhcpv6-common"; + uses dhcpv6-type:duid; + } + container dhcpv6-server-identifier{ + description "dhcpv6 server identifier - replaces container dhcp-server-identifier and uses import from ietf-dhcpv6-common"; + uses dhcpv6-type2:duid; + } + leaf domain-name { + type string; + description "Name of the domain"; + } + leaf-list domain-name-servers { + type inet:ip-address; + description "A list of DNS servers"; + } + uses netconf-clients; + uses ca-ra-servers; + uses security-gateways; + uses event-collectors; + } + + grouping dhcp-group { + description "a dhcp grouping"; + list interfaces { + key "interface"; + description "Interface configuration"; + + leaf interface { + type if:interface-ref; + description "Name of the interface"; + } + + container dhcpv4 { + description "DHCPv4 information"; + leaf client-id { + type string; + description "DHCP client identifier - used when the DHCPv4 client in the O-RU does not use DUID/IAID"; + } + uses dhcpv6-type2:duid; + + container identity-association { + description "an optional container - used when DHCPv4 client uses DUID/IAID as identifier"; + + leaf iaid { + type uint32; + description "IAID"; + } + leaf ia-type { + type string; + description "IA type"; + } + } + uses dhcpv4-option; + } + container dhcpv6 { + description "DHCPv6 information"; + container dhcp-client-identifier{ + status deprecated; + description "dhcpv6 client identifier - deprecated as this uses import from ietf-dhcpv6-types and not ietf-dhcpv6-common"; + uses dhcpv6-type:duid; + } + container dhcpv6-client-identifier{ + description "dhcpv6 client identifier using ietf-dhcpv6-common import"; + uses dhcpv6-type2:duid; + container identity-association { + description "a container describing IAID information"; + + leaf iaid { + type uint32; + description "IAID"; + } + leaf ia-type { + type string; + mandatory true; + description "IA type"; + } + } + } + uses dhcpv6-option; + } + } + + container m-plane-dhcp { + description "leafs covering off DHCP aspects of m-plane operations"; + leaf private-enterprise-number { + type uint16; + default 53148; + status deprecated; + description "the private enterprise number allocated to O-RAN Alliance"; + } + leaf private-enterprise-num { + type uint32; + default 53148; + description "the private enterprise number allocated to O-RAN Alliance"; + } + leaf vendor-class-data { + type string; + description + "The string used in DHCPv4 option 60 or DHCPv4 option 124 and + DHCPv6 option 16"; + } + } + } + + + // Top Level Container + + container dhcp { + config false; + description + "DHCP client configuration"; + + uses dhcp-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay@2021-12-01.yang new file mode 100644 index 0000000..c107141 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-ecpri-delay@2021-12-01.yang @@ -0,0 +1,214 @@ +module o-ran-ecpri-delay { + yang-version 1.1; + namespace "urn:o-ran:message5:1.0"; + prefix "o-ran-msg5"; + + import o-ran-processing-element { + prefix "element"; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module is an optional module for supporting eCPRI message 5 handling + used for eCPRI based delay measurements. + + Copyright 2021 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 "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) Add support for multiple transport-session-type per O-RU."; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-07-26" { + description + "version 7.0.0 + + 1) add support for optional reporting of one or two-step measurements"; + + reference "ORAN-WG4.M.0-v07.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"; + } + +// groupings + + grouping msg5-group { + description "an eCPRI message 5 grouping"; + + container ru-compensation { + config false; + description + "leafs for ru timing compensation based on message 5 handling"; + leaf tcv2 { + type uint32; + units nanoseconds; + description + "a compensation value to account for expected delay from packet + receipt at R2 to timestamping in the O-RU"; + } + leaf tcv1 { + type uint32; + units nanoseconds; + description + "a compensation value to account for expected processing time from + timestamping in the O-RU until actual packet transmission at R3"; + } + } + + leaf enable-message5 { + type boolean; + default false; + description + "whether O-RU's eCPRI message 5 handling is enabled."; + } + + leaf one-step-t34-supported { + type boolean; + config false; + description + "Indicates whether O-RU supports eCPRI message 5 one-step procedure for + T34 measurements. + An O-RU supporting this YANG model shall at least set one of + one-step-t34-supported or two-step-t34-supported to true. + + Note, all O-RUs supporting this model shall support one-step measurements + for T12 measurement"; + } + + leaf two-step-t34-supported { + type boolean; + config false; + description + "Indicates whether O-RU supports eCPRI message 5 two-step procedure for + T34 measurements. + An O-RU supporting this YANG model shall at least set one of + one-step-t34-supported or two-step-t34-supported to true + + Note, all O-RUs supporting this model shall support two-step measurements + for T12 measurement"; + } + + container message5-sessions { + description "session information for eCPRI message 5"; + + list session-parameters { + key "session-id"; + description "list of MSG5 session information"; + leaf session-id { + type uint32; + description "Session ID for MSG5 responder"; + } + leaf processing-element-name { + type leafref { + path "/element:processing-elements/element:ru-elements/element:name"; + } + description "the name of the processing element used for MSG5"; + } + + leaf transport-session-type { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type enumeration { + enum ETH-INTERFACE { + description "VLAN based CUS Transport "; + } + enum UDPIP-INTERFACE { + description "UDP/IP based CUS Transport "; + } + enum ALIASMAC-INTERFACE{ + description "Alias MAC address based CUS Transport "; + } + } + description + "transport session type used when an O-RU is configured with multiple processing elements of different transport session types, + in which case it is used for referencing a processing element in 'transport-qualified-processing-element-name'"; + } + + leaf transport-qualified-processing-element-name { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type leafref { + path "/element:processing-elements/element:additional-transport-session-type-elements[element:transport-session-type = current()/../transport-session-type]/element:ru-elements/element:name"; + } + description + "the name of the processing element used for MSG5, used when the processing element + is configured by the list 'additional-transport-session-type-elements'"; + } + + container flow-state { + config false; + description "MSG5 flow state"; + leaf responses-transmitted { + type uint32; + description + "The total number of eCPRI message 5 response messages transmitted by + the O-RU."; + } + leaf requests-transmitted { + type uint32; + description + "The total number of eCPRI message 5 request messages transmitted by + the O-RU."; + } + leaf followups-transmitted { + type uint32; + description + "The total number of eCPRI message 5 follow up messages transmitted by + the O-RU."; + } + } + } + } + } + +// top level container + + container ecpri-delay-message { + description "top-level tree covering off O-DU to O-RU msg5 delay measurement"; + + uses msg5-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-ethernet-forwarding@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-ethernet-forwarding@2021-12-01.yang new file mode 100644 index 0000000..6034cf0 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-ethernet-forwarding@2021-12-01.yang @@ -0,0 +1,136 @@ +module o-ran-ethernet-forwarding { + yang-version 1.1; + namespace "urn:o-ran:ethernet-fwd:1.0"; + prefix "o-ran-eft"; + + import ietf-yang-types { + prefix "yang"; + } + + import o-ran-interfaces { + prefix "or-if"; + } + + import ietf-interfaces { + prefix "if"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the Ethernet forwarding table of an O-RU. + This is an option capability used when supporting 'shared cell' operation. + + Copyright 2020 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 "2021-12-01" { + description + "version 3.1.0 + + 1. Typo corrections for british english"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + + revision "2020-04-17" { + description + "version 3.0.0 + + 1. Initial version"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + grouping ethernet-ft { + description + "Ethernet forwarding table."; + + leaf aging-time { + type uint32 { + range "10..10000000"; + } + units "seconds"; + default "300"; + description + "The timeout period in seconds for ageing out + dynamically-learned forwarding information."; + } + + list filtering-entry { + key "address vlan-id"; + config false; + description + "List of the entries within the Ethernet forwarding table. + This list is keyed by the MAC address and VLAN of the Ethernet frame."; + + leaf address { + type yang:mac-address; + description + "A MAC address (unicast, multicast, broadcast) for + which the device has forwarding and/or filtering + information."; + } + + leaf vlan-id { + type uint16 { + range "0..4094"; + } + description + "VLAN-ID entry in the forwarding table, used during the + look-up when receiving an in-coming Ethernet frame to determine + how to forward. + + A value of 0 indicates that the filtering entry is for an un-tagged + frame/MAC address"; + } + + list port-map { + key "port-ref"; + description + "The list of entries composing the port map."; + leaf port-ref { + type leafref { + path "/if:interfaces/if:interface/or-if:port-reference/or-if:port-number"; + } + description + "The interface port reference associated with this map."; + } + } + } + } + + container ethernet-forwarding-table { + description "Top level container defining forwarding tables for Ethernet"; + + uses ethernet-ft; + } + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-externalio@2019-07-03.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-externalio@2019-07-03.yang index 8779f71..cd8c505 100644 --- a/data-model/yang/published/o-ran/ru-fh/o-ran-externalio@2019-07-03.yang +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-externalio@2019-07-03.yang @@ -58,6 +58,7 @@ module o-ran-externalio { } grouping external-io-group { + description "an external io grouping"; list input { key "name"; config false; @@ -140,6 +141,7 @@ module o-ran-externalio { } grouping notification-group { + description "a notification grouping"; container current-input-notification { description "a container for the state of the input ports"; list external-input { diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-fan@2021-12-01.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-fan@2021-12-01.yang new file mode 100644 index 0000000..4157eff --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-fan@2021-12-01.yang @@ -0,0 +1,135 @@ +module o-ran-fan { + yang-version 1.1; + namespace "urn:o-ran:fan:1.0"; + prefix "o-ran-fan"; + + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the state of the O-RAN equipment's fans. + + 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 "2021-12-01" { + description + "version 1.2.0 + + 1) typographical corrections."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to introduce groupings."; + + 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 percent { + type uint16 { + range "0 .. 100"; + } + description "Percentage"; + } + + grouping fan-grouping { + description "a fan grouping"; + list fan-state { + key name; + description "a list of the fans based on their unique names"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique that identifies a fan instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf fan-location { + type uint8; + description "A number indicating the location of the FAN in the fan tray"; + } + leaf present-and-operating { + type boolean; + mandatory true; + description + "Indicates if a fan is present and operating in the location"; + } + leaf vendor-code { + when "../present-and-operating = 'true'"; + type uint8 { + range "0..7"; + } + description + "Indicates fan vendor code. Fan vendors are detected with ID pins + using 3 bits digital inputs. + + Optional node included when the NETCONF Server has determined + the fan vendor code."; + } + leaf fan-speed { + when "../present-and-operating = 'true'"; + type percent; + description + "Measured fan speed. Expressed as percentage of max fan speed. + + Optional node included when the fan speed can be measured."; + } + leaf target-speed { + when "../present-and-operating = 'true'"; + type uint16; + units rpm; + description "the target speed of the fan"; + } + } + } + + container fan-tray { + config false; + description "top-level tree covering off operational state of the fans"; + + uses fan-grouping; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-file-management@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-file-management@2022-08-15.yang new file mode 100644 index 0000000..a73756c --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-file-management@2022-08-15.yang @@ -0,0 +1,270 @@ +module o-ran-file-management { + yang-version 1.1; + namespace "urn:o-ran:file-management:1.0"; + prefix "o-ran-file-mgmt"; + + import ietf-crypto-types { + prefix "ct"; + revision-date "2019-04-29"; + } + + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the configuration and operations for handling upload. + + Copyright 2021 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 "2022-08-15" { + description + "version 10.0.0 + + 1) added password for FTPES + 2) clarified path/folder description "; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 7.1.0 + + 1) typographical corrections"; + + reference "ORAN-WG4.M.0-v07.00"; + } + + revision "2021-07-26" { + description + "version 7.0.0 + + 1) added FTPES support"; + + reference "ORAN-WG4.M.0-v07.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to correct sFTP Server Authentication . + 2) minor fixes according to lack of descriptions + 3) backward compatible changes to introduce groupings"; + + 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"; + } + + grouping file-path-grouping { + description "Grouping, that provides local path and remote path for the + purpose of File Management scenarios."; + + + leaf local-logical-file-path { + type string; + mandatory true; + description "URI specifying the complete logical path relative to the root of the logical file system + structure (the common root for o-ran/log, o-ran/pm, o-ran/transceiver or o-ran/beamforming) of the file + to upload/download (no wildcard is allowed), including a file name and its extension. + Example: 'o-ran/log/file_1.abc', where 'o-ran/log/' represents relative path to folder containing log files + as specified by O-RAN, 'file_1' represents desired filename and 'abc' represents desired filename's extension. + The content shall conform to RFC3986 'Uniform Resource Identifier (URI): Generic Syntax'"; + } + + leaf remote-file-path { + type string; + mandatory true; + description "URI specifying the remote-file-path on O-DU/SMO or on stand-alone file server. + The content shall conform to RFC3986 'Uniform Resource Identifier (URI): Generic Syntax'. + When upload/download is via sftp, the format shall be of the form + sftp://@[:port]/path + When upload/download is via ftpes, the format shall be of the form + ftpes://@[:port]/path + + Note, ftpes is not an IANA registered URI scheme, but used here to signal + that a file transfer should be performed over FTPES"; + } + } + + grouping output-status-grouping { + description "Status grouping"; + + leaf status { + type enumeration { + enum SUCCESS { + description "";} + enum FAILURE { + description "";} + } + description "Operation status"; + } + + leaf reject-reason { + when "../status = 'FAILURE'"; + type string; + description ""; + } + } + + grouping credential-information { + description "Type of authentication to use for file upload or download."; + choice credentials { + case password { + container password { + presence true; + leaf password { + type string; + mandatory true; + description + "password used for O-RU authentication to sFTP server for the associated username defined in the remote-file-path."; + } + description + "password for O-RU authentication method in use. This information + shall be ignored by an O-RU that is using FTPES based file transfer"; + } + container server { + list keys { + key algorithm; + ordered-by user; + uses ct:public-key-grouping; + description + "List of allowed algorithms with its keys"; + } + description + "SSH Key for file server authentication"; + } + } + case certificate { + container certificate { + presence true; + description + "certificate authentication method in use"; + } + + } + description ""; + } + container application-layer-credential{ + + leaf appl-password { + type string; + description + "The parameter represents the password which may be needed for O-RU application level authentication. + For example, to perform authenticatation towards an FTPes server which does not allow anonymous account, + in addition to X.509v3 certificate for TLS authentication, password configured here need to be used together with username defined in the remote-file-path "; + } + description + "Application layer credential information"; + } + } + + grouping retrieve-input { + description "Grouping for information retrieval RPC input"; + leaf logical-path { + type string; + mandatory true; + description "URL specifying the logical path relative to the root of the logical file system + structure (the common root for o-ran/log, o-ran/pm, o-ran/transceiver or o-ran/beamforming) + of the files to be listed."; + } + leaf file-name-filter { + type string; + description "Filter which needs to be applied on the result list of file names (* is allowed as wild-card)."; + } + } + + grouping retrieve-output { + description "Grouping for information retrieval RPC output"; + uses output-status-grouping; + leaf-list file-list { + when "../status = 'SUCCESS'"; + type string; + description "List of files in the unit with the filter applied."; + } + } + +// RPCs + + rpc file-upload { + description "Management plane trigger to upload file from O-RU to file-server"; + input { + uses file-path-grouping; + uses credential-information; + } + output { + uses output-status-grouping; + } + } + + rpc retrieve-file-list { + description "List all the files in the logical O-RAN unit (* is allowed as wild-card)."; + input { + uses retrieve-input; + + } + output { + uses retrieve-output; + } + } + + rpc file-download { + description + "Management plane trigger to download file from file-server to O-RU."; + input { + uses file-path-grouping; + uses credential-information; + } + output { + uses output-status-grouping; + } + } + + notification file-upload-notification { + uses file-path-grouping; + uses output-status-grouping; + description ""; + } + + notification file-download-event { + uses file-path-grouping; + uses output-status-grouping; + description ""; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-fm@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-fm@2022-08-15.yang new file mode 100644 index 0000000..caf46cb --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-fm@2022-08-15.yang @@ -0,0 +1,343 @@ +module o-ran-fm { + yang-version 1.1; + namespace "urn:o-ran:fm:1.0"; + prefix "o-ran-fm"; + + import ietf-yang-types { + prefix yang; + revision-date 2013-07-15; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines alarm reporting mechanism. + + Copyright 2021 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 "2022-08-15" { + description + "version 10.0.0 + + 1) removed min-elements 1 from affected-objects list + 2) added identifier to affected-objects list + 3) added new additional-information list"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2022-04-18" { + description + "version 9.0.0 + + 1) added feature HISTORICAL-ALARM-LIST + 2) added corresponding historical-alarm-list container"; + + reference "ORAN-WG4.M.0-v09.00"; + } + + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) add new leafs probable-cause, specific-problem, proposed-repair-actions + and alarm-type"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-03-22" { + description + "version 1.1.0 + + 1) typographical corrections in descriptions."; + + 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 HISTORICAL-ALARM-LIST { + description + "O-RU supports Historical Alarm List to keep a historical + record of alarms events over M-plane."; + } + + grouping alarm { + description + "Grouping which can uniquely identify alarm"; + + leaf fault-id { + type uint16; + mandatory true; + + description + "Fault specific Id that identifies the fault."; + } + + leaf fault-source { + type string { + length "1..255"; + } + mandatory true; + + description + "Represents the Object or source that is suspected to be faulty. + If the fault source is external and can not be represented by an object in the model, external alarm source info should be set as the value. + If the fault source can be represented by an object in the model, the YANG instance-identifier should be set as the value"; + } + + list affected-objects { + + leaf name { + type string { + length "1..255"; + } + + mandatory true; + description + "Represents the Object or source that is suspected to be affected by this fault."; + } + + leaf identifier { + type yang:xpath1.0; + description "An optional parameter used to indicate a YANG instance-identifier for the affected + object. Used when the object or source is represented in the object model."; + } + + max-elements 100; + + description + "List of affected-objects"; + } + + leaf fault-severity { + type enumeration { + enum CRITICAL { + description + "Critical alarm means that this device is not able to perform any further service"; + } + enum MAJOR { + description + "Major alarm appeared on the device"; + } + enum MINOR { + description + "Minor alarm appeared on the device"; + } + enum WARNING { + description + "Warning is being reported by the device"; + } + } + mandatory true; + + description + "Fault severity defines the severity level of the fault. A notification, whose fault severity has the value 'warning', + is a special type of alarm notification. For these alarm notifications, + the Master Agent does not expect to receive a clear alarm notification."; + } + + leaf is-cleared { + type boolean; + mandatory true; + + description + "Fault state determines the type of the event. Not used if faultSeverity is WARNING."; + } + + leaf fault-text { + type string { + length "0..255"; + } + + description + "Textual description of the fault."; + } + + leaf probable-cause { + type string { + length "0..255"; + } + description + "Probable cause of an alarm as defined in ITU-T Rec. X.733. + It qualifies alarm and provides further information than alarm-type. + + The value of the probable cause strings are not standardized in this YANG model. + + An O-RU shall populate this leaf, if the fault-text string does not indicate + the probable cause."; + } + + leaf specific-problem { + type string { + length "0..255"; + } + description + "An optional leaf providing further qualification on the alarm than probable-cause, + as defined in ITU-T Recommendation X.733 "; + } + + leaf proposed-repair-actions { + type string { + length "0..255"; + } + description + "Optional leaf, used if the cause is known and the O-RU can suggest one or + more solutions to fix the problem causing the alarm as defined in ITU-T Rec. X. 733"; + } + + leaf event-time { + type yang:date-and-time; + mandatory true; + + description + "Timestamp to indicate the time when the fault is detected/cleared."; + } + + list additional-information { + key "identifier"; + description + "This parameter allows the inclusion of an additional + information set in the alarm. It is a series of data + structures, each of which contains items of + information: an identifier, + and the problem information. Refer to RFC8632."; + leaf identifier { + type string; + description + "Identifies the data type of the information parameter."; + } + leaf information { + type string; + description + "Additional information about the alarm."; + } + } + + leaf alarm-type { + type enumeration { + enum COMMUNICATIONS-ALARM { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum PROCESSING-ERROR-ALARM { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum ENVIRONMENTAL-ALARM { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum QUALITY-OF-SERVICE-ALARM { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum EQUIPMENT-ALARM { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum INTEGRITY-VIOLATION { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum OPERATIONAL-VIOLATION { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum PHYSICAL-VIOLATION { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum SECURITY-SERVICE-OR-MECHANISM-VIOLATION { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + enum TIME-DOMAIN-VIOLATION { + description + "See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for description"; + } + } + description + "An optional alarm type that can be used with vendor specific alarms. + See Table 12.2.1.4.4.6-1 in 3GPP 28.532 for definitions. + + WG4 common O-RU alarms have pre-defined alarm types, see Annex A of + O-RAN.WG4.MP.O"; + } + } + + container active-alarm-list { + list active-alarms { + uses alarm; + + description + "List of currently active alarms"; + } + config false; + + description + "List of currently active alarms. An alarm is removed from this table when the state transitions to clear."; + } + + container historical-alarm-list { + if-feature HISTORICAL-ALARM-LIST; + description + "an optional container to notify the event subscriber of historical alarms information. When the O-RU + is reset, the alarm entries from historical-alarm-list will be purged. O-RU vendor can make this + list persistent optionally."; + + list historical-alarms { + uses alarm; + + config false; + description + "List of historical alarm events. This list only captures the alarm events when =TRUE."; + } + + } + + notification alarm-notif { + uses alarm; + + description + "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear"; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2022-12-05.yang new file mode 100644 index 0000000..17b3b46 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2022-12-05.yang @@ -0,0 +1,420 @@ +module o-ran-hardware { + yang-version 1.1; + namespace "urn:o-ran:hardware:1.0"; + prefix "o-ran-hw"; + + import ietf-hardware { + prefix hw; + } + import iana-hardware { + prefix ianahw; + } + import ietf-yang-types { + prefix yang; + } + import o-ran-wg4-features { + prefix or-feat; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for managing the O-RAN hardware. + + Copyright 2021 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 "2022-12-05" { + description + "version 10.1.0 + + 1) Clarifications for Network Energy Saving"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2022-08-15" { + description + "version 10.0.0 + + 1) introduction of O-RU connector functionality. + 2) fixing constraints"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 5.2.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2021-03-22" { + description + "version 5.1.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) added date-last-service leaf used in pnfRegistration"; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) added new leaf to indicate whether O-RU supports dying gasp + 2) added new identities for PA and FPGA"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) added new identities to accommodate cross working group use of + o-ran-hardware and assoicated set of augmentations that are backwards + compatible to version 1.0.0"; + + 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 ENERGYSAVING { + description + "Indicates that the Radio Unit supports energy saving state."; + } + + // identity statements + identity O-RAN-RADIO { + base ianahw:module; + description + "Module used as it represents a self-contained sub-system + used in /hw:/hardware/hw:component/hw:class to represent + an O-RAN RU"; + } + + identity O-RAN-HW-COMPONENT { + base ianahw:module; + description + "Module used as it represents a self-contained sub-system + used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN hardware component"; + } + + identity O-DU-COMPONENT { + base O-RAN-HW-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN defined O-DU hardware component"; + } + + identity O-RU-COMPONENT { + base O-RAN-HW-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + any O-RAN defined O-RU hardware component, including a stand-alone + O-RU or an O-RU component integrated into a multi-module system."; + } + + identity O-RU-POWER-AMPLIFIER { + base O-RU-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + an O-RU's power amplifier, and may be used for reporting + measurements on a per class basis"; + } + + identity O-RU-FPGA { + base O-RU-COMPONENT; + description + "Used in /hw:/hardware/hw:component/hw:class to represent + an FPGA in an O-RU, and may be used for reporting + measurements on a per class basis"; + } + + identity O-RU-CONNECTOR { + base ianahw:hardware-class; + description + "This identity is applicable if the hardware class is some sort + of O-RU connector."; + } + + identity O-RU-ANTENNA-CONNECTOR { + base O-RU-CONNECTOR; + description + "This identity is applicable if the hardware class is some sort + of connector capable of interfacing between an O-RU and some + antenna function."; + } + + identity O-RU-FEEDER { + base O-RU-ANTENNA-CONNECTOR; + description + "This identity is applicable if the hardware class is an + antenna feeder."; + } + + identity O-RU-BF-CAL { + base O-RU-ANTENNA-CONNECTOR; + description + "This identity is applicable if the hardware class is for + beamforming calibration."; + } + + // typedef statements + typedef energysaving-state { + type enumeration { + enum UNKNOWN { + description + "The O-RU is unable to report its energy saving state."; + } + enum SLEEPING { + description + "The O-RU is in energy saving state. In this mode M-Plane connection is active. Depending + on the O-RU's design - other planes, functions and hardware components which are not needed + by the O-RU in energy saving state can be disabled or switched off by the O-RU autonomously."; + } + enum AWAKE { + description + "The O-RU is not in an energy saving state."; + } + } + description + "New typedef since ietf-hardware only covers power-state + for redundancy purposes, not to indicate energy saving operations. + For details please see O-RAN WG4 M-Plane specification, clause 9.1.3 'Modify state'"; + } + + typedef availability-type { + type enumeration { + enum UNKNOWN { + description "The Radio Unit is unable to report its availability state."; + } + enum NORMAL { + description + "The equipment is functioning correctly."; + } + enum DEGRADED { + description + "The equipment may be reporting a major alarm or may be reporting a critical + alarm that is only impacting one or more subcomponent, but where the + equipment's implementation permit it to continue operation (server traffic) + in a degraded state. + + Used for example, when the equipment has M identical sub-components and + when a critical alarm is impacting only N subcomponents, where N@[:]/path"; + } + + uses o-ran-file-mgmt:credential-information; + } + + list remote-file-uploads { + key remote-file-upload-path; + description + "file upload can be done to one or more than one file servers + + An O-RU receiving this list should ignore the deprecated + remote-SFTP-uploads list, if received"; + + leaf remote-file-upload-path { + type inet:uri; + description + "URI specifying the remote location where the files are to be uploaded. + + When upload is via SFTP, the format shall be of the form + sftp://@[:port]/path + When upload is via FTPES, the format shall be of the form + ftpes://@[:port]/path + + Note, ftpes is not an IANA registered URI scheme, but used here to signal + that a file transfer should be performed over FTPES"; + } + + uses o-ran-file-mgmt:credential-information; + } + +// transceiver measurements applicable to all O-RAN HW functions + + leaf transceiver-measurement-interval { + type uint16; + units seconds; + description + "measurement interval to measure the performance of transceiver + measurement objects periodically."; + } + +// EPE measurements applicable to all O-RAN HW functions + + leaf epe-measurement-interval { + type uint16; + units seconds; + description + "measurement interval to measure the energy, power and environmental + measurement objects periodically."; + } + +// RX Window measurements applicable to O-RAN WG4 defined functions + + leaf rx-window-measurement-interval { + type uint16; + units seconds; + description + "measurement interval to measure the performance of reception + window measurement objects periodically."; + } + + leaf tx-measurement-interval { + type uint16; + units seconds; + description + "measurement interval to measure the tx (outbound) + window measurement objects periodically."; + } + + leaf symbol-rssi-measurement-interval { + type uint16; + units seconds; + description + "measurement interval to measure the symbol-wise TD-RSSI measurement objects periodically."; + } + + leaf notification-interval { + type uint16; + units seconds; + description + "notification interval for the measurement result to be notified + periodically."; + } + + leaf file-upload-interval { + type uint16; + units seconds; + description + "file upload interval for the measurement result file to be + uploaded periodically."; + } + + leaf max-bin-count{ + type uint16; + config false; + mandatory true; + description + "indicates the maximum value of configurable bin-count for frequency + table in transceiver-measurement-objects as one of module + capabilities."; + } + + list transceiver-measurement-objects { + key "measurement-object"; + description + "optional list used to report transceiver measurements + applicable to any O-RAN defined hardware function"; + leaf measurement-object { + type enumeration { + enum RX_POWER { + description + "Measured Rx input power in mW for SFP or lane 1 of QSFP"; + } + enum RX_POWER_LANE_2 { + description + "Measured Rx input power in mW for lane 2 of QSFP"; + } + enum RX_POWER_LANE_3 { + description + "Measured Rx input power in mW for lane 3 of QSFP"; + } + enum RX_POWER_LANE_4 { + description + "Measured Rx input power in mW for lane 4 of QSFP"; + } + enum TX_POPWER { + status deprecated; + description + "Measured Tx input power in mW."; + } + enum TX_POWER { + description + "Measured Tx input power in mW."; + } + enum TX_POWER_LANE_2 { + description + "Measured Tx input power in mW for lane 2 of QSFP"; + } + enum TX_POWER_LANE_3 { + description + "Measured Tx input power in mW for lane 3 of QSFP"; + } + enum TX_POWER_LANE_4 { + description + "Measured Tx input power in mW for lane 4 of QSFP"; + } + enum TX_BIAS_COUNT { + description + "Internally measured Tx Bias Current in mA for SFP or lane 1 of QSFP"; + } + enum TX_BIAS_COUNT_LANE_2 { + description + "Internally measured Tx Bias Current in mA for lane 2 of QSFP"; + } + enum TX_BIAS_COUNT_LANE_3 { + description + "Internally measured Tx Bias Current in mA for lane 3 of QSFP"; + } + enum TX_BIAS_COUNT_LANE_4 { + description + "Internally measured Tx Bias Current in mA for lane 4 of QSFP"; + } + enum VOLTAGE { + description + "Internally measured transceiver supply voltage in mV"; + } + enum TEMPERATURE { + description + "Internally measured optional laser temperature in degrees Celsius."; + } + } + description "Target metric to measure the performance"; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the performance measurement per Object"; + } + + leaf-list report-info { + type enumeration { + enum MAXIMUM { + description + "to report maximum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum MINIMUM { + description + "to report minimum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum FIRST { + description + "to report first value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum LATEST { + description + "to report latest value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum FREQUENCY_TABLE { + description + "to report frequency bin table within the + measurement-interval for the measurement-object."; + } + } + description "The reporting info to the measurement object."; + } + + leaf object-unit { + type enumeration { + enum PORT_NUMBER { + description + "unit to measure the performance per object-id"; + } + } + mandatory true; + description "unit to measure the performance per object-id."; + } + + leaf function { + type enumeration { + enum RAW { + description + "the value is expressed by real value."; + } + enum LOG_10 { + description + "the value is expressed by logarithm with base 10."; + } + } + + description + "the value to be recorded for transceiver-measurement + by real value or log 10."; + } + + leaf bin-count { + type uint16; + + description + "the number of bin for the frequency table. + This value shall be less than max-bin-count"; + } + + leaf lower-bound { + type decimal64 { + fraction-digits 4; + } + + description + "the lower value of the first bin of frequency table."; + } + + leaf upper-bound { + type decimal64 { + fraction-digits 4; + } + + description + "the upper value of the last bin of frequency table."; + } + uses transceiver-measurement-result-grouping; +// configuration and measurement result for the transceiver-measurement + + } + + list rx-window-measurement-objects { + key "measurement-object"; + description + "optional list used to report RX Window measurements + applicable to O-RAN WG4 define O-RU functions"; + leaf measurement-object { + type enumeration { + enum RX_ON_TIME { + description + "the number of data packets, received on time within + the reception window."; + } + enum RX_EARLY { + description + "the number of data packets, received before + the reception window."; + } + enum RX_LATE { + description + "the number of data packets, received after + the reception window."; + } + enum RX_CORRUPT { + description + "the number of data packets, which are corrupt or whose header + is incorrect."; + } + enum RX_DUPL { + status deprecated; + description + "the number of data packets, which is duplicated with other packets, + received within the measurement period."; + } + enum RX_TOTAL { + description + "the total number of received packets (data and control) within the measurement period."; + } + enum RX_ON_TIME_C { + description + "the number of control packets, received on time within + the reception window."; + } + enum RX_EARLY_C { + description + "the number of control packets, received before + the reception window."; + } + enum RX_LATE_C { + description + "the number of control packets, received after + the reception window."; + } + enum RX_SEQID_ERR { + description + "the number of data packets, received with an erroneous sequence ID."; + } + enum RX_SEQID_ERR_C { + description + "the number of control packets, received with an erroneous sequence ID."; + } + enum RX_ERR_DROP { + description + "The total number of inbound messages which are discarded by the receiving + O-RAN entity for any reason."; + } + } + description + "target reception window metric to measure the performance."; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the performance measurement per reception window + measurement object."; + } + + leaf object-unit { + type enumeration { + enum RU { + description + "the reception window stats are counted per hardware component. + This may be the parent 'module' or child 'port' component."; + } + enum TRANSPORT { + if-feature GRANULARITY-TRANSPORT-MEASUREMENT; + description + "the reception window stats are counted per transport flow. + When there are multiple transport flows between O-DU and O-RU, + e.g. multiple sets of o-du-mac-address, ru-mac-address and + vlan-id, the reception window stats per transport flow + are counted in this case. + This configuration is allowed only when O-RU supports + a feature GRANULARITY-TRANSPORT-MEASUREMENT."; + } + enum EAXC_ID { + if-feature GRANULARITY-EAXC-ID-MEASUREMENT; + + description + "the reception window stats are counted per eAxC ID, which is + used in the header of received data packet. + This configuration is allowed only when O-RU supports + a feature GRANULARITY-EAXC-ID-MEASUREMENT."; + } + } + description + "unit to measure the performance per object-id."; + } + + leaf report-info { + type enumeration { + enum COUNT { + description + "the number of data packet are counted for the reception + window stats."; + } + } + description + "The reporting info to the measurement object."; + } + + uses rx-window-measurement-result-grouping; +// configuration and measurement result for the reception window stats + + } + + + list tx-measurement-objects { + key "measurement-object"; + description + "optional list used to report TX measurements + applicable to O-RAN WG4 define O-RU functions"; + leaf measurement-object { + type enumeration { + enum TX_TOTAL { + description + "the number of outbound packets (data and control), transmitted within + the measurement period"; + } + enum TX_TOTAL_C { + description + "the number of outbound control packets, transmitted within + the measurement period. + This counter is required only if RU supports LAA/LBT capabilities."; + } + } + description + "CU-plane transmission counters"; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the measurement per measurement object."; + } + + leaf object-unit { + type enumeration { + enum RU { + description + "the transmission stats are counted per hardware component. + This may be the parent 'module' or child 'port' component."; + } + enum TRANSPORT { + if-feature GRANULARITY-TRANSPORT-MEASUREMENT; + description + "the transmission stats are counted per transport flow. + When there are multiple transport flows between O-DU and O-RU, + e.g. multiple sets of o-du-mac-address, ru-mac-address and + vlan-id, the transmission stats per transport flow + are counted in this case. + This configuration is allowed only when O-RU supports + a feature GRANULARITY-TRANSPORT-MEASUREMENT."; + } + enum EAXC_ID { + if-feature GRANULARITY-EAXC-ID-MEASUREMENT; + + description + "the transmission stats are counted per eAxC ID, which is + used in the header of received data packet. + This configuration is allowed only when O-RU supports + a feature GRANULARITY-EAXC-ID-MEASUREMENT."; + } + } + description + "unit to measure the performance per object-id."; + } + + leaf report-info { + type enumeration { + enum COUNT { + description + "the number of data packet are counted for the reception + window stats."; + } + } + description + "The reporting info to the measurement object."; + } + + uses tx-measurement-result-grouping; + // configuration and measurement result for the tx stats + + } + + list epe-measurement-objects { + key "measurement-object"; + description + "optional list used to report energy, power and environmental + measurements applicable to any O-RAN defined hardware function"; + leaf measurement-object { + type enumeration { + enum TEMPERATURE { + description + "Measured temperature in degrees Celsius"; + } + enum POWER { + description + "Measured power consumed, in watts (W)"; + } + enum VOLTAGE { + description + "Measured voltage, in volts (V)"; + } + enum CURRENT { + description + "Measured current consumption, in amperes (A)"; + } + } + description "Target metric to measure the performance"; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the performance measurement per Object"; + } + + leaf-list report-info { + type enumeration { + enum MAXIMUM { + description + "to report maximum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum MINIMUM { + description + "to report minimum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum AVERAGE { + description + "to report average value within the + measurement-interval for the measurement-object."; + } + } + description "The reporting info to the measurement object."; + } + + + uses epe-measurement-result-grouping; + // configuration and measurement result for the epe-measurement + + } + + list symbol-rssi-measurement-objects { + key "measurement-object"; + description + "optional list used to measure and report symbol-wise time domain RSSI for all UL symbols or configured symbols"; + + leaf measurement-object { + type enumeration { + enum ALL-UL-SYMBOLS { + description + "Measure and report symbol-rssi separately for all UL symbols in every configured number of slots (as defined by 'period' in 'symbol-rssi-measurement-objects'. + And the UL symbols are decided by 'configurable-tdd-pattern', 'static-srs-configuration', 'static-prach-configuration', + and 'dataDirection' in the C-plane messages. + This option is recommended for static TDD case. If this option is used in dynamic TDD case, then O-RU measures + only the allocates UL symbols because O-RU may not know 'candidate UL symbols' which are not allocated. "; + } + + enum CONFIGURED-SYMBOLS { + description + "Measure and report symbol-rssi separately for all configured symbols as defined by the leaf-list 'symbol-index', + This can be used for non-dynamic TDD as well as dynamic TDD cases, + the O-RU should measure all configured symbols, irrespective of whether the UL symbol is allocated or not, + If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol, + O-RU shall not measure RSSI on this symbol."; + } + } + description "Target metric to measure the symbol-rssi"; + } + + leaf object-unit { + type enumeration { + enum RX-ARRAY-CARRIER { + description + "unit to measure the performance per object-id, + only the rx-array-carriers which are not configured with mixed numerology will be measured"; + } + } + mandatory true; + description "unit to measure the performance per object-id."; + } + + list per-rx-array-carrier-configuration { + key "rx-array-carrier"; + description + "measurement configuration per rx-array-carrier to accommodate different Subcarrier Spacing + and TDD pattern per rx-array-carrier, and only the symbol-wise TD-RSSI of the rx-array-carriers + included in per-rx-array-carrier-configuration will be measured and reported"; + + leaf rx-array-carrier { + type leafref { + path "/up:user-plane-configuration/up:rx-array-carriers/up:name"; + } + description "reference to the name of rx-array-carriers"; + } + + leaf period { + type uint16; + + description + "the number of slots that correspond to the period of a TDD-Configuration, + and the start point of the 1st period is subframe#0, slot#0 of the 1st even number radio frame after this configuration is received, + here even number radio frame is used because according to 3GPP TS 38.213, A UE expects that P1 + P2 divides 20 msec"; + } + + leaf-list symbol-index { + type uint16; + + description + "the index of the symbols within 'period'. The first symbol within the 'period is symbol-index=0, next symbol is symbol-index =1 etc. + This symbol-index is different from how symbolId is defined in CUS plane spec. + These symbols are configured for O-RU to measure and report symbol-wise rssi, + used only when 'measurement-object' = 'CONFIGURED-SYMBOLS'. + If a c-plane message indicates a symbol within this 'symbol-index' list to be a DL symbol, + O-RU shall not measure rssi on this symbol"; + } + + leaf active { + type boolean; + default false; + description + "Enable/disable the symbol-rssi measurement per Object"; + } + + leaf-list report-info { + type enumeration { + enum MAXIMUM { + description + "to report maximum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum MINIMUM { + description + "to report minimum value and its recorded time within the + measurement-interval for the measurement-object."; + } + enum AVERAGE { + description + "to report average value within the + measurement-interval for the measurement-object."; + } + enum FREQUENCY_TABLE { + description + "to report frequency bin table within the + measurement-interval for the measurement-object."; + } + } + description "The reporting info to the measurement object."; + } + + leaf bin-count { + type uint16; + + description + "the number of bin for the frequency table. + This value shall be less than max-bin-count"; + } + + leaf lower-bound { + type int16; + units dBm; + description + "the lower value of the first bin of frequency table."; + } + + leaf upper-bound { + type int16; + units dBm; + description + "the upper value of the last bin of frequency table."; + } + } + + uses symbol-rssi-measurement-result-grouping; + // configuration and measurement result for the symbol-rssi-measurement + } + + } + + grouping measurement-capabilities { + description "a measurement capabilities grouping"; + container measurement-capabilitites { + config false; + description "the type of measurement objects supported by the O-RU"; + + list transceiver-objects { + key measurement-object; + description "list of transceiver objects"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object"; + } + description "a measurement object"; + } + } + list rx-window-objects { + key measurement-object; + description "list of rx window objects"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object"; + } + description "a measurement object"; + } + } + list tx-stats-objects { + key measurement-object; + description "list of tx stats objects"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/tx-measurement-objects/measurement-object"; + } + description "a measurement object"; + } + } + list epe-stats-objects { + key "measurement-object"; + description + "An optional list describing the energy, power and environmental measurements supported + by the O-RU. Measurements are defined per hardware component."; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/epe-measurement-objects/measurement-object"; + } + description "a measurement object"; + } + leaf-list component-class { + type identityref { + base ianahw:hardware-class; + } + description + "An indication of the general hardware type of the + component for which EPE measurements are supported."; + + } + } + + list symbol-rssi-stats-objects { + key measurement-object; + description "list of symbol-wise TD-RSSI stats objects"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object"; + } + description "a measurement object"; + } + } + } + } + + grouping measurement-notification { + + description + "notification may contain measurement result for transceiver-stats + and/or rx-window-stats and/or tx-stats and/or epe-stats"; + list transceiver-stats { + key "measurement-object"; + + description + "measurement result of transceiver-measurement per measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object"; + } + + description + "measurement-object for the transceiver-measurement"; + } + + uses start-and-end-time; + uses transceiver-measurement-result-grouping; + + list multiple-transceiver-measurement-result { + config false; + description + "Multiple measurement results of transceiver-measurement. + + The O-RU shall use this list to report one or more measurements per measurement-object in a single notification. + + In addition, the O-RU shall always use the + + measurement-result-stats/transceiver-stats[measurement-object]/transceiver-measurement-result + + schema-node to report a single transceiver measurement-object. The O-RU should report its latest + transceiver measurements available. This ensures O-DUs supporting earlier versions + of this specification can recover the measurement."; + + uses start-and-end-time; + uses transceiver-measurement-result-grouping; + } + + } + + list rx-window-stats { + key "measurement-object"; + + description + "measurement result for the reception window measurement per + measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object"; + } + + description + "measurement-object for the reception window measurement"; + } + uses start-and-end-time; + uses rx-window-measurement-result-grouping; + + list multiple-rx-window-measurement-result { + config false; + description + "Multiple measurement results of rx-window-measurement. + + The O-RU shall use this list to report one or more measurements per measurement-object in a single notification. + + In addition, the O-RU shall always use one of the + + measurement-result-stats/rx-window-stats[measurement-object]/count or + measurement-result-stats/rx-window-stats[measurement-object]/tr-measured-result/count or + measurement-result-stats/rx-window-stats[measurement-object]/eaxc-measured-result/count + + schema-nodes to report a single rx-window measurement-object. The O-RU should report its latest + rx-window measurement available. This ensures O-DUs supporting earlier versions + of this specification can recover the measurement."; + + uses start-and-end-time; + uses rx-window-measurement-result-grouping; + } + + } + + list tx-stats { + key "measurement-object"; + + description + "measurement result for the tx stats measurement per + measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/tx-measurement-objects/measurement-object"; + } + + description + "measurement-object for the tx stats measurement"; + } + uses start-and-end-time; + uses tx-measurement-result-grouping; + + list multiple-tx-measurement-result { + config false; + description + "Multiple measurement results of tx-measurement. + + The O-RU shall use this list to report one or more measurements per measurement-object in a single notification. + + In addition, the O-RU shall always use one of the + + measurement-result-stats/tx-stats[measurement-object]/count or + measurement-result-stats/tx-stats[measurement-object]/tr-measured-result/count or + measurement-result-stats/tx-stats[measurement-object]/eaxc-measured-result/count + + schema-nodes to report a single tx-measurement. The O-RU should report its latest + tx-measurement available. This ensures O-DUs supporting earlier versions + of this specification can recover the measurement."; + + uses start-and-end-time; + uses tx-measurement-result-grouping; + } + + } + + container epe-stats { + status deprecated; + description + "container for the EPE stats measurement - deprecated because measurement object + isn't included"; + + uses start-and-end-time; + uses epe-measurement-result-grouping; + + + } + + list epe-statistics { + key "measurement-object"; + + description + "measurement result for the EPE stats measurement per + measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/epe-measurement-objects/measurement-object"; + } + + description + "measurement-object for the EPE stats measurement"; + } + uses start-and-end-time; + uses epe-measurement-result-grouping; + + list multiple-epe-measurement-result { + config false; + description + "Multiple measurement results of epe-measurement. + + The O-RU shall use this list to report one or more measurements per measurement-object in a single notification. + + In addition, the O-RU shall always use the + + measurement-result-stats/epe-statistics[measurement-object]/epe-measurement-result/ + + schema-nodes to report a single epe-measurement for a measurement-object. The O-RU + should report its latest epe-measurement available. This ensures O-DUs supporting earlier + versions of this specification can recover the measurement."; + + uses start-and-end-time; + uses epe-measurement-result-grouping; + } + + } + + list symbol-rssi-stats { + key "measurement-object"; + + description + "measurement result of symbol-rssi-measurement per measurement-object"; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/symbol-rssi-measurement-objects/measurement-object"; + } + + description + "measurement-object for the symbol-rssi-measurement"; + } + + uses start-and-end-time; + uses symbol-rssi-measurement-result-grouping; + + list multiple-symbol-rssi-measurement-result { + config false; + description + "Multiple measurement results of symbol-rssi-measurement. + + The O-RU shall use this list to report one or more measurements per measurement-object in a single notification. + + In addition, the O-RU shall always use one of the + + measurement-result-stats/symbol-rssi-stats[measurement-object]/ + + schema-nodes to report a single symbol-rssi measurement for a measurement-object. + The O-RU should report its latest symbol-rssi measurement available."; + + uses start-and-end-time; + uses symbol-rssi-measurement-result-grouping; + } + } + + } + + // Top level container + + container performance-measurement-objects { + description + "configuration for performance management and measurement-result are + included"; + uses measurement-group; + } + +// Notifications + + notification measurement-result-stats { + description + "Notification may contain measurement results for transceiver-stats + and/or rx-window-stats"; + uses measurement-notification; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-processing-element@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-processing-element@2022-08-15.yang new file mode 100644 index 0000000..015d14f --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-processing-element@2022-08-15.yang @@ -0,0 +1,475 @@ +module o-ran-processing-element { + yang-version 1.1; + namespace "urn:o-ran:processing-element:1.0"; + prefix "o-ran-elements"; + + import ietf-yang-types { + prefix yang; + } + + import ietf-inet-types { + prefix "inet"; + } + + import ietf-interfaces { + prefix "if"; + } + + import ietf-ip { + prefix "ip"; + } + + import o-ran-interfaces { + prefix "o-ran-int"; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + import o-ran-usermgmt { + prefix "or-user"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for mapping of transport flows to + processing elements. Three options are supported: + i) virtual MAC based mapping + ii) MAC address + VLAN-ID based mapping + iii) UDP/IP based mapping + + Copyright 2020 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 "2022-08-15" { + description + "version 10.0.0 + + 1) introducing SHARED-ORU-MULTI-OPERATOR feature + 2) fixing constraints"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) Add support for multiple transport-session-type per O-RU"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) added new enum SHARED-CELL-ETH-INTERFACE in + transport-session-type and new containers north-eth-flow and + south-eth-flow to enable Shared cell scenario."; + + reference "ORAN-WG4.M.0-v03.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) added new leaf to enable O-RU to report the maximum number of + transport flows it can support, e.g., due to restrictions on number + of VLAN-IDs when Ethernet type transport is used."; + + 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 SHARED_CELL { + description + "Presence of feature indicates that this O-RU is capable to support + shared cell."; + } +// groupings + + grouping non-shared-cell-flow-group { + description "a grouping for non-shared cell O-RU flows"; + + container aliasmac-flow { + when "../../../transport-session-type = 'ALIASMAC-INTERFACE'"; + if-feature o-ran-int:ALIASMAC-BASED-CU-PLANE; + description "leafs for virtual mac type data flows"; + leaf ru-aliasmac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:alias-macs"; + } + mandatory true; + description + "O-RU's alias MAC address used for alias MAC based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id"; + } + description + "O-RU's VLAN-ID used for alias MAC based flow"; + } + leaf o-du-mac-address { + type yang:mac-address; + mandatory true; + description + "O-DU's MAC address used for alias MAC based flow"; + } + } + container eth-flow { + when "../../../transport-session-type = 'ETH-INTERFACE'"; + description "leafs for mac + vlan-id type data flows"; + leaf ru-mac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address"; + } + mandatory true; + description + "O-RU's MAC address used for Ethernet based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id"; + } + mandatory true; + description + "O-RU's VLAN-ID used for Ethernet based flow"; + } + leaf o-du-mac-address { + type yang:mac-address; + mandatory true; + description + "O-DU's MAC address used for Ethernet based flow"; + } + } + container udpip-flow { + when "../../../transport-session-type = 'UDPIP-INTERFACE'"; + description "leafs for UDP/IP type data flows"; + choice address { + leaf ru-ipv4-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip"; + } + description "O-RU's IPv4 address"; + } + leaf ru-ipv6-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip"; + } + description "O-RU's IPv6 address"; + } + mandatory true; + description "choice of O-RU IPv4 or IPv6 address"; + } + leaf o-du-ip-address { + type inet:ip-address; + mandatory true; + description "O-DU's IP address"; + } + leaf ru-ephemeral-udp-port { + type inet:port-number; + mandatory true; + description + "ephemeral port used by O-RU"; + } + leaf o-du-ephemeral-udp-port { + type inet:port-number; + mandatory true; + description + "ephemeral port used by O-DU"; + } + leaf ecpri-destination-udp { + type inet:port-number; + mandatory true; + description "the well-known UDP port number used by eCPRI"; + // fixme - add in a default when allocated by IANA + } + } + } + + grouping shared-cell-flow-group { + description "a grouping for shared cell O-RU flows"; + + container north-eth-flow { + when "../../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE'"; + if-feature "SHARED_CELL"; + description "leafs for mac + vlan-id type data flows"; + leaf ru-mac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address"; + } + description + "O-RU's MAC address used for Ethernet based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id"; + } + description + "O-RU's VLAN-ID used for Ethernet based flow"; + } + leaf north-node-mac-address { + type yang:mac-address; + description + "North-node's MAC address used for Ethernet based flow"; + } + } + container south-eth-flow { + when "../../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE'"; + if-feature "SHARED_CELL"; + description "leafs for mac + vlan-id type data flows"; + leaf ru-mac-address { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:mac-address"; + } + description + "O-RU's MAC address used for Ethernet based flow"; + } + leaf vlan-id { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/o-ran-int:vlan-id"; + } + description + "O-RU's VLAN-ID used for Ethernet based flow"; + } + leaf south-node-mac-address { + type yang:mac-address; + description + "south-node's MAC address used for Ethernet based flow"; + } + } + } + + grouping session-and-markings-group { + description "a grouping with transport session type and enhanced uplane markings"; + + leaf transport-session-type { + type enumeration { + enum ETH-INTERFACE { + description "VLAN based CUS Transport "; + } + enum UDPIP-INTERFACE { + description "UDP/IP based CUS Transport "; + } + enum ALIASMAC-INTERFACE{ + description "Alias MAC address based CUS Transport "; + } + enum SHARED-CELL-ETH-INTERFACE { + if-feature "SHARED_CELL"; + description "VLAN based CUS Transport used for Shared Cell scenario"; + } + } + default ETH-INTERFACE; + description + "the type of transport session used for identifying different processing + elements"; + } + container enhanced-uplane-mapping { + presence "indicates that enhanced uplane mapping is used"; + description "a mapping table for enhanced user plane marking"; + list uplane-mapping { + key "up-marking-name"; + description + "a mapping between up-link name and o-ran-interfaces:up-marking-name"; + leaf up-marking-name { + type string; + description "a unique up marking name that is used for enhanced up marking"; + } + choice up-markings { + description + "U-Plane markings"; + case ethernet { + when "(../../transport-session-type = 'ALIASMAC-INTERFACE') or + (../../transport-session-type = 'ETH-INTERFACE') or + (../../transport-session-type = 'SHARED-CELL-ETH-INTERFACE')"; + leaf up-cos-name { + type leafref { + path "/if:interfaces/if:interface/o-ran-int:class-of-service/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name"; + } + description "the Ethernet U-plane transport marking as defined in o-ran-interfaces"; + } + } + case ipv4 { + when "(../../transport-session-type = 'UDPIP-INTERFACE')"; + leaf upv4-dscp-name { + if-feature o-ran-int:UDPIP-BASED-CU-PLANE; + type leafref { + path "/if:interfaces/if:interface/ip:ipv4/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name"; + } + description "the IPv4 U-plane transport marking as defined in o-ran-interfaces"; + } + } + case ipv6 { + when "(../../transport-session-type = 'UDPIP-INTERFACE')"; + leaf upv6-dscp-name { + if-feature o-ran-int:UDPIP-BASED-CU-PLANE; + type leafref { + path "/if:interfaces/if:interface/ip:ipv6/o-ran-int:diffserv-markings/o-ran-int:enhanced-uplane-markings/o-ran-int:up-marking-name"; + } + description "the IPv6 U-plane transport marking as defined in o-ran-interfaces"; + } + } + } + } + } + } + + grouping pe-group { + description "a grouping of processing elements"; + leaf maximum-number-of-transport-flows { + type uint16 { + range "1..4094"; + } + default 4094; + config false; + description + "The maximum number of transport flows that can be supported by an O-RU"; + } + uses session-and-markings-group; + + list ru-elements { + key "name"; + description + "the list of transport definitions for each processing element"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the O-RU that identifies a processing + element instance. + + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "The identity of a shared resource operator. When present, + indicates that the list entry corresponds to a processing element + associated with a shared resource operator where the sro-id identifies + the specific shared resource operator"; + } + container transport-flow { + description + "container for the transport-flow used for CU plane"; + leaf interface-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description "the interface name "; + } + uses non-shared-cell-flow-group; + uses shared-cell-flow-group; + + } + } + list additional-transport-session-type-elements { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + key transport-session-type; + + description + "Added to support multiple transport-session-type per O-RU, + it is always assumed that /processing-elements/ru-elements/ is configured with the first type of transport, + and /processing-element/additional-transport-session-elements/ru-elements/ is configured with the other types of transport. + If the O-RU is configured for shared-cell, this list will not be used. An O-RU shall reject any configuration + with a list entry with transport-session-type set to SHARED-CELL-ETH-INTERFACE"; + + uses session-and-markings-group; + + list ru-elements { + key "name"; + description + "the list of transport definitions for each processing element"; + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the O-RU that identifies a processing + element instance. + + This name may be used in fault management to refer to a fault source + or affected object"; + } + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "The identity of a shared resource operator. When present, + indicates that the list entry corresponds to a processing element + associated with a shared resource operator where the sro-id identifies + the specific shared resource operator"; + } + container transport-flow { + description + "container for the transport-flow used for CU plane"; + leaf interface-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description "the interface name "; + } + uses non-shared-cell-flow-group; + } + } + } + } + +// top-level container + + container processing-elements { + description + "a model defining the mapping between transport flows and arbitrary + O-RAN processing elements. A processing element may be then defined for + handling connectivity or delay procedures, or defined with a corresponding + eaxcid for CU plane operations"; + uses pe-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2022-12-05.yang new file mode 100644 index 0000000..f558217 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2022-12-05.yang @@ -0,0 +1,883 @@ +module o-ran-shared-cell { + yang-version 1.1; + namespace "urn:o-ran:shared-cell:1.0"; + prefix "o-ran-sc"; + + import o-ran-compression-factors { + prefix "cf"; + } + import o-ran-processing-element { + prefix "o-ran-pe"; + } + + import o-ran-common-yang-types { + prefix "o-ran-cmn"; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + import o-ran-usermgmt { + prefix "or-user"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for shared cell capable O-RU (Cascade and FHM). + + Copyright 2020 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 "2022-12-05" { + description + "version 11.0.0 + + 1) eaxc-id-group support in shared cell"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + + revision "2022-08-15" { + description + "version 10.0.0 + + 1) added SHARED-ORU-MULTI-OPERATOR anf SHARED-ORU-MULTI-ODU features"; + + reference "ORAN-WG4.M.0-v10.00"; + } + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) add support for multi-cell in cascade mode. + 3) add SCS info and mapping with eaxc-id into Combine-entity. + 4) add enhanced-t-combine feature Add T_combine-net (capability) + 5) add Tx-duration, enhanced-t-combine-enabled"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) added selective combining using beamId."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) initial version for shared cell O-RU related yang module."; + + reference "ORAN-WG4.M.0-v03.00"; + } + + feature FHM { + description + "Presence of feature indicates that O-RU acts as FHM and doesn't have + the capability of radio transmission and reception. Absence of feature + indicates that O-RU does not act as FHM and supports radio transmission + and reception function."; + } + + feature SELECTIVE-BEAM-ID { + description + "Presence of feature indicates that FHM supports the selective combining + function by using beamId"; + } + + // radio offsets + grouping radio-offset { + description + "shared cell FHM mode needs the configuration for radio related offset"; + 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: Unit is 1/1.2288e9 sec."; + } + + leaf downlink-sfn-offset { + type int16 { + range -32768..32767; + } + mandatory true; + + description + "This parameter is used for offsetting SFN value. + Unit is 10ms."; + } + } + + // shared cell capability + grouping shared-cell-module-capability{ + description + "shared cell related module capability of O-RU"; + container shared-cell-module-cap { + config false; + description + "indicates shared cell specific module capability"; + + leaf t-copy { + type uint32; + units nanoseconds; + mandatory true; + description + "Corresponding to the maximum FHM or cascade O-RU processing delay + between receiving an IQ sample over the fronthaul interface from + the north-node, coping it and transmitting it over the fronthaul + interface to the south-node."; + } + + leaf t-combine { + type uint32; + units nanoseconds; + mandatory true; + description + "Corresponding to the maximum FHM or cascade O-RU processing delay + between receiving an IQ sample over the fronthaul interface from + the south-node(s), combing them and transmitting it over the + fronthaul interface to the north-node. + + When enhanced-t-combine-enabled is 'true' by O-DU, FHM/Cascade O-RU supporting + ENHANCED-T-COMBINE uses t-combine-net and tx-duration instead of this value."; + } + + leaf t-combine-net { + type uint32; + units nanoseconds; + description + "Corresponding to the maximum FHM or cascade O-RU processing delay + between starting time to combine IQ data from received message(s) + and starting time to transmit them with a message over the fronthaul + interface to O-DU or the north-node."; + } + + leaf ta3-prime-max-upper-range { + type uint32; + units nanoseconds; + mandatory true; + description + "The upper limit for the configurable ta3-prime-max value. + This is the capability information of O-RU that comes from + the O-RU internal memory for the combine operation."; + } + + leaf max-number-node-copy-and-combine { + type uint8{ + range "1..max"; + } + mandatory true; + description + "Indicates the maximum number of south-node for the copy-and-combine + functions of cascade O-RU or FHM. + For cascade mode, this value is one. It means + O-RU copies the stream of eCPRI messages only once for the connected + south-node and copied stream are forwarded to the south-node. + Similarly, the cascade O-RU combines once for the streams of + eCPRI messages received from the south node and the streams of radio + reception function. + For FHM mode, FHM is able to copy the stream of eCPRI messages + according to this parameter and forward each copied stream + to each south-node. FHM is able to combine the streams of eCPRI + messages received from the multiple south-nodes corresponding to + this parameter at most."; + } + + leaf max-number-eaxcid-copy { + type uint8{ + range "1..max"; + } + mandatory true; + description + "Indicates the maximum number of eaxc-ids for the copy functions + of cascade O-RU or FHM. + For Cascade O-RU, it is same number of static-low-level-tx-endpoints plus + static-low-level-rx-endpoints, for which low-level-tx(rx)-endpoints + are configured with eaxc-id in u-plane configuration. + For FHM, it is max configurable number of eaxc-ids in + tx-eaxc-id and rx-eaxc-id in shared-cell-copy-uplane-config."; + } + + leaf max-number-eaxcid-combine { + type uint8{ + range "1..max"; + } + mandatory true; + description + "Indicates the maximum number of eaxc-ids for the combine functions + of cascade O-RU or FHM. + For Cascade O-RU, it is same number of static-low-level-rx-endpoints, + for which low-level-rx-endpoints are configured with eaxc-id in + u-plane configuration. + For FHM, it is max configurable number of eaxc-ids in rx-eaxc-id + in shared-cell-combine-uplane-config across all combine-enities. + + When multiple scs or multiple c-plane section types with a single eaxc-id + are used for FHM supporting MULTIPLE-SCS-IN-EAXC, all eaxc-id instances + across scs, C-Plane section types and combine entities are counted even + though they are same eaxc-id. The counted number shall not excced this value."; + } + + container eaxc-id-group-capabilities { + if-feature FHM; + description + "Presence of this container indicates that FHM can refer to C-Plane in UL direction + to support combining U-Plane messages commanded by C-Plane with Section Extension 10."; + leaf max-num-rx-eaxc-id-groups { + type uint8; + description + "Maximum number of configurable rx-eaxc-id-group supported by FHM."; + } + + leaf max-num-rx-eaxc-ids-per-group { + type uint8; + description + "Maximum number of member-rx-eaxc-id in single rx-eaxc-id-group supported by FHM."; + } + } + + list compression-method-supported { + if-feature FHM; + description + "List of supported compression methods for FHM"; + uses cf:compression-details; + } + + leaf multi-cell-in-cascade-mode-supported { + type boolean; + description + "This parameter indicates whether O-RU supports multi cell + operation in shared cell cascade mode. + If multi-cell-in-cascade-mode-supported = false then each shared cell + O-RU in a physical cascaded chain can only be used for operating + carriers that correspond to a single cell. + If multi-cell-in-cascade-mode-supported = true, it means that the O-RU + may be configured such that the shared-cell carriers can be used to + support mutiple different cells, where each cell is served by its own + separate cascade chain. See CUS-Plane Specification for more details."; + } + } + } + + // shared cell mode configuration + grouping shared-cell-mode{ + description + "A grouping defining the schema nodes for shared cell configuration"; + choice shared-cell-copy-combine-mode { + case COMMON { + description + "all eCPRI payload are the target for copy and combine functions. + Common set of eaxc-ids are used in O-RU in the shared cell network. + For cascade mode, eaxc-ids of low-level-tx(rx)-links in + o-ran-uplane-configuration that has relation to the + processing-element are used. + For FHM mode, eaxc-ids of shared-cell-copy-uplane-config and + those of shared-cell-combine-config are used."; + + uses shared-cell-copy-configuration; + uses shared-cell-combine-configuration; + } + case SELECTIVE-BEAM-ID { + if-feature "FHM and SELECTIVE-BEAM-ID"; + description + "Case that FHM has selective transmission and reception function + by using beamId"; + + uses shared-cell-copy-configuration-for-selective-beam-id; + uses shared-cell-combine-configuration-for-selective-beam-id; + } + case SELECTIVE { + description "for future use"; + } + description + "configuration mode can be selected."; + } + } + + // processing elements set + grouping processing-element-set{ + description + "shared-cell-copy/combine-configuration refers the pair of processing + element set of a north-node and a south-node."; + + leaf north-node-processing-element{ + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "north-node processing element indicates the set of + 'north-node-mac-address', 'ru-mac-address' and 'vlan-id' in case + north-eth-flow is selected for the transport flow."; + } + + leaf-list south-node-processing-elements{ + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "south-node processing elements indicate the sets of + 'south-node-mac-address', 'ru-mac-address' and 'vlan-id' in case + south-eth-flow is selected for the transport flow."; + } + } // processing-element-set + + // processing elements set for SELECTIVE-BEAM-ID + grouping processing-element-set-for-selective-beam-id{ + description + "shared-cell-copy/combine-configuration refers the pair of processing + element set of a north-node and a south-node."; + + leaf north-node-processing-element{ + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "north-node processing element indicates the set of + 'north-node-mac-address', 'ru-mac-address' and 'vlan-id' in case + north-eth-flow is selected for the transport flow."; + } + + leaf-list south-node-processing-elements{ + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "south-node processing elements indicate the sets of + 'south-node-mac-address', 'ru-mac-address' and 'vlan-id' in case + south-eth-flow is selected for the transport flow."; + } + + list mapping-table-for-selective-beam-id { + key "global-beam-id south-node-processing-elements"; + description "the mapping information between global-beam-id and local-beam-id"; + + leaf global-beam-id{ + type uint16; + description + "This parameter indicates the beam ID to be applied to the U-Plane data + on O-DU as same as existing beamId. One global beamId can be mapped + to one or multiple local beamId. + The mapping information between each global beamId, O-RU(s), + and local beamId is configured to the FHM during M-Plane start-up procedure."; + } + leaf south-node-processing-elements { + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "south-node processing elements indicate the sets of + 'south-node-mac-address', 'ru-mac-address' and 'vlan-id' in case + south-eth-flow is selected for the transport flow."; + } + leaf local-beam-id { + type uint16; + description "This parameter indicates the beam ID to be applied to + the U-Plane data on O-RU as same as existing beamId. + In one O-RU, different beams can not map to one global beamId. + Local beamId shall be unique within O-RU."; + } + } + } // processing-element-set for SELECTIVE-BEAM-ID + + // shared cell copy and combine config + grouping shared-cell-copy-configuration{ + description + "shared-cell-copy-configuration"; + list shared-cell-copy-entities{ + key name; + description + "copy entity. The north-node is an O-DU or an O-RU. + The south-nodes are O-RUs. + The number of south-nodes is at most one for cascade O-RU and + more than one for FHM"; + + leaf name{ + type string; + description + "the name of shared-cell-copy-entity."; + } + + leaf odu-id { + if-feature feat:SHARED-ORU-MULTI-ODU; + type string; + description + "An optional o-du identity associated with this list entry. + When present, indicates that the list entry is associated with + a particular odu-id."; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource identity associated with this list entry. + When present, indicates that the list entry corresponds to a shared cell copy entity + associated with a shared resouce operator where the sro-id + identifies the specific shared resouce operator. + + This schema-node is used to refince NACM privileges for shared + resource operators"; + } + + uses processing-element-set; + + container shared-cell-copy-uplane-config { + if-feature FHM; + description + "Container consists of uplane-info for copy-configuration for FHM."; + + list tx-eaxc-id { + key eaxc-id; + description + "used for low-level-tx-endpoints to copy"; + + leaf eaxc-id { + type uint16; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + list rx-eaxc-id { + key eaxc-id; + description + "used for low-level-rx-endpoints to copy"; + + leaf eaxc-id { + type uint16; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + uses radio-offset; + } + + } // shared-cell-copy-entities + } // shared-cell-copy-configuration (groupings) + + grouping shared-cell-copy-configuration-for-selective-beam-id{ + description + "shared-cell-copy-configuration for selective function by beam id"; + list shared-cell-copy-entities-selective-beam-id{ + key name; + description + "copy entity. The north-node is an O-DU or an O-RU. + The south-nodes are O-RUs. + The number of south-nodes is at most one for cascade O-RU and + more than one for FHM"; + + leaf name{ + type string; + description + "the name of shared-cell-copy-entity."; + } + + leaf odu-id { + if-feature feat:SHARED-ORU-MULTI-ODU; + type string; + description + "An optional o-du identity associated with this list entry. + When present, indicates that the list entry is associated with + a particular odu-id."; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource identity associated with this list entry. + When present, indicates that the list entry corresponds to a shared cell copy entity + with selective bean id associated with a shared resouce operator where the sro-id + identifies the specific shared resouce operator. + + This schema-node is used to refince NACM privileges for shared + resource operators"; + } + + uses processing-element-set-for-selective-beam-id; + + container shared-cell-copy-uplane-config { + if-feature FHM; + description + "Container consists of uplane-info for copy-configuration for FHM."; + + list tx-eaxc-id { + key eaxc-id; + description + "used for low-level-tx-endpoints to copy"; + + leaf eaxc-id { + type uint16; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + list rx-eaxc-id { + key eaxc-id; + description + "used for low-level-rx-endpoints to copy"; + + leaf eaxc-id { + type uint16; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + uses radio-offset; + } + + } // shared-cell-copy-entities for SELECTIVE-BEAM-ID + } // shared-cell-copy-configuration (groupings) for SELECTIVE-BEAM-ID + + grouping shared-cell-combine-configuration{ + description + "shared-cell-combine-configuration"; + + list shared-cell-combine-entities{ + key name; + description + "combine configuration. The north-node is O-DU or O-RU. + The south-nodes are O-RUs. + The number of south-nodes is at most one for cascade O-RU and + more than one for FHM"; + + leaf name{ + type string; + description + "name of shared-cell-combine-entity"; + } + + leaf odu-id { + if-feature feat:SHARED-ORU-MULTI-ODU; + type string; + description + "An optional o-du identity associated with this list entry. + When present, indicates that the list entry is associated with + a particular odu-id."; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource identity associated with this list entry. + When present, indicates that the list entry corresponds to a shared cell combine entity + associated with a shared resouce operator where the sro-id + identifies the specific shared resouce operator. + + This schema-node is used to refince NACM privileges for shared + resource operators"; + } + + + uses processing-element-set; + + leaf scs { + type o-ran-cmn:scs-config-type; + description + "sub-carrier spacing of U-Plane messages belong to combine-entity"; + } + + leaf ta3-prime-max { + type uint32; + units nanoseconds; + description + "indicates the latest time that FHM or cascade O-RU is allowed to + send UL U-plane message to north-node relative to reception + timing at O-RU antenna."; + } + + leaf tx-duration { + type uint32; + units nanoseconds; + description + "informs FHM/Cascade O-RU of the maximum duration time of transmission + over the fronthaul interface to O-DU or north-node for messages + to be sent within Ta3-prime-max."; + } + + uses shared-cell-combine-uplane-config; + } + } + + grouping shared-cell-combine-configuration-for-selective-beam-id{ + description + "shared-cell-combine-configuration for selective function by beam id"; + + list shared-cell-combine-entities-for-selective-beam-id{ + key name; + description + "combine configuration. The north-node is O-DU or O-RU. + The south-nodes are O-RUs. + The number of south-nodes is at most one for cascade O-RU and + more than one for FHM"; + + leaf name{ + type string; + description + "name of shared-cell-combine-entity"; + } + + leaf odu-id { + if-feature feat:SHARED-ORU-MULTI-ODU; + type string; + description + "An optional o-du identity associated with this list entry. + When present, indicates that the list entry is associated with + a particular odu-id."; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource identity associated with this list entry. + When present, indicates that the list entry corresponds to a shared cell combine entity + for selective beam id associated with a shared resouce operator where the sro-id + identifies the specific shared resouce operator. + + This schema-node is used to refince NACM privileges for shared + resource operators"; + } + + uses processing-element-set; + + leaf scs { + type o-ran-cmn:scs-config-type; + description + "sub-carrier spacing of U-Plane messages belong to combine-entity"; + } + + leaf ta3-prime-max { + type uint32; + units nanoseconds; + description + "indicates the latest time that FHM or cascade O-RU is allowed to + send UL U-plane message to north-node relative to reception + timing at O-RU antenna."; + } + + leaf tx-duration { + type uint32; + units nanoseconds; + description + "informs FHM/Cascade O-RU of the maximum duration time of transmission + over the fronthaul interface to O-DU or north-node for messages + to be sent within Ta3-prime-max."; + } + + uses shared-cell-combine-uplane-config; + } + } + + + grouping shared-cell-combine-uplane-config{ + description + "shared cell related uplane configuration applicable to O-RU which + doesn't have radio transmission capability"; + container shared-cell-combine-uplane-config { + if-feature FHM; + description + "when O-RU doesn't have radio transmission availability for FHM mode, + the required u-plane configuration for copy and combine function + are defined, instead of the lists of o-ran-uplane-conf.yang"; + + list rx-eaxc-id { + key eaxc-id; + description + "used for low-level-rx-endpoints to combine"; + leaf eaxc-id { + type uint16; + description + "encoded value of eaxc-id to be read by CU-Plane"; + } + + leaf number-of-prb { + type uint16; + description + "Determines max number of PRBs that can be scheduled in all sections + per one symbol. + This value is used when uplink C-plane message indicates that all PRBs + is indicated in the field of numPrbc or tx-duration is calculated."; + } + + leaf-list cp-ul-section-type { + type enumeration { + enum ST1 { + description + "section type 1 is used."; + } + enum ST3P{ + description + "section type 3 is used for PRACH ."; + } + enum ST3M{ + description + "section type 3 is used for PUxCH when mixed numeroloy is applied."; + } + } + description + "indicates what section type is used for a specific eaxc-id with a specfic + SCS/frameStructure which belongs to this combine-entity."; + } + + container comression-method { + description + "for combine mechanism, compression method per eaxc-id applied in + south-node is known to FHM "; + uses cf:compression-details; + } + } + + uses radio-offset; + + leaf n-ta-offset { + type uint32; + units Tc; + mandatory true; + description + "Value of configurable N-TA offset + units are Tc=~0.5ns=1/1.96608GHz"; + } + + leaf number-of-prb { + type uint16; + mandatory true; + status deprecated; + description + "Determines max number of PRBs that will be used in all sections + per one symbol. + This value is used only when uplink C-plane message indicates that + all PRB is used in the field of numPrbc + + This node is deprecated and replaced by number-of-prb in the list of rx-eaxc-id. + This movement is intended to prevent the fragmentation of shared-cell-combine-entities + according to the different value of number-of-prb."; + } + } + } + +// top-level container + container shared-cell{ + description + "This container for shared-cell consists of capability information and + configurable parameters"; + uses shared-cell-module-capability; + + container shared-cell-config { + description "configuration for shared cell."; + uses shared-cell-mode; + + leaf max-num-rx-eaxc-ids-per-group { + if-feature FHM; + type leafref { + path "/o-ran-sc:shared-cell/o-ran-sc:shared-cell-module-cap/o-ran-sc:eaxc-id-group-capabilities/o-ran-sc:max-num-rx-eaxc-ids-per-group"; + require-instance false; + } + description "RW value of max-num-rx-eaxc-ids-per-group"; + } + leaf max-num-rx-eaxc-id-groups { + if-feature FHM; + type leafref { + path "/o-ran-sc:shared-cell/o-ran-sc:shared-cell-module-cap/o-ran-sc:eaxc-id-group-capabilities/o-ran-sc:max-num-rx-eaxc-id-groups"; + require-instance false; + } + description "RW value of max-num-rx-eaxc-id-groups"; + } + + list rx-eaxc-id-group { + if-feature FHM; + must "count(../rx-eaxc-id-group) <= ../max-num-rx-eaxc-id-groups" { + error-message "too many rx-eaxcid-id groups"; + } + key "representative-rx-eaxc-id"; + description + "This is a list of the groups of the eAxC IDs. + Each group is a union of a 'representative-rx-eaxc-id'and 'member-rx-eaxc-id's. + When section type 3 C-Plane in UL direction is used with Section Extension 10 in the shared cell, + this group shall be informed to FHM."; + leaf representative-rx-eaxc-id { + type uint16; + description + "This parameter contains eAxC_ID that populates content of C-Plane section + extension 10 to eAxC_IDs configured in the group as 'member-rx-eaxc-id'(s)."; + } + leaf-list member-rx-eaxc-id { + type uint16; + must "count(../member-rx-eaxc-id) <= ../../max-num-rx-eaxc-ids-per-group" { + error-message "too many rx-eaxcid-id members"; + } + must "current()!=../representative-rx-eaxc-id" { + error-message "the representative eaxcid does not need to be a list member"; + } + description + "This is a list of member eAxC IDs,which is associated with 'representative-rx-eaxc-id' in a group."; + } + } + + leaf enhanced-t-combine-enabled { + if-feature feat:ENHANCED-T-COMBINE; + type boolean; + default false; + description + "O-DU informs FHM/Cascade O-RU that t-combine-net and tx-duration + are used to calculate T-waiting instead of t-combine."; + } + + leaf multiple-scs-in-eaxc-used { + if-feature feat:MULTIPLE-SCS-IN-EAXC; + type boolean; + default false; + description + "O-DU informs FHM/Cascade O-RU that multiple scs or + multiple section types in a single eAxC id are used."; + } + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-software-management@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-software-management@2022-12-05.yang new file mode 100644 index 0000000..c47408d --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-software-management@2022-12-05.yang @@ -0,0 +1,700 @@ +module o-ran-software-management { + yang-version 1.1; + namespace "urn:o-ran:software-management:1.0"; + prefix o-ran-swm; + + import ietf-inet-types { + prefix "inet"; + revision-date 2013-07-15; + } + + import ietf-hardware { + prefix "hw"; + } + + import o-ran-hardware { + prefix "o-ran-hw"; + } + + import o-ran-file-management { + prefix "o-ran-file-mgmt"; + } + + import o-ran-wg4-features { + prefix "or-feat"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines operations and configuration for the management of software packages. + This module is derived out of opencpe-firmware-mgmt@2014-02-06.yang + + Copyright 2021 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 "2022-12-05" { + description + "version 11.0.0 + + 1) SW Install timeout + 2) check integrity directly after download"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + revision "2022-08-15" { + description + "version 9.1.0 + + 1) clarified description statements + 2) style guide corrections + 3) changed import prefix for o-ran-file-management"; + + reference "ORAN-WG4.M.0-v09.00"; + } + + revision "2022-04-18" { + description + "version 9.0.0 + + 1) aded new parameter build-content-download"; + + reference "ORAN-WG4.M.0-v09.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions + 2) new option to use IANA private enterprise number as vendor-code"; + + reference "ORAN-WG4.M.0-v08.00"; + } + revision "2021-07-26" { + description + "version 7.0.0 + + 1) added FTPES support"; + + reference "ORAN-WG4.M.0-v07.00"; + } + + revision "2021-03-22" { + description + "version 1.1.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.0.2 + + 1) backward compatible changes to correct sFTP Server Authentication . + 2) simplifying file management and authentication to reuse from o-ran-file-management module + 3) minor fixes according to lack of descriptions + 4) removal of not used grouping + 5) backward compatible changes to introduce groupings."; + + 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"; + } + + + + // groupings + + grouping slot-group { + description + "Contains information about each software slot and its content."; + list software-slot { + key name; + min-elements 2; + + description + "Information about available software-slots, their status, state and content."; + + leaf name { + type string; + + description + "Name of the software slot. This shall be unique to identify the software-slot."; + } + + leaf status { + type enumeration { + enum VALID { + description + "Slot contains software considered as proven valid"; + } + enum INVALID { + description + "Software in the slot is considered by O-RU as invalid (e.g. wrong CRC). + O-RU prohibits activation of slot with such status."; + } + enum EMPTY { + description + "Slot does not contain software package. O-RU prohibits activation of slot + with such status."; + } + } + config false; + mandatory true; + + description "Indicates the status of the software slot"; + } + + leaf active { + type boolean; + must "../status = 'VALID'"; + config false; + description + "informs if software stored in particular slot is activated at the moment"; + } + + leaf running { + type boolean; + must "../status = 'VALID'"; + config false; + description + "Informs if software stored in particular slot is used at the moment"; + } + + leaf access { + type enumeration { + enum READ_ONLY { + description + "slot intended only for factory software, + activation of such software slot means getting back to factory defaults"; + } + enum READ_WRITE { + description + "slot used for updating software"; + } + } + default READ_WRITE; + config false; + + description + "Indicates the writeability of the slot. + A Read-Only software slot is one which has a factory installed software-slot"; + } + + leaf product-code { + type leafref { + path "/hw:hardware/hw:component/o-ran-hw:product-code"; + } + config false; + + description "product code provided by the vendor, specific to the product. This is derived from manifest file."; + } + + leaf vendor-code { + type string { + length 1..5; + pattern '(.{1,2})|(\d{1,5})'; + } + config false; + + description + "Unique code of the vendor. This is derived from manifest file. + + This may be a 1 or two upper case characters or a 1-5 digit IANA Private Enterprise Number."; + } + + leaf build-id { + type string; + config false; + + description + "Identity associated with the software. This is derived from manifest file."; + } + + leaf build-name { + type string; + config false; + + description + "Name of the build. This is derived from manifest file."; + } + + leaf build-version { + type string; + description "The vendor-specific version string of the software build."; + } + + list files { + key "name"; + config false; + + description "List of all the files present in the software slot."; + + leaf name { + type string; + + description + "Name of the file installed in the slot."; + } + + leaf version { + type string; + + description + "Version of the file installed in the slot"; + } + leaf local-path { + type string; + mandatory true; + + description + "Complete path of the file stored locally"; + } + + leaf integrity { + type enumeration { + enum OK { + description "OK - indicates that file integrity is correct"; + } + enum NOK { + description "NOK - indicates corrupted file"; + } + } + config false; + + description + "Result of the file integrity check (checksum calculation) during installation."; + } + } + } + } + + grouping download-input { + description + "Grouping for SW download RPC input"; + leaf remote-file-path { + type inet:uri; + mandatory true; + description + "URI of the software image including username. + The following format is possible: + When file download is via sftp, the format shall be of the form + sftp://@[:]/path + When file transfer is via FTPES, the format shall be of the form + ftpes://@[:port]/path + + Note, ftpes is not an IANA registered URI scheme, but used here to signal + that a file transfer should be performed over FTPES."; + } + + + uses o-ran-file-mgmt:credential-information; + } + + grouping download-output { + description + "Grouping for SW download RPC output"; + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software file download"; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is FAILED."; + } + + leaf notification-timeout { + type int32 {range "1..max";} + units seconds; + default 30; + + description + "Notification timeout is the time NETCONF client shall + wait for a 'download-event' notification from O-RU. If there is no + 'download-event' notification received within notification-timeout, + NETCONF client shall assume the download timeout/failure, and follow necessary steps."; + } + } + + grouping install-input { + description + "Grouping for SW installation RPC input"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + must "/software-inventory/software-slot[name = current()][active = 'false' and running = 'false']" { + error-message "software-install may be requested only against active::false and running::false slot!"; + } + mandatory true; + + description + "Software slot to which the software shall be installed."; + } + + leaf-list file-names { + type string; + + description + "Names of the files within software package to be installed"; + } + } + + grouping install-output { + description + "Grouping for SW installation RPC output"; + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software package installation to software slot."; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is FAILED."; + } + + leaf sw-install-timeout { + type int32 {range "1..max";} + units seconds; + + description + "Optional timeout indicated by O-RU after which time + an 'install-event' notification will be sent indicating + the installation procedure has timed out."; + } + } + + grouping activate-input { + description + "Grouping for SW activation RPC input"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + must "/software-inventory/software-slot[name = current()][status = 'VALID']" { + error-message "software activation may be requested only on VALID slot!"; + } + mandatory true; + + description + "Slot name on which software has to be activated."; + } + } + + grouping activate-output { + description + "Grouping for SW activation RPC output"; + leaf status { + type enumeration { + enum STARTED { + description + "Operation has been started without error."; + } + enum FAILED { + description + "Operation cannot be started because of error, more detailed information can be found in error-message."; + } + } + mandatory true; + + description + "Status of the software files activation"; + } + leaf error-message { + when "../status = 'FAILED'"; + type string; + + description + "Detailed error Message when the status is FAILED."; + } + + leaf notification-timeout { + type int32 {range "1..max";} + units seconds; + default 30; + + description + "Timeout on client waiting for the activate event"; + } + } + + grouping download-notification { + description + "Grouping for notification event structure for download completion"; + leaf file-name { + type string; + mandatory true; + + description + "File name of transferred software file."; + } + + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed successfully"; + } + enum AUTHENTICATION_ERROR { + description "Source available, wrong credentials"; + } + enum PROTOCOL_ERROR { + description "SFTP or FTPES errors"; + } + enum FILE_NOT_FOUND { + description "Source not available."; + } + enum APPLICATION_ERROR { + description "Application related errors"; + } + enum TIMEOUT { + description "Timeout waiting for download"; + } + enum INTEGRITY_ERROR { + description "File is corrupted"; + } + } + + description + "Status of finished operation execution"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + } + + grouping install-notification { + description + "Grouping for notification event structure for installation completion"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + + description + "Name of the slot to which software was installed."; + } + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed successfully"; + } + enum FILE_ERROR { + description "Operation on the file resulted in in error, disk failure, not enough disk space, + incompatible file format"; + } + enum INTEGRITY_ERROR { + description "File is corrupted"; + } + enum APPLICATION_ERROR { + description "Operation failed due to internal reason"; + } + enum TIMEOUT { + description "Install operation timed out"; + } + } + + description + "Status of finished operation execution"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + } + + grouping activation-notification { + description + "Grouping for notification event structure for activation completion"; + leaf slot-name { + type leafref { + path "/software-inventory/software-slot/name"; + } + + description + "Name of the slot which was activated"; + } + + leaf status { + type enumeration { + enum COMPLETED { + description + "Operation completed successfully"; + } + enum APPLICATION_ERROR { + description + "Operation finished with error, more details can by found in error-message"; + } + } + + description + "Status of finished operation execution"; + } + leaf return-code { + type uint8; + + description + "Status code return when the software is tried to activate"; + } + leaf error-message { + when "../status != 'COMPLETED'"; + type string; + + description + "Detailed description of faulty situation"; + } + } + + // top-level container + + container software-inventory { + config false; + description + "Contains information about each software slot and its content as well as information related to + software processing."; + + uses slot-group; + + leaf build-content-download { + type empty; + description + "An optional leaf used to indicate that the O-RU requires separate download procedures to be + re-used for downloading individual files in a software build, instead of a single archived package."; + } + + leaf integrity-check-at-download-enabled { + if-feature or-feat:INTEGRITY-CHECK-AT-SW-DOWNLOAD; + type empty; + description "Presence of this node enables O-RU to perform integrity check at file download."; + } + + } + // RPC statements + + rpc software-download { + description + "RPC needed to perform software download operation."; + + input { + uses download-input; + } + output { + uses download-output; + } + } + + rpc software-install { + description + "Install a previously downloaded software."; + + input { + uses install-input; + } + output { + uses install-output; + } + } + + rpc software-activate { + description + "Activate a previously installed software."; + input { + uses activate-input; + } + output { + uses activate-output; + } + } + + // notification definitions + notification download-event { + description "Notification event structure for download completion"; + uses download-notification; + + } + + notification install-event { + description "Notification event structure for installation completion"; + uses install-notification; + } + + notification activation-event { + description "Notification event structure for activation completion"; + uses activation-notification; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2022-12-05.yang new file mode 100644 index 0000000..e80b1f8 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2022-12-05.yang @@ -0,0 +1,370 @@ +module o-ran-supervision { + yang-version 1.1; + namespace "urn:o-ran:supervision:1.0"; + prefix "o-ran-supervision"; + + import ietf-yang-types { + prefix yang; + } + + import o-ran-wg4-features { + prefix or-feat; + } + + import ietf-inet-types { + prefix "inet"; + } + import ietf-netconf-monitoring { + prefix ncm; + } + + + import o-ran-usermgmt { + prefix "or-user"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the configuration data and supervision RPCs that are + used to detect loss M-Plane connectivity. + + Copyright 2021 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 "2022-12-05" { + description + "version 11.0.0 + + 1) NETCONF session supervison with session id"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + revision "2022-08-15" { + description + "version 10.0.0 + + 1) introduced SHARED-ORU-MULTI-ODU and SHARED-ORU-MULTI-OPERATOR features."; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 5.2.0 + + 1) typographical corrections in descriptions."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2021-03-22" { + description + "version 5.1.0 + + 1) typographical corrections in descriptions. + 2) removed non-ACSII characters."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) added Event Producer-Collector supervision"; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) added output string to enable indication if config modification change has failed + 2) corrected model description + 3) removed erroneous text in notification description"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + revision "2019-07-03" { + description + "version 2.0.0 + + 1) added leafs for CU plane monitoring + 2) backward compatible changes to introduce groupings"; + + 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 event-collector-id { + type union { + type inet:ip-address; + type inet:uri; + } + description "An Event Collector identifier"; + } + + grouping watchdog-input { + description "a watchdog input grouping"; + leaf supervision-notification-interval { + type uint16; + units seconds; + default 60; + description + "The interval in seconds at which supervision notifications are sent. + If not specified the default value of 60 seconds shall apply."; + } + leaf guard-timer-overhead { + type uint16; + units seconds; + default 10; + description + "This is overhead added to the supervision timer used to calculate the + supervision watchdog timer. i.e., + + supervision timer = notification timer + guard-timer-overhead + + If not specified the default value of 10 seconds shall apply. + + Failure to send this RPC again within the timeout sets the radio into + 'loss of supervision' state. + + NOTE - The supervision timer MUST not be less that the confirmed + timeout timer (when the feature is supported). + + This type of constraint (using an RPC's input) cannot be formally + expressed in YANG."; + } + } + + grouping watchdog-output { + description "a watchdog output grouping"; + leaf next-update-at { + type yang:date-and-time; + description + "Indicates the time when the next supervision notification is expected."; + } + + leaf error-message { + type string; + + description + "An optional error message, e.g., used when the RPC input attempts to + modify a locked running configuration. + + Take note, the supervision-notification-interval and guard-timer-overhead + have default values and so their values can be modified even when a leaf is + not included in the RPC input."; + } + } + + grouping supervision-notification-data { + description "a supervision notification data grouping"; + leaf session-id { + if-feature or-feat:SUPERVISION-WITH-SESSION-ID; + type leafref { + path "/ncm:netconf-state/ncm:sessions/ncm:session/ncm:session-id"; + } + mandatory true; + description + "This value uniquely identifies the NETCONF session in an O-RU. The value is conveyed to NETCONF client in hello message. + the session-id for the netconf session is sent as part of each supervision-notification notification. + and may be used for create-subscription to filter the relevant + notifications"; + } + } + + grouping supervision-group { + description "a supervision grouping"; + container cu-plane-monitoring { + presence + "Indicates O-RU supports timer based cu-plane monitoring interval. If + this container is NOT present, the operation of the O-RU is undefined."; + description "container describing operation of CU plane monitoring"; + + leaf configured-cu-monitoring-interval { + type uint8 { + range "0..160"; + } + units milliseconds; + default 160; + description + "This value corresponds to the configured value of the timer used by + the O-RU to monitor the C/U plane connection. + + A value of 0 means that the O-RU's shall disable its CU plane + monitoring. + + A NETCONF client should configure the value according to the + configuration of the PHY layer and/or C/U plane section types + supported and/or any fault tolerant operation. For example, + + i) when operating with an O-DU supporting non-LAA LTE, this value can + be configured to a value according to the repetition time of + transmitted reference symbols across the fronthaul interface + ii) when operating with an O-DU supporting C-Plane Section Type 0, + this value can configured to a value according to the minimum + repetition interval of section type 0. + iii) when operating with an O-DU supporting fault tolerant operation, + this value can be configured according to the fault tolerant heartbeat + interval "; + } + } + container event-collector-monitoring { + if-feature "or-feat:NON-PERSISTENT-MPLANE"; + description "container describing operation of Event Collector monitoring"; + + leaf heartbeat-interval { + type uint8; + units seconds; + default 60; + description "the heartbeat interval"; + } + + leaf-list heartbeat-recipient-id { + type event-collector-id; + description + "A configured Event collector identity, to which the O-RU shall send heartbeat notifications"; + } + } + container per-odu-monitoring { + if-feature "or-feat:SHARED-ORU-MULTI-ODU or or-feat:SHARED-ORU-MULTI-OPERATOR"; + presence + "Indicates at least one of the O-RU Controllers intends to operate per O-DU supervision."; + description "container describing per-odu monitoring parameters"; + + list odu-ids { + if-feature or-feat:SHARED-ORU-MULTI-ODU; + key odu-id; + description + "an optional list of o-du identities that an O-RU controller intends to use with per + O-DU supervision in a single operator envrionment. The odu-id values are used to match + values received in the supervision-watchdog-reset rpc together with values configured in + o-ran-uplane-conf based configuration. + The O-RU does not further interpret the specific value of odu-id."; + leaf odu-id { + type string; + description "an o-du identity "; + } + } + + list sro-ids-and-odu-ids { + if-feature "or-feat:SHARED-ORU-MULTI-ODU and or-feat:SHARED-ORU-MULTI-OPERATOR"; + key "odu-id sro-id"; + description + "an optional list of sro and o-du identities that an O-RU controller intends to use with per + O-DU supervision in a multi-operator envrionment. The sro-id and odu-id values are used to match + values received in the supervision-watchdog-reset rpc together with values configured in + o-ran-uplane-conf based configuration. + The O-RU does not further interpret the specific value of sro-id or odu-id."; + leaf odu-id { + type string; + description "an o-du identity "; + } + leaf sro-id { + type string; + description "an sro identity "; + } + } + } + } + + container supervision { + description "top leval supervision container"; + uses supervision-group; + // other WG specific monitoring containers follow here + } + + rpc supervision-watchdog-reset { + description + "rpc to reset the watchdog timer"; + input { + uses watchdog-input; + + container context { + if-feature "or-feat:SHARED-ORU-MULTI-ODU or or-feat:SHARED-ORU-MULTI-OPERATOR"; + description + "an optional container that defines the context associated with the + watchdog reset. Context can be used in supervision operations with + multiple O-DUs"; + + leaf odu-id { + if-feature or-feat:SHARED-ORU-MULTI-ODU; + type string; + description + "an optional o-du identity associated with this + supervision watchdog operation. If an odu-id received is not configured + in the list of tx-array-carriers or list of rx-array carriers, this leaf is ignored. + When it does correspond to an odu-id listed in tx-array-carriers and/or + rx-array-carriers, the odu-id is used in the operatrion of per O-DU supervision."; + } + + leaf sro-id { + if-feature or-feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "The shared resource identity associated with the current NETCONF session. + A supervision-watchdog-reset RPC received from NETCONF client + with user-group privileges of 'carrier' MUST be rejected + if it is received without a sro-id leaf. + In other scenarios, this leaf is optional and ignored by the O-RU."; + } + } + } + + output { + uses watchdog-output; + } + } + + notification supervision-notification { + description + "Notification to indicate that NETCONF management interface is up."; + uses supervision-notification-data; + + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-sync@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-sync@2022-08-15.yang new file mode 100644 index 0000000..9a26bdc --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-sync@2022-08-15.yang @@ -0,0 +1,1025 @@ +module o-ran-sync { + yang-version 1.1; + namespace "urn:o-ran:sync:1.0"; + prefix "o-ran-sync"; + + import ietf-interfaces { + prefix "if"; + } + + import o-ran-interfaces { + prefix "o-ran-int"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines synchronization mechanism for the O-RAN Equipment. + + Copyright 2021 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 "2022-08-15" { + description + "version 8.1.0 + + 1) clarifiy description of quality-level"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) typographical corrections in descriptions. + 2) add support for boundary clock indication"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-03-22" { + description + "version 1.4.0 + + 1) typographical corrections in descriptions. + 2) Description alignment with specification."; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2020-08-10" { + description + "version 1.3.0 + + 1) Update description of ENCHANCED (sic) under container sync-capability leaf sync-t-tsc with + correct reference to IEEE 802.1CM sections. + 2) Add description that CLASS_B and ENHANCED are as per IEEE802.1CM. + 3) Add freq-error and time-error leafs under container sync-status. This allows an O-DU to + query the O-RU using NETCONF procedure about the phase and frequency errors at + any time. + 4) Move delay-asymmetry outside of container g-8275-1-config as the delay asymmetry + is applicable to G.8275.2 as well + 5) Add gnss-rx-error in gnss-data for LLS-C4 configuration + 6) Correct the description of state enumerations under synce-status. The earlier + descriptions were copy paste from ptp-status"; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2020-04-17" { + description + "version 1.2.0 + + 1) enable O-RU to only support GNSS and not 802.1CM."; + + reference "ORAN-WG4.M.0-v03.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) backward compatible changes to introduce groupings."; + + 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 GNSS { + description + "This feature indicates that the equipment supports integrated GNSS functionality."; + } + + feature ANTI-JAM { + description + "This feature indicates that the equipment supports Anti-jam functionality"; + } + + typedef geographic-coordinate-degree { + type decimal64 { + fraction-digits 8; + } + description + "Decimal degree (DD) used to express latitude and longitude + geographic coordinates."; + } + + grouping sync-group { + description "This group represents the state and status of timing and synchronization of the O-RU"; + container sync-status { + config false; + + description + "Object of this class provides synchronization state of the module."; + + leaf sync-state { + type enumeration { + enum LOCKED { + description + "equipment is in the locked mode, as defined in ITU-T G.810"; + } + enum HOLDOVER { + description + "equipment clock is in holdover mode"; + } + enum FREERUN { + description + "equipment clock isn't locked to an input reference, and is not in the holdover mode"; + } + } + mandatory true; + description + "State of DU synchronization"; + } + leaf time-error { + type decimal64 { + fraction-digits 3; + } + units nanoseconds; + description + "An optional leaf indicating an estimate of the current time error in the O-RU, + e.g., derived from a low pass filtering of the residual error of the PLL. + The definition of the filtering and updating is left to O-RU implementation."; + } + leaf frequency-error { + type decimal64 { + fraction-digits 3; + } + units parts-per-billion; + description + "An optional leaf indicating an estimate of the current frequency error in the O-RU, + e.g., derived from a low pass filtering of the residual error of the PLL. + The definition of the filtering and updating is left to O-RU implementation."; + } + + list supported-reference-types { + key item; + min-elements 1; + description + "Type of a synchronization supported source."; + leaf item { + type enumeration { + enum GNSS { + description + "GPS can be taken as a synchronization source"; + } + enum PTP { + description + "Precision Time Protocol can be taken as a synchronization source"; + } + enum SYNCE { + description + "Synchronous Ethernet can be taken as a synchronization source"; + } + } + mandatory true; + + description + "supported reference-type"; + } + } + } + + container sync-capability { + config false; + + description + "Object of this class provides synchronization capabilities of the module."; + + leaf sync-t-tsc { + type enumeration { + enum CLASS_B { + description + "Regular accuracy (previously referred to class B) for synchronization + is supported by the device as per IEEE802.1CM clause 6.4.1, Case 1.1"; + } + enum ENCHANCED { + description + "Enhanced accuracy for synchronization is supported by the device as per + IEEE802.1CM clause 6.4.1, Case 1.2. + + The typo in the name of the enumeration (ENCHANCED instead of ENHANCED) + is kept as is for backwards compatibility"; + } + } + description + "When the O-RU supports 802.1CM, this leaf provides information about + T-TSC capability"; + + reference "IEEE 802.1CM"; + } + + leaf boundary-clock-supported { + type boolean; + description + "This parameter indicates whether O-RU supports the T-BC profiles in ITU-T G.8275.1."; + } + } + + container ptp-config { + description + "This MO defines configuration of Precise Time Protocol."; + leaf domain-number { + type uint8; + default 24; + description + "This parameter indicates Domain Number for PTP announce messages."; + } + + list accepted-clock-classes { + key clock-classes; + leaf clock-classes { + type uint8; + description + "PTP Clock Class accepted by the O-RU"; + } + description + "Contains list of PTP acceptable Clock Classes, sorted in the descending order."; + } + + leaf ptp-profile { + type enumeration { + enum G_8275_1 { + description + "Usage of multicast over Ethernet"; + } + + enum G_8275_2 { + description + "Usage of unicast over IP"; + } + } + default "G_8275_1"; + description + "Type of profile to be used in PTP setting"; + } + leaf delay-asymmetry { + type int16 { + range "-10000..10000"; + } + default 0; + description + "Defines static phase error in the recovered PTP timing signal to be compensated at the O-RU. + The error is defined in units of nanoseconds in the range +/-10 000 ns. + + If the deprecated delay-asymmetry schema node in the g-8275-1-config container is configured + together with this schema node, then the O-RU shall use this schema node and ignore the + value in the g-8275-1-config container."; + } + + container g-8275-1-config { + when "../ptp-profile='G_8275_1'"; + + description + "Container allowing for configuration of G8275.1"; + + leaf multicast-mac-address { + type enumeration { + enum FORWARDABLE { + description + "means, that PTP shall use 01-1B-19-00-00-00 destination MAC address"; + } + enum NONFORWARDABLE { + description + "means, that PTP shall use 01-80-C2-00-00-0E destination MAC address"; + } + } + default FORWARDABLE; + description + "The parameter defines destination MAC address, used by the DU in the egress PTP messages."; + } + + leaf delay-asymmetry { + type int16 { + range -10000..10000; + } + default 0; + status deprecated; + description + "Defines static phase error in the recovered PTP timing signal to be compensated at the O-RU. + The error is defined in units of nanoseconds in the range +/-10 000 ns."; + } + } + + container g-8275-2-config { + when "../ptp-profile='G_8275_2'"; + + description + "Container used for configuration of G8275.2 profile"; + + leaf local-ip-port { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Reference to interface name corresponding to IP interface + used for G.8275.2"; + } + + list master-ip-configuration { + key local-priority; + description + "The parameter defines list of IP configuration of devices acting as PTP signal source."; + leaf local-priority { + type uint8; + description + "The parameter defines local priority or underlying master IP address."; + } + + leaf ip-address { + type string; + description + "the parameter defines master IP address."; + } + } + + leaf log-inter-sync-period { + type int8 { + range "-7..0"; + } + + description + "The parameter defines number of sync message during 1 second"; + } + + leaf log-inter-announce-period { + type int8 { + range "-3..0"; + } + + description + "The parameter defines number of announce message during 1 second"; + } + } + } + + container ptp-status { + description + "PTP status container"; + leaf reporting-period { + type uint8; + default 10; + description + "This parameter defines minimum period in seconds between reports, + sent by the O-RU, for parameters in this container."; + } + leaf lock-state { + type enumeration { + enum LOCKED { + description + "The integrated ordinary clock is synchronizing to the reference, recovered from PTP flow"; + } + enum UNLOCKED { + description + "The integrated ordinary clock is not synchronizing to the reference, recovered from PTP flow"; + } + } + config false; + description + "This parameter indicates, whether the integrated ordinary clock is + synchronizing to the reference, recovered from PTP signal. + The exact definition when to indicate locked or unlocked is up to specific + implementation."; + } + + leaf clock-class { + type uint8; + config false; + description + "This parameter contains the clock class of the clock, controlled by the O-RU"; + } + + leaf clock-identity { + type string { + length 18; + pattern "0[xX][0-9a-fA-F]{16}"; + } + config false; + description + "This parameter contains identity of the clock, + according to IEEE 1588-2008 definition, controlled by the O-RU. + The string shall be formatted as an 8-octet hex value with the '0x' prefix."; + } + + leaf partial-timing-supported { + type boolean; + config false; + description + "Provides information wheter G.8275.2 (partial timing support from network) is supported."; + } + + list sources { + key local-port-number; + config false; + + description + "Synchronization sources"; + + leaf local-port-number { + type leafref { + path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number"; + } + description + "This is reference to portNumber of ExternalEthernetPort to identify the port, + where the PTP signal is located."; + } + + leaf state { + type enumeration { + enum PARENT { + description + "Indicates that this source is the current master clock, i.e. the clock, + which the clock, controlled by the NETCONF Server, is synchronized to"; + } + enum OK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the NETCONF Server, can potentially synchronize to, + i.e. clock class and priority, announced by the master clock is lower, + compared to those of the clock, controlled by the NETCONF Server, + and and the clock class is accepted"; + } + enum NOK { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the NETCONF Server, has an operational connection to, + but the class or priority of the master clock is higher or equal + to those of the clock, controlled by the NETCONF Server, + or the clock class is not accepted"; + } + enum DISABLED { + description + "Indicates that this source is an alternate master, which the clock, + controlled by the NETCONF Server, has no operational connection to"; + } + } + description + "This parameter indicates status of the PTP source"; + } + + leaf two-step-flag { + type boolean; + description + "This parameter reflects status of the twoStepFlag attribute in Sync messages, + received from the PTP source."; + } + + leaf leap61 { + type boolean; + description + "This parameter reflects status of the leap61 flag in Announce messages, + received from the PTP source. + When true, the last minute of the current UTC day contains 61 seconds."; + } + + leaf leap59 { + type boolean; + description + "This parameter reflects status of the leap59 flag in Announce messages, + received from the PTP source. + When true, the last minute of the current UTC day contains 59 seconds."; + } + + leaf current-utc-offset-valid { + type boolean; + description + "This parameter reflects status of the currentUtcOffsetValid flag in + Announce messages, received from the PTP source. + When true, the current UTC offset is valid."; + } + + leaf ptp-timescale { + type boolean; + description + "This parameter reflects status of the ptpTimescale flag in Announce + messages, received from the PTP source. + + When set, the clock timescale of the grandmaster clock is PTP; + otherwise, the timescale is ARB (arbitrary)"; + } + + leaf time-traceable { + type boolean; + description + "This parameter reflects status of the timeTraceable flag in Announce + messages, received from the PTP source. + + When true, the timescale and the currentUtcOffset are traceable to a + primary reference"; + } + + leaf frequency-traceable { + type boolean; + description + "This parameter reflects status of the frequencyTraceable flag in + Announce messages, received from the PTP source. + + When true, the frequency determining the timescale is traceable to a + primary reference"; + } + + leaf source-clock-identity { + type string { + length 18; + pattern "0[xX][0-9a-fA-F]{16}"; + } + description + "This parameter reflects value of the sourceClockIdentity attribute in + Announce messages, received from the PTP source. + + The string shall be formatted as an 8-octet hex value with the '0x' + prefix."; + } + + leaf source-port-number { + type uint16; + description + "This parameter reflects value of the sourcePortNumber attribute in + Announce messages, received from the PTP source."; + } + + leaf current-utc-offset { + type int16; + description + "The offset between TAI and UTC when the epoch of the PTP system is + the PTP epoch, i.e., when ptp-timescale is TRUE; otherwise, the value + has no meaning"; + } + + leaf priority1 { + type uint8; + description + "This parameter reflects value of the priority1 attribute in Announce + messages, received from the PTP source."; + } + + leaf clock-class { + type uint8; + description + "This parameter reflects value of the clockClass attribute in + Announce messages, received from the PTP source."; + } + + leaf clock-accuracy { + type uint8; + description + "This parameter reflects value of the clockAccuracy attribute in + Announce messages, received from the PTP source."; + } + + leaf offset-scaled-log-variance { + type uint16; + description + "This parameter reflects value of the offsetScaledLogVariance + attribute in Announce messages, received from the PTP source."; + } + + leaf priority2 { + type uint8; + description + "This parameter reflects value of the priority2 attribute in Announce + messages, received from the PTP source."; + } + + leaf grandmaster-clock-identity { + type string { + length 18; + pattern "0[xX][0-9a-fA-F]{16}"; + } + description + "This parameter reflects value of the grandmasterClockIdentity + attribute in Announce messages, received from the PTP source. + + The string shall be formatted as an 8-octet hex value with the '0x' + prefix."; + } + + leaf steps-removed { + type uint16; + description + "This parameter reflects value of the stepsRemoved attribute in + Announce messages, received from the PTP source. + + It indicates the number of communication paths traversed + between the local clock and the grandmaster clock."; + } + + leaf time-source { + type uint8; + description + "This parameter reflects value of the timeSource attribute in + Announce messages, received from the PTP source."; + } + } + } + + container synce-config { + description + "This container defines the configuration of SyncE"; + + leaf-list acceptance-list-of-ssm { + type enumeration { + enum PRC { + description + "PRC"; + } + enum PRS { + description + "PRS"; + } + enum SSU_A { + description + "SSU_A"; + } + enum SSU_B { + description + "SSU_B"; + } + enum ST2 { + description + "ST2"; + } + enum ST3 { + description + "ST3"; + } + enum ST3E { + description + "ST3E"; + } + enum EEC1 { + description + "EEC1"; + } + enum EEC2 { + description + "EEC2"; + } + enum DNU { + description + "DNU"; + } + enum NONE { + description + "NONE"; + } + } + + default "PRC"; + + description + "The parameter contains the list of SyncE acceptable SSMs."; + } + + leaf ssm-timeout { + type uint16; + + description + "The parameter contains the value of maximum duration in seconds for which the actual SSM value may be different than configured values."; + } + } + + container synce-status { + description + "SyncE status container"; + + leaf reporting-period { + type uint8; + default 10; + description + "This parameter defines minimum period in seconds between reports, + sent by the O-RU, for parameters in this container."; + } + + leaf lock-state { + type enumeration { + enum LOCKED { + description + "The integrated ordinary clock is synchronizing to the reference, recovered from SyncE signal"; + } + enum UNLOCKED { + description + "The integrated ordinary clock is not synchronizing to the reference, recovered from SyncE signal"; + } + } + config false; + description + "This parameter indicates, whether the integrated ordinary clock is + synchronizing to the reference, recovered from SyncE signal. + + The exact definition when to indicate locked or unlocked is up to + specific implementation."; + } + + list sources { + key local-port-number; + config false; + leaf local-port-number { + type leafref { + path "/if:interfaces/if:interface/o-ran-int:port-reference/o-ran-int:port-number"; + } + description + "This is reference to portNumber of ExternalEthernetPort to identify + the port, where the SyncE signal is located."; + } + + leaf state { + type enumeration { + enum PARENT { + description + "Indicates this is the primary SyncE source recovering SyncE signal"; + } + enum OK { + description + "Indicates that this source is an alternate SyncE source, which the clock, + controlled by the NETCONF Server, can potentially synchronize to, when the + clock quality of the primary SyncE signal advertised in ESMC packets is + lower than the expected or configured clock quality; or when this source + clock's quality is better than the primary SyncE source clock quality"; + } + enum NOK { + description + "Indicates that this source is an alternate SyncE source, and the O-RU + has an operational connection to this alternate SyncE source, but the + clock's quality is not in the configured acceptable range"; + } + enum DISABLED { + description + "Indicates that this source is an alternate SyncE clock, and the O-RU has an + operational connection to this alternate SyncE source"; + } + } + description + "This parameter indicates status of the SyncE source"; + } + + leaf quality-level { + type uint8 { + range 0..15; + } + description + "This parameter contains value of the SSM clock quality level, + received in SSM messages from the SyncE source. + If multiple clock sources are available, the O-RU can select the + reference clock source based on the SSM quality level"; + } + min-elements 1; + description + "This parameter contains characteristics of SyncE sources of the clock, controlled by the O-RU."; + } + } + + container gnss-config { + if-feature GNSS; + description + "This container defines the configuration of Global Navigation Satellite System (GNSS)."; + + leaf enable { + type boolean; + + description + "This parameter defines if GNSS receiver shall be enabled or not."; + } + + leaf-list satellite-constelation-list { + type enumeration { + enum GPS { + description + "GPS"; + } + enum GLONASS { + description + "GLONASS should not be used alone but always along with GPS or BEIDOU because of missing leap second information"; + } + enum GALILEO { + description + "GALILEO"; + } + enum BEIDOU { + description + "BEIDOU"; + } + } + + description + "This parameter defines list of constellations to be used to acquire synchronization."; + } + + leaf polarity { + type enumeration { + enum POSITIVE { + description + "POSITIVE"; + } + enum NEGATIVE { + description + "NEGATIVE"; + } + } + default POSITIVE; + + description + "This parameter defines pulse polarity"; + } + + leaf cable-delay { + type uint16 { + range "0..1000"; + } + default 5; + + description + "This parameter is used to compensate cable delay."; + } + + leaf anti-jam-enable { + if-feature ANTI-JAM; + type boolean; + default false; + description + "This parameter is used to enable or disable anti-jamming."; + } + } + + container gnss-status { + if-feature GNSS; + description + "Provides information about state of gps receiver"; + leaf reporting-period { + type uint8; + default 10; + description + "This parameter defines minimum period in seconds between reports, + sent by the O-RU, for parameters in this container."; + } + leaf name { + type string { + length "1..255"; + } + config false; + description + "A name that is unique that identifies a GNSS instance. + This name may be used in fault management to refer to a + fault source or affected object"; + } + leaf gnss-sync-status { + type enumeration { + enum SYNCHRONIZED { + description "GNSS functionality is synchronized"; + } + enum ACQUIRING-SYNC { + description "GNSS functionality is acquiring sync"; + } + enum ANTENNA-DISCONNECTED { + description "GNSS functionality has its antenna disconnected"; + } + enum BOOTING { + description "GNSS functionality is booting"; + } + enum ANTENNA-SHORT-CIRCUIT { + description "GNSS functionality has an antenna short circuit"; + } + } + config false; + description "when available, indicates the status of the gnss receiver."; + } + container gnss-data { + when "../gnss-sync-status='SYNCHRONIZED'"; + config false; + description + "GPS data contained"; + leaf satellites-tracked { + type uint8; + description "Number of satellites tracked"; + } + container location { + description + "Containes information about geo location"; + leaf altitude { + type int64; + units millimeter; + description + "Distance above the sea level."; + } + leaf latitude { + type geographic-coordinate-degree { + range "-90..90"; + } + description + "Relative position north or south on the Earth's surface."; + } + leaf longitude { + type geographic-coordinate-degree { + range "-180..180"; + } + description + "Angular distance east or west on the Earth's surface."; + } + } + leaf gnss-rx-time-error { + type decimal64 { + fraction-digits 3; + } + units nanoseconds; + description + "An optional leaf, representing the estimate of current GNSS receiver time error "; + } + } + } + } + container sync { + description + "Main containter for sync related parameters"; + + uses sync-group; + } + + //notification statement + notification synchronization-state-change { + description + "Notification used to inform about synchronization state change"; + + leaf sync-state { + type leafref { + path "/sync/sync-status/sync-state"; + } + description + "State of equipment synchronization is notified at state change"; + } + } + + notification ptp-state-change { + description + "Notification used to inform about PTP synchronization state change"; + + leaf ptp-state{ + type leafref{ + path "/sync/ptp-status/lock-state"; + } + description + "ptp-state-change notification is signalled from equipment at state change"; + } + } + notification synce-state-change { + description + "Notification used to inform about syncE synchronization state change"; + + leaf synce-state{ + type leafref{ + path "/sync/synce-status/lock-state"; + } + description + "synce-state change notification is signalled from equipment at state change"; + } + } + notification gnss-state-change { + if-feature GNSS; + description + "Notification used to inform about GNSS synchronization state change"; + + leaf gnss-state{ + type leafref{ + path "/sync/gnss-status/gnss-sync-status"; + } + description + "gnss-state-change notification is signalled from equipment at state change"; + } + } + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-trace@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-trace@2022-08-15.yang new file mode 100644 index 0000000..e135b75 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-trace@2022-08-15.yang @@ -0,0 +1,123 @@ +module o-ran-trace { + yang-version 1.1; + namespace "urn:o-ran:trace:1.0"; + prefix "o-ran-trace"; + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the operations for the trace logs. + + 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 "2022-08-15" { + description + "version 1.2.0 + + 1) clarified path/folder description."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2021-12-01" { + description + "version 1.1.0 + + 1) Typographical corrections."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.0.0 + + 1) Initial module definition."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + + grouping trace-status-grouping { + description "grouping used for trace RPCs"; + leaf status { + type enumeration { + enum SUCCESS { + description "RPC completed correctly"; + } + enum FAILURE { + description "RPC failed"; + } + } + description "result of RPC operation"; + } + leaf failure-reason { + when "../status = 'FAILURE'"; + type string; + description "free-form text description why error occurred"; + } + } + + rpc start-trace-logs { + description + "Management plane triggered to start collecting the trace logs files of O-RU."; + output { + uses trace-status-grouping; + } + } + + rpc stop-trace-logs { + description + "Management plane triggered to stop collecting the trace logs files of O-RU."; + output { + uses trace-status-grouping; + } + } + + notification trace-log-generated { + description + "When new log file generated, send this notification."; + leaf-list log-file-name { + type string; + description + "The list of trace log file names on the O-RU. Each record in this list is expected to contain + location of the file (e.g. 'o-ran/log/') and the name of file (e.g.'my_trace_log_file.zip', where + 'my_trace_log_file' is example file name and 'zip' is expected file name extension). + Example complete expected content of this node is 'o-ran/log/my_trace_log_file.zip'."; + } + + leaf is-notification-last { + type boolean; + default false; + description + "Informs if notification is last - the one after receiving stop-trace-logs RPC."; + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang new file mode 100644 index 0000000..8928fac --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-transceiver@2022-12-05.yang @@ -0,0 +1,592 @@ +module o-ran-transceiver { + yang-version 1.1; + namespace "urn:o-ran:transceiver:1.0"; + prefix "o-ran-transceiver"; + + import o-ran-interfaces { + prefix "o-ran-int"; + } + + import ietf-interfaces { + prefix "if"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the operational state data for SFP transceivers used in + an 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 "2022-12-05" { + description + "version 11.0.0 + + 1) enable more than one interface to be accessible through a transceiver"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + + revision "2022-08-15" { + description + "version 10.0.0 + + 1) introduced new SFP compliance codes and updated references"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 2.1.0 + + 1) typographical corrections in descriptions + 2) clarifying vendor name follows SFF 8472"; + + reference "ORAN-WG4.M.0-v02.00"; + } + + + revision "2019-07-03" { + description + "version 2.0.0 + + 1) introduction of reporting for QSFP. + 2) backward compatible changes to introduce groupings."; + + reference "ORAN-WG4.M.0-v02.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"; + } + + + // Groupings + + grouping transceiver-group { + description "a transceiver grouping"; + list port-transceiver-data { + key "interface-name port-number"; + description + "Data recovered from port transceivers. + A single entry in the list is created per transceiver."; + leaf interface-name { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Name of an interface accessible through the transceiver. + + If operating with a QSFP, then the interface corresponds + to an interface accessible through the lane/channel 1 of the QSFP. + + If more than one interface is accessible through the transceiver + or the lane/channel 1 of the QSFP, then O-RU arbitrarily chooses + the referenced interface instance."; + } + + leaf port-number { + type leafref { + path "/if:interfaces/if:interface[if:name = current()/../interface-name]" + "/o-ran-int:port-reference/o-ran-int:port-number"; + } + description + "A number which identifies a port. In case of SFP/SFP+ + port, port number value is 0 to N-1 where N is number of ports + in the device. Numbers 0 to N-1 are assigned to ports in order + following order of labels on the device (labels for ports are + not necessarily numbers starting from zero)"; + } + + leaf-list interface-names { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Names of all interfaces accessible through the transceiver. + + If operating with a QSFP, then the interfaces correspond + to all interfaces accessible through the lane/channel 1 of the QSFP. + + O-RU provides the values only if more than one interface is + accessible through the transceiver or the lane/channel 1 of the QSFP."; + } + + leaf name { + type string { + length "1..255"; + } + description + "A name that is unique across the O-RU that identifies a transceiver instance. + This name may be used in fault management to refer to a fault source + or affected object"; + } + + leaf present { + type boolean; + config false; + mandatory true; + description + "Indicates if pluggable transceiver module is present."; + } + + leaf vendor-id { + type string { + length 1..16; + } + config false; + description + "Name of the transceiver vendor Full name of transceiver vendor, + that contains ASCII characters, left-aligned with + any padding on the right with ASCII spaces (20h), or ASCII nul + (00h) removed, and ASCII less-than (3Ch) replaced with ASCII + open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII + close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the vendor ID. When used, the content of this schema node + follows the definition of Vendor name field in SFF-8472."; + } + + leaf vendor-part { + type string { + length 1..16; + } + config false; + description + "Transceiver vendors part number, that contains ASCII characters, + left-aligned with any padding on the right with ASCII spaces + (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch) + replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh) + replaced with ASCII close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the vendor part number. When used, the content of this schema node + follows the definition of Vendor PN field in SFF-8472."; + } + + leaf vendor-rev { + type string { + length 1..2; + } + config false; + description + "Transceiver vendors revision number. 2-octet field that + contains ASCII characters. + + Optional node included when the NETCONF Server has determined + the vendor revision number. When used, the content of this schema + node follows the definition of Vendor Rev field in SFF-8472."; + } + + leaf serial-no { + type string { + length 1..16; + } + config false; + description + "Transceiver serial number encoded using ASCII characters, + left-aligned with any padding on the right with ASCII spaces + (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch) + replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh) + replaced with ASCII close-brace (7Dh). + + Optional node included when the NETCONF Server has determined + the serial number."; + } + + leaf SFF8472-compliance-code { + type enumeration { + enum diagnostics-undefined { + description "undefined compliance code"; + } + enum rev9.3-diagnostics { + description "diagnostics published 08-01-02"; + } + enum rev9.5-diagnostics{ + description "diagnostics published 06-01-04"; + } + enum rev10.2-diagnostics{ + description "diagnostics published 06-01-07"; + } + enum rev11.0-diagnostics{ + description "diagnostics published 05-21-10"; + } + enum rev11.3-diagnostics{ + description "diagnostics published 06-11-13"; + } + enum rev11.4-diagnostics{ + description "diagnostics published 07-24-14"; + } + enum rev12.0-diagnostics{ + status deprecated; + description + "diagnostics published 08-28-14 + Note: Deprecated as it does not exists in SFF-8472 v12.4"; + } + enum rev10.4-diagnostics{ + description "diagnostics published 30-01-09"; + } + enum rev12.3-diagnostics{ + description "diagnostics published 29-07-18"; + } + enum rev12.4-diagnostics{ + description "diagnostics published 31-03-21"; + } + } + config false; + description + "Indication of which feature set(s) are + implemented in the transceiver from Byte 94 of address A0h + https://members.snia.org/document/dl/25916 v12.4 + + Optional node included when the NETCONF Server has determined + the compliance code."; + + reference "https://members.snia.org/document/dl/25916"; + } + + leaf connector-type { + type enumeration { + enum unknown { + description "encoded as 00h in Table 4-3 of SFF-8024"; + } + enum subscrber-connector { + description "encoded as 01h in Table 4-3 of SFF-8024"; + } + enum fiber-jack { + description "encoded as 06h in Table 4-3 of SFF-8024"; + } + enum lucent-connector { + description "encoded as 07h in Table 4-3 of SFF-8024"; + } + enum mt-rj { + description "encoded as 08h in Table 4-3 of SFF-8024"; + } + enum multiple-optical { + description "encoded as 09h in Table 4-3 of SFF-8024"; + } + enum sg { + description "encoded as 0Ah in Table 4-3 of SFF-8024"; + } + enum optical-pigtail { + description "encoded as 0Bh in Table 4-3 of SFF-8024"; + } + enum multi-fiber-parralel-optic-1x12 { + description "encoded as 0Ch in Table 4-3 of SFF-8024"; + } + enum multi-fiber-parralel-optic-2x16 { + description "encoded as 0Dh in Table 4-3 of SFF-8024"; + } + enum hssdc_2{ + description "encoded as 20h in Table 4-3 of SFF-8024"; + } + enum copper-pigtail{ + description "encoded as 21h in Table 4-3 of SFF-8024"; + } + enum rj45{ + description "encoded as 22h in Table 4-3 of SFF-8024"; + } + enum no-separable-connector{ + description "encoded as 23h in Table 4-3 of SFF-8024"; + } + enum mxc-2x16{ + description "encoded as 24h in Table 4-3 of SFF-8024"; + } + } + config false; + // TOCHECK: Remove any enumerations which are not applicable + description + "Connector-type indicates the external optical or electrical cable + connector provided as the media interface as defined in the connector + types derived from table 4-3 in SFF-8024. + + Optional node included when the NETCONF Server has determined + the connector type."; + reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944"; + } + + leaf identifier { + type enumeration { + enum unknown { + description "encoded as 00h in Table 4-1 of SFF-8024"; + } + enum gbic { + description "encoded as 01h in Table 4-1 of SFF-8024"; + } + enum soldered { + description "encoded as 02h in Table 4-1 of SFF-8024"; + } + enum sfp { + description "encoded as 03h in Table 4-1 of SFF-8024"; + } + enum xbi { + description "encoded as 04h in Table 4-1 of SFF-8024"; + } + enum xenpack { + description "encoded as 05h in Table 4-1 of SFF-8024"; + } + enum xfp { + description "encoded as 06h in Table 4-1 of SFF-8024"; + } + enum xff { + description "encoded as 07h in Table 4-1 of SFF-8024"; + } + enum xfp-e { + description "encoded as 08h in Table 4-1 of SFF-8024"; + } + enum xpak { + description "encoded as 09h in Table 4-1 of SFF-8024"; + } + enum x2 { + description "encoded as 0Ah in Table 4-1 of SFF-8024"; + } + enum dwdm-sfp { + description "encoded as 0Bh in Table 4-1 of SFF-8024"; + } + enum qsfp { + description "encoded as 0Ch in Table 4-1 of SFF-8024"; + } + enum qsfp+ { + description "encoded as 0Dh in Table 4-1 of SFF-8024"; + } + } + config false; + description + "Connector identifier as defined in the identifier + types derived from table 4-1 in SFF-8024. + + Optional node included when the NETCONF Server has determined + the identifier type."; + reference "https://members.snia.org/document/dl/26423"; + } + + leaf nominal-bitrate { + type uint32; + config false; + description + "Nominal bitrate in Mb/s (10^6 bits per second). + If needed actual value is rounded to the nearest integer. + + Optional node included when the NETCONF Server has determined + the nominal bit rate."; + } + + leaf low-bitrate-margin { + type uint8; + config false; + description + "Minimum supported bitrate as percentage of nominal bitrate + below nominal bitrate. + + Optional node included when the NETCONF Server has determined + the low bit rate margin"; + } + + leaf high-bitrate-margin { + type uint8; + config false; + description + "Maximum supported bitrate as percentage of nominal bitrate + above nominal bitrate. + + Optional node included when the NETCONF Server has determined + the high bitrate margin."; + } + + leaf rx-power-type { + type enumeration { + enum oma { + description "oma = optical modulation amplitude"; + } + enum avp{ + description "avp = average power"; + } + } + config false; + description + "Received power measurement type + oma = optical modulation amplitude + avp = average power + + Optional node included when the NETCONF Server has determined + the rx power type."; + } + + leaf rx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured RX input power in mW. + + Optional node included when the NETCONF Server has determined + the measured RX power. + + If operating with QSFP, this power corresponds to that of + Lane/Channel 1."; + } + + leaf tx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured coupled TX output power in mW. + + Optional node included when the NETCONF Server has determined + the measured coupled TX power."; + } + + leaf tx-bias-current { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured transmitter laser bias current in mA. + + Optional node included when the NETCONF Server has determined + the tx bias current. + + If operating with QSFP, this bias current corresponds to that of + Lane/Channel 1."; + } + + leaf voltage { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Internally measured supply voltage in mV. + + Optional node included when the NETCONF Server has determined + the internally measured voltage."; + } + + leaf temperature { + type decimal64 { + fraction-digits 4; + } + config false; + description + "Internally measured module temperature in degrees Celsius. + + Optional node included when the NETCONF Server has determined + the temperature."; + } + + list additional-multi-lane-reporting { + when "(../identifier ='qsfp')or(../identifier ='qsfp+')"; + key lane; + config false; + description + "Additional reporting according to SFF8436 which specifies real time + channel monitoring for each transmit and receive channel and includes + optical input power and Tx bias current. "; + + leaf lane { + type uint8 { + range "2..4"; + } + description + "the specific lane/channel associated with the report parameters"; + } + leaf-list interface-names { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Names of all interfaces accessible through a particular lane/channel."; + } + leaf rx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured RX input power in mW. + + Optional node included when the NETCONF Server has determined + the measured RX power for a particular lane/channel + - see tabel 7-10 of SFF-8636."; + } + leaf tx-bias-current { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured transmitter laser bias current in mA. + + Optional node included when the NETCONF Server has determined + the tx bias current for a particular lane/channel + - see tabel 7-10 of SFF-8636."; + } + leaf tx-power { + type decimal64{ + fraction-digits 4; + } + config false; + description + "Measured coupled TX output power in mW. + + Optional node included when the NETCONF Server has determined + the measured coupled TX power or a particular lane/channel + - see tabel 7010 of SFF-8636."; + } + } + } + + } + + // Top Level Container + + container port-transceivers { + description + "Container for Port transceiver information. + Leaf nodes providing parameters status and diagnostic + information for pluggable transceiver module (like SFP, + SFP+, SFP28)"; + + uses transceiver-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting@2022-08-15.yang new file mode 100644 index 0000000..3e2d44e --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-troubleshooting@2022-08-15.yang @@ -0,0 +1,117 @@ +module o-ran-troubleshooting { + yang-version 1.1; + namespace "urn:o-ran:troubleshooting:1.0"; + prefix "o-ran-trblsht"; + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the operations for the troubleshooting logs. + + 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 "2022-08-15" { + description + "version 1.2.0 + + 1) clarified path/folder description."; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2021-12-01" { + description + "version 1.1.0 + + 1) typographical corrections"; + + 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"; + } + + + grouping troubleshooting-status-grouping { + description "grouping used for troubleshooting RPCs"; + leaf status { + type enumeration { + enum SUCCESS { + description "RPC completed correctly"; + } + enum FAILURE { + description "RPC failed"; + } + } + description "result of RPC operation"; + } + leaf failure-reason { + when "../status = 'FAILURE'"; + type string; + description "free-form text description why error occurred"; + } + } + + rpc start-troubleshooting-logs { + description + "Management plane triggered to start collecting the troubleshooting logs files of O-RU."; + output { + uses troubleshooting-status-grouping; + } + } + + rpc stop-troubleshooting-logs { + description + "Management plane triggered to stop collecting the troubleshooting logs files of O-RU."; + output { + uses troubleshooting-status-grouping; + } + } + + notification troubleshooting-log-generated { + description + "When new log file generated, send this notification."; + leaf-list log-file-name { + type string; + description + "The list of troubleshooting log file names on the O-RU. Each record in this list is expected to + contain location of the file (e.g. 'o-ran/log/') and the name of file (e.g.'my_troubleshooting_log_file.zip', + where 'my_troubleshooting_log_file' is example file name and 'zip' is expected file name extension). + Example complete expected content of this node is 'o-ran/log/my_troubleshooting_log_file.zip'."; + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang index b65c453..64f9e10 100644 --- a/data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-udp-echo@2019-02-04.yang @@ -55,6 +55,7 @@ module o-ran-udp-echo { // groupings grouping udp-echo-group { + description "a udp echo grouping"; leaf enable-udp-echo { type boolean; default false; diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2022-12-05.yang new file mode 100644 index 0000000..8562447 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2022-12-05.yang @@ -0,0 +1,4058 @@ +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"; + } + + import o-ran-compression-factors { + prefix "cf"; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + import ietf-hardware { + prefix "hw"; + } + + import o-ran-hardware { + prefix "or-hw"; + } + + import o-ran-usermgmt { + prefix "or-user"; + } + + 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 2021 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 "2022-12-05" { + description + "version 11.0.0 + + 1) PRB range limit for SE 12 and HP section + 2) Introduction of PRB ranges + 3) uplane-only-dl-mode-enable + 4) Deprecation of power-related capabilities and addition of min-gain + 5) se 23 max mplane limits + 6) support Section Type 4 and associated commands"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + revision "2022-08-15" { + description + "version 10.0.0 + + 1) clarified description statements for representative-t/rx-eaxc-id + 2) clarified description statements for max-num-t/rx-eaxc-ids-per-group + 4) clarified description statements for component carrier + 5) style guide corrections + 6) introduction of O-RU connector functionality + 7) fixing constraints + 8) introducing new feature for ACK NACK feedback + 9) added SHARED-ORU-MULTI-OPERATOR anf SHARED-ORU-MULTI-ODU features"; + + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2022-04-18" { + description + "version 9.0.0 + + 1) Descriptions fixed for max-beam-updates-per-slot / max-beam-updates-per-slot + 2) Added references to CUS-Plane spec for parameters 'frame-structure' and + 'supported-frame-structures' + 3) clarified max-beams-per-symbol, max-beams-per-slot, max-beam-updates-per-slot, + max-beam-updates-per-symbol parameters + 4) Clarification of cp-length and cp-length-other + 5) deprecation of rw-type and rw-duplex-scheme"; + + reference "ORAN-WG4.M.0-v09.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + + 1) Various descriptions corrected and/or clarified + 2) Configuration for Beamforming weights were added together with changes and updates to compressions + 3) Added new leaf node 'beam-update-contention-control-limits-required' to 'endpoint-types' + to indicate endpoint capability to support beam update contention control processing limits. + 4) Added instance of 'beam-update-contention-control-limits' to 'endpoint-types'. + 5) Added new leaf node boolean flag 'beam-update-contention-control-enabled' for O-DU to indicate + support of feature BEAM-UPDATE-CONTENTION-CONTROL feature. + 6) deprecate 'channel-information-iq-bitwidth' , and define a new parameter + 'channel-information-bitwidth' under the container 'compression' + 7) add capability and configuration for channel information PRB granularity. + 8) Add support for multiple transport-session-type per O-RU. + 9) add capability and configuration for channel information compression. + 10) deprecate 'channel-information-iq-bitwidth' , and define a new parameter + 'channel-information-bitwidth' under the container 'compression'"; + + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-07-26" { + description + "version 7.0.0 + + 1) Added new grouping 'per-cplane-message-limits' containing params to limit + per C-Plane packet processing when CPLANE-MESSAGE-PROCESSING-LIMITS feature is + supported by O-RU and used by O-DU. + 2) Added new leaf node 'cplane-message-processing-limits-required' to 'endpoint-types' + to indicate endpoint capability to support C-Plane message processing limits. + 3) Added instances of 'per-cplane-message-limits' to 'endpoint-types' and + 'endpoint-capacity-sharing-groups'. + 4) Added new leaf node to low-level-tx/rx-endpoint 'cplane-message-processing-limits-enabled' + for O-DU to configure support for C-Plane limits + 5) Added t-da-offset and t-au-offset for external antenna support + 6) Added Channel IQ bitwidth for ST6 + 7) Added ordered-by user to leaf-list member-tx-eaxc-id and leaf-list member-rx-eaxc-id + 8) Added new PRACH formats + 9) Ensuring beam-ids can only be 15 bits + 10) Clarify mixed numerology restrictions"; + + reference "ORAN-WG4.M.0-v07.00"; + } + + + revision "2021-03-22" { + description + "version 6.0.0 + + 1) typographical corrections in descriptions. + 2) Updates to transmission window control. + 3) Introduces to existing grouping 'endpoint-section-capacity' two new leaf nodes 'max-uplane-section-header-per-symbol' and + 'max-uplane-section-header-per-slot' to limit U-Plane data section header addition/parsing. + 4) deprecated parameter 'max-remasks-per-section-id' since it is duplicate of leaf node 'max-control-sections-per-data-section'. + 5) introduces new leaf nodes 'max-beams-updates-per-slot' and ''max-beams-updates-per-symbol' + to grouping 'endpoint-beam-capacity' + 6) added new SRS features: + STATIC-TRANSMISSION-WINDOW-CONTROL + DYNAMIC-TRANSMISSION-WINDOW-CONTROL + UNIFORMLY-DISTRIBUTED-TRANSMISSION + ORDERED-TRANSMISSION + INDEPENDENT-TRANSMISSION-WINDOW-CONTROL"; + + reference "ORAN-WG4.M.0-v06.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) introduces new coupling method coupling-via-frequency-and-time-with-priorities-optimized + 2) introduces new max-highest-priority-sections-per-slot parameter"; + + reference "ORAN-WG4.M.0-v05.00"; + } + + revision "2020-08-10" { + description + "version 4.0.0 + + 1) parameters allowing for static PRACH configuration introduced + 2) parameters allowing for static SRS configuration introduced + 3) parameters allowing for configuration of TDD pattern introduced + 4) Backward compatible change to introduce new parameter 'coupling-method' related + to Section Description Priority to serve for CUS-Plane CR"; + + reference "ORAN-WG4.M.0-v04.00"; + } + + revision "2020-04-17" { + description + "version 3.0.0 + + 1) Adding optional little endian support + 2) Adding a new capability parameter to indicate that the O-RU + supports regularizationFactor in section type 5 + 3) Added support for Dynamic Spectrum Sharing feature + 4) Clarify the supported number of reMasks in RU side + 5) Section extension for grouping multiple ports + 6) adding PRACH formats to endpoint capabilities"; + + reference "ORAN-WG4.M.0-v03.00"; + } + + 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"; + } + + feature EAXC-GAIN-CORRECTION { + description + "Presence of feature indicates that O-RU supports eAxC specific gain correction."; + } + + feature TX-REFERENCE-LEVEL { + description + "Presence of feature indicates that O-RU supports TX gain reference level control"; + } + + typedef prach-preamble-format { + type enumeration { + enum LTE-0 { + description + "LTE PRACH Preamble format 0"; + } + enum LTE-1 { + description + "LTE PRACH Preamble format 1"; + } + enum LTE-2 { + description + "LTE PRACH Preamble format 2"; + } + enum LTE-3 { + description + "LTE PRACH Preamble format 3"; + } + enum LTE-4 { + description + "LTE PRACH Preamble format 4"; + } + enum LTE-NB0 { + description + "LTE Narrowband PRACH format 0"; + } + enum LTE-NB1 { + description + "LTE Narrowband PRACH format 1"; + } + enum NR-0 { + description + "5GNR PRACH Preamble format 0"; + } + enum NR-1 { + description + "5GNR PRACH Preamble format 1"; + } + enum NR-2 { + description + "5GNR PRACH Preamble format 2"; + } + enum NR-3 { + description + "5GNR PRACH Preamble format 3"; + } + enum NR-A1 { + description + "5GNR PRACH Preamble format A1"; + } + enum NR-A2 { + description + "5GNR PRACH Preamble format A2"; + } + enum NR-A3 { + description + "5GNR PRACH Preamble format A3"; + } + enum NR-B1 { + description + "5GNR PRACH Preamble format B1"; + } + enum NR-B2 { + description + "5GNR PRACH Preamble format B2"; + } + enum NR-B3 { + description + "5GNR PRACH Preamble format B3"; + } + enum NR-B4 { + description + "5GNR PRACH Preamble format B4"; + } + enum NR-C0 { + description + "5GNR PRACH Preamble format C0"; + } + enum NR-C2 { + description + "5GNR PRACH Preamble format C2"; + } + enum LTE-NB0-a { + description + "LTE Narrowband PRACH format 0-a"; + } + enum LTE-NB1-a { + description + "LTE Narrowband PRACH format 1-a"; + } + enum LTE-NB2 { + description + "LTE Narrowband PRACH format 2"; + } + } + + description + "PRACH preamble format definition"; + } + + 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 transmission-buffering-capacity { + description + "UL U-plane buffering capacity available for scheduled transmission of UL U-plane messages"; + + list transmission-buffering-capacity { + description + "Buffering capacity for specific IQ format. + If the list does not contain an entry for particular IQ format than endpoint + or group of endpoints then buffering capacity for this IQ format is + max-buffered-prbs = 0 and max-buffered-symbols = 0."; + + uses cf:compression-details; + + leaf max-buffered-prbs { + type uint32; + description + "Max number of PRBs (for IQ format given in compression-details) that can be buffered by an endpoint + or buffered collectively by group of endpoints sharing capacity. This is divided between symbols buffered"; + } + + leaf max-buffered-symbols { + type uint32; + description + "Max number of symbols (for IQ format given in compression-details) that can be buffered by an endpoint + or buffered collectively by group of endpoints sharing capacity"; + } + } + } + + grouping general-config { + description "a group for general configuration"; + + container general-config { + description "a container for general configuration"; + + leaf regularization-factor-se-configured { + type boolean; + default false; + description + "Informs if regularization factor in section extension is configured(true) or not(false), this + leaf indicates whether the O-DU will send the regularization factor in section extension. + + If the O-RU does not support regularization-factor-se-supported in o-ran-module-cap.yang, + this leaf is ignored."; + } + + leaf little-endian-byte-order { + type boolean; + default false; + + description + "If little endian byte order for C/U plane data flows is supported by + the O-RU, indicates if the O-RU should use little endian byte order + for all UL and DL C/U plane data flows. + + If little endian byte order is NOT supported, this node is ignored + (and the default bigendian byte order used)"; + } + + leaf uplane-only-dl-mode-enable { + if-feature feat:UPLANE-ONLY-DL-MODE; + type boolean; + default false; + description + "If set to true, enable IQ data transfer without C-Plane in DL for all + endpoints as specified in the CUS specification clause 8.2.2."; + } + + leaf st4-for-time-domain-beamforming-weights-enabled { + if-feature feat:ST4-SLOT-CONFIG-MSG-SUPPORT; + type boolean; + default false; + description + "If O-RU indicates support for Section Type 4 command 'TIME_DOMAIN_BEAM_CONFIG' , O-DU may + configure the O-RU to use Section Type 4 TIME_DOMAIN_BEAM_CONFIG command by setting this + flag to 'true'. In which case, O-DU shall use only Section Type 4 TIME_DOMAIN_BEAM_CONFIG + for specifying time-domain beam information. refer to clause 12.4.3.4.4 of CUS-Plane spec."; + } + } + } + + 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 coupling-methods { + description + "Grouping for configuration of desired C-Plane / U-Plane coupling methods (if supported)"; + leaf coupling-to { + type leafref { + path "/mcap:module-capability/mcap:ru-capabilities/mcap:coupling-methods/mcap:coupling-via-frequency-and-time"; + require-instance false; + } + + description + "RW instance of RO parameter."; + } + leaf coupling-method { + when "../coupling-to = 'true'"; + type enumeration{ + enum NORMAL { + description "Coupling via sectionId value. This value can be used always."; + } + enum FREQUENCY_AND_TIME { + description "Coupling via frequency and time. Can be used when coupling-via-frequency-and-time = true + or coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang"; + } + enum FREQUENCY_AND_TIME_WITH_PRIORITIES { + description "Coupling via frequency and time with priorities. Can be used when + coupling-via-frequency-and-time-with-priorities = true in o-ran-module-cap.yang"; + } + enum FREQUENCY_AND_TIME_WITH_PRIORITIES_OPTIMIZED { + description "Coupling via frequency and time with priorities optimized. Can be used when + coupling-via-frequency-and-time-with-priorities-optimized = true in o-ran-module-cap.yang"; + } + } + default NORMAL; + description + "Method of coupling between C-Plane and U-Plane messages; see methods of coupling + of C-Plane and U-Plane in CUS-Plane specification. If an O-RU doesn't support the + necessary capability as defined in o-ran-module-cap.yang, the O-RU shall respond + with rpc-error including an error-message describing the error condition"; + } + } + + 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 Component Carriers + * 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 occupying 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 centres of nearby AE in horizontal direction (in array coordinates system)"; + } + + leaf vertical-spacing{ + type decimal64 { + fraction-digits 5; + } + units Meter; + + description "Average distance between centres 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."; + } + + list related-o-ru-connectors { + key name; + + leaf name { + type leafref { + path '/hw:hardware/hw:component/hw:name'; + } + must "derived-from-or-self(deref(current())/../hw:class, 'or-hw:O-RU-ANTENNA-CONNECTOR')"; + description + "Referenced name of O-RU connector used by the antenna array."; + } + leaf-list array-element-id { + type uint16; + description + "Identifiers of array element(s) related to specific O-RU connector. Allowed values and semantic - as per CUS-Plane spec, clause 'Identification and Ordering of Array Elements'"; + } + description + "List of unique names that identify instances of O-RU's connectors the external [tr]x-array is reachable through."; + } + } + + 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 chosen"; + } + } + 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 chosen"; + } + } + 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 provides value of frame structure. For semantics and allowed values see CUS-Plane Specification, clause 'frameStructure (frame structure)'"; + } + + 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 + "Provides length of CP used for the first symbol after subframe boundary or half-subframe boundary. + See CUS-plane + + If a section type 3 is used in C-plane messages addressed to the endpoint, then O-RU takes length of CP from + C-Plane cpLength Information Element and the value of this leaf shall be ignored by the O-RU. See cpLength (cyclic prefix length) + in CUS-Plane for details. + + If a static configuration (see static-prach-configurations) is applicable to the endpoint, then O-RU takes + length of CP from M-Plane cp-length leaf in static-prach-configurations and the value of this leaf shall be ignored by the O-RU."; + } + + leaf cp-length-other { + type uint16; + units Ts; + mandatory true; + description + "Provides length of CP used for symbols other than provided by cp-length. + + If a section type 3 is used in C-plane messages addressed to the endpoint, then O-RU takes length of CP from + C-Plane cpLength Information Element and the value of this leaf shall be ignored by the O-RU. See cpLength (cyclic prefix length) + in CUS-Plane for details. + + If a static configuration (see static-prach-configurations) is applicable to the endpoint, then O-RU takes + length of CP from M-Plane cp-length leaf in static-prach-configurations and the value of this leaf shall be ignored by the O-RU."; + } + + 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. + offset-to-absolute-frequency-center defines the relative spacing between the centre of RE#0 of RB#0 to the center-of-channel-bandwidth. + If offset-to-absolute-frequency-center for NR with SCS=15kHz is odd, + it implies that 7.5kHz shift as indicated by the 3GPP parameter frequencyShift7p5khz for UL is applied, + which means enable the NR UL transmission with a 7.5 kHz shift to the LTE raster, as defined in 3GPP TS 38.331. + When type (in tx/rx-array-carrier) is DSS, 'offset-to-absolute-frequency-center' indicates the 1st RE of 1st RB of NR."; + } + + 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 endpoints + within a group of endpoints sharing resources) of number-of-prb rounded up to the + 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 contains all common parameters for tx-array-carriers and rx-array-carriers"; + + leaf absolute-frequency-center { + type uint32; + status deprecated; + description + "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center + and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104"; + } + + leaf center-of-channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Centre frequency of channel bandwidth in Hz. Common for all numerologies. + center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104. + Refer to Table 5: Centre Bandwidth Calculation in M-plane spec for calculation of this parameter + for even and odd number of PRBs in LTE, NR and DSS carrier configuration."; + } + + 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"; + } + enum DSS_LTE_NR { + if-feature mcap:DSS_LTE_NR; + description + "NR and LTE technologies in Dynamic Spectrum Sharing mode"; + } + } + 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; + } + status deprecated; + description + "Config true type of duplex scheme. + Status is deprecated because 'lte-tdd-frame' container, where it was used, is also deprecated. + Additionally duplex-scheme is derived from the band-number."; + } + leaf rw-type { + type leafref { + path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type"; + require-instance false; + } + status deprecated; + description + "Config true type of carrier. + Status is deprecated because leafref is to a 'config true' schema-node"; + } + } + + grouping rx-common-array-carrier-elements { + description + "This grouping contains all common parameters for tx-array-carriers and rx-array-carriers"; + + leaf absolute-frequency-center { + type uint32; + status deprecated; + description + "deprecated in version 5.0.0 and replaced with offset-to-absolute-frequency-center + and common FREF translated from absolute-frequency-center (NREF) as defined in 38.104"; + } + + leaf center-of-channel-bandwidth { + type uint64; + units Hz; + mandatory true; + description + "Centre frequency of channel bandwidth in Hz. Common for all numerologies. + center-of-channel-bandwidth is the FREF translated from absolute-frequency-center (NREF) as per 3GPP TS 38.104. + Refer to Table 5: Centre Bandwidth Calculation in M-plane spec for calculation of this parameter + for even and odd number of PRBs in LTE, NR and DSS carrier configuration."; + } + + 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"; + } + enum DSS_LTE_NR { + if-feature mcap:DSS_LTE_NR; + description + "NR and LTE technologies in Dynamic Spectrum Sharing mode"; + } + } + 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."; + } + leaf max-highest-priority-sections-per-slot { + type uint16; + must "current() < ../max-sections-per-slot" { + error-message "the sectionID for the highest priority needs to be less than the max sectionIds per slot"; + } + description + "Max number of highest priority sections within one slot that can be processed by endpoint or processed collectively by + group of endpoints sharing capacity. This leaf applies only when coupling-via-frequency-and-time-with-priorities-optimized + is true, in other instances this leaf is ignored by the O-RU. The sectionId for highest priority section descriptions shall + start from 0 to specified max value and is a subset of max-sections-per-slot and must be less than max-sections-per-slot."; + } + + leaf max-remasks-per-section-id { + type uint8 { + range "1..12"; + } + default 12; + status deprecated; + description + "maximum number of different reMask values that is applied to a PRB + within one section id. This value can be processed by endpoint + or processed collectively by group of endpoints sharing capacity. + This parameter is duplicated max-control-sections-per-data-section, hence being deprecated."; + } + leaf max-uplane-section-header-per-symbol { + type uint16; + description + "Maximum number of U-Plane data section header within one symbol that can be processed by an endpoint or processed collectively by group of + endpoints sharing capacity. Clarification for multiple U-Plane data section headers per C-Plane section description is specified in sectionId IE + description in CUS-Plane specification. For the cases where this optional parameter is not populated by O-RU or an older version O-DU does not + interpret this parameter, O-DU may optionally use max-sections-per-symbol as the default value to limit of U-Plane data section messages which + can be processed by the O-RU. If none of the above limitations are supported, O-RU and O-DU may rely on offline negotiation. + As an example, this parameter can be used to limit O-RU processing while using Section extension type#6 and #12, which are used for non-contiguous + PRB allocation, and hence results in multiple U-Plane data section headers for a given C-Plane section description."; + } + leaf max-uplane-section-header-per-slot { + type uint16; + description + "Maximum number of U-Plane data section headers within one slot that can be processed by an endpoint or processed collectively by group of + endpoints sharing capacity. Clarification for multiple U-Plane data section headers per C-Plane section description is specified in sectionId IE + description in CUS-Plane specification. For the cases where this optional parameter is not populated by O-RU or an older version O-DU does not + interpret this parameter, O-DU may optionally use max-sections-per-slot as the default value to limit of U-Plane data section messages which can + be processed by the O-RU. If none of the above limitations are supported, O-RU and O-DU may rely on offline negotiation. + As an example, this parameter can be used to limit O-RU processing while using Section extension type#6 and #12, which are used for non-contiguous + PRB allocation, and hence results in multiple U-Plane data section headers for a given C-Plane section description."; + } + + description + "Parameters describing section capacity where section is understood as number of different sectionId values. Additionally, max limits for U-Plane data sections + refer to U-Plane data section headers"; + } + + grouping endpoint-section-extension-limits { + leaf max-mcscaleremask-per-prb { + type uint16; + description + "This parameter limits the number of sets of {mcScaleReMask, csf, mcScaleOffset} values per symPrbPattern the O-RU can support when SE 23 is used in a + data section description. Refer to clause 7.7.23.1 of the CUS-Plane specification."; + } + leaf max-prb-ranges-per-sec-ext-12 { + type uint16; + description + "Optional parameter reported by O-RU which applies to Section Extension 12 and specifies + the maximum number of frequency ranges R per section description supported by O-RU. + If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification + with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and + Table A.1-1 of O-RAN.WG4.MP.0. + As an example, the O-RU can include the following in the corresponding active-alarm list + entry and alarm-notification message: + Error C-Plane message + Maximum number of frequency ranges in SE-12 per section description exceeded + Reduce frequency ranges per section description used in SE-12"; + } + leaf max-freq-hops-per-sec-ext-13 { + type uint16; + description + "Optional parameter reported by O-RU which applies to Section Extension 13 and specifies + the maximum number of frequency hops R per section description supported by O-RU. + If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification + with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and + Table A.1-1 of O-RAN.WG4.MP.0. + As an example, the O-RU can include the following in the corresponding active-alarm list + entry and alarm-notification message: + Error C-Plane message + Maximum number of frequency hops in SE 13 per section description exceeded + Reduce frequency hops per section description used in SE-13"; + } + + description + "Parameters describing C-Plane section extension limits/capacities."; + } + + grouping endpoint-beam-capacity { + leaf max-beams-per-symbol { + type uint16 { + range "min .. 32767"; + } + description + "Max number of beams within one symbol that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity + + If the parameter is absent or if value 0 is reported for the parameter, + then the endpoint does not support beamforming operation."; + } + leaf max-beams-per-slot { + type uint16 { + range "min .. 32767"; + } + description + "Max number of beams within one slot that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity + + If the parameter is absent or if value 0 is reported for the parameter, + then the endpoint does not support beamforming operation."; + } + leaf max-beam-updates-per-slot { + type uint16 { + range "min .. 32767"; + } + description + "Max number of beams within one slot that can be updated by endpoint + or processed collectively by group of endpoints sharing capacity + + If the parameter is absent or if value 0 is reported for the parameter, + then the endpoint does not support beamforming operation."; + } + leaf max-beam-updates-per-symbol { + type uint16 { + range "min .. 32767"; + } + description + "Max number of beams within one symbol that can be updated by endpoint + or processed collectively by group of endpoints sharing capacity + + If the parameter is absent or if value 0 is reported for the parameter, + then the endpoint does not support beamforming operation."; + } + + description + "Parameters describing beam capacity where number of beams is understood as number of different beamId values. + Parameters defined for beam updates shall be used to put a maximum limit on number of beam/beamIds which can be updated + every slot/symbol. Note: This parameter does not put any restriction on which beams/beamIds can be updated. + + If the parameters defining beam capacity and beam updates are absent or if value 0 is reported for the parameters + defining beam capacity and beam updates, then the endpoint does not support beamforming operation."; + } + + 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"; + } + + leaf max-prb-ranges-per-symbol { + type uint32; + description + "Optional parameter reported by O-RU which indicates the maximum number of PRB ranges + that can be processed by single endpoint or processed collectively by group of endpoints + sharing capacity within one symbol. For details please see O-RAN WG4 CUS-Plane specification, + Clause 7.8.2.1.2 'Limits of number of PRB ranges'. + + In case CU-Plane traffic generated by the O-DU exceeds the limit, an O-RU is responsible + for sending alarm notification with 'fault-id = 31' to subscribers following the procedures + defined in Clause 11 and Table A.1-1 of O-RAN.WG4.MP.0. + + As an example, the O-RU can include the following in the corresponding active-alarm list + entry and alarm-notif message: + Error C-Plane message + max-prb-ranges-per-symbol exceeded + Reduce value of number of PRB ranges used per symbol"; + } + + 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 per-cplane-message-limits { + leaf max-beams-per-cplane-message { + type uint16; + description + "Maximum number of beams which can be recieved in one single C-Plane message. Number of beams, + may include only beamIds, only beam weights or mix of beamIds and beamweights being received by + an O-RU in a single C-Plane message. + To avoid application layer fragmentation of C-Plane message across the fronthaul, O-RU should + avoid setting this to a very low value. + As a usage scenario, an O-RU may choose to define only a few quantized values e.g. (128, 256). + If the value is set to 0 by O-RU, the O-DU need not restrict the number of beams it can send + in single C-Plane message (except limited by MTU size)."; + } + + leaf max-highest-priority-sec-per-cplane-message { + type uint16; + description + "Maximum number of highest priority sections which can be received in one single C-Plane message. + This leaf applies only when 'coupling-via-frequency-and-time-with-priorities' is true"; + } + + leaf max-beams-per-slot-with-cplane-limits { + type uint16; + description + "Maximum number of beams that are required to be processed by endpoint or processed collectively + by group of endpoints sharing capacity when O-DU enables C-Plane limits. This value should replace + 'max-beams-per-slot' defined in 'endpoint-beam-capacity'"; + } + + leaf max-highest-priority-sections-per-slot-with-cplane-limits { + type uint16; + description + "Maximum number of highest priority sections that are required to be processed by endpoint or processed + collectively by group of endpoints sharing capacity when O-DU supports C-Plane limits. This value should + replace 'max-highest-priority-sections-per-slot' defined in 'endpoint-section-capacity'"; + } + + leaf max-num-se22-per-cplane-message { + type uint16; + description + "This value limits the max number of section extension 22 (ACK/NACK request) included in a C-Plane message as supported + by the endpoint or collectively by group of endpoints sharing capacity when O-DU enables C-Plane limits + and when section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint or endpoint sharing group."; + } + + leaf max-prb-ranges-per-hp-section-sec-ext-12 { + type uint16; + description + "Optional parameter reported by O-RU which applies to Section Extension 12 and specifies the + maximum number of frequency ranges R per highest priority section description supported by O-RU. + If this limit is exceeded by the O-DU, the O-RU is responsible for sending alarm notification + with 'fault-id = 31' to subscribers following the procedures defined in Clause 11 and + Table A.1-1 of O-RAN.WG4.MP.0. + As an example, the O-RU can include the following in the corresponding active-alarm list + entry and alarm-notification message: + Error C-Plane message + Maximum number of frequency hops per highest priority section description exceeded + Reduce frequency range per highest section description"; + } + + description + "Attributes limit maximum instances of certian parameters contained in a C-Plane mesaage e.g. beams, + highest priority sections. This limitation is useful for O-RUs which are packet processing based and are + dimensioned to handle fixed number of parameters contained in a C-Plane message. In addition, if O-DU supports + cplane limits, O-RU can operate more efficiently and endpoint capacity for applicable parameters are enhanced. + as specified by 'max-beams-per-slot-with-cplane-limits' and 'max-highest-priority-sections-per-slot-with-cplane-limits'"; + } + + grouping beam-update-contention-control-limits { + leaf max-beams-per-symbol-with-beam-contention-control { + type uint16; + description + "Maximum number of beams within one symbol that can be processed by an endpoint or processed collectively + by group of endpoints sharing capacity when O-DU enables the O-RU feature BEAM-UPDATE-CONTENTION-CONTROL. + This value should replace 'max-beams-per-symbol' defined in 'endpoint-beam-capacity'"; + } + + leaf max-beams-updates-per-symbol-with-beam-contention-control { + type uint16; + description + "Maximum number of beams within one symbol that can be updated by an endpoint or processed collectively + by group of endpoints sharing capacity when O-DU enables the O-RU feature BEAM-UPDATE-CONTENTION-CONTROL. + This value should replace 'max-beam-updates-per-symbol' defined in 'endpoint-beam-capacity'"; + } + + description + "If O-DU supports BEAM-UPDATE-CONTENTION-CONTROL, O-RU can operate more efficiently and endpoint capacity for applicable + parameters are enhanced."; + } + + grouping endpoint-static-config-support { + leaf static-config-supported { + type enumeration { + enum NONE { + description + "The endpoint does not support static PRACH / SRS configuration. + Reception of PRACH / SRS is possible through real time C-Plane messages + if other endpoint capabilities allow for that."; + } + enum PRACH { + if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED; + description + "The endpoint supports statically configured PRACH reception"; + } + enum SRS { + if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED; + description + "The endpoint supports statically configured SRS reception"; + } + } + default NONE; + + description + "The parameter informs if endpoint can be statically configured to process PRACH or SRS reception"; + } + + leaf max-prach-patterns { + when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')"; + type uint8; + description + "Maximum number of PRACH patterns the endpoint can handle in PRACH configuration"; + } + + leaf max-srs-patterns { + when "(/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')"; + type uint8; + description + "Maximum number of SRS patterns the endpoint can handle in SRS configuration"; + } + + description + "Endpoint's capabilities related to static PRACH / SRS configuration."; + } + + grouping endpoint-tdd-pattern-support { + leaf configurable-tdd-pattern-supported { + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + type boolean; + default false; + + description + "The parameter informs if endpoint supports configuration for TDD pattern"; + } + + leaf tdd-group { + type uint8; + description + "Parameter is used to group static-low-level-[tr]x-endpoints. + Note: [tr]x-array-carriers using static-low-level-[tr]x-endpoints + having the same value of tdd-group, must have the same TDD switching + points and the same directions to the air interface granted - regardless TDD switching + is controlled by M-Plane or by C-Plane"; + } + + description + "This grouping exposes static-low-level-[tr]x-endpoint's capabilities related to its support for configurable + TDD patterns and limitations regarding common TDD switching per groups of endpoints."; + } + + grouping u-plane-transmission-control { + description + "Configuration for UL U-plane transmission control"; + + leaf transmission-window-control { + if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL"; + type enumeration { + enum NONE { + description + "O-RU will use normal transmission type with normal transmission window"; + } + enum STATIC { + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + description + "O-RU will use transmission window offset and size and transmission type as configured over M-plane"; + } + enum DYNAMIC { + if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL; + description + "O-RU will use transmission window offset and size and transmission type as requested over C-plane"; + } + } + default NONE; + + description + "Selects type of UL U-plane transmission window control for the endpoint"; + } + + leaf transmission-window-schedule { + when "(../transmission-window-control = 'STATIC')"; + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + type union { + type empty; + type leafref { + path "/user-plane-configuration/transmission-window-schedules/id"; + } + } + description + "Identifies U-plane transmission window schedule (which provides a list of symbol-specific offsets) + to be used by the endpoint. + Symbol-specific offset values from the schedule are added to endpoint specific offset value + from transmission-window-offset. + If this element is not present, the O-RU assumes as all symbol specific offsets are zero. + For restrictions on values of symbol-specific offsets see description of transmission-window-offset. + This parameter shall not be set to value other than empty if transmission control is not enabled + by transmission-window-control."; + } + + leaf transmission-window-offset { + when "(../transmission-window-control = 'STATIC')"; + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + type uint16; + units "number of symbols"; + default 0; + description + "Transmission window offset. + The effective symbol-specific offset is sum of endpoint-specific offset value from transmission-window-offset + and symbol-specific offset from transmission-window-schedules referenced by transmission-window-schedule. + + If this element is not present then O-RU assumes transmission-window-offset is zero. + This parameter shall not be set to value other than 0 if transmission control is not enabled + by transmission-window-control. + + There is no direct upper bound for this parameter (except value range defined by leaf type) but there are + restrictions on combination of values of transmission-window-offset, transmission-window-offset, + symbol-specific offset from transmission-window-schedules and transmission-window-size. + + Specifically, if endpoint is set for delay managed operation (non-time-managed-delay-enabled = FALSE) + then O-RU handles U-Plane transmission as delay managed traffic and combination of values of + transmission-window-offset, symbol-specific offset from transmission-window-schedules and + transmission-window-size must not exceed O-RU buffering capacity (transmission-buffering-capacity) + for the requested reception schedule. + + If endpoint is set for non-delay managed operation (non-time-managed-delay-enabled = TRUE) + then O-RU handles U-Plane transmission on best effort basis. In this case any combination of values + of transmission-window-offset, symbol-specific offset from transmission-window-schedules and + transmission-window-size is permitted. This does not remove restrictions on parameters due to restrictions + defined for value type or restrictions that depend on INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature + + Additional restrictions on values (and presence) of transmission-window-schedule, transmission-window-offset + and transmission-window-size depend on presence of INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature. + + If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is not supported then all endpoints with + transmission control enabled that handle the same carrier type and SCS must be configured + (via M-plane or C-plane) with parameter values resulting in transmission windows that coincide + between the endpoints. That is, for every symbol N, the effective transmission window for symbol N + must be shared (start at the same time and end at the same time) by all the endpoints handling + same carrier type and SCS. This restriction applies only to endpoints that have transmission + control enabled. + + If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is supported then restriction described + above does not apply and a different transmission window (window offset and window size) + can be used for every endpoint capable of transmission window control."; + } + + leaf transmission-window-size { + when "(../transmission-window-control = 'STATIC')"; + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + type uint16 { + range "0..10000"; + } + units "microsecond"; + default 0; + description + "Transmission window size to be used; only values that are compatible with SCS used + for the endpoint are allowed. + Minimum supported value is determined by SCS specific transmission window size + reported by O-RU in ru-delay-profile. + + Client can use special value 0 (zero) instead of the SCS specific transmission window + size reported by O-RU in ru-delay-profile with the same effect. + This parameter shall not be set to value other than 0 if transmission control is not enabled + (transmission-window-control = NONE) or the endpoint is set for non-delay managed operation + (non-time-managed-delay-enabled = TRUE). + + There is no direct upper bound for this parameter (except value range defined by leaf type) but there are + restrictions on combination of values of transmission-window-offset, transmission-window-offset, + symbol-specific offset from transmission-window-schedules and transmission-window-size. + See description of transmission-window-offset for more details."; + } + + leaf transmission-type { + when "(../transmission-window-control = 'STATIC')"; + if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION"; + type enumeration { + enum NORMAL { + description + "Normal transmission (unspecified within transmission window)"; + } + enum UNIFORMLY-DISTRIBUTED { + if-feature feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION; + description + "Uniformly distributed over transmission window: each of N messages in the window + transmitted at random time in a separate subwindow; subwindow size is window size / N "; + } + } + + description "Type of delay supported by the endpoint"; + } + } + + grouping tx-endpoint-compression-grouping { + description + "Grouping for endpoint compression"; + + container compression { + presence + "This container shall exists to avoid misaligned compression + methods between devices"; + + description + "Container which consists of global configurable parameters for compression"; + + uses cf:compression-details; + + leaf fs-offset { + if-feature cf:CONFIGURABLE-FS-OFFSET; + type uint8; + default 0; + description + "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format. + Please refer to CU-Plane specification for details"; + } + + list dynamic-compression-configuration { + when "../compression-type = 'DYNAMIC'"; + key "id"; + unique "compression-method iq-bitwidth fs-offset"; + description + "List of possible configuration in case dynamic configuration is used + Note: In case of empty list all available compressions can be chosen dynamically + and default fs-offset is taken (0). + If the feature CONFIGURABLE-FS-OFFSET is not supported, + fs-offset will not be considered as one of the criteria for unique statement. + Refer to RFC7950 clause 7.8.3 for details of unique statement"; + + leaf id { + type uint16; + description + "Identification number for particular compression"; + } + + uses cf:compression-method-grouping; + + leaf fs-offset { + if-feature cf:CONFIGURABLE-FS-OFFSET; + type uint8; + default 0; + description + "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format. + Please refer to CU-Plane specification for details"; + } + + leaf channel-information-iq-bitwidth { + type uint8{ + range "1..16"; + } + status deprecated; + description + "I/Q bitwidth for channel information in Section Type6. + Leaf is deprecated as it should be independent of dynamic compression, + NETCONF client instead uses channel-information-bitwidth schema node"; + } + } + + leaf channel-information-bitwidth { + type uint8{ + range "1..16"; + } + description + "I/Q bitwidth for channel information in Section Type6. + maximum value of 16bit is limitted by 4bit ciIqWidth in the C-Plane message. + Note: This parameter shall be used when the NETCONF client does not make use of + the CHANNEL-INFORMATION-COMPRESSION feature."; + } + + list channel-information-compressions { + if-feature "feat:CHANNEL-INFORMATION-COMPRESSION"; + key id; + + leaf id { + type uint16; + description + "Identification number for particular channel information compression"; + } + + leaf channel-information-compression-method { + type cf:ci-compression-method-def; + description + "Channel information compression method"; + } + + leaf iq-bitwidth { + type uint8{ + range "1..16"; + } + description + "Bitwidth to be used in compression, maximum value of 16bit is limitted by 4bit ciIqWidth in the C-Plane message. + + When this schema node is used in the configuration, the O-RU shall ignore the configuration of the + /low-level-tx-endpoints/compression/channel-information-bitwidth schema node"; + } + + description + "List of available compressions, that can be dynamically choosen, for channel information (e.g. ST6) for this endpoint. + Note1: When only one compression is listed here, it implies that channel information compression + is static and mentioned compression is taken into use. + Note2: O-RU Shall reject configuration with compressions that are not supported"; + } + + list bf-weights-compressions { + key id; + + leaf id { + type uint16; + description + "Identification number for particular beamforming compression"; + } + + leaf bf-weights-compression { + type cf:bf-compression-method-def; + description + "Beamforming weight compression method"; + } + + leaf iq-bitwidth { + type uint8; + description + "Bitwidth to be used in compression"; + } + + description + "List of available compressions, that can be dynamically choosen, for beamforming weights for this endpoint. + Note1: When only one compression is listed here, it implies that beamforming weights compression + is static and mentioned compression is taken into use. + Note2: O-RU Shall reject configuration with compressions that are not supported"; + } + } + } + + grouping rx-endpoint-compression-grouping { + description + "Grouping for endpoint compression"; + + container compression { + presence + "This container shall exists to avoid misaligned compression + methods between devices"; + + description + "Container which consists of global configurable parameters for compression"; + + uses cf:compression-details; + + leaf fs-offset { + if-feature cf:CONFIGURABLE-FS-OFFSET; + type uint8; + default 0; + description + "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format. + Please refer to CU-Plane specification for details"; + } + + list dynamic-compression-configuration { + when "../compression-type = 'DYNAMIC'"; + key "id"; + unique "compression-method iq-bitwidth fs-offset"; + description + "List of possible configuration in case dynamic configuration is used + Note: In case of empty list all available compressions can be chosen dynamically + and default fs-offset is taken (0). + If the feature CONFIGURABLE-FS-OFFSET is not supported, + fs-offset will not be considered as one of the criteria for unique statement. + Refer to RFC7950 clause 7.8.3 for details of unique statement"; + + leaf id { + type uint16; + description + "Identification number for particular compression"; + } + + uses cf:compression-method-grouping; + + leaf fs-offset { + if-feature cf:CONFIGURABLE-FS-OFFSET; + type uint8; + default 0; + description + "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format. + Please refer to CU-Plane specification for details"; + } + } + + list bf-weights-compressions { + key id; + + leaf id { + type uint16; + description + "Identification number for particular beamforming compression"; + } + + leaf bf-weights-compression { + type cf:bf-compression-method-def; + description + "Beamforming weight compression method"; + } + + leaf iq-bitwidth { + type uint8; + description + "Bitwidth to be used in compression"; + } + + description + "List of available compressions, that can be dynamically choosen, for beamforming weights for this endpoint. + Note1: When only one compression is listed here, it implies that beamforming weights compression + is static and mentioned compression is taken into use. + Note2: O-RU Shall reject configuration with compressions that are not supported"; + } + } + } + + grouping supported-section-type4-config { + description + "Set of parameters required for section type 4 slot configuration message."; + list st4-supported-commands { + key "st4-command-type"; + + description + "This parameter specifies the list of Section Type 4 command types supported by O-RU."; + leaf st4-command-type { + type enumeration { + enum TIME_DOMAIN_BEAM_CONFIG { + description "O-RU support for receiving time domain beamforming command."; + } + enum TDD_CONFIG_PATTERN { + description "O-RU support for receiving TDD symbol pattern for a given slot."; + } + } + description + "Section Type 4 command types supported by O-RU."; + } + } + + list st4-reception-mask { + key "cmd-scope"; + + description + "List of symbol mask per command scope, specifying the O-RU capability to receive Section Type 4 message for a + given command scope only for symbols for which the corresponding bit is set to '1' in the bitmask. If the O-RU + receives a Section Type 4 message with associated command for a symbol whose bit value is set to '0' in this + bitmask, the O-RU shall reject the Section Type 4 message"; + + leaf cmd-scope { + type enumeration { + enum ARRAY-COMMAND { + description + "Command applies to all endpoints assigned to the tx-array(s) and/or rx-array(s).If the O-RU + is operating with multiple O-DUs, the scope of an individual O-DU is limited, to the + endpoints assigned to the O-DU which was the originator of the command."; + } + enum CARRIER-COMMAND { + description + "Command applies to all endpoints assigned to the tx-array-carrier and/or rx-array-carrier."; + } + enum O-RU-COMMAND { + description + "O-RU level command, i.e., one that applies to all arrays and carriers. If the O-RU + is operating with multiple O-DUs, the scope of an individual O-DU is limited, as + specified in CUS-Plane specification, clause 7.5.2.17."; + } + } + description "Command scope for section type 4 commands"; + } + + leaf st4-reception-bitmask { + type uint16; + description + "This parameter specifies the O-RU capability to receive Section Type 4 message with associated commands for the symbols + for which the corresponding bit is set to '1' in the bitmask. If the O-RU receives a Section Type 4 message with + associated command for a symbol whose bit value is set to '0' in this bitmask, the O-RU shall reject the Section Type 4 message"; + } + } + } + + 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 sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource operator associated with this list entry. + When present, indicates that the list entry corresponds to a low-level-tx-link + associated with a shared resouce operator where the sro-id idenifies + a specific shared resouce operator. + This schema-node is used to refine NACM privileges for shared + resource operators"; + } + + 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, + if 'transport-qualified-processing-element' is included in the configuration, + the O-RU shall use 'transport-qualified-processing-element' instead of this schema node, + an O-RU Controller shall still configure this schema node with a leafref to a valid ru-element, + but this shall not be used by the O-RU."; + } + + leaf transport-session-type { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type enumeration { + enum ETH-INTERFACE { + description "VLAN based CUS Transport "; + } + enum UDPIP-INTERFACE { + description "UDP/IP based CUS Transport "; + } + enum ALIASMAC-INTERFACE{ + description "Alias MAC address based CUS Transport "; + } + } + description + "transport session type used when an O-RU is configured with multiple processing elements of different transport session types, + in which case it is used for referencing a processing element in 'transport-qualified-processing-element'"; + } + + leaf transport-qualified-processing-element { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "Contains name of processing-element to be used as transport by low-level-tx-link. + Used when the processing element is configured + by the list 'additional-transport-session-type-elements'"; + } + + 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 sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource operator associated with this list entry. + When present, indicates that the list entry corresponds to a low-level-rx-link + associated with a shared resouce operator where the sro-id idenifies + a specific shared resouce operator. + This schema-node is used to refine NACM privileges for shared + resource operators"; + } + + 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-rx-link, + if 'transport-qualified-processing-element' is included in the configuration, + the O-RU shall use 'transport-qualified-processing-element' instead of this schema node, + an O-RU Controller shall still configure this schema node with a leafref to a valid ru-element, + but this shall not be used by the O-RU."; + } + + leaf transport-session-type { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type enumeration { + enum ETH-INTERFACE { + description "VLAN based CUS Transport "; + } + enum UDPIP-INTERFACE { + description "UDP/IP based CUS Transport "; + } + enum ALIASMAC-INTERFACE{ + description "Alias MAC address based CUS Transport "; + } + } + description + "transport session type used when an O-RU is configured with multiple processing elements of different transport session types, + in which case it is used for referencing a processing element in 'transport-qualified-processing-element'"; + } + + leaf transport-qualified-processing-element { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/o-ran-pe:ru-elements/o-ran-pe:name"; + } + description + "Contains name of processing-element to be used as transport by low-level-rx-link. + Used when the processing element is configured + by the list 'additional-transport-session-type-elements'"; + } + + 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"; + } + + leaf enhanced-user-plane-uplink-marking { + if-feature "feat:MULTIPLE-TRANSPORT-SESSION-TYPE"; + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:additional-transport-session-type-elements[o-ran-pe:transport-session-type = current()/../transport-session-type]/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. + Used when the enhanced-uplane-mapping is configured + by the list 'additional-transport-session-type-elements'"; + } + } + + list endpoint-types { + key "id"; + config false; + description + "Properties of endpoint that are common to multiple endpoints if such are identified + Note: For any endpoint supporting mixed numerology within slot/symbol (multiple-numerology-supported=TRUE) + * Interval specific (per-slot and per-symbol) capacity constraints instantaneous capacity usage + (i.e. capacity is shared/distributed between all numerologies used at an instant of time). + * Instantaneous capacity usage is the sum of capacity usages of all intervals of a specific type (slot/symbol) + that share the instant of time at which instantaneous capacity usage is evaluated regardless of numerology. + * Capacity used in an interval is allocated at the start of the interval and is released at the end of the interval + (e.g. capacity used for symbol #N of numerology #M is unavailable during symbol #N and available for reuse after symbol #N ends)."; + + 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"; + } + } + + uses supported-section-type4-config { + if-feature feat:ST4-SLOT-CONFIG-MSG-SUPPORT; + } + + leaf-list supported-frame-structures { + type uint8; + + description + "List of supported values of frame structure. For semantic and allowed values see CUS-Plane Specification, clause 'frameStructure (frame structure)'"; + } + + leaf managed-delay-support { + type enumeration { + enum MANAGED { + description + "Time managed delays are supported"; + } + + enum NON_MANAGED { + description + "Non time managed delays are supported"; + } + + enum BOTH { + description + "Both time managed and non time managed delays are supported"; + } + } + + description + "Type of delay supported by the endpoint"; + } + + leaf multiple-numerology-supported { + type boolean; + default true; + description + "Indicates whether the endpoint type supports multiple numerologies"; + } + + leaf max-numerology-change-duration { + type uint16 { + range "0..10000"; + } + + units Ts; + description + "Maximum gap of endpoint operation that will be caused by changing of + numerology. + + This time is required for reconfiguration and flushing of pipes. + + This leaf contains valid data only when multiple-numerology-supported + is set to true."; + } + + uses endpoint-section-capacity; + uses endpoint-beam-capacity; + uses endpoint-prb-capacity; + uses endpoint-section-extension-limits; + + leaf-list prb-capacity-allocation-granularity { + type uint16; + + description + "List of capacity allocation steps. O-RU allocates PRB capacity rounding it up to nearest value N + from prb-capacity-allocation-granularity such that M >= number-of-prb-per-scs. + See also number-of-prb-per-scs/number-of-prb."; + } + + uses endpoint-numerology-capacity; + + leaf static-transmission-window-control-supported { + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + type boolean; + description + "Endpoint supports transmission-window-control = STATIC"; + } + + leaf uniformly-distributed-transmission-supported { + if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION"; + type boolean; + description + "Endpoint supports transmission-type = UNIFORMLY-DISTRIBUTED"; + } + + leaf ordered-transmission-supported { + if-feature feat:ORDERED-TRANSMISSION; + type boolean; + description + "Endpoint supports ordered transmission of U-plane messages + and can be configured with ordered-transmission = TRUE"; + } + + leaf dynamic-transmission-window-control-supported { + if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL; + type boolean; + description + "Endpoint supports U-plane transmission window control via C-plane + (supports transmission-window-control = DYNAMIC) with independent window offset and size per symbol"; + } + + leaf dynamic-transmission-window-control-per-section-supported { + when "../dynamic-transmission-window-control-supported = 'true'"; + if-feature feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL; + type boolean; + description + "Endpoint supports U-plane transmission window control via C-plane + (supports transmission-window-control = DYNAMIC) with independent window offset and size per section"; + } + + leaf dynamic-uniformly-distributed-transmission-supported { + if-feature "feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL and feat:UNIFORMLY-DISTRIBUTED-TRANSMISSION"; + type boolean; + description + "Endpoint supports U-plane transmission window control via C-plane + (supports transmission-window-control = DYNAMIC) with independent transmission type per symbol"; + } + + leaf dynamic-uniformly-distributed-transmission-per-section-supported { + when "../dynamic-uniformly-distributed-transmission-supported = 'true'"; + type boolean; + description + "Endpoint supports U-plane transmission window control via C-plane + (supports transmission-window-control = DYNAMIC) with independent transmission type per section"; + } + + uses transmission-buffering-capacity { + when "static-transmission-window-control-supported = 'true' or dynamic-transmission-window-control-supported = 'true'"; + if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL"; + } + + leaf cplane-message-processing-limits-required { + if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS; + type boolean; + config false; + description + "Endpoint requires applying C-Plane message processing limits defined in 'per-cplane-message-limits'. + and can be configured with cplane-message-processing-limits-enabled = TRUE"; + } + + uses per-cplane-message-limits { + when "cplane-message-processing-limits-required = 'true'"; + if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS; + } + + leaf beam-update-contention-control-limits-required { + if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL; + type boolean; + config false; + description + "Endpoint requires applying beam update contention control limits defined in 'beam-update-contention-control-limits'. + and can be configured with beam-update-contention-control-enabled = TRUE"; + } + + uses beam-update-contention-control-limits { + when "beam-update-contention-control-limits-required = 'true'"; + if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL; + } + + leaf max-ack-nack-per-symbol { + type uint16; + description + "This value indicates the max number of ACK/NACK feedbacks supported by the endpoint in a symbol when + section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint. + The number of ACK/NACK feedbacks in a symbol is defined as the sum of 'numberofACKs' + 'numberofNACKs' in all C-Plane + messages sent by the endpoints in a symbol"; + } + } + + list transmission-window-schedules { + if-feature feat:STATIC-TRANSMISSION-WINDOW-CONTROL; + + key id; + description + "Parameters for scheduled UL U-plane message transmission (static transmission window control)"; + + leaf id { + type uint16; + description + "Identifies a UL U-plane message transmission schedule"; + } + + list schedule { + key symbol; + description + "Defines transmission window offset for given symbol. + If no entry is present for a symbol then O-RU assumes offset=0 for that symbol. + Entries with offset=0 shall be omitted."; + + leaf symbol { + type uint16; + description + "Number of a symbol within a frame for which transmission offset is given."; + } + + leaf offset { + type uint16; + description + "Transmission window offset; expressed as number of symbols the transmission window start is delayed by. + This value is added to u-plane-transmission-control/transmission-window-offset. + For restrictions on value of offset see description of transmission-window-offset."; + } + } + } + + list endpoint-capacity-sharing-groups { + key "id"; + config false; + description + "Represents groups of endpoints that share capacity. Depending on O-RU implementation, + processing resources that handle CU-plane (e.g. memory to keep sections and beams) + could be allocated per endpoint or shared between several endpoints. + To address this O-RU shall report own capability per endpoint (see endpoint-types) + and per group of endpoints sharing capacity. + If endpoint is in multiple groups then resulting constraint is minimum over all groups. + Note: values of parameters representing capacity that is not shared between endpoints in a group + shall be set to max value of specific parameter; this effectively removes related constraint. + Note: For any endpoint supporting mixed numerology within slot/symbol (multiple-numerology-supported=TRUE) + * Interval specific (per-slot and per-symbol) capacity constraints instantaneous capacity usage + (i.e. capacity is shared/distributed between all numerologies used at an instant of time). + * Instantaneous capacity usage is the sum of capacity usages of all intervals of a specific type (slot/symbol) + that share the instant of time at which instantaneous capacity usage is evaluated regardless of numerology. + * Capacity used in an interval is allocated at the start of the interval and is released at the end of the interval + (e.g. capacity used for symbol #N of numerology #M is unavailable during symbol #N and available for reuse after symbol #N ends)."; + + leaf id { + type uint16; + description + "Identifies group of endpoints sharing resources. + Values shall start with 0 and shall be allocated without gaps."; + } + uses endpoint-section-capacity; + uses endpoint-beam-capacity; + uses endpoint-prb-capacity; + uses endpoint-numerology-capacity; + uses endpoint-section-extension-limits; + + leaf max-endpoints { + type uint16; + description + "Indicates how many endpoints in the group can be used4 simultaneously"; + } + leaf max-managed-delay-endpoints { + type uint16; + description + "Number of endpoints supporting managed delay that can be used (configured for use) at a time"; + } + leaf max-non-managed-delay-endpoints { + type uint16; + description + "Number of endpoints supporting non-managed delay that can be used (configured for use) at a time"; + } + uses transmission-buffering-capacity { + if-feature "feat:STATIC-TRANSMISSION-WINDOW-CONTROL or feat:DYNAMIC-TRANSMISSION-WINDOW-CONTROL"; + } + + uses per-cplane-message-limits { + if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS; + } + + leaf max-ack-nack-per-symbol { + type uint16; + description + "This value indicates the max number of ACK/NACK feedbacks supported by the endpoint sharing group in a symbol when + section extension 22 (ACK/NACK request) and section type 8 (ACK/NACK feedback) are supported by the endpoint sharing group. + The number of ACK/NACK feedbacks in a symbol is defined as the sum of 'numberofACKs' + 'numberofNACKs' in all C-Plane + messages sent by the endpoints in group in a symbol"; + } + } + + list endpoint-prach-group { + key "id"; + config false; + description + "Represents group of a series of PRACH preamble formats"; + + leaf id { + type uint16; + description + "Identifies group of PRACH preamble formats."; + } + + leaf-list supported-prach-preamble-formats { + type prach-preamble-format; + min-elements 1; + description + "the list of PRACH preamble formats supported by the endpoint-type that is + applicable to static-low-level-rx-endpoints in the O-RU"; + } + + } + + list supported-compression-method-sets { + key "id"; + config false; + description + "List of available compression methods supported by device"; + + leaf id { + type uint16; + description + "Identification number for compression method set"; + } + + list compression-method-supported { + uses cf:compression-method-grouping; + uses cf:compresion-format-grp { + status deprecated; + } + + leaf-list fs-offset { + if-feature cf:CONFIGURABLE-FS-OFFSET; + type uint8; + default 0; + description + "Adjusts FS (full scale) value of IQ format relative to FS derived from unmodified IQ format. + Please refer to CU-Plane specification for details"; + + } + description + "List of supported compression methods by O-RU + Note: if O-RU supports different compression methods per endpoint + then please refer to endpoints to have information what + exactly is supported on particular endpoint"; + } + } + + 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-list restricted-interfaces { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces."; + } + + leaf array { + type leafref { + path "/user-plane-configuration/tx-arrays/name"; + } + mandatory true; + 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)."; + } + + leaf endpoint-type { + type leafref { + path "../../endpoint-types/id"; + } + + description + "Reference to endpoint type capabilities list element supported by this endpoint"; + } + + leaf-list capacity-sharing-groups { + type leafref { + path "../../endpoint-capacity-sharing-groups/id"; + } + + description + "Reference to capacities of sharing-groups supported by this endpoint"; + } + + list supported-reference-level { + if-feature TX-REFERENCE-LEVEL; + key "id"; + description + "Informs about supported ranges for gain reference level."; + + leaf id { + type uint16; + description + "Identification number for particular range"; + } + + leaf min { + type decimal64 { + fraction-digits 4; + } + units dB; + mandatory true; + description + "Minimum of supported gain reference level"; + } + + leaf max { + type decimal64 { + fraction-digits 4; + } + units dB; + mandatory true; + description + "Maximum of supported gain reference level"; + } + } + + container compression { + description + "Container collecting compression related parameters."; + + leaf dynamic-compression-supported { + type boolean; + + description + "Informs if endpoint supports dynamic compression method"; + } + + leaf realtime-variable-bit-width-supported { + type boolean; + + description + "Informs if endpoint supports real-time variable bit with"; + } + + leaf supported-compression-set-id { + type leafref { + path "../../../supported-compression-method-sets/id"; + } + + description + "Id of supported compression set for this endpoint"; + } + } + + uses endpoint-tdd-pattern-support; + + } + + 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-list restricted-interfaces { + type leafref { + path "/if:interfaces/if:interface/if:name"; + } + description + "Optionally used to indicate that a low-level link is constrained to operate only via a subset of the available interfaces."; + } + + leaf array { + type leafref { + path "/user-plane-configuration/rx-arrays/name"; + } + mandatory true; + 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)."; + } + + leaf endpoint-type { + type leafref { + path "../../endpoint-types/id"; + } + + description + "Reference to endpoint type capabilities list element supported by this endpoint"; + } + + leaf-list capacity-sharing-groups { + type leafref { + path "../../endpoint-capacity-sharing-groups/id"; + } + + description + "Reference to capacities of sharing-groups supported by this endpoint"; + } + + leaf prach-group { + type leafref { + path "../../endpoint-prach-group/id"; + require-instance false; + } + description + "An optional leaf used for those rx endpoints that support PRACH, indicating + the group id describing the set of of PRACH preambles supported"; + } + + container compression { + description + "Container collecting compression related parameters."; + + leaf dynamic-compression-supported { + type boolean; + + description + "Informs if endpoint supports dynamic compression method"; + } + + leaf realtime-variable-bit-width-supported { + type boolean; + + description + "Informs if endpoint supports real-time variable bit with"; + } + + leaf supported-compression-set-id { + type leafref { + path "../../../supported-compression-method-sets/id"; + } + + description + "Id of supported compression set for this endpoint"; + } + } + + uses endpoint-static-config-support; + + uses endpoint-tdd-pattern-support; + + leaf transmission-order { + when "(/user-plane-configuration/endpoint-types[id=current()/../endpoint-type]/ordered-transmission-supported = 'true')"; + if-feature feat:ORDERED-TRANSMISSION; + type uint32; + description + "The value indicates relative order of sending U-plane messages specific to same symbol + and transmission window by two endpoints with ordered-transmission = TRUE + belonging to the same transmission-order-group; + multiple endpoints may report the same value if their relative sending order is not guaranteed"; + } + + leaf transmission-order-group { + when "(/user-plane-configuration/endpoint-types[id=current()/../endpoint-type]/ordered-transmission-supported = 'true')"; + if-feature feat:ORDERED-TRANSMISSION; + type uint32; + description + "The value indicates a group of endpoints that preserve relative ordering of message sending; + message sending between endpoints in different groups is not guaranteed"; + } + } + + 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 modifiable element in static object"; + + leaf name { + type leafref { + path "/user-plane-configuration/static-low-level-tx-endpoints/name"; + require-instance false; + } + mandatory true; + + description + "Unique name of low-level-tx-endpoint object. Reference to static object"; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource operator associated with this list entry. + When present, indicates that the list entry corresponds to a low-level-tx-endpoint + associated with a shared resouce operator where the sro-id idenifies + a specific shared resouce operator. + This schema-node is used to refine NACM privileges for shared + resource operators"; + } + + + uses tx-endpoint-compression-grouping; + uses scs-config; + + container e-axcid { + uses eaxc; + + description + "Contains local address of low level TX endpoint offered by NETCONF server."; + } + + uses coupling-methods; + + leaf configurable-tdd-pattern-supported { + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + type leafref { + path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported"; + require-instance false; + } + description "RO to RW parameter mapping - needed for conditional under tx-array-carrier"; + } + + leaf cplane-message-processing-limits-enabled { + if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS; + type boolean; + default false; + description + "TRUE: O-DU shall support the C-Plane message processing limits and has selected to adhere to the C-Plane limits defined in 'per-cplane-message-limits'. + FALSE: O-DU shall not support C-Plane message processing limits and endpoint limits defined in 'per-cplane-message-limits' shall not apply"; + } + + leaf beam-update-contention-control-enabled { + if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL; + type boolean; + default false; + description + "TRUE: O-DU shall support beam update contention control feature of O-RU.Thus requiring O-DU to comply with beam + updates restrictions defined in CUS-Plane Spec Section 'Weight-based dynamic beamforming'. In this case applicable + beam limits defined in 'beam-update-contention-control-limits' shall apply. + FALSE: O-DU shall not support beam update contention control feature of O-RU. Applicable beam limits defined in + 'endpoint-beam-capacity' shall apply"; + } + + container channel-information-prb-group-configuration { + if-feature feat:CHANNEL-INFORMATION-PRB-GROUP; + description + "Container for configurable parameters for channel information prb group"; + + leaf enable-ci-prb-group { + type boolean; + description + "Informs whether or not to enable channel information PRB group in the O-RU, + if its value is set to true, the O-RU shall receive and process channel + information (e.g., ST6) with PRB group size of configured ci-prb-group-size."; + } + + leaf ci-prb-group-size { + type uint8 { + range "2..254"; + } + description + "The configured channel information PRB group size. + If enable-ci-prb-group is configured as TRUE, and the IE ciPrbGroupSize doesn't exsit in a section description for channel information, + the parameter ci-prb-group-size shall be used for this section description. + If the IE ciPrbGroupSize exsits in a section description for channel information, + no matter whether enable-ci-prb-group is configured as TRUE, the IE ciPrbGroupSize shall be used for this section description."; + } + } + } + + 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 modifiable element in static object"; + + leaf name { + type leafref { + path "/user-plane-configuration/static-low-level-rx-endpoints/name"; + require-instance false; + } + mandatory true; + + description + "Unique name of low-level-rx-endpoint object. Reference to static object"; + } + + leaf sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type leafref { + path "/or-user:users/or-user:user/or-user:sro-id"; + } + description + "An optional shared resource operator associated with this list entry. + When present, indicates that the list entry corresponds to a low-level-rx-endpoint + associated with a shared resouce operator where the sro-id idenifies + a specific shared resouce operator. + This schema-node is used to refine NACM privileges for shared + resource operators"; + } + + uses rx-endpoint-compression-grouping; + uses scs-config; + + list ul-fft-sampling-offsets { + key scs; + description + "List of FFT sampling offsets configured for each SCS that will be used. + Client shall configure one element 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 ul-fft-sampling-offset { + type uint16; + + units Ts; + description + "Determines time advance of capture window for FFT. + Value represents time advance of capture window start in relation to the end of CP. Unit is Ts. + Note: value of this parameter is usually set to '0' (zero) for PRACH channels. + Any phase offset resulting from the non-zero value of this parameter is handled in O-DU."; + } + } + + container e-axcid { + uses eaxc; + + description + "Contains local address of low level RX endpoint offered by NETCONF server."; + } + + leaf eaxc-gain-correction { + if-feature EAXC-GAIN-CORRECTION; + type decimal64 { + fraction-digits 4; + } + units dB; + default 0; + description + "eAxC specific part of overall gain_correction. + gain_correction = common array-carrier gain-correction + eAxC-gain-correction."; + } + + leaf non-time-managed-delay-enabled { + type boolean; + default false; + description + "Tells if non time managed delay shall be enabled"; + } + + uses coupling-methods; + + leaf static-config-supported { + type leafref { + path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/static-config-supported"; + require-instance false; + } + description "RO to RW parameter mapping - for further conditionals"; + } + + leaf static-prach-configuration { + when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'PRACH')"; + if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED; + type leafref { + path "/user-plane-configuration/static-prach-configurations/static-prach-config-id"; + } + description + "This parameter creates reference to static PRACH configuration applicable for particular endpoint"; + } + + leaf static-srs-configuration { + when "(/user-plane-configuration/low-level-rx-endpoints[name=current()/../name]/static-config-supported = 'SRS')"; + if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED; + type leafref { + path "/user-plane-configuration/static-srs-configurations/static-srs-config-id"; + } + description + "This parameter creates reference to static SRS configuration applicable for particular endpoint"; + } + + leaf configurable-tdd-pattern-supported { + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + type leafref { + path "/user-plane-configuration/static-low-level-rx-endpoints[name=current()/../name]/configurable-tdd-pattern-supported"; + require-instance false; + } + description "RO to RW parameter mapping - needed for conditional under rx-array-carrier"; + } + + uses u-plane-transmission-control; + + leaf ordered-transmission { + if-feature feat:ORDERED-TRANSMISSION; + type boolean; + default false; + description + "Commands O-RU to order UL U-plane message transmission between endpoints + Meaningless when ordered transmission is not supported for particular endpoint."; + } + + leaf cplane-message-processing-limits-enabled { + if-feature feat:CPLANE-MESSAGE-PROCESSING-LIMITS; + type boolean; + default false; + description + "TRUE: O-DU shall support C-Plane message processing limits and has selected to adhere + to the C-Plane limits defined in 'per-cplane-message-limits'. + FALSE: O-DU shall not support C-Plane message processing limits and hence C-Plane and + endpoint limits defined in 'per-cplane-message-limits' shall not apply"; + } + + leaf beam-update-contention-control-enabled { + if-feature feat:BEAM-UPDATE-CONTENTION-CONTROL; + type boolean; + default false; + description + "TRUE: O-DU shall support beam update contention control feature of O-RU.Thus requiring O-DU to comply with beam + updates restrictions defined in CUS-Plane Spec Section 'Weight-based dynamic beamforming'. In this case applicable + beam limits defined in 'beam-update-contention-control-limits' shall apply. + FALSE: O-DU shall not support beam update contention control feature of O-RU. Applicable beam limits defined in + 'endpoint-beam-capacity' shall apply"; + } + } + + 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."; + } + + list odu-ids { + if-feature feat:SHARED-ORU-MULTI-ODU; + key odu-id; + description + "An optional list of o-du identities associated with this list entry. + When present, indicates that the list entry corresponds to a tx-array-carrier + associated with one or more particular odu-id(s). + + This list is used to enable enhanced watchdog operation when operating + in a single operator environment, where watchdog supervision is performed + on a per odu-id basis and supervision failure only results in a sub-set + of carriers beign de-activated."; + + leaf odu-id { + type string; + description "an o-du identity "; + } + } + + list sro-ids-and-odu-ids { + if-feature "feat:SHARED-ORU-MULTI-ODU and feat:SHARED-ORU-MULTI-OPERATOR"; + key "odu-id sro-id"; + description + "An optional list of sro and o-du identities associated with this list entry. + When present, indicates that the list entry corresponds to a tx-array-carrier + associated with one or more particular odu-id(s) operated by a particular sro-id. + + This list is used to enable enhanced watchdog operationwhen operating + in a multi operator environment, where watchdog supervision is performed on + a per odu-id basis and supervision failure only results in a sub-set of + carriers beign de-activated."; + leaf odu-id { + type string; + description "an o-du identity "; + } + leaf sro-id { + type string; + description "an sro identity "; + } + } + + uses tx-common-array-carrier-elements; + + leaf band-number { + if-feature mcap:LAA; + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + require-instance false; + } + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multi-band solutions."; + } + + container lte-tdd-frame { + when "(/user-plane-configuration/tx-array-carriers/rw-type = 'LTE') and (/user-plane-configuration/tx-array-carriers/rw-duplex-scheme = 'TDD')"; + status deprecated; + description + "Container which consists of global configurable parameters for tdd Frame. + This contained is deprecated due to introduction of TDD pattern configuration + applicable in a common way for LTE and NR."; + + leaf subframe-assignment { + type enumeration { + enum SAO { + description "subframe assignment configuration 0"; + } + enum SA1 { + description "subframe assignment configuration 1"; + } + enum SA2 { + description "subframe assignment configuration 2"; + } + enum SA3 { + description "subframe assignment configuration 3"; + } + enum SA4 { + description "subframe assignment configuration 4"; + } + enum SA5 { + description "subframe assignment configuration 5"; + } + enum SA6 { + description "subframe assignment configuration 6"; + } + } + mandatory true; + description + "Indicates DL/UL subframe configuration as specified in + 3GPP TS 36.211 [v15.3.0, table 4.2-2]"; + } + leaf special-subframe-pattern { + type enumeration { + enum SPP0 { + description "special subframe pattern configuration 0"; + } + enum SPP1 { + description "special subframe pattern configuration 1"; + } + enum SPP2 { + description "special subframe pattern configuration 2"; + } + enum SPP3 { + description "special subframe pattern configuration 3"; + } + enum SPP4 { + description "special subframe pattern configuration 4"; + } + enum SPP5 { + description "special subframe pattern configuration 5"; + } + enum SPP6 { + description "special subframe pattern configuration 6"; + } + enum SPP7 { + description "special subframe pattern configuration 7"; + } + enum SPP8 { + description "special subframe pattern configuration 8"; + } + enum SPP9 { + description "special subframe pattern configuration 9"; + } + enum SPP10 { + description "special subframe pattern configuration 10"; + } + } + mandatory true; + description + "Indicates TDD special subframe configuration as in TS 36.211 + [v15.3.0, table 4.2-1] "; + } + } + + container laa-carrier-configuration { + when "../band-number = 46"; + if-feature mcap:LAA; + description "Container to specify LAA feature related carrier configuration."; + uses laa-carrier-config; + } + + leaf gain { + type decimal64 { + fraction-digits 4; + } + units dB; + mandatory true; + + description + "Transmission gain in dB. Value applicable to each array element carrier belonging to array carrier. + + The value of tranmsmission gain shall meet the constraints defined in CUS-Plane, clause 8.1.3.3."; + } + + 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-carriers that have same frequency and bandwidth. + Note2: Unit is 1/1.2288e9 s. 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-carriers that have same frequency and bandwidth."; + } + + leaf t-da-offset { + if-feature "feat:EXT-ANT-DELAY-CONTROL"; + type uint32; + units Tc; + default 0; + description + "the time difference between the output of DL signal at the + antenna connector of O-RU and the transmission over the air. + units are Tc=~0.5ns=1/1.96608GHz. + An O-RU with 'ext-ant-delay-capability' = 'PER-O-RU' shall reject any configuration + where different values of t-da-offset are configured on tx-array-carriers; + An O-RU with 'ext-ant-delay-capability' = 'PER-ARRAY' shall reject any configuration + where different values of t-da-offset are configured on tx-array-carriers associated with the same tx-array."; + } + + leaf reference-level { + if-feature TX-REFERENCE-LEVEL; + type decimal64 { + fraction-digits 4; + } + units dB; + default 0; + description + "Allows to adjust reference level for sum of IQ signal power over eAxCs in this array-carrier."; + } + + leaf configurable-tdd-pattern { + when "not(/user-plane-configuration/low-level-tx-endpoints[name = string(/user-plane-configuration/low-level-tx-links[tx-array-carrier = current()/../name]/tx-array-carrier)]/configurable-tdd-pattern-supported = 'false')"; + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + type leafref { + path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id"; + } + description + "This parameter creates reference to configuration for TDD pattern applicable for particular tx-array-carrier. + The leaf may exist under tx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED' + AND all low-level-tx-endpoints linked to this tx-array-carrier have configurable-tdd-pattern-supported = 'true'"; + } + } + + 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."; + } + + list odu-ids { + if-feature feat:SHARED-ORU-MULTI-ODU; + key odu-id; + description + "An optional list of o-du identities associated with this list entry. + When present, indicates that the list entry corresponds to a rx-array-carrier + associated with one or more particular odu-id(s). + + This list is used to enable enhanced watchdog operation when operating + in a single operator environment, where watchdog supervision is performed + on a per odu-id basis and supervision failure only results in a sub-set + of carriers beign de-activated."; + + leaf odu-id { + type string; + description "an o-du identity "; + } + } + + list sro-ids-and-odu-ids { + if-feature "feat:SHARED-ORU-MULTI-ODU and feat:SHARED-ORU-MULTI-OPERATOR"; + key "odu-id sro-id"; + description + "An optional list of sro and o-du identities associated with this list entry. + When present, indicates that the list entry corresponds to a rx-array-carrier + associated with one or more particular odu-id(s) operated by a particular sro-id. + + This list is used to enable enhanced watchdog operationwhen operating + in a multi operator environment, where watchdog supervision is performed on + a per odu-id basis and supervision failure only results in a sub-set of + carriers beign de-activated."; + leaf odu-id { + type string; + description "an o-du identity "; + } + leaf sro-id { + type string; + description "an sro identity "; + } + } + + uses rx-common-array-carrier-elements; + + 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-carriers that have same frequency and bandwidth. + Note2: Unit is 1/1.2288e9 s. 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-carriers that have same frequency and bandwidth."; + } + + leaf gain-correction { + type decimal64 { + fraction-digits 4; + + } + units dB; + mandatory true; + description + "Gain correction of RF path linked with array element or array layers. + Common part of overall gain_correction. + gain_correction = common array-carrier gain-correction + eAxC gain correction."; + } + + leaf n-ta-offset { + type uint32; + units Tc; + mandatory true; + description + "Value of configurable N-TA offset + units are Tc=~0.5ns=1/1.96608GHz"; + } + + leaf t-au-offset { + if-feature "feat:EXT-ANT-DELAY-CONTROL"; + type uint32; + units Tc; + default 0; + description + "the time difference between the reception over the air and + the input of UL signal at the antenna connector of O-RU. + units are Tc=~0.5ns=1/1.96608GHz. + An O-RU with 'ext-ant-delay-capability' = 'PER-O-RU' shall reject any configuration + where different values of t-au-offset are configured on rx-array-carriers; + An O-RU with 'ext-ant-delay-capability' = 'PER-ARRAY' shall reject any configuration + where different values of t-au-offset are configured on rx-array-carriers associated with the same rx-array."; + } + + leaf configurable-tdd-pattern { + when "not(/user-plane-configuration/low-level-rx-endpoints[name = string(/user-plane-configuration/low-level-rx-links[rx-array-carrier = current()/../name]/rx-array-carrier)]/configurable-tdd-pattern-supported = 'false')"; + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + type leafref { + path "/user-plane-configuration/configurable-tdd-patterns/tdd-pattern-id"; + } + description + "This parameter creates reference to configuration for TDD pattern applicable for particular rx-array-carrier. + The leaf may exist under rx-array-carrier only in case O-RU supports feature 'CONFIGURABLE-TDD-PATTERN-SUPPORTED' + AND all low-level-rx-endpoints linked to this rx-array-carrier have configurable-tdd-pattern-supported = 'true'"; + } + } + + list tx-arrays { + key "name"; + config false; + description + "Structure describing TX array parameters"; + + uses parameters; + + leaf min-gain { + type decimal64 { + fraction-digits 4; + + } + units dB; + description + "Min gain of RF path linked with array element (maximum over elements of array) or array layers"; + } + + leaf max-gain { + type decimal64 { + fraction-digits 4; + + } + units dB; + mandatory true; + description + "Max gain of RF path linked with array element (minimum over elements of array) or array layers"; + } + + leaf independent-power-budget { + type boolean; + mandatory true; + description + "If true then every element of array has own, power budget independent from power budget of other elements. + Else all elements of array that are at same row and column and have same polarisation share power budget"; + } + + list capabilities { + description + "List of capabilities related to this tx-array"; + uses mcap:support-for-dl; + } + } + + list rx-arrays { + key "name"; + config false; + description "Structure describing RX array parameters"; + + uses parameters; + container gain-correction-range { + leaf max { + type decimal64 { + fraction-digits 4; + } + units dB; + mandatory true; + description "Array gain correction factor - maximum allowed value"; + } + leaf min { + type decimal64 { + fraction-digits 4; + } + units dB; + mandatory true; + description "Array gain correction factor - minimum allowed value"; + } + + description + "Array gain correction factor"; + } + + list capabilities { + description + "List of capabilities related to this rx-array"; + uses mcap:support-for-ul; + } + } + + list relations { + key "entity"; + config false; + description "Structure describing relations between array elements"; + + leaf entity { + type uint16; + + description + "Relation entity. Used as a key for list of relations."; + } + + container array1 { + uses array-choice; + + description + "Defines name for first array"; + } + container array2 { + uses array-choice; + + description + "Defines name for second array"; + } + list types { + key "relation-type"; + description + "Defines relation type and pairs for array elements for given arrays"; + + leaf relation-type { + type enumeration { + enum SHARED { + description "SHARED"; + } + enum COALOCATED { + description "COALOCATED"; + } + } + description "Type of relation between array elements"; + } + list pairs { + key "element-array1"; + description + "defines related array elements"; + + leaf element-array1 { + type uint16; + + description + "Tells about id of element from array1"; + } + leaf element-array2 { + type uint16; + + description + "Tells about id of element from array2"; + } + } + } + } + + container eaxc-id-group-configuration { + if-feature mcap:EAXC-ID-GROUP-SUPPORTED; + description + "This is the container for eAxC ID group configuration."; + leaf max-num-tx-eaxc-id-groups { + type leafref { + path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-id-groups"; + require-instance false; + } + description "eaxc-id-group-configuration"; + } + leaf max-num-tx-eaxc-ids-per-group { + type leafref { + path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-tx-eaxc-ids-per-group"; + require-instance false; + } + description "max-num-tx-eaxc-ids-per-group"; + } + leaf max-num-rx-eaxc-id-groups { + type leafref { + path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-id-groups"; + require-instance false; + } + description "max-num-rx-eaxc-id-groups"; + } + leaf max-num-rx-eaxc-ids-per-group { + type leafref { + path "/mcap:module-capability/mcap:ru-capabilities/mcap:eaxcid-grouping-capabilities/mcap:max-num-rx-eaxc-ids-per-group"; + require-instance false; + } + description "max-num-rx-eaxc-ids-per-group"; + } + + list tx-eaxc-id-group { + must "count(../tx-eaxc-id-group) <= ../max-num-tx-eaxc-id-groups" { + error-message "too many tx-eaxcid-id groups"; + } + key "representative-tx-eaxc-id"; + description + "This is a list of the groups of the eAxC IDs assigned to low-level-tx-endpoints. + Each group is a union of the 'member-tx-eaxc-id's and a 'representative-tx-eaxc-id'. + The low-level-tx-endpoint associated to 'representative-tx-eaxc-id' is able to + process the DL C-plane information for all the low-level-tx-endpoints associated + to 'member-tx-eaxc-id's. + + Take Note: This list should only contain eAxC IDs assigned to a tx-endpoint."; + + + leaf representative-tx-eaxc-id { + type uint16; + description + "This parameter contains eAxC_ID that populates content of C-Plane section + extension 10 to eAxC_IDs configured in the group as 'member-tx-eaxc-id'(s)."; + } + leaf-list member-tx-eaxc-id { + type uint16; + must "count(../member-tx-eaxc-id) <= ../../max-num-tx-eaxc-ids-per-group" { + error-message "too many tx-eaxcid-id members"; + } + must "current()!=../representative-tx-eaxc-id" { + error-message "the representative eaxcid does not need to be a list member"; + } + ordered-by user; + description + "This is a list of member eAxC IDs, which together with the representative-tx-eaxc-id, + are assigned to low-level-tx-endpoints in the group. + This list is defined as 'ordered-by user', because the order of the eaxc-id list should be maintained, + and the parameters in the SE10 are applied to the eaxc-ids based on the order of eaxc-ids in the list + when the section extension conveys unique parameters (beamId/ueId) per eaxc-id."; + } + } + + list rx-eaxc-id-group { + must "count(../rx-eaxc-id-group) <= ../max-num-rx-eaxc-id-groups" { + error-message "too many rx-eaxcid-id groups"; + } + key "representative-rx-eaxc-id"; + description + "This is a list of the groups of the eAxC IDs assigned to low-level-rx-endpoints. + Each group is a union of 'member-rx-eaxc-id's and a 'representative-rx-eaxc-id'. + The low-level-rx-endpoint associated to 'representative-rx-eaxc-id' is able to + process the UL C-plane information for all the low-level-rx-endpoints associated + to 'member-rx-eaxc-id's. + + Take Note: This list should only contain eAxC IDs assigned to a rx-endpoint."; + + leaf representative-rx-eaxc-id { + type uint16; + description + "This parameter contains eAxC_ID that populates content of C-Plane section + extension 10 to eAxC_IDs configured in the group as 'member-rx-eaxc-id'(s)."; + } + + leaf-list member-rx-eaxc-id { + type uint16; + must "count(../member-rx-eaxc-id) <= ../../max-num-rx-eaxc-ids-per-group" { + error-message "too many rx-eaxcid-id members"; + } + must "current()!=../representative-rx-eaxc-id" { + error-message "the representative eaxcid does not need to be a list member"; + } + ordered-by user; + description + "This is a list of member eAxC IDs assigned to low-level-rx-endpoints in the group. + This list is defined as 'ordered-by user', because the order of the eaxc-id list should be maintained, + and the parameters in the SE10 are applied to the eaxc-ids based on the order of eaxc-ids in the list + when the section extension conveys unique parameters (beamId/ueId) per eaxc-id."; + } + } + } + + list static-prach-configurations { + if-feature mcap:PRACH-STATIC-CONFIGURATION-SUPPORTED; + key static-prach-config-id; + description + "List of static PRACH configurations. An O-RU shall reject any configuration + modification which exceed the maximum permitted configurations supported by + the O-RU"; + + leaf static-prach-config-id { + type uint8; + description + "Supplementary parameter acting as key in list of static PRACH configurations."; + } + + uses static-prach-configuration; + } + + grouping static-prach-configuration { + description + "Set of parameters related to static PRACH configuration"; + + leaf pattern-period { + type uint16 { + range 1..1024; + } + mandatory true; + description + "Period after which static PRACH patterns are repeated. Unit: number of frames."; + } + + leaf guard-tone-low-re { + type uint32; + mandatory true; + description + "Number of REs occupied by the low guard tones."; + } + + leaf num-prach-re { + type uint32; + mandatory true; + description + "Number of contiguous PRBs per data section description"; + } + + leaf guard-tone-high-re { + type uint32; + mandatory true; + description + "Number of REs occupied by the high guard tones."; + } + + leaf sequence-duration { + type uint32 { + range 256..24576; + } + units Ts; + mandatory true; + description + "Duration of single sequence of the PRACH. Sequence may be considered as 'single PRACH symbol'"; + } + + list prach-patterns { + key prach-pattern-id; + min-elements 1; + description + "Provides a PRACH pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-prach-patterns"; + + leaf prach-pattern-id { + type uint16; + mandatory true; + description + "Supplementary parameter acting as key for prach-pattern list."; + } + + leaf number-of-repetitions { + type uint8{ + range 1..14; + } + mandatory true; + description + "This parameter defines number of PRACH repetitions in PRACH occasion, + to which the section control is applicable."; + } + + leaf number-of-occasions { + type uint8; + mandatory true; + description + "This parameter informs how many consecutive PRACH occasions is described by the PRACH pattern."; + } + + leaf re-offset { + type uint32; + mandatory true; + description + "Offset between the start of lowest-frequency RE of lowest-frequency PRB + and the start of lowest-frequency RE belonging to the PRACH occasion. + The re-offset is configured as number of PRACH REs."; + } + + list occasion-parameters { + key occasion-id; + min-elements 1; + description + "This is list of cp-lengths, gp-lengths and beam-ids applicable + per each PRACH occasion in PRACH pattern. + Note: the number of records in this list MUST be equal + to value of parameter number-of-occasions."; + + leaf occasion-id { + type uint8; + mandatory true; + description + "Supplementary parameter acting as key in 'occasion-parameters' list"; + } + + leaf cp-length { + type uint16; + units Ts; + mandatory true; + description + "Cyclic prefix length. See CUS-plane specification for detailed description."; + } + + leaf gp-length { + type uint16; + units Ts; + description + "Guard period length."; + } + + leaf beam-id { + type uint16 { + range "min .. 32767"; + } + mandatory true; + description + "This parameter defines the beam pattern to be applied to the U-Plane data. + beamId = 0 means no beamforming operation will be performed."; + } + } + + leaf frame-number { + type uint16{ + range 0..1023; + } + mandatory true; + description + "This parameter is an index inside the pattern-length, such that + PRACH occasion is happening for SFN which fulfills following equation: + [SFN mod pattern-length = frame-id]"; + } + + leaf sub-frame-id { + type uint16; + mandatory true; + description + "Identifier of sub-frame of the PRACH occasion. Value is interpreted in the same way + as subframeId field in a section description of a C-Plane message."; + } + + leaf time-offset { + type uint16; + units Ts; + mandatory true; + description + "This parameter defines the time-offset from the start of the sub-frame + to the start of the first Cyclic Prefix of PRACH pattern"; + } + } + } + + grouping static-srs-configuration { + description + "Set of parameters related to static PRACH configuration"; + + leaf pattern-period { + type uint16 { + range 1..1024; + } + mandatory true; + description + "Period after which static SRS patterns are repeated. Unit: number of frames."; + } + + list srs-patterns { + key srs-pattern-id; + min-elements 1; + description + "Provides a SRS pattern. Each record in the list represents a single PRACH occasion. Number of list entries cannot exceed max-srs-patterns."; + + leaf srs-pattern-id { + type uint16; + mandatory true; + description + "Supplementary parameter acting as key for srs-pattern list."; + } + + leaf sub-frame-id { + type uint16; + mandatory true; + description + "Identifier of sub-frame of the Raw SRS occasion. Value is interpreted in the same way + as subframeId field in a section description of a C-Plane message."; + } + + leaf slot-id { + type uint16; + mandatory true; + description + "Identifier of slot of the Raw SRS occasion. Value is interpreted in the same way + as slotId field in a section description of a C-Plane message."; + } + + leaf start-symbol-id { + type uint16; + mandatory true; + description + "Identifier of first symbol of the Raw SRS occasion. Value is interpreted in the same way + as startSymbolId field in a section description of a C-Plane message."; + } + + leaf beam-id { + type uint16 { + range "min .. 32767"; + } + mandatory true; + description + "This parameter defines the beam pattern to be applied to the U-Plane data. + beamId = 0 means no beamforming operation will be performed."; + } + + leaf num-symbol { + type uint16; + mandatory true; + description + "This parameter defines number of consecutive symbols covered by specific srs-pattern. + Single srs-pattern may address at least one symbol. However, possible optimisations + could allow for several (up to 14) symbols."; + } + + leaf start-prbc { + type uint16 { + range 0..1023; + } + mandatory true; + description + "Identifier of first PRB of the Raw SRS occasion. Value is interpreted in the same way + as startPrbc field in a section description of a C-Plane message."; + } + + leaf num-prbc { + type uint16; + mandatory true; + description + "Number of PRBs of the Raw SRS occasion. Value is interpreted in the same way + as numPrbc field in a section description of a C-Plane message."; + } + } + } + + grouping configurable-tdd-pattern { + description + "Set of parameters related to configurable TDD pattern. + Note: configurable-tdd-pattern shall not be used in case the usage would collide with + deprecated 'lte-tdd-pattern'."; + + list switching-points { + key switching-point-id; + description + "List of switching points within frame, related to configurable TDD pattern. + An O-RU shall reject any configuration modification which exceeds the maximum + number of switching-points supported by the O-RU"; + + leaf switching-point-id { + type uint16; + description + "Supplementary parameter acting as key for switching-points list."; + } + + leaf direction { + type enumeration { + enum UL { + description "Uplink"; + } + enum DL { + description "Downlink"; + } + enum GP { + description "Guard period"; + } + } + mandatory true; + description + "Parameter provides information regarding desired signal direction at the moment switching point occurs."; + } + + leaf frame-offset { + type uint32; + mandatory true; + description + "Offset from DL air frame boundary transmitted at RF connector to the point in time that is characteristic to the operation on RF switches. Unit is 1/1.2288e9 s."; + } + } + } + + list static-srs-configurations { + if-feature mcap:SRS-STATIC-CONFIGURATION-SUPPORTED; + key static-srs-config-id; + description + "List of static SRS configurations"; + + leaf static-srs-config-id { + type uint8; + description + "Supplementary parameter acting as key in the list of static SRS configurations."; + } + + uses static-srs-configuration; + } + + list configurable-tdd-patterns { + if-feature mcap:CONFIGURABLE-TDD-PATTERN-SUPPORTED; + key tdd-pattern-id; + description + "List of configured TDD patterns"; + + leaf tdd-pattern-id { + type uint8; + description + "Supplementary parameter acting as key in the list of configured TDD patterns."; + } + + uses configurable-tdd-pattern; + } + } + + grouping tx-array-notification-group { + description + "Grouping for tx-array for notification"; + + list tx-array-carriers{ + key name; + description "notification of state change for tx-array-carriers"; + + leaf name{ + type leafref{ + path "/user-plane-configuration/tx-array-carriers/name"; + } + description + "name of tx-array-carriers is notified at state change"; + } + leaf state{ + type leafref{ + path "/user-plane-configuration/tx-array-carriers/state"; + } + description + "state of tx-array-carriers is notified at state change"; + } + } + } + + grouping rx-array-notification-group { + description + "Grouping for rx-array for notification"; + + list rx-array-carriers{ + key name; + description + "Notification used to inform about state change of rx-array-carriers"; + leaf name{ + type leafref{ + path "/user-plane-configuration/rx-array-carriers/name"; + } + description + "name of rx-array-carriers is notified at state change"; + } + leaf state{ + type leafref{ + path "/user-plane-configuration/rx-array-carriers/state"; + } + description + "state of rx-array-carriers is notified at state change"; + } + } + } + + // top level container + container user-plane-configuration { + description "top level container for user plane configuration"; + + uses uplane-conf-group; + uses general-config; + } + + //notification statement + notification tx-array-carriers-state-change { + description + "Notification used to inform about state change of tx-array-carriers"; + uses tx-array-notification-group; + } + notification rx-array-carriers-state-change { + description + "Notification used to inform about state change of tx-array-carriers"; + + uses rx-array-notification-group; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2022-08-15.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2022-08-15.yang new file mode 100644 index 0000000..8d97db3 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2022-08-15.yang @@ -0,0 +1,243 @@ +module o-ran-usermgmt { + yang-version 1.1; + namespace "urn:o-ran:user-mgmt:1.0"; + prefix "o-ran-usermgmt"; + + import ietf-netconf-acm { + prefix nacm; + reference + "RFC 8341: Network Configuration Access Control Model"; + } + + import o-ran-wg4-features { + prefix "feat"; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the user management model for the O-RAN Equipment. + + 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 "2022-08-15" { + description + "version 10.0.0 + + 1) introduced SHARED-ORU-MULTI-OPERATOR feature."; + + reference "ORAN-WG4.M.0-v10.00"; + } + + + revision "2021-12-01" { + description + "version 1.3.0 + + 1) typographical corrections in descriptions"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2020-12-10" { + description + "version 1.2.0 + + 1) updated description for enabled leaf"; + + reference "ORAN-WG4.M.0-v01.00"; + } + + revision "2019-07-03" { + description + "version 1.1.0 + + 1) change name leaf to type nacm:user-name-type + 2) added account-type to qualify when password is required "; + + 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 password-type { + type string { + length "8..128"; + pattern "[a-zA-Z0-9!$%\\^()\\[\\]_\\-~{}.+]*" { + error-message "Password content does not meet the requirements"; + } + } + description + "The password for this entry. This shouldn't be in clear text + The Password must contain at least 2 characters from + each of the following groups: + a) Lower case alphabetic (a-z) + b) Upper case alphabetic (A-Z) + c) Numeric 0-9 + d) Special characters Allowed !$%^()[]_-~{}.+ + Password must not contain Username."; + } + + grouping user-list { + description "a user list grouping"; + list user { + key "name"; + description + "The list of local users configured on this device."; + leaf name { + type nacm:user-name-type; + description + "The user name string identifying this entry. + + NOTE: o-ran-usermgmt:user-profile/user/name is + identical to nacm:nacm/groups/group/user-name + but the current schema is preserved for backwards + compatibility."; + } + leaf account-type { + type enumeration { + enum PASSWORD { + description "the user-name is for password based authentication"; + } + enum CERTIFICATE { + description "the user-name is for certificate based authentication"; + } + } + default "PASSWORD"; + description "the account type"; + } + + leaf password { + nacm:default-deny-all; + type password-type; + description + "The password for this entry. + + This field is only valid when account-type is NOT set to CERTIFICATE, + i.e., when account-type is NOT present or present and set to + PASSWORD."; + } + leaf enabled { + type boolean; + description + "Indicates whether an account is enabled or disabled. + + A NETCONF Server shall reject a configuration that attempts to + enable a Password account for an account where the password leaf + is not configured. + + This validation statement is included in the YANG description and + not in a MUST statement to preserve backwards compatibility."; + } + leaf-list sro-id { + if-feature feat:SHARED-ORU-MULTI-OPERATOR; + type string; + description + "An optional list if Shared Resource Operator identities associated with the + user-account. Used to realize enhanced access privileges in a shared O-RU. + When an sro-id is configured in the O-RU, the O-RU shall + implement additional sro-id based NETCONF access control + as specified in O-RAN.WG4.MP.0-v10.00. + The O-RU does not further interpret the specific value of sro-id."; + } + } + } + + container users { + must "user/enabled='true'" { + error-message "At least one account needs to be enabled."; + } + //TAKE NOTE - any configuration with zero enabled users is invalid. + //This will typically be the case when using a simulated NETCONF Server + //and so this constraint should be removed when operating in those scenarios + + //The config data base of the O-RAN equipment should ensure that the user + //default account is enabled on factory restart + + description "list of user accounts"; + uses user-list; + } + + rpc chg-password { + description "the RPC used to change a password"; + nacm:default-deny-all; + input { + leaf currentPassword { + type password-type; + mandatory true; + description + "provide the current password"; + } + leaf newPassword { + type password-type; + mandatory true; + description + "provide a new password"; + } + leaf newPasswordConfirm { + type password-type; + mandatory true; + description + "re-enter the new password "; + } + } + output { + leaf status { + type enumeration { + enum "Successful" { + value 1; + description "change password operation is successful"; + } + enum "Failed" { + value 2; + description "change password operation failed"; + } + } + mandatory true; + description + "Successful or Failed"; + } + leaf status-message { + type string; + description + "Gives a more detailed reason for success / failure"; + } + } + } + +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2022-12-05.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2022-12-05.yang new file mode 100644 index 0000000..1d02f04 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2022-12-05.yang @@ -0,0 +1,251 @@ +module o-ran-wg4-features { + yang-version 1.1; + namespace "urn:o-ran:wg4feat:1.0"; + prefix "o-ran-feat"; + + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the set of re-usable type definitions for WG4 specific + features. + + Copyright 2021 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 "2022-12-05" { + description + "version 11.0.0 + new features: + + 1) UPLANE-ONLY-DL-MODE-ENABLE + 2) SUPERVISION-WITH-SESSION-ID + 3) INTEGRITY-CHECK-AT-SW-DOWNLOAD + 4) ST4-SLOT-CONFIG-MSG-SUPPORT"; + + reference "ORAN-WG4.M.0-v11.00"; + } + + + revision "2022-08-15" { + description + "version 10.0.0 + new features: + 1) SHARED-ORU-MULTI-ODU + 2) SHARED-ORU-MULTI-OPERATOR"; + reference "ORAN-WG4.M.0-v10.00"; + } + + revision "2021-12-01" { + description + "version 8.0.0 + new features: + 1) Typographical corrections in descriptions + 2) Add new features: + BEAM-UPDATE-CONTENTION-CONTROL + MULTIPLE-SCS-IN-EAXC + ENHANCED-T-COMBINE + CHANNEL-INFORMATION-COMPRESSION + CHANNEL-INFORMATION-PRB-GROUP + MULTIPLE-TRANSPORT-SESSION-TYPE"; + reference "ORAN-WG4.M.0-v08.00"; + } + + revision "2021-07-26" { + description + "version 7.0.0 + + new features: + 1) EXT-ANT-DELAY-CONTRO + 2) CPLANE-MESSAGE-PROCESSING-LIMITS"; + + reference "ORAN-WG4.M.0-v07.00"; + } + + revision "2021-03-22" { + description + "version 6.0.0 + + 1) Features added to handle updated transmission window control: + STATIC-TRANSMISSION-WINDOW-CONTROL + DYNAMIC-TRANSMISSION-WINDOW-CONTROL + UNIFORMLY-DISTRIBUTED-TRANSMISSION + ORDERED-TRANSMISSION + INDEPENDENT-TRANSMISSION-WINDOW-CONTROL + "; + + reference "ORAN-WG4.M.0-v06.00"; + } + + revision "2020-12-10" { + description + "version 5.0.0 + + 1) initial version."; + + reference "ORAN-WG4.M.0-v05.00"; + } + + feature NON-PERSISTENT-MPLANE { + description + "Indicates that the Radio Unit supports the optional + capability to improve the operation with a SMO using a non- + persistent NETCONF session."; + } + + feature STATIC-TRANSMISSION-WINDOW-CONTROL { + description + "O-RU supports U-plane transmission window control (scheduled transmission + and optionally uniformly distributed transmission) configuration over M-plane"; + } + + feature DYNAMIC-TRANSMISSION-WINDOW-CONTROL { + description + "O-RU supports U-plane transmission window control (scheduled transmission + and optionally uniformly distributed transmission) configuration over C-plane"; + } + + feature UNIFORMLY-DISTRIBUTED-TRANSMISSION { + if-feature "STATIC-TRANSMISSION-WINDOW-CONTROL or DYNAMIC-TRANSMISSION-WINDOW-CONTROL"; + description + "O-RU supports transmission of UL U-plane messages distributed uniformly over transmission window."; + } + + feature ORDERED-TRANSMISSION { + description + "O-RU supports ordered transmission"; + } + + feature INDEPENDENT-TRANSMISSION-WINDOW-CONTROL { + if-feature "STATIC-TRANSMISSION-WINDOW-CONTROL or DYNAMIC-TRANSMISSION-WINDOW-CONTROL"; + description + "O-RU supports independent U-plane transmission window per endpoint. + + If this feature is not supported then for all endpoints with transmission control enabled + (see u-plane-transmission-control/transmission-window-control) must be configured for transmission + window offsets and window sizes that coincide for each symbol. + + If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is not supported then all endpoints with + transmission control enabled that handle the same carrier type and SCS must be configured + (via M-plane or C-plane) with parameter values resulting in transmission windows that coincide + between the endpoints. That is, for every symbol N, the effective transmission window for symbol N + must be shared (start at the same time and end at the same time) by all the endpoints handling + same carrier type and SCS. This restriction applies only to endpoints that have transmission + control enabled. + + If INDEPENDENT-TRANSMISSION-WINDOW-CONTROL feature is supported then restriction described + above does not apply and a different transmission window (window offset and window size) + can be used for every endpoint capable of transmission window control."; + } + + feature EXT-ANT-DELAY-CONTROL { + description + "This feature indicates that the O-RU supports external antenna delay control"; + } + + feature CPLANE-MESSAGE-PROCESSING-LIMITS { + description + "Feature to indicate O-RU limitation of C-Plane message processing. Refer CUS-Plane specification + section 'O-RU C-Plane message limits' for more details on this feature."; + } + + feature CHANNEL-INFORMATION-COMPRESSION { + description + "This feature indicates that the O-RU supports channel information compression."; + } + + feature CHANNEL-INFORMATION-PRB-GROUP { + description + "Feature to indicate O-RU supports receiving and processing channel + information (e.g., ST6) with PRB group size greater than one PRB"; + } + + feature BEAM-UPDATE-CONTENTION-CONTROL { + description + "Feature to indicate O-RU requirements for beam weight update for a given beamId, to avoid beam update contentions. + Refer CUS-Plane specification section 'Weight-based dynamic beamforming' for more details on this feature."; + } + + feature MULTIPLE-SCS-IN-EAXC { + description + "Presence of feature indicates that FHM supports combining for multiple SCS + or multiple c-plane-types/frameStructure in a single eAxC-id in UL direction."; + } + + feature MULTIPLE-TRANSPORT-SESSION-TYPE { + description + "Feature to indicate O-RU supports to be configured with multiple transport-session-type + (Ethernet, ALIASMAC, UDP/IP)"; + } + + feature ENHANCED-T-COMBINE { + description + "Presence of feature indicates that FHM/Cascade O-RU can support t-combine-net and tx-duration"; + } + + feature SHARED-ORU-MULTI-OPERATOR { + description + "Feature to indicate the O-RU supports shared operation with one or more shared + resouce operators (i.e., multiple MNOs) and implements enhanced NACM privileges per shared + resource operator. + + Note, there is no linkage or dependency between the SHARED-CELL feature and the SHARED-ORU feature."; + } + + feature SHARED-ORU-MULTI-ODU { + description + "Feature to indicate the O-RU supports independent supervision qualified based on odu-id, where + loss of supervision triggers selective carrier deactivation of carriers associated with odu-id."; + } + + feature INTEGRITY-CHECK-AT-SW-DOWNLOAD { + description "Feature indicates that radio unit support performing integrity check at software download"; + } + + feature SUPERVISION-WITH-SESSION-ID { + description + "O-RUs supporting this feature reuse the session-id generated for each NETCONF + session in supervision-notification. The session-id is defined in RFC 6241. + For these O-RUs, the O-RU controller participating in the NETCONF supervision + procedure can subscribe to supervision-notification notification events, + filtering for the supervision-notification/session-id matching + session-id in the Hello Message received from NETCONF Server earlier."; + } + + feature UPLANE-ONLY-DL-MODE { + description + "Presence of feature indicates that O-RU supports U-Plane-only DL mode."; + } + + feature ST4-SLOT-CONFIG-MSG-SUPPORT { + description + "Feature to indicate O-RU support for Section Type 4 slot configuration message"; + } + +} -- 2.16.6