1 module o-ran-sc-du-hello-world {
3 namespace "urn:o-ran-sc:yang:o-ran-sc-du-hello-world";
11 "O-RAN Software Community";
15 "This module contains the O-RAN Software Community Distributed Unit
16 API description. This API data model describes ...
18 * Cell and Radio Resource Management (RRM) parameters defined by 3GPP in7
19 the context of the O-RAN Software Community E-Release and its
20 'Slice Resource Quota Provisioning and Assurance' use case.
22 * VES Subscription parameters according to OPNFV and ONAP.
24 The module is inspired by 3GPP TS 28.541 5G Network Resource Model (NRM).
25 The intent is to reduce the implementation efforts. It is not intended
26 to fragment the industry.
28 Due the reduction of the model in terms of scope and completeness this
29 module cannot and must not be used in production environments.
30 The main purpose is to show case the implemented functions by
31 O-RAN-SC O-DU project. The module name 'hello-world' highlights
34 Copyright 2021 the O-RAN Software Community.
36 Licensed under the Apache License, Version 2.0 (the 'License');
37 you may not use this file except in compliance with the License.
38 You may obtain a copy of the License at
40 http://www.apache.org/licenses/LICENSE-2.0
42 Unless required by applicable law or agreed to in writing, software
43 distributed under the License is distributed on an 'AS IS' BASIS,
44 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
45 See the License for the specific language governing permissions and
46 limitations under the License.";
48 "3GPP TS 28.541 5G Network Resource Model (NRM)
49 OPNFV VES - https://wiki.opnfv.org/display/ves";
53 "Subscription management added.";
55 "https://jira.o-ran-sc.org/browse/OAM-233";
59 "Updates based on the RSAC use case descriptions of O-RAN-SC E-Release.";
61 "https://jira.o-ran-sc.org/browse/OAM-230";
65 "Updates based on the RSAC use case descriptions of O-RAN-SC E-Release.";
67 "https://jira.o-ran-sc.org/browse/OAM-229
68 https://wiki.o-ran-sc.org/download/attachments/35881433/RSY-2021.08.04-OSC-Slice_Discovery%20and%20Registration_v01.pptx?api=v2";
72 "Updates based on the RSAC call 2021-04-08.";
74 "https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=20878423";
80 "https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=20878423";
85 feature distributed-unit {
87 "This feature indicates that the network-function implements
88 an O-RAN distributed function.";
90 "O-RAN.WG1.O-RAN-Architecture-Description-v04.00 - 4.3.5 O-DU";
93 feature subscription-management {
95 "This feature indicates that the network-function implements
96 a subscription-function for sending notifications to a consumer.";
101 typedef administrative-state {
106 "The resource is administratively prohibited from performing
107 services for its users.";
112 "The resource is administratively permitted to perform
113 services for its users. This is independent of its inherent
119 "Use of the resource is administratively permitted to
120 existing instances of use only. While the system remains in
121 the shutting down state the manager or the managed element
122 may at any time cause the resource to transition to the
127 "The administration of managed objects operates independently of the
128 operability and usage of managed objects and is described by the
129 administrative state attribute, which has three values. These are values
130 are called locked, unlocked and shutting down.";
132 "3GPP TS 28.625 and ITU-T X.731 / ISO/IEC 10164-2";
139 "The cell resources are not in use.";
143 "The cell resources shall not serve UEs.";
149 "The cell resources shall be able to serve UEs.";
155 "The cell state indicates the usage state of the cell instance.
156 It describes whether the cell is not currently in use (idle),
157 or currently in use but not configured to carry traffic (inactive)
158 or is currently in use and is configured to carry traffic (active).";
163 typedef connection-status {
168 "The connection to the remote network function is not established.";
173 "The system is about to connect to the remote network function.";
178 "The system is connected to the remote network function.";
183 "The system is about to disconnect from the remote network
186 enum unable-to-connect {
189 "This value is reported, when the system tried several times
190 to connect and finally gave up.";
194 "A non extensible enumeration representing a connection status.";
197 typedef distinguished-name {
199 pattern '([a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
200 + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,])*'
201 + '(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?'
202 + '[,\+])*[a-zA-Z][a-zA-Z0-9-]*=(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+,# ])'
203 + '((\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})'
204 + '|[^\\><;"+,])*(\\( |#|\\|>|<|;|"|\+|,|[a-fA-F0-9]{2})|[^\\><;"+, ]))?';
207 "The type definition for distinguished names according to RFC 4512.";
209 "RFC 4512 Lightweight Directory Access Protocol (LDAP):
210 Directory Information Models
211 https://datatracker.ietf.org/doc/html/rfc4512#section-2.3.2";
214 typedef mobile-country-code-type {
216 pattern '^[02-79][0-9][0-9]$';
219 "The mobile country code consists of three decimal digits,
220 The first digit of the mobile country code identifies the geographic
221 region (the digits 1 and 8 are not used):";
223 "3GPP TS 23.003 subclause 2.2 and 12.1";
226 typedef mobile-network-code-type {
228 pattern '^[0-9]{2,3}$';
231 "The mobile network code consists of two or three
232 decimal digits (for example: MNC of 001 is not the same as MNC of 01)";
234 "3GPP TS 23.003 subclause 2.2 and 12.1";
237 typedef o-ru-reference {
239 path "/network-function/du-to-ru-connection/name";
242 "A reference to a remote network function representing an O-RU.";
245 typedef operational-state {
250 "The resource is totally inoperable.";
252 "CCITT Rec. X.731 (1992 E) - ISO/IEC 10164-2 : 1993 (E)
253 Chapter 7.1.1.2 Disable";
258 "The resource is partially or fully operable.";
260 "CCITT Rec. X.731 (1992 E) - ISO/IEC 10164-2 : 1993 (E)
261 Chapter 7.1.1.1 Enable";
265 "The operability of a resource is described by the operational state
266 attribute, which has two possible values: disabled and enabled.";
268 "3GPP TS 28.625 and ITU-T X.731 / ISO/IEC 10164-2";
271 typedef resource-type {
275 "Physical Resource Block (PRB)
276 for a cell of a distributed unit.";
280 "Physical Resource Block (PRB) uplink
281 for a cell of a distributed unit.";
285 "Physical Resource Block (PRB) downlink
286 for a cell of a distributed unit.";
290 "Radio Resource Control (RRC)
291 for a cell of a centralized unit.";
295 "Data radio bearer (DRB)
296 for a user plane function of a centralized unit.";
300 "A type describing the resource for radio-resource-management.";
302 "3GPP TS 28.541 V17.34.0 (2021-0609)";
305 typedef tracking-area-code-type {
310 "The type definition for a Tracking Area Code.";
312 "3GPP TS 23.003 clause 19.4.2.3";
315 // Abstract object classes - groupings
319 "Represents the cell object class.";
322 https://forge.3gpp.org/rep/sa5/MnS/blob/Rel17-draft/yang-models/_3gpp-nr-nrm-cell.yang
330 "Identifies a cell within a o-ran-sc-du-function. Together with the
331 corresponding o-ran-sc-du-function identifier in forms the cell
334 "NCI in 3GPP TS 38.300";
340 "Indicates whether the corresponding entity
341 - is not currently in use (idle), or
342 - currently in use but not configured to carry traffic (inactive), or
343 - currently in use and is configured to carry traffic (active).";
345 list public-land-mobile-networks {
346 key "mobile-country-code mobile-network-code slice-differentiator slice-service-type";
350 "The public-land-mobile-networks is a list of
351 public-land-mobile-network data type.
352 It defines which public-land-mobile-networks that can be served by
353 the cell, and which S-NSSAIs that can be supported by the cell for
354 corresponding public-land-mobile-network in case of network slicing
355 feature is supported. The public-land-mobile-network-id of the
356 first entry of the list is the public-land-mobile-network-id used to
357 construct the cell-global-identity.
358 If the public-land-mobile-network is associated with
359 a radio-resource-management-policy-ratio, then the settings of the
360 radio-resource-management-policy-ratio MUST be considered by
361 the distributed function implementation for this cell. ";
362 uses public-land-mobile-network;
364 leaf physical-cell-id {
370 "The Physical Cell Identity (PCI) of the cell.";
374 leaf tracking-area-code {
375 type tracking-area-code-type;
377 "The common 5GS Tracking Area Code for the public-land-mobile-networks.";
379 "3GPP TS 23.003, 3GPP TS 38.473";
381 container absolute-radio-frequency-channel-number {
383 "This container groups parameters related to
384 absolute radio frequency channel number (ARFCN).";
389 "Absolute Radio Frequency Channel Number (ARFCN) for
397 "Absolute Radio Frequency Channel Number (ARFCN) for
402 leaf supplementary-uplink {
405 "Absolute Radio Frequency Channel Number (ARFCN) for
406 supplementary uplink.";
411 container base-station-channel-bandwidth {
413 "This container groups parameters related to
414 base station channel bandwidth.";
419 "Base station channel bandwidth for downlink.";
427 "Base station channel bandwidth for uplink.";
431 leaf supplementary-uplink {
435 "Base station channel bandwidth for supplementary uplink.";
440 container synchronization-signal-block {
442 "This container groups parameters related to Synchronization Signal
444 leaf frequency-channel-number {
450 "Indicates cell defining Synchronization Signal Block (SSB) frequency
452 Frequency (in terms of NR-ARFCN) of the cell defining SSB
454 The frequency identifies the position of resource element RE=#0
455 (subcarrier #0) of resource block RB#10 of the SSB. The frequency
456 must be positioned on the global frequency raster, as defined in
457 3GPP TS 38.101-1, and within base station channel bandwidth down
464 range "5 | 10 | 20 | 40 | 80 | 160";
469 "Indicates cell defined Synchronization Signal Block (SSB)
470 periodicity. The SSB periodicity is used for the rate matching
473 leaf subcarrier-spacing {
475 range "15 | 30 | 120 | 240";
480 "Subcarrier spacing of Synchronization Signal Block (SSB).
481 Only the values 15 kHz or 30 kHz
482 (< 6 GHz), 120 kHz or 240 kHz (> 6 GHz) are applicable.";
493 "Indicates cell defining Synchronization Signal Block (SSB) time
494 domain position. Defined as the offset of the measurement window,
495 in which to receive Synchronization Signal/Physical Broadcast Channel
496 (SS/PBCH) blocks, where allowed values depend on the
497 Synchronization Signal Block periodicity.
499 synchronization-signal-block-offset is lower than
500 synchronization-signal-block-periodicity).";
509 "Duration of the measurement window in which to receive
510 Synchronization Signal/Physical Broadcast Channel (SS/PBCH) blocks.";
517 grouping connection-grp {
520 "An abstract object class representing a connection or link to an
521 external component.";
525 "It is proposed to use the network unique identifier of the remote
527 Note: After discussion the string was not restricted by a 'length'
528 statement of a 'pattern' statement. Please avoid leading and ending
529 spaces and consecutive spaces and any character outside of UTF-8-";
531 leaf operational-state {
535 "The resource is not functional.";
539 "The resource is functional.";
544 "Operational state of a connection. Indicates
545 whether the resource is functional (ENABLED) or not (DISABLED).";
547 "3GPP TS 28.625 and ITU-T X.731";
549 leaf administrative-state {
553 "LOCKED refers to a situation which is NOT considered as
554 ‘normal operation'. Therefore, the O-DU will shut down the
555 connection to the related O-RU, when the value is set to LOCKED.";
559 "UNLOCKED refers to a situation which is considered as
560 'normal operation'. Therefore, the O-DU will establish the
561 connection to the related O-RU, when the value is set to UNLOCKED.";
565 "This value should not be used. At least the system
566 behavior is not defined.";
571 "Administrative state of a connection.";
573 "3GPP TS 28.625 and ITU-T X.731";
579 "Indicates whether the O-RU is not in use.";
583 "Indicates whether the O-RU is in use but not
584 configured to carry traffic.";
588 "Indicates whether the O-RU is in use and
589 configured to carry traffic.";
594 "Cell state of the O-RU instance.";
599 type connection-status;
600 default "disconnected";
603 "The value represents the connection status. ";
607 grouping distributed-unit-function {
609 "A simplified and reduced object class for a DU function.";
611 // uses mf3gpp:ManagedFunctionContainedClasses;
615 "Represents the cell and its configuration management.";
618 https://forge.3gpp.org/rep/sa5/MnS/blob/Rel17-draft/yang-models/_3gpp-nr-nrm-cell.yang
623 list radio-resource-management-policy-ratio {
626 "The radio-resource-management-policy-ratio object class is one
627 realization of a radio-resource-management-policy object class.
628 This Radio Resource Management framework allows
629 adding new policies by inheriting from the
630 abstract radio-resource-management-policy object class.";
632 uses radio-resource-management-policy-ratio-grp;
636 grouping network-function {
638 "Represents telecommunications equipment or
639 TMN entities within the telecommunications network providing support
640 and/or service to the subscriber.";
641 leaf distinguished-name-prefix {
642 type distinguished-name;
644 "Provides naming context that allows the Managed
645 Elements to be partitioned into logical domains.
646 A Distinguished Name(DN) is defined by 3GPP TS 32.300,
647 which splits the DN into a DN Prefix and Local DN";
655 "The physical location (e.g. an address) of an entity
656 represented by a (derivative of) ManagedElement_. It may contain no
657 information to support the case where the derivative of
658 ManagedElement needs to represent a distributed multi-location NE.";
662 grouping network-function-grp {
665 "An abstract object class grouping the O-RAN-SC-DU parameters with
666 focus on RSAC D-release Closed-Loop use case.";
667 list du-to-ru-connection {
670 "A list of connection objects to O-RAN-SC radio units.";
671 uses connection-grp {
677 grouping public-land-mobile-network-id {
679 "The identity of a public land mobile network as complex type
680 constructed of two codes:
681 - mobile country code (MCC) and
682 - the mobile network code (MNC).";
687 leaf mobile-country-code {
688 type mobile-country-code-type;
691 "The fist part of the public-land-mobile-network-id";
693 leaf mobile-network-code {
694 type mobile-network-code-type;
697 "The second part of the public-land-mobile-network-id";
701 grouping public-land-mobile-network {
703 "The public-land-mobile-network data type define a S-NSSAI member
704 in a specific public-land-mobile-network-id, and it have two attributes
705 public-land-mobile-network-id and S-NSSAI (public-land-mobile-network-id,
707 The public-land-mobile-network-id represents a data type that is
708 comprised of mcc mobile country code) and mnc (mobile network code),
709 (See TS 23.003 subclause 2.2 and 12.1) and S-NSSAI represents an
710 data type, that is comprised of an slice-service-type
711 (Slice/Service type) and an optional slice-differentiator field.";
712 uses public-land-mobile-network-id;
713 uses single-network-slice-selection-assistance-info;
716 grouping radio-resource-management-policy-grp {
718 "This object class represents the properties of an abstract
719 radio-resource-management-policy. The radio-resource-management-policy
720 object class needs to be subclassed to be instantiated.
721 It defines two attributes apart from those inherited from
723 - the resource-type attribute defines type of resource (PRB, RRC
724 connected users, DRB usage etc.) and
725 - the radio-resource-management-policy-members attribute
726 defines the radio-resource-management-policy-members that are subject
728 An Radio Resource Management resource (defined in resource-type
729 attribute) is located in cell or distributed-unit-function.
730 The radio-resource-management-policy-ratio object class is one
731 realization of a radio-resource-management-policy object class.
732 This Radio Resource Management framework allows adding new
733 policies by inheriting from the abstract radio-resource-management-policy
739 "The resource-type attribute defines type of resource that is
742 list radio-resource-management-policy-members {
743 key "mobile-country-code mobile-network-code slice-differentiator slice-service-type";
746 "It represents the list of radio-resource-management-policy-members
747 that the managed object is supporting.
748 A radio-resource-management-policy-member <<dataType>> include
749 the public-land-mobile-network-identifier <<dataType>> and
750 S-NSSAI <<dataType>>.";
751 uses public-land-mobile-network;
755 grouping radio-resource-management-policy-ratio-grp {
757 "Represents the radio-resource-management-policy-ratio concrete
759 uses radio-resource-management-policy-grp;
760 leaf radio-resource-management-policy-max-ratio {
767 "This attribute specifies the maximum percentage of radio resources that
768 can be used by the associated
769 radio-resource-management-policy-members.
770 The maximum percentage of radio resource include at least one of
771 the shared resources, prioritized resources and dedicated resources.
772 The sum of the radio-resource-management-policy-max-ratio values
773 assigned to all radio-resource-management-policy-ratio(s)
774 name-contained by same ManagedEntity can be greater that 100.";
776 leaf radio-resource-management-policy-min-ratio {
783 "This attribute specifies the minimum percentage of radio resources that
784 can be used by the associated
785 radio-resource-management-policy-members.
786 The minimum percentage of radio resources including at least one of
787 prioritized resources and dedicated resources. The sum of the
788 radio-resource-management-policy-min-ratio values assigned to all
789 radio-resource-management-policy-ratios
790 name-contained by same ManagedEntity shall be less or equal 100.";
792 leaf radio-resource-management-policy-dedicated-ratio {
799 "This attribute specifies the percentage of radio resources that
800 dedicated used by the associated
801 radio-resource-management-policy-members.
802 The sum of the radio-resource-management-policy-dedicated-ratio values
803 assigned to all radio-resource-management-policy-ratios
804 name-contained by same ManagedEntity shall be less or equal 100.";
808 grouping rpc-output {
810 "A generic RPC output syntax.";
811 leaf response-status {
816 "The system has successfully performed that request.";
821 "The system has received and accepted the request. It continues
822 processing the request. The final status of the processing
823 procedures are reported by a notification service. This response
824 status is typically for long running transactions.";
826 enum internal-server-error {
829 "The request cannot be performed.";
834 "The response status related to the corresponding request.
835 Its values are inspired by HTTP response status codes.";
837 "RFC 7231 – Response Status Codes - Section 6.3.4";
842 "A human readable text complementary to the response status. ";
846 grouping single-network-slice-selection-assistance-info {
848 "Single Network Slice Selection Assistance Information (S-NSSAI)";
851 leaf slice-differentiator {
856 "Slice Differentiator can be used to identify and tag a slice.
857 If not needed, the value can be set to the value 16777215.";
861 leaf slice-service-type {
864 "Slice/Service Type as defined in 3GPP TS 23.501.";
872 "Ane abstract class supplying a naming attribute.";
879 "Key leaf (namingAttribute) for a class/list.
880 Should be used as a key leaf for lists representing
883 "3GPP TS 32.300 Name convention for managed objects";
885 leaf administrative-state {
886 type administrative-state;
889 "Administrative state of an object. Indicates the
890 permission to use or prohibition against the object, imposed
891 through the OAM services.";
893 leaf operational-state {
894 type operational-state;
898 "Operational state of the object. Indicates
899 whether the associated resource is installed and partially or fully
900 operable (enabled) or the associated resource is not installed or
901 not operable (disabled).";
908 "A user defined label of the object. There is no function associated to
910 However, the network function stores the value persistently.";
915 container network-function {
916 presence "network-function";
918 "The root container for the configuration and operational data.
919 The object class would be called by 3GPP 'ManagedElement' and by
920 ONF 'ControlConstruct'.";
922 uses network-function;
923 list distributed-unit-functions {
924 if-feature "distributed-unit";
927 "Represents the logical function distributed unit.";
930 uses distributed-unit-function;
932 list subscription-streams {
933 if-feature "subscription-management";
936 "The list represents all streams to a consumer. To subscribe for
937 events an entry in this list should be created. To unsubscribe the
938 corresponding entry must be deleted.";
940 uses ntsc:ves-endpoint-g;
942 uses network-function-grp {
947 // Remote procedure calls - actions on root level
952 "An action to establish the connection to a remote network function.";
954 leaf remote-network-function {
958 "An reference to a remote network function - an O-RU - to which
959 a connection should be established.";
970 "An action to destroy the connection to a remote network function.";
972 leaf remote-network-function {
976 "An reference to a remote network function - an O-RU - to which
977 the connection should be destroyed.";