From: demx8as6 Date: Sun, 28 Feb 2021 13:42:07 +0000 (+0100) Subject: Add WG4 november train yangs modules X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=scp%2Foam%2Fmodeling.git;a=commitdiff_plain;h=44672234a0d9ed7dc29c10dca36c7829997c689d Add WG4 november train yangs modules O-RAN WorkingGroup4 November Train 2020 yang modules are published on O-RAN Specifications web page. A copy of such yang model in SCP/modeling ensures proper integrations into O-RAN-SC development activities. Rebased on 5705 IssueID: OAM-164 Change-Id: I5abdcca947fd327f226d966f4ba76bd3b4b3ef68 Signed-off-by: demx8as6 --- diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2020-12-10.yang new file mode 100644 index 0000000..bb99b77 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-antenna-calibration@2020-12-10.yang @@ -0,0 +1,466 @@ +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 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 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 coordinated from O-DU for antenna calibration."; + } + + 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-coordination 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 "peiodical 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-alllowed 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-alllowed and coordinated-calibration-support) disallowed + or one of them allowed only"; + } + description + "Describes the self calibration policy of the operator"; + } + description + "Describe the grouping set of antenna calibration"; + } + + 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"; + } + } + } + + 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 + "Bitmask 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 + "Bitmask 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 + "Bitmask 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 + "Bitmask 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 + "Bitmask 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 + "Bitmask 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"; + } + } + + 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 coordinated antenna calibration is provided in O-RU. + It indicate the time-frequency resources will be sent to a subscribed O-DU at least 60 seconds + before the operation of the coordinated 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"; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2020-12-10.yang new file mode 100644 index 0000000..a786ac2 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-dhcp@2020-12-10.yang @@ -0,0 +1,330 @@ +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 o-ran-wg4-features { + prefix or-feat; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines the YANG definitions for managng the DHCP client. + + 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 "2020-12-10" { + description + "version 5.0.0 + + 1) added new leafs for reporting discovered event-collectors + used"; + + reference "ORAN-WG4.O1.0-v05.00"; +//update reference + } + + 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; + enum HTTPS; + } + } + } + } + + 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 adresses 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 adresses or FQDNs in vendor specific + option 43/17"; + leaf-list event-collectors{ + if-feature "or-feat:NON-PERSISTENT-MPLANE"; + max-elements 1; + type event-collector-id; + 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 "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{ + description "dhcpv6 server identifief"; + uses dhcpv6-type: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 { + 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"; + } + uses dhcpv4-option; + } + container dhcpv6 { + description "DHCPv6 information"; + container dhcp-client-identifier{ + description "dhcpv6 client identifief"; + uses dhcpv6-type:duid; + } + uses dhcpv6-option; + } + } + + container m-plane-dhcp { + description "leafs covering off DHCP aspects of m-plane operations"; + leaf private-enterprise-number { + status deprecated; + type uint16; + default 53148; + description "the private enteprise 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-hardware@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2020-12-10.yang new file mode 100644 index 0000000..f62a405 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-hardware@2020-12-10.yang @@ -0,0 +1,330 @@ +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 managng the O-RAN hardware. + + 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 "2020-12-10" { + description + "version 5.0.0 + + 1) added date-last-service leaf used in pnfRegistration"; + + reference "ORAN-WG4.O1.0-v05.00"; +//update reference + } + + 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"; + } + + // typedef statements + typedef energysaving-state { + type enumeration { + enum UNKNOWN { + description "The Radio Unit is unable to report energy saving state."; + } + enum SLEEPING { + description + "The Radio Unit is in a sleep state. The NETCONF management plane + connection is functioning. Other functions and hardware which are + not needed for management plane may be in energy saving mode."; + } + enum AWAKE { + description + "The Radio Unit is not in an energy saving state."; + } + } + description + "new typedef since ietf-hardware only covers pwer-state + for redundancy purposes and not power saving operations."; + } + + 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 imapcting only N subcomponents, where N@[:]/path"; + } + + uses o-ran-fm: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 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 receivd 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 receivd 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 celcius"; + } + enum POWER { + description + "Measured power consumed, in watts (W)"; + } + } + 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 + + } + + + } + + grouping measurement-capabilities { + container measurement-capabilitites { + config false; + description "the type of measurement objects supported by the O-RU"; + + list transceiver-objects { + key measurement-object; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object"; + } + } + } + list rx-window-objects { + key measurement-object; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object"; + } + } + } + list tx-stats-objects { + key measurement-object; + leaf measurement-object { + type leafref { + path "/performance-measurement-objects/tx-measurement-objects/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"; + } + } + 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."; + + } + } + } + } + + 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 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 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; + + } + + container epe-stats { + description + "container for the epe stats measurement - deprecated because measurement object + isn't included"; + status deprecated; + + 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; + + } + } + + // 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-shared-cell@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2020-12-10.yang new file mode 100644 index 0000000..3c4d2a4 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-shared-cell@2020-12-10.yang @@ -0,0 +1,564 @@ +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"; + revision-date 2020-04-17; + } + + 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 "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."; + } + + 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, 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, 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."; + } + + list compression-method-supported { + if-feature FHM; + description + "List of supported compression methods for FHM"; + uses cf:compression-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 fucntion + 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."; + } + + 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."; + } + + 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"; + } + + uses processing-element-set; + + 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."; + } + + 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"; + } + + uses processing-element-set; + + 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."; + } + + 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 transmisison capability"; + container shared-cell-combine-uplane-config { + if-feature FHM; + description + "when O-RU doesn't have radio transmisison 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"; + } + 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; + 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"; + } + } + } + +// 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; + } + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2020-12-10.yang new file mode 100644 index 0000000..4956f9b --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-supervision@2020-12-10.yang @@ -0,0 +1,228 @@ +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"; + } + + 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 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 "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 { + 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 wathcdog 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 confimed + timeout timer (when the feature is supported). + + This type of constraint (using an RPCs input) cannot be formally + expressed in YANG."; + } + } + + grouping watchdog-output { + 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-group { + container cu-plane-monitoring { + description "container describing operation of CU plane monitoring"; + presence + "Indicates O-RU supports timer based cu-plane monitoring interval. If + this container is NOT present, the opertaion of the O-RU is undefined."; + + leaf configured-cu-monitoring-interval { + type uint8 { + range "0..160"; + } + default 160; + units milliseconds; + 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 opertaing 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 opertaing 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; + default 60; + units seconds; + 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 supervision { + 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; + } + + output { + uses watchdog-output; + } + } + + notification supervision-notification { + description + "Notification to indicate that NETCONF management interface is up."; + + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2020-12-10.yang new file mode 100644 index 0000000..1999761 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-uplane-conf@2020-12-10.yang @@ -0,0 +1,2736 @@ +module o-ran-uplane-conf { + yang-version 1.1; + namespace "urn:o-ran:uplane-conf:1.0"; + prefix "o-ran-uplane-conf"; + + import o-ran-processing-element { + prefix "o-ran-pe"; + } + + import ietf-interfaces { + prefix "if"; + } + + import o-ran-module-cap { + prefix "mcap"; + revision-date 2020-12-10; + } + + import o-ran-compression-factors { + prefix "cf"; + revision-date 2020-08-10; + } + + 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 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 "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"; + } + } + + 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 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 regularizationfactor in section extension is configured(true) or not(false), this + leaf indicates whether the O-DU will send the regularizationfactor 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)"; + } + } + } + + 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 Carrier Components + * RU_Port_ID: Used to differentiate spatial streams or beams on the O-RU + + The bitwidth of each of the above fields is variable this model is supposed to check + if we are occpying bits continuously but we do not have to occupy all 16 bits"; + + + leaf o-du-port-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode O-DU Port ID"; + } + + leaf band-sector-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the band sector ID"; + } + + leaf ccid-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the component carrier id"; + } + + leaf ru-port-bitmask { + type uint16; + mandatory true; + description + "mask for eaxc-id bits used to encode the O-RU Port ID"; + } + + leaf eaxc-id { + type uint16; + mandatory true; + description + "encoded value of eaxcid to be read by CU-Plane"; + } + } + + grouping parameters { + description + "Grouping of all parameters common between UL and DL"; + + leaf name { + type string; + mandatory true; + description "Unique name of array antenna"; + } + + leaf number-of-rows { + type uint16; + mandatory true; + description "Number of rows array elements are shaped into - M"; + } + + leaf number-of-columns { + type uint16; + mandatory true; + description "Number of columns array elements are shaped into - N"; + } + + leaf number-of-array-layers { + type uint8; + mandatory true; + description "Number of array layers array elements are shaped into - Q"; + } + + leaf horizontal-spacing { + type decimal64 { + fraction-digits 5; + } + units Meter; + + description "Average distance between centers of nearby AE in horizontal direction (in array coordinates system)"; + } + + leaf vertical-spacing{ + type decimal64 { + fraction-digits 5; + } + units Meter; + + description "Average distance between centers of nearby AE in vertical direction (in array coordinates system)"; + } + + container normal-vector-direction { + description + "Counter-clockwise rotation around z and y axis."; + + leaf azimuth-angle{ + type decimal64 { + fraction-digits 4; + } + units Degrees; + + description "Azimuth angle, counter-clockwise rotation around z-axis. Value 'zero' points to broad-side, value '90' points to y-axis"; + } + leaf zenith-angle{ + type decimal64 { + fraction-digits 4; + } + units Degrees; + + description "Zenith angle, counter-clockwise rotation around y-axis. Value 'zero' points to zenith, value '90' points to horizon"; + } + } + + container leftmost-bottom-array-element-position { + description "Structure describing position of leftmost, bottom array element."; + leaf x { + type decimal64 { + fraction-digits 4; + } + units Meter; + + description "X dimension of position of leftmost, bottom array element"; + } + + leaf y { + type decimal64 { + fraction-digits 4; + } + units Meter; + + description "Y dimension of position of leftmost, bottom array element"; + } + + leaf z { + type decimal64 { + fraction-digits 4; + } + units Meter; + + description "Z dimension of position of leftmost, bottom array element"; + } + } + list polarisations { + key "p"; + min-elements 1; + max-elements 2; + + description + "List of supported polarisations."; + + leaf p { + type uint8; + mandatory true; + description + "Polarisation index. See CUS-plane"; + } + + leaf polarisation { + type polarisation_type; + mandatory true; + description "Type of polarisation supported by array."; + } + } + leaf band-number { + type leafref { + path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number"; + } + mandatory true; + description + "This parameter informing which frequency band particular antenna + array is serving for. + Intended use is to deal with multiband solutions."; + } + } + + grouping array-choice { + choice antenna-type { + case tx { + leaf tx-array-name { + type leafref { + path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:tx-arrays/o-ran-uplane-conf:name"; + } + + description + "Leafref to tx array if such is choosen"; + } + } + case rx { + leaf rx-array-name { + type leafref { + path "/o-ran-uplane-conf:user-plane-configuration/o-ran-uplane-conf:rx-arrays/o-ran-uplane-conf:name"; + } + + description + "Leafref to rx array if such is choosen"; + } + } + description + "Choice for antenna type"; + } + description + "Elements which groups choice for antenna type"; + } + + grouping scs-config { + description + "It groups all parameters related to SCS configuration"; + + leaf frame-structure { + type uint8; + + description + "This parameter defines the frame structure. The first 4 bits define the FFT/iFFT size + being used for all IQ data processing related to this message. + The second 4 bits define the sub carrier spacing as well as the number of slots per 1ms sub-frame + according to 3GPP TS 38.211, taking for completeness also 3GPP TS 36.211 into account"; + } + + leaf cp-type { + type enumeration { + enum NORMAL { + description + "Normal cyclic prefix"; + } + + enum EXTENDED { + description + "Extended cyclic prefix"; + } + } + + description + "Provides type of CP (cyclic prefix) if section type 3 is not used or type of CP cannot be determined from cpLength."; + } + + leaf cp-length { + type uint16; + units Ts; + mandatory true; + description + "Used for symbol 0 for NR & LTE, and symbol 7*2u for NR. + See CUS-plane"; + } + + leaf cp-length-other { + type uint16; + units Ts; + mandatory true; + description + "Used for other symbols than by cp-length above"; + } + + leaf offset-to-absolute-frequency-center { + type int32; + mandatory true; + description + "This provides value of freqOffset to be used if section type 3 is not used. See freqOffset in CUS-plane. + offset-to-absolute-frequency-center defines the relative spacing between the center 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 parameter frequencyShift7p5khz for UL is applied. + 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 epoints + within a group of endpoints sharing resources) of number-of-prb rounded up to + nearest value from prb-capacity-allocation-granularity shall not exceed max-prb-per-symbol of the group."; + } + } + } + + grouping tx-common-array-carrier-elements { + description + "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers"; + + leaf absolute-frequency-center { + type uint32; + 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 + "Center 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"; + } + + 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; + } + description + "Config true type of duplex scheme."; + } + leaf rw-type { + type leafref { + path "/user-plane-configuration/tx-array-carriers[name=current()/../name]" + "/type"; + require-instance false; + } + description + "Config true type of carrier."; + } + } + + grouping rx-common-array-carrier-elements { + description + "This grouping containes all common parameters for tx-array-carriers and rx-array-carriers"; + + leaf absolute-frequency-center { + type uint32; + 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 + "Center 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"; + } + + 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 { + must "current()<../max-sections-per-slot" { + error-message "the sectionID for the highest priority needs to be less than the max sectionIds per slot"; + } + type uint16; + 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; + 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"; + } + + description + "Parameters describing section capacity where section is undestood as number of different sectionId values"; + } + + grouping endpoint-beam-capacity { + leaf max-beams-per-symbol { + type uint16; + description + "Max number of beams within one symbol that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity"; + } + leaf max-beams-per-slot { + type uint16; + description + "Max number of beams within one slot that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity"; + } + + description + "Parameters describing beam capacity where number of beams is understood as number of different beamId values"; + } + + grouping endpoint-prb-capacity { + leaf max-prb-per-symbol { + type uint16; + description + "Max number of prbs within one symbol that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity"; + } + + description + "Attributes presenting processing capacity related to PRB."; + } + + grouping endpoint-numerology-capacity { + leaf max-numerologies-per-symbol { + type uint16; + description + "Max number of numerologies within one symbol that can be processed by endpoint + or processed collectively by group of endpoints sharing capacity"; + } + + description + "Attributes presenting processing capacity related to numerology. + + This leaf contains valid data only when multiple-numerology-supported + is set to true."; + } + + grouping 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 uplane-conf-group { + description + "Grouping for uplane configuration related parameters"; + + list low-level-tx-links { + key name; + description + "Object model for low-level-tx-link configuration"; + + leaf name { + type string; + description + "Unique name of low-level-tx-link object."; + } + + leaf processing-element { + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + mandatory true; + description + "Contains name of processing-element to be used as transport by low-level-tx-link"; + } + + leaf tx-array-carrier { + type leafref { + path "/user-plane-configuration/tx-array-carriers/name"; + } + mandatory true; + description + "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link"; + } + + leaf low-level-tx-endpoint { + type leafref { + path "/user-plane-configuration/low-level-tx-endpoints/name"; + } + mandatory true; + description + "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link"; + } + } + + list low-level-rx-links { + key name; + description + "Object model for low-level-rx-links configuration"; + + leaf name { + type string; + + description + "Unique name of low-level-rx-links object."; + } + + leaf processing-element { + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:ru-elements/o-ran-pe:name"; + } + mandatory true; + description + "Contains name of processing-element to be used as transport by LowLevelTxLink"; + } + + leaf rx-array-carrier { + type leafref { + path "/user-plane-configuration/rx-array-carriers/name"; + } + mandatory true; + + description + "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links"; + } + + leaf low-level-rx-endpoint { + type leafref { + path "/user-plane-configuration/low-level-rx-endpoints/name"; + } + mandatory true; + + description + "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links"; + } + + leaf user-plane-uplink-marking { + type leafref { + path "/o-ran-pe:processing-elements/o-ran-pe:enhanced-uplane-mapping/o-ran-pe:uplane-mapping/o-ran-pe:up-marking-name"; + } + description + "Parameter to set the non-default marking for user-plane"; + } + } + + list endpoint-types { + key "id"; + config false; + description + "Properties of endpoint that are common to multiple endpoints if such are identified"; + + leaf id { + type uint16; + description + "Identifies type of endpoints sharing same properties. Values shall start with 0 and shall be allocated without gaps."; + } + + list supported-section-types { + key "section-type"; + description + "Indicates section types and extensions endpoints of this type support"; + + leaf section-type { + type uint8; + + description + "This parameter determines the characteristics of U-plane data to be transferred or received from a beam with one pattern id."; + } + + leaf-list supported-section-extensions { + type uint8; + + description + "This parameter provides the extension types supported by the O-RU + which provides additional parameters specific to the subject data extension"; + } + } + + leaf-list supported-frame-structures { + type uint8; + + description + "List of supported values of 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; + + 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; + } + + 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 reports 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."; + + 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; + + 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"; + } + } + + 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-parameters; + + 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 paticular 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 realtime 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 realtime 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; + + } + + list low-level-tx-endpoints { + key "name"; + + description + "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address + which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type 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"; + } + + container compression { + presence + "This container shall exists to avoid missaligned 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 choosen dynamically + and default fs-offset is taken (0)."; + + 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"; + } + } + } + + 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 { + 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"; + } + } + + list low-level-rx-endpoints { + key name; + + description + "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address + which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object"; + + leaf name { + type 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"; + } + + container compression { + 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 choosen dynamically + and default fs-offset is taken (0)."; + + 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"; + } + } + } + + 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 specifc 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')"; + 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')"; + 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 { + 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"; + } + } + + 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."; + } + + 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 multiband 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."; + } + + leaf downlink-radio-frame-offset { + type uint32 { + range 0..12288000; + } + mandatory true; + + description + "This parameter is used for offsetting the starting position of 10ms radio frame. + Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth. + Note2: Unit is 1/1.2288e9 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-carrierss that have same frequency and bandwidth."; + } + + 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."; + } + + 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-carrierss 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-carrierss 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 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 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 polarization 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 + "Defnes name for first array"; + } + container array2 { + uses array-choice; + + description + "Defnes 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 11 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"; + } + 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."; + } + } + + 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 11 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 assigned to low-level-rx-endpoints in the group."; + } + } + } + + 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; + 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; + 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 optimizations + 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@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2020-12-10.yang new file mode 100644 index 0000000..8840158 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-usermgmt@2020-12-10.yang @@ -0,0 +1,204 @@ +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"; + } + + 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 "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 { + 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 authentciation"; + } + } + default "PASSWORD"; + } + + 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."; + } + } + } + + 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 { + 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; + } + enum "Failed" { + value 2; + } + } + 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-ves-subscribed-notifications@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-ves-subscribed-notifications@2020-12-10.yang new file mode 100644 index 0000000..3a08e15 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-ves-subscribed-notifications@2020-12-10.yang @@ -0,0 +1,87 @@ +module o-ran-ves-subscribed-notifications { + yang-version 1.1; + namespace "urn:o-ran:ves-sn:1.0"; + prefix o-ran-vsn; + + import ietf-subscribed-notifications { + prefix sn; + } + import ietf-inet-types { + prefix inet; + } + + organization "O-RAN Alliance"; + + contact + "www.o-ran.org"; + + description + "This module defines augmentations to ietf-subscribed-notifications to + enable support of configured notifications sent using VNF Event Stream + notifications. + + 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 "2020-12-10" { + description + "version 5.0.0 + + 1) initial version"; + + reference "ORAN-WG4.M.0-v05.00"; + } + + // identity statements + identity o-ran-ves-connectionless { + base sn:transport; + description + "A transport type used to indicate that notifications should be sent using an + ONAP VES Notification using RESTful connectionless transport"; + } + + grouping event-collector { + description + "Provides a reusable description of an event-collector."; + leaf notification-recipient { + type inet:uri; + mandatory true; + description + "This URI specifies the address of the notification receiver + HTTPS endpoint. Additional path elements may be added as required by the + protocol, i. e. it configures the server root. + E.g. https://myserver.mydomain.com:8443/notifications."; + } + } + + augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" { + when "(derived-from-or-self(../../sn:transport, 'o-ran-vsn:o-ran-ves-connectionless'))"; + description + "This augmentation allows VES-specific receiver parameters to be + configured."; + uses event-collector; + } +} diff --git a/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2020-12-10.yang b/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2020-12-10.yang new file mode 100644 index 0000000..5b183a3 --- /dev/null +++ b/data-model/yang/published/o-ran/ru-fh/o-ran-wg4-features@2020-12-10.yang @@ -0,0 +1,57 @@ +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 a set of re-usable type definitions for WG4 specific + features. + + 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 "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."; + } +}