Updating RAN Inventory tests to use the latest model and data
[cps.git] / cps-service / src / test / resources / e2e / basic / ran-network2020-08-06.yang
1 module ran-network {
2   yang-version 1.1;
3   namespace "org:onap:ccsdk:features:sdnr:northbound:ran-network";
4   prefix rn;
5
6   import ietf-inet-types {
7     prefix inet;
8   }
9   import ietf-yang-types {
10     prefix yang;
11   }
12
13   organization
14     "Open Network Automation Platform - ONAP
15      <https://www.onap.org>";
16   contact
17     "Editors:
18        Sandeep Shah
19        <mailto:sandeep.shah@ibm.com>
20
21        Swaminathan Seetharaman
22        <mailto:swaminathan.seetharaman@wipro.com>";
23   description
24     "This module contains a collection of YANG definitions for managing
25      radio access network (RAN) managed network functions.
26      This YANG model is used solely for POC's in the ONAP and O-RAN communities
27
28      Copyright 2020 the O-RAN Alliance.
29
30      Licensed under the Apache License, Version 2.0 (the 'License');
31      you may not use this file except in compliance with the License.
32      You may obtain a copy of the License at
33
34      http://www.apache.org/licenses/LICENSE-2.0
35
36      Unless required by applicable law or agreed to in writing, software
37      distributed under the License is distributed on an 'AS IS' BASIS,
38      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
39      See the License for the specific language governing permissions and
40      limitations under the License.";
41
42   revision 2020-08-06 {
43     description
44       "RAN Network YANG Model for ONAP/O-RAN POC";
45     reference
46       "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin";
47   }
48
49   typedef usageState {
50     type enumeration {
51       enum IDLE {
52         description
53           "TODO";
54       }
55       enum ACTIVE {
56         description
57           "TODO";
58       }
59       enum BUSY {
60         description
61           "TODO";
62       }
63     }
64     description
65       "It describes whether or not the resource is actively in
66        use at a specific instant, and if so, whether or not it has spare
67        capacity for additional users at that instant. The value is READ-ONLY.";
68     reference
69       "ITU T Recommendation X.731";
70   }
71
72   typedef Mcc {
73     type string;
74     description
75       "The mobile country code consists of three decimal digits,
76        The first digit of the mobile country code identifies the geographic
77        region (the digits 1 and 8 are not used):";
78     reference
79       "3GPP TS 23.003 subclause 2.2 and 12.1";
80   }
81
82   typedef Mnc {
83     type string;
84     description
85       "The mobile network code consists of two or three
86        decimal digits (for example: MNC of 001 is not the same as MNC of 01)";
87     reference
88       "3GPP TS 23.003 subclause 2.2 and 12.1";
89   }
90
91   typedef Nci {
92     type string;
93     description
94       "NR Cell Identity. The NCI shall be of fixed length of 36 bits
95        and shall be coded using full hexadecimal representation.
96        The exact coding of the NCI is the responsibility of each PLMN operator";
97     reference
98       "TS 23.003";
99   }
100
101   typedef OperationalState {
102     type enumeration {
103       enum DISABLED {
104         value 0;
105         description
106           "The resource is totally inoperable.";
107       }
108       enum ENABLED {
109         value 1;
110         description
111           "The resource is partially or fully operable.";
112       }
113     }
114     description
115       "TODO";
116     reference
117       "3GPP TS 28.625 and ITU-T X.731";
118   }
119
120   typedef AdministrativeState {
121     type enumeration {
122       enum LOCKED {
123         value 0;
124         description
125           "The resource is administratively prohibited from performing
126            services for its users.";
127       }
128       enum UNLOCKED {
129         value 1;
130         description
131           "The resource is administratively permitted to perform
132            services for its users. This is independent of its inherent
133            operability.";
134       }
135       enum SHUTTINGDOWN {
136         value 2;
137         description
138           "Use of the resource is administratively permitted to
139            existing instances of use only. While the system remains in
140            the shutting down state the manager or the managed element
141            may at any time cause the resource to transition to the
142            locked state.";
143       }
144     }
145     description
146       "TODO";
147     reference
148       "3GPP TS 28.625 and ITU-T X.731";
149   }
150
151   typedef AvailabilityStatus {
152     type enumeration {
153       enum IN_TEST {
154         description
155           "TODO";
156       }
157       enum FAILED {
158         description
159           "TODO";
160       }
161       enum POWER_OFF {
162         description
163           "TODO";
164       }
165       enum OFF_LINE {
166         description
167           "TODO";
168       }
169       enum OFF_DUTY {
170         description
171           "TODO";
172       }
173       enum DEPENDENCY {
174         description
175           "TODO";
176       }
177       enum DEGRADED {
178         description
179           "TODO";
180       }
181       enum NOT_INSTALLED {
182         description
183           "TODO";
184       }
185       enum LOG_FULL {
186         description
187           "TODO";
188       }
189     }
190     description
191       "TODO";
192     reference
193       "TODO";
194   }
195
196   typedef CellState {
197     type enumeration {
198       enum IDLE {
199         description
200           "TODO";
201       }
202       enum INACTIVE {
203         description
204           "TODO";
205       }
206       enum ACTIVE {
207         description
208           "TODO";
209       }
210     }
211     description
212       "TODO";
213     reference
214       "TODO";
215   }
216
217   typedef SNssai {
218     type string;
219     description
220       "Single Network Slice Selection Assistance Information.";
221     reference
222       "TS 23.501 clause 5.15.2";
223   }
224
225   typedef Sst {
226     type uint8;
227     description
228       "TODO";
229     reference
230       "TODO";
231   }
232
233   typedef Nrpci {
234     type uint32;
235     description
236       "Physical Cell Identity (PCI) of the NR cell.";
237     reference
238       "TS 36.211 subclause 6.11";
239   }
240
241   typedef Tac {
242     type int32 {
243       range "0..16777215";
244     }
245     description
246       "Tracking Area Code";
247     reference
248       "TS 23.003 clause 19.4.2.3";
249   }
250
251   typedef AmfRegionId {
252     type string;
253     description
254       "";
255     reference
256       "clause 2.10.1 of 3GPP TS 23.003";
257   }
258
259   typedef AmfSetId {
260     type string;
261     description
262       "";
263     reference
264       "clause 2.10.1 of 3GPP TS 23.003";
265   }
266
267   typedef AmfPointer {
268     type string;
269     description
270       "";
271     reference
272       "clause 2.10.1 of 3GPP TS 23.003";
273   }
274
275   // type definitions especially for core NFs
276
277   typedef NfType {
278     type enumeration {
279       enum NRF {
280         description
281           "TODO";
282       }
283       enum UDM {
284         description
285           "TODO";
286       }
287       enum AMF {
288         description
289           "TODO";
290       }
291       enum SMF {
292         description
293           "TODO";
294       }
295       enum AUSF {
296         description
297           "TODO";
298       }
299       enum NEF {
300         description
301           "TODO";
302       }
303       enum PCF {
304         description
305           "TODO";
306       }
307       enum SMSF {
308         description
309           "TODO";
310       }
311       enum NSSF {
312         description
313           "TODO";
314       }
315       enum UDR {
316         description
317           "TODO";
318       }
319       enum LMF {
320         description
321           "TODO";
322       }
323       enum GMLC {
324         description
325           "TODO";
326       }
327       enum 5G_EIR {
328         description
329           "TODO";
330       }
331       enum SEPP {
332         description
333           "TODO";
334       }
335       enum UPF {
336         description
337           "TODO";
338       }
339       enum N3IWF {
340         description
341           "TODO";
342       }
343       enum AF {
344         description
345           "TODO";
346       }
347       enum UDSF {
348         description
349           "TODO";
350       }
351       enum BSF {
352         description
353           "TODO";
354       }
355       enum CHF {
356         description
357           "TODO";
358       }
359     }
360     description
361       "TODO";
362   }
363
364   typedef NotificationType {
365     type enumeration {
366       enum N1_MESSAGES {
367         description
368           "TODO";
369       }
370       enum N2_INFORMATION {
371         description
372           "TODO";
373       }
374       enum LOCATION_NOTIFICATION {
375         description
376           "TODO";
377       }
378     }
379     description
380       "TODO";
381   }
382
383   typedef Load {
384     type uint8 {
385       range "0..100";
386     }
387     description
388       "Latest known load information of the NF, percentage ";
389   }
390
391   typedef N1MessageClass {
392     type enumeration {
393       enum 5GMM {
394         description
395           "TODO";
396       }
397       enum SM {
398         description
399           "TODO";
400       }
401       enum LPP {
402         description
403           "TODO";
404       }
405       enum SMS {
406         description
407           "TODO";
408       }
409     }
410     description
411       "TODO";
412   }
413
414   typedef N2InformationClass {
415     type enumeration {
416       enum SM {
417         description
418           "TODO";
419       }
420       enum NRPPA {
421         description
422           "TODO";
423       }
424       enum PWS {
425         description
426           "TODO";
427       }
428       enum PWS_BCAL {
429         description
430           "TODO";
431       }
432       enum PWS_RF {
433         description
434           "TODO";
435       }
436     }
437     description
438       "TODO";
439     reference
440       "TODO";
441   }
442
443   typedef NsiId {
444     type string;
445     description
446       "TODO";
447   }
448
449   typedef UeMobilityLevel {
450     type enumeration {
451       enum STATIONARY {
452         description
453           "TODO";
454       }
455       enum NOMADIC {
456         description
457           "TODO";
458       }
459       enum RESTRICTED_MOBILITY {
460         description
461           "TODO";
462       }
463       enum FULLY_MOBILITY {
464         description
465           "TODO";
466       }
467     }
468     description
469       "TODO";
470     reference
471       "TODO";
472   }
473
474   typedef ResourceSharingLevel {
475     type enumeration {
476       enum SHARED {
477         description
478           "TODO";
479       }
480       enum NOT_SHARED {
481         description
482           "TODO";
483       }
484     }
485     description
486       "TODO";
487     reference
488       "TODO";
489   }
490
491   typedef TxDirection {
492     type enumeration {
493       enum DL {
494         description
495           "TODO";
496       }
497       enum UL {
498         description
499           "TODO";
500       }
501       enum DL_AND_UL {
502         description
503           "TODO";
504       }
505     }
506     description
507       "TODO";
508     reference
509       "TODO";
510   }
511
512   typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ?
513     type string;
514     description
515       "Represents the international standard for the representation
516        of Distinguished Name (RFC 4512).
517        The format of the DistinguishedName REGEX is:
518        {AttributeType = AttributeValue}
519
520        AttributeType consists of alphanumeric and hyphen (OIDs not allowed).
521        All other characters are restricted.
522        The Attribute value cannot contain control characters or the
523        following characters : \\ > < ; \" + , (Comma) and White space
524        The Attribute value can contain the following characters if they
525        are excaped : \\ > < ; \" + , (Comma) and White space
526        The Attribute value can contain control characters if its an escaped
527        double digit hex number.
528        Examples could be
529        UID=nobody@example.com,DC=example,DC=com
530        CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US";
531     reference
532       "RFC 4512 Lightweight Directory Access Protocol (LDAP):
533              Directory Information Models";
534   } // recheck regexp it doesn't handle posix [:cntrl:]
535
536   typedef QOffsetRange {
537     type int8;
538     units "dB";
539     description
540       "TODO";
541     reference
542       "TODO";
543   }
544
545   typedef QuotaType {
546     type enumeration {
547       enum STRICT {
548         description
549           "TODO";
550       }
551       enum FLOAT {
552         description
553           "TODO";
554       }
555     }
556     description
557       "TODO";
558   }
559
560   typedef CyclicPrefix {
561     type enumeration {
562       enum NORMAL {
563         description
564           "TODO";
565       }
566       enum EXTENDED {
567         description
568           "TODO";
569       }
570     }
571     description
572       "TODO";
573   }
574
575   grouping PLMNInfo {
576     description
577       "The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have
578        two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId represents a data type that
579        is comprised of mcc (mobile country code) and mnc (mobile network code), (See TS 23.003
580        subclause 2.2 and 12.1) and S-NSSAI represents an data type, that is comprised of an SST
581        (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13]).";
582     uses PLMNId;
583     list sNSSAIList {
584       key "sNssai";
585       uses sNSSAIConfig;
586       description "List of sNSSAIs";
587     }
588   }
589
590   grouping ManagedNFProfile {
591     description
592       "Defines profile for managed NF";
593     reference
594       "3GPP TS 23.501";
595     leaf idx {
596       type uint32;
597       description
598         "TODO";
599       reference
600         "3GPP TS 23.501";
601     }
602     leaf nfInstanceID {
603       type yang:uuid;
604       config false;
605       mandatory false;
606       description
607         "This parameter defines profile for managed NF.
608          The format of the NF Instance ID shall be a
609          Universally Unique Identifier (UUID) version 4,
610          as described in IETF RFC 4122 ";
611     }
612     leaf-list nfType {
613       type NfType;
614       config false;
615       min-elements 1;
616       description
617         "Type of the Network Function";
618     }
619     leaf hostAddr {
620       type inet:host;
621       mandatory false;
622       description
623         "Host address of a NF";
624     }
625     leaf authzInfo {
626       type string;
627       description
628         "This parameter defines NF Specific Service authorization
629          information. It shall include the NF type (s) and NF realms/origins
630          allowed to consume NF Service(s) of NF Service Producer.";
631       reference
632         "See TS 23.501";
633     }
634     leaf location {
635       type string;
636       description
637         "Information about the location of the NF instance
638          (e.g. geographic location, data center) defined by operator";
639       reference
640         "TS 29.510";
641     }
642     leaf capacity {
643       type uint16;
644       mandatory false;
645       description
646         "This parameter defines static capacity information
647          in the range of 0-65535, expressed as a weight relative to other
648          NF instances of the same type; if capacity is also present in the
649          nfServiceList parameters, those will have precedence over this value.";
650       reference
651         "TS 29.510";
652     }
653     leaf nFSrvGroupId {
654       type string;
655       description
656         "This parameter defines identity of the group that is
657          served by the NF instance.
658          May be config false or true depending on the ManagedFunction.
659          Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo.
660          Shall be present if ../nfType = UDM or AUSF or UDR. ";
661       reference
662         "TS 29.510";
663     }
664     leaf-list supportedDataSetIds {
665       type enumeration {
666         enum SUBSCRIPTION {
667           description
668             "TODO";
669         }
670         enum POLICY {
671           description
672             "TODO";
673         }
674         enum EXPOSURE {
675           description
676             "TODO";
677         }
678         enum APPLICATION {
679           description
680             "TODO";
681         }
682       }
683       description
684         "List of supported data sets in the UDR instance.
685          May be present if ../nfType = UDR";
686       reference
687         "TS 29.510";
688     }
689     leaf-list smfServingAreas {
690       type string;
691       description
692         "Defines the SMF service area(s) the UPF can serve.
693          Shall be present if ../nfType = UPF";
694       reference
695         "TS 29.510";
696     }
697     leaf priority {
698       type uint16;
699       description
700         "This parameter defines Priority (relative to other NFs
701          of the same type) in the range of 0-65535, to be used for NF selection;
702          lower values indicate a higher priority. If priority is also present
703          in the nfServiceList parameters, those will have precedence over
704          this value. Shall be present if ../nfType = AMF ";
705       reference
706         "TS 29.510";
707     }
708   }
709
710   grouping SAP {
711     description
712       "Service access point.";
713     reference
714       "TS 28.622";
715     leaf host {
716       type inet:host;
717       mandatory true;
718       description
719         "TODO";
720     }
721     leaf port {
722       type inet:port-number;
723       mandatory true;
724       description
725         "TODO";
726     }
727   }
728
729   grouping PLMNId {
730     description
731       "TODO";
732     reference
733       "TS 23.658";
734     leaf mcc {
735       type Mcc;
736       mandatory true;
737       description
738         "TODO";
739     }
740     leaf mnc {
741       type Mnc;
742       mandatory true;
743       description
744         "TODO";
745     }
746   }
747
748   grouping AmfIdentifier {
749     description
750       "The AMFI is constructed from an AMF Region ID,
751        an AMF Set ID and an AMF Pointer.
752        The AMF Region ID identifies the region,
753        the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and
754        the AMF Pointer uniquely identifies the AMF within the AMF Set. ";
755     leaf amfRegionId {
756       type AmfRegionId;
757       description
758         "TODO";
759     }
760     leaf amfSetId {
761       type AmfSetId;
762       description
763         "TODO";
764     }
765     leaf amfPointer {
766       type AmfPointer;
767       description
768         "TODO";
769     }
770   }
771
772   grouping DefaultNotificationSubscription {
773     description
774       "TODO";
775     leaf notificationType {
776       type NotificationType;
777       description
778         "TODO";
779     }
780     leaf callbackUri {
781       type inet:uri;
782       description
783         "TODO";
784     }
785     leaf n1MessageClass {
786       type N1MessageClass;
787       description
788         "TODO";
789     }
790     leaf n2InformationClass {
791       type N2InformationClass;
792       description
793         "TODO";
794     }
795   }
796
797   grouping Ipv4AddressRange {
798     description
799       "TODO";
800     leaf start {
801       type inet:ipv4-address;
802       description
803         "TODO";
804     }
805     leaf end {
806       type inet:ipv4-address;
807       description
808         "TODO";
809     }
810   }
811
812   grouping Ipv6PrefixRange {
813     description
814       "TODO";
815     leaf start {
816       type inet:ipv6-prefix;
817       description
818         "TODO";
819     }
820     leaf end {
821       type inet:ipv6-prefix;
822       description
823         "TODO";
824     }
825   }
826
827   grouping AddressWithVlan {
828     description
829       "TODO";
830     leaf ipAddress {
831       type inet:ip-address;
832       description
833         "TODO";
834     }
835     leaf vlanId {
836       type uint16;
837       description
838         "TODO";
839     }
840   }
841
842   grouping ManagedElementGroup {
843     description
844       "Abstract class representing telecommunications resources.";
845     leaf dnPrefix {
846       type DistinguishedName;
847       description
848         "Provides naming context and splits the DN into a DN Prefix and Local DN";
849     }
850     leaf userLabel {
851       type string;
852       description
853         "A user-friendly name of this object.";
854     }
855     leaf locationName {
856       type string;
857       config false;
858       description
859         "The physical location (e.g. an address) of an entity";
860     }
861     leaf-list managedBy {
862       type DistinguishedName;
863       config false;
864       description
865         "Relates to the role played by ManagementSystem";
866     }
867     leaf-list managedElementTypeList {
868       type string;
869       config false;
870       min-elements 1;
871       description
872         "The type of functionality provided by the ManagedElement.
873          It may represent one ME functionality or a combination of
874          Two examples of allowed values are:
875          -  NodeB;
876          -  HLR, VLR.";
877     }
878   } // Managed Element grouping
879
880   grouping NearRTRICGroup {
881     description
882       "Abstract class representing Near RT RIC.";
883     leaf near-rt-ric-url {
884       type inet:uri;
885       description
886         "URL for the near RT RIC. String representing IP addr:port";
887     }
888     leaf dnPrefix {
889       type DistinguishedName;
890       description
891         "Provides naming context and splits the DN into a DN Prefix and Local DN";
892     }
893     leaf userLabel {
894       type string;
895       description
896         "A user-friendly name of this object.";
897     }
898     leaf locationName {
899       type string;
900       config false;
901       description
902         "The physical location (e.g. an address) of an entity";
903     }
904     leaf gNBId {
905           type int64 { range "0..4294967295"; }
906           config false;
907           description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
908             is part of the NR Cell Identifier (NCI) of the gNB cells.";
909           reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
910         }
911         leaf trackingArea {
912           type string;
913           description "Identifies the Tracking area controlled by the NearRTRIC";
914         }
915
916     leaf-list managedBy {
917       type DistinguishedName;
918       config false;
919       description
920         "Relates to the role played by ManagementSystem";
921     }
922
923     leaf-list rANNFNSSIList{
924                 type string;
925                 config true;
926                 description "Identifies the list of RAN NF NSSIs that are served by the NearRTRIC";
927         }
928
929         list pLMNInfoList {
930           uses PLMNInfo;
931           key "mcc mnc";
932           description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC.";
933         }
934         list sliceProfilesList{
935                 uses SliceProfile;
936                 key "sliceProfileId";
937                 description "List of slice profiles supported by the ran slice";
938         }
939     list RRMPolicyRatio {
940       key id;
941       leaf id {
942         type string;
943         description
944           "Key leaf";
945       }
946       container attributes {
947         uses RRMPolicyRatioGroup;
948       }
949       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
950         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
951         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
952         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
953     }
954
955   } // Near RT RIC grouping
956
957
958
959         grouping Configuration{
960                 leaf configParameter{
961                         type string;
962                         description "Type of the configuration parameter";
963         }
964                 leaf configValue{
965                         type int64;
966                         description "Identifies the configuration to be done for the network elements under the NearRTRIC";
967
968                 }
969         }
970
971         grouping SliceProfile{
972                 leaf sliceProfileId{
973                         type string;
974                         mandatory true;
975                         description "slice profile id";
976                 }
977                 leaf sNSSAI{
978                         type SNssai;
979                         mandatory false;
980                         description "The S-NSSAI may include both the SST and SD fields (in which case the S-NSSAI length is 32 bits in total), or the S-NSSAI may just include the SST field (in which case the S-NSSAI length is 8 bits only)";
981                 }
982                 leaf maxNumberofUEs{
983                         type int64 { range "0..68719476735"; }
984                         mandatory false;
985                         description "maximum number of UEs";
986                 }
987                 leaf latency{
988                         type int64 { range "0..68719476735"; }
989                         mandatory false;
990                         description "latency of the slice requested by the operator";
991                 }
992                 leaf uLThptPerSlice{
993                         type int64 { range "0..68719476735"; }
994                         mandatory false;
995                         description "uplink throughput of the slice requested by the operator";
996                 }
997                 leaf dLThptPerSlice{
998                         type int64 { range "0..68719476735"; }
999                         mandatory false;
1000                         description "downlink throughput  of the slice requested by the operator";
1001                 }
1002                 leaf maxNumberofConns{
1003                         type int64 { range "0..68719476735"; }
1004                         mandatory false;
1005                         description "maximum number of connections to be served by the slice";
1006                 }
1007                 leaf uEMobilityLevel{
1008                         type string;
1009                         mandatory false;
1010                         description "Mobility level of the UE";
1011                 }
1012                 leaf-list coverageAreaList{
1013                 type string;
1014                 config true;
1015                 description "Identifies the list of coverage areas to be served by the slice";
1016         }
1017     leaf resourceSharingLevel{
1018       type string;
1019       description "Resource sharing level";
1020     }
1021         }
1022
1023
1024
1025
1026
1027
1028   grouping GNBDUFunctionGroup {
1029     description
1030       "Represents the GNBDUFunction IOC.";
1031     reference
1032       "3GPP TS 28.541";
1033     leaf gNBDUFunction-url {
1034       type inet:uri;
1035       description
1036         "URL for the GNBDUFunction. String representing IP addr:port";
1037     }
1038
1039     leaf gNBId {
1040       type int64 {
1041         range "0..4294967295";
1042       }
1043       config false;
1044       mandatory false;
1045       description
1046         "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
1047          is part of the NR Cell Identifier (NCI) of the gNB cells.";
1048       reference
1049         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1050     }
1051     leaf gNBIdLength {
1052       type int32 {
1053         range "22..32";
1054       }
1055       mandatory false;
1056       description
1057         "Indicates the number of bits for encoding the gNB ID.";
1058       reference
1059         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1060     }
1061     leaf gNBDUId {
1062       type int64 {
1063         range "0..68719476735";
1064       }
1065       mandatory false;
1066       description
1067         "Uniquely identifies the DU at least within a gNB.";
1068       reference
1069         "3GPP TS 38.473";
1070     }
1071     leaf gNBDUName {
1072       type string {
1073         length "1..150";
1074       }
1075       description
1076         "Identifies the Distributed Unit of an NR node";
1077       reference
1078         "3GPP TS 38.473";
1079     }
1080     leaf aggressorSetID {
1081       type uint32 {
1082         range "0..4194304";
1083       }
1084       config false;
1085       description
1086         "Indicates the associated aggressor gNB Set ID of the cell
1087          Valid when Remote Interference Management function is supported.";
1088       reference
1089         "3GPP TS 38.211 subclause 7.4.1.6";
1090     }
1091     leaf victimSetID {
1092       type uint32 {
1093         range "0..4194304";
1094       }
1095       config false;
1096       description
1097         "Indicates the associated victim gNB Set ID of the cell
1098          Valid when Remote Interference Management function is supported.";
1099       reference
1100         "3GPP TS 38.211 subclause 7.4.1.6";
1101     }
1102     list RRMPolicyRatio {
1103       key id;
1104       leaf id {
1105         type string;
1106         description
1107           "Key leaf";
1108       }
1109       container attributes {
1110         uses RRMPolicyRatioGroup;
1111       }
1112       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1113         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1114         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1115         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1116     }
1117   }
1118
1119   grouping NRCellDUGroup {
1120     description
1121       "Represents the NRCellDU IOC.";
1122     reference
1123       "3GPP TS 28.541";
1124     leaf nRCellDU-url {
1125       type inet:uri;
1126       description
1127         "URL for the NR Cell DU. String representing IP addr:port";
1128     }
1129     list RRMPolicyRatio {
1130       key id;
1131       leaf id {
1132         type string;
1133         description
1134           "Key leaf";
1135       }
1136       container attributes {
1137         uses RRMPolicyRatioGroup;
1138       }
1139       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1140         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1141         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1142         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1143     }
1144     leaf cellLocalId {
1145       type int32 {
1146         range "0..16383";
1147       }
1148       mandatory false;
1149       description
1150         "Identifies an NR cell of a gNB. Together with the
1151          corresponding gNB identifier in forms the NR Cell Identity (NCI).";
1152       reference
1153         "NCI in 3GPP TS 38.300";
1154     }
1155     leaf operationalState {
1156       type OperationalState;
1157       config false;
1158       description
1159         "Operational state of the NRCellDU instance. Indicates
1160          whether the resource is installed and partially or fully operable
1161          (ENABLED) or the resource is not installed or not operable
1162          (DISABLED).";
1163     }
1164     leaf administrativeState {
1165       type AdministrativeState;
1166       default "LOCKED";
1167       description
1168         "Administrative state of the NRCellDU. Indicates the
1169          permission to use or prohibition against using the cell, imposed
1170          through the OAM services.";
1171     }
1172     leaf cellState {
1173       type CellState;
1174       config false;
1175       description
1176         "Cell state of the NRCellDU instance. Indicates whether the
1177          cell is not currently in use (IDLE), or currently in use but not
1178          configured to carry traffic (INACTIVE), or currently in use and is
1179          configured to carry traffic (ACTIVE).";
1180     }
1181     list pLMNInfoList {
1182       key "mcc mnc";
1183       min-elements 1;
1184       description
1185         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
1186          can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for
1187          corresponding PLMN in case of network slicing feature is supported. The plMNId of the first
1188          entry of the list is the PLMNId used to construct the nCGI for the NR cell.";
1189       uses PLMNInfo;
1190     }
1191     leaf nRPCI {
1192       type int32 {
1193         range "0..1007";
1194       }
1195       mandatory false;
1196       description
1197         "The Physical Cell Identity (PCI) of the NR cell.";
1198       reference
1199         "3GPP TS 36.211";
1200     }
1201     leaf nRTAC {
1202       type Tac;
1203       description
1204         "The common 5GS Tracking Area Code for the PLMNs.";
1205       reference
1206         "3GPP TS 23.003, 3GPP TS 38.473";
1207     }
1208     leaf arfcnDL {
1209       type int32;
1210       mandatory false;
1211       description
1212         "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for
1213          downlink.";
1214       reference
1215         "3GPP TS 38.104";
1216     }
1217     leaf arfcnUL {
1218       type int32;
1219       description
1220         "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for
1221          uplink.";
1222       reference
1223         "3GPP TS 38.104";
1224     }
1225     leaf arfcnSUL {
1226       type int32;
1227       description
1228         "NR Absolute Radio Frequency Channel Number (NR-ARFCN) for
1229          supplementary uplink.";
1230       reference
1231         "3GPP TS 38.104";
1232     }
1233     leaf bSChannelBwDL {
1234       type int32;
1235       units "MHz";
1236       description
1237         "Base station channel bandwidth for downlink.";
1238       reference
1239         "3GPP TS 38.104";
1240     }
1241     leaf bSChannelBwUL {
1242       type int32;
1243       units "MHz";
1244       description
1245         "Base station channel bandwidth for uplink.";
1246       reference
1247         "3GPP TS 38.104";
1248     }
1249     leaf bSChannelBwSUL {
1250       type int32;
1251       units "MHz";
1252       description
1253         "Base station channel bandwidth for supplementary uplink.";
1254       reference
1255         "3GPP TS 38.104";
1256     }
1257     leaf ssbFrequency {
1258       type int32 {
1259         range "0..3279165";
1260       }
1261       mandatory false;
1262       description
1263         "Indicates cell defining SSB frequency domain position.
1264          Frequency (in terms of NR-ARFCN) of the cell defining SSB transmission.
1265          The frequency identifies the position of resource element RE=#0
1266          (subcarrier #0) of resource block RB#10 of the SS block. The frequency
1267          must be positioned on the NR global frequency raster, as defined in
1268          3GPP TS 38.101, and within bSChannelBwDL.";
1269     }
1270     leaf ssbPeriodicity {
1271       type int32 {
1272         range "5 | 10 | 20 | 40 | 80 | 160";
1273       }
1274       units "subframes (ms)";
1275       mandatory false;
1276       description
1277         "Indicates cell defined SSB periodicity. The SSB periodicity
1278          is used for the rate matching purpose.";
1279     }
1280     leaf ssbSubCarrierSpacing {
1281       type int32 {
1282         range "15 | 30 | 120 | 240";
1283       }
1284       units "kHz";
1285       mandatory false;
1286       description
1287         "Subcarrier spacing of SSB. Only the values 15 kHz or 30 kHz
1288          (< 6 GHz), 120 kHz or 240 kHz (> 6 GHz) are applicable.";
1289       reference
1290         "3GPP TS 38.211";
1291     }
1292     leaf ssbOffset {
1293       type int32 {
1294         range "0..159";
1295       }
1296       units "subframes (ms)";
1297       mandatory false;
1298       description
1299         "Indicates cell defining SSB time domain position. Defined
1300          as the offset of the measurement window, in which to receive SS/PBCH
1301          blocks, where allowed values depend on the ssbPeriodicity
1302          (ssbOffset < ssbPeriodicity).";
1303     }
1304     leaf ssbDuration {
1305       type int32 {
1306         range "1..5";
1307       }
1308       units "subframes (ms)";
1309       mandatory false;
1310       description
1311         "Duration of the measurement window in which to receive
1312          SS/PBCH blocks.";
1313       reference
1314         "3GPP TS 38.213";
1315     }
1316     leaf-list nRSectorCarrierRef {
1317       type DistinguishedName;
1318       min-elements 1;
1319       description
1320         "Reference to corresponding NRSectorCarrier instance.";
1321     }
1322     leaf-list bWPRef {
1323       type DistinguishedName;
1324       // min-elements 0;
1325       description
1326         "Reference to corresponding BWP instance.";
1327     }
1328     leaf-list nRFrequencyRef {
1329       type DistinguishedName;
1330       // min-elements 0;
1331       description
1332         "Reference to corresponding NRFrequency instance.";
1333     }
1334   } // grouping
1335
1336   grouping rRMPolicyMemberGroup {
1337     description
1338       "TODO";
1339     uses PLMNId;
1340     leaf sNSSAI {
1341       type SNssai;
1342       description
1343         "This data type represents an RRM Policy member that will be part of a
1344          rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI).
1345          The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources
1346          based on settings in RRMPolicy.";
1347     }
1348   }
1349
1350   grouping RRMPolicyRatioGroup {
1351
1352     uses RRMPolicy_Group;    // Inherits RRMPolicy_
1353
1354     leaf quotaType {
1355       type QuotaType;
1356       mandatory false;
1357       description "The type of the quota which allows to allocate resources as
1358         strictly usable for defined slice(s) (strict quota) or allows that
1359         resources to be used by other slice(s) when defined slice(s) do not
1360         need them (float quota).";
1361     }
1362
1363     leaf rRMPolicyMaxRatio {
1364       type uint8;
1365       mandatory false;
1366       units percent;
1367       description "The RRM policy setting the maximum percentage of radio
1368         resources to be allocated to the corresponding S-NSSAI list. This
1369         quota can be strict or float quota. Strict quota means resources are
1370         not allowed for other sNSSAIs even when they are not used by the
1371         defined sNSSAIList. Float quota resources can be used by other sNSSAIs
1372         when the defined sNSSAIList do not need them. Value 0 indicates that
1373         there is no maximum limit.";
1374     }
1375
1376     leaf rRMPolicyMinRatio {
1377       type uint8;
1378       mandatory false;
1379       units percent;
1380       description "The RRM policy setting the minimum percentage of radio
1381         resources to be allocated to the corresponding S-NSSAI list. This
1382         quota can be strict or float quota. Strict quota means resources are
1383         not allowed for other sNSSAIs even when they are not used by the
1384         defined sNSSAIList. Float quota resources can be used by other sNSSAIs
1385         when the defined sNSSAIList do not need them. Value 0 indicates that
1386         there is no minimum limit.";
1387     }
1388     leaf rRMPolicyDedicatedRatio {
1389       type uint8;
1390       units percent;
1391       description "Dedicated Ration.";
1392       }
1393     description "Represents the RRMPolicyRatio concrete IOC.";
1394     }
1395
1396
1397   grouping sNSSAIConfig{
1398         leaf sNssai {
1399         type string;
1400         description "s-NSSAI of a network slice.";
1401            reference "3GPP TS 23.003";
1402       }
1403          leaf status {
1404         type string;
1405         description "status of s-NSSAI";
1406       }
1407         list configData{
1408                 uses Configuration;
1409                 key "configParameter";
1410                 description "List of configurations to be done at the network elements";
1411         }
1412         }
1413
1414   grouping RRMPolicy_Group {
1415     description
1416       "This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC
1417        needs to be subclassed to be instantiated. It defines two attributes apart from those
1418        inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC
1419        connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the
1420        RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType
1421        attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in
1422        GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1423        inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies,
1424        both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1425        abstract RRMPolicy_ IOC.";
1426     leaf resourceType {
1427       type string;
1428       mandatory false;
1429       description
1430         "The resourceType attribute defines type of resource (PRB, RRC connected users,
1431          DRB usage etc.) that is subject to policy. Valid values are 'PRB', 'RRC' or 'DRB'";
1432     }
1433     list rRMPolicyMemberList {
1434       key "idx";
1435       leaf idx {
1436         type uint32;
1437         description
1438           "TODO";
1439       }
1440       description
1441         "It represents the list of RRMPolicyMember (s) that the managed object
1442          is supporting. A RRMPolicyMember <<dataType>> include the PLMNId <<dataType>>
1443          and S-NSSAI <<dataType>>.";
1444       uses rRMPolicyMemberGroup;
1445     }
1446   } // grouping
1447
1448   grouping GNBCUUPFunctionGroup {
1449     description
1450       "Represents the GNBCUUPFunction IOC.";
1451     reference
1452       "3GPP TS 28.541";
1453     leaf gNBCUUPFunction-url {
1454       type inet:uri;
1455       description
1456         "URL for GNBCUUPFunction. String representing IP addr:port";
1457     }
1458     list RRMPolicyRatio {
1459       key id;
1460       leaf id {
1461         type string;
1462         description
1463           "Key leaf";
1464       }
1465       container attributes {
1466         uses RRMPolicyRatioGroup;
1467       }
1468       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1469         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1470         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1471         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1472     }
1473     leaf gNBCUUPId {
1474       type uint64 {
1475         range "0..68719476735";
1476       }
1477       config false;
1478       mandatory false;
1479       description
1480         "Identifies the gNB-CU-UP at least within a gNB-CU-CP";
1481       reference
1482         "'gNB-CU-UP ID' in subclause 9.3.1.15 of 3GPP TS 38.463";
1483     }
1484     leaf gNBId {
1485       type int32 {
1486         range "22..32";
1487       }
1488       mandatory false;
1489       description
1490         "Indicates the number of bits for encoding the gNB Id.";
1491       reference
1492         "gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1493     }
1494     list pLMNInfoList {
1495       key "mcc mnc";
1496       description
1497         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
1498          can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the
1499          GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported";
1500       uses PLMNInfo;
1501     }
1502   } // grouping
1503
1504   grouping GNBCUCPFunctionGroup {
1505     description
1506       "Represents the GNBCUCPFunction IOC.";
1507     reference
1508       "3GPP TS 28.541";
1509     leaf gNBCUCPFunction-url {
1510       type inet:uri;
1511       description
1512         "URL for GNBCUCPFunction. String representing IP addr:port";
1513     }
1514     list RRMPolicyRatio {
1515       key id;
1516       leaf id {
1517         type string;
1518         description
1519           "Key leaf";
1520       }
1521       container attributes {
1522         uses RRMPolicyRatioGroup;
1523       }
1524       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1525         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1526         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1527         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1528     }
1529     leaf gNBId {
1530       type int64 {
1531         range "0..4294967295";
1532       }
1533       mandatory false;
1534       description
1535         "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
1536          is part of the NR Cell Identifier (NCI) of the gNB cells.";
1537       reference
1538         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1539     }
1540     leaf gNBIdLength {
1541       type int32 {
1542         range "22..32";
1543       }
1544       mandatory false;
1545       description
1546         "Indicates the number of bits for encoding the gNB ID.";
1547       reference
1548         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1549     }
1550     leaf gNBCUName {
1551       type string {
1552         length "1..150";
1553       }
1554       mandatory false;
1555       description
1556         "Identifies the Central Unit of an gNB.";
1557       reference
1558         "3GPP TS 38.473";
1559     }
1560     list pLMNId {
1561       key "mcc mnc";
1562       min-elements 1;
1563       max-elements 1;
1564       description
1565         "The PLMN identifier to be used as part of the global RAN
1566          node identity.";
1567       uses PLMNId;
1568     }
1569     leaf-list x2BlackList {
1570       type DistinguishedName;
1571       description
1572         "List of nodes to which X2 connections are prohibited.";
1573     }
1574     leaf-list x2WhiteList {
1575       type DistinguishedName;
1576       description
1577         "List of nodes to which X2 connections are enforced.";
1578     }
1579     leaf-list xnBlackList {
1580       type DistinguishedName;
1581       description
1582         "List of nodes to which Xn connections are prohibited.";
1583     }
1584     leaf-list xnWhiteList {
1585       type DistinguishedName;
1586       description
1587         "List of nodes to which X2 connections are enforced.";
1588     }
1589     leaf-list x2XnHOBlackList {
1590       type DistinguishedName;
1591       description
1592         "List of nodes to which handovers over X2 or Xn are prohibited.";
1593     }
1594   } // grouping
1595
1596   grouping NRCellCUGroup {
1597     description
1598       "Represents the NRCellCU IOC.";
1599     reference
1600       "3GPP TS 28.541";
1601     leaf nRCellCU-url {
1602       type inet:uri;
1603       description
1604         "URL for NRCellCU. String representing IP addr:port";
1605     }
1606     leaf cellLocalId {
1607       type int32 {
1608         range "0..16383";
1609       }
1610       mandatory false;
1611       description
1612         "Identifies an NR cell of a gNB. Together with corresponding
1613          gNB ID it forms the NR Cell Identifier (NCI).";
1614     }
1615     list pLMNInfoList {
1616       key "mcc mnc";
1617       min-elements 1;
1618       description
1619         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs
1620          that can be served by the NR cell, and which S-NSSAIs that can be supported by the
1621          NR cell for corresponding PLMN in case of network slicing feature is supported.";
1622       uses PLMNInfo;
1623       // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation.
1624     }
1625     leaf nRFrequencyRef {
1626       type DistinguishedName;
1627       config false;
1628       description
1629         "Reference to corresponding NRFrequency instance.";
1630     }
1631     list RRMPolicyRatio {
1632       key id;
1633       leaf id {
1634         type string;
1635         description
1636           "Key leaf";
1637       }
1638       container attributes {
1639         uses RRMPolicyRatioGroup;
1640       }
1641       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1642         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1643         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1644         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1645     }
1646   } // grouping NRCellCUGroup
1647
1648   grouping NRCellRelationGroup {
1649     description
1650       "Represents the NRCellRelation IOC.";
1651     reference
1652       "3GPP TS 28.541";
1653     leaf nRTCI {
1654       type uint64;
1655       description
1656         "Target NR Cell Identifier. It consists of NR Cell
1657          Identifier (NCI) and Physical Cell Identifier of the target NR cell
1658          (nRPCI).";
1659     }
1660     container cellIndividualOffset {
1661       description
1662         "A set of offset values for the neighbour cell. Used when
1663          UE is in connected mode. Defined for rsrpOffsetSSB, rsrqOffsetSSB,
1664          sinrOffsetSSB, rsrpOffsetCSI-RS, rsrqOffsetCSI-RS and
1665          sinrOffsetCSI-RS.";
1666       reference
1667         "cellIndividualOffset in MeasObjectNR in 3GPP TS 38.331";
1668       leaf rsrpOffsetSsb {
1669         type QOffsetRange;
1670         default "0";
1671         description
1672           "Offset value of rsrpOffsetSSB.";
1673       }
1674       leaf rsrqOffsetSsb {
1675         type QOffsetRange;
1676         default "0";
1677         description
1678           "Offset value of rsrqOffsetSSB.";
1679       }
1680       leaf sinrOffsetSsb {
1681         type QOffsetRange;
1682         default "0";
1683         description
1684           "Offset value of sinrOffsetSSB.";
1685       }
1686       leaf rsrpOffsetCsiRs {
1687         type QOffsetRange;
1688         default "0";
1689         description
1690           "Offset value of rsrpOffsetCSI-RS.";
1691       }
1692       leaf rsrqOffsetCsiRs {
1693         type QOffsetRange;
1694         default "0";
1695         description
1696           "Offset value of rsrqOffsetCSI-RS.";
1697       }
1698       leaf sinrOffsetCsiRs {
1699         type QOffsetRange;
1700         default "0";
1701         description
1702           "Offset value of sinrOffsetCSI-RS.";
1703       }
1704     }
1705     leaf nRFreqRelationRef {
1706       type DistinguishedName;
1707       mandatory false;
1708       description
1709         "Reference to a corresponding NRFreqRelation instance.";
1710     }
1711     leaf adjacentNRCellRef {
1712       type DistinguishedName;
1713       mandatory false;
1714       description
1715         "Reference to an adjacent NR cell (NRCellCU or
1716          ExternalNRCellCU).";
1717     }
1718     leaf isRemoveAllowed {
1719       type boolean;
1720       default "true";
1721       description
1722         "True if the ANR function in the node is allowed to remove this relation.";
1723     }
1724     leaf isHOAllowed {
1725       type boolean;
1726       default "true";
1727       description
1728         "True if handovers are allowed over this relation.";
1729     }
1730   } // grouping
1731
1732   grouping NRFreqRelationGroup {
1733     description
1734       "Represents the NRFreqRelation IOC.";
1735     reference
1736       "3GPP TS 28.541";
1737     container offsetMO {
1738       description
1739         "A set of offset values applicable to all measured cells
1740          with reference signal(s) indicated in corresponding MeasObjectNR. It
1741          is used to indicate a cell, beam or measurement object specific offset
1742          to be applied when evaluating candidates for cell re-selection or when
1743          evaluating triggering conditions for measurement reporting. It is
1744          defined for rsrpOffsetSSB, rsrqOffsetSSB, sinrOffsetSSB,
1745          rsrpOffsetCSI-RS, rsrqOffsetCSI-RS and sinrOffsetCSI-RS.";
1746       reference
1747         "offsetMO in MeasObjectNR in 3GPP TS 38.331";
1748       leaf rsrpOffsetSsb {
1749         type QOffsetRange;
1750         default "0";
1751         description
1752           "Offset value of rsrpOffsetSSB.";
1753       }
1754       leaf rsrqOffsetSsb {
1755         type QOffsetRange;
1756         default "0";
1757         description
1758           "Offset value of rsrqOffsetSSB.";
1759       }
1760       leaf sinrOffsetSsb {
1761         type QOffsetRange;
1762         default "0";
1763         description
1764           "Offset value of sinrOffsetSSB.";
1765       }
1766       leaf rsrpOffsetCsiRs {
1767         type QOffsetRange;
1768         default "0";
1769         description
1770           "Offset value of rsrpOffsetCSI-RS.";
1771       }
1772       leaf rsrqOffsetCsiRs {
1773         type QOffsetRange;
1774         default "0";
1775         description
1776           "Offset value of rsrqOffsetCSI-RS.";
1777       }
1778       leaf sinrOffsetCsiRs {
1779         type QOffsetRange;
1780         default "0";
1781         description
1782           "Offset value of sinrOffsetCSI-RS.";
1783       }
1784     }
1785     leaf-list blackListEntry {
1786       type uint16 {
1787         range "0..1007";
1788       }
1789       // min-elements 0;
1790       description
1791         "A list of Physical Cell Identities (PCIs) that are
1792          blacklisted in NR measurements.";
1793       reference
1794         "3GPP TS 38.331";
1795     }
1796     leaf-list blackListEntryIdleMode {
1797       type uint16 {
1798         range "0..1007";
1799       }
1800       // min-elements 0;
1801       description
1802         "A list of Physical Cell Identities (PCIs) that are
1803          blacklisted in SIB4 and SIB5.";
1804     }
1805     leaf cellReselectionPriority {
1806       type uint32;
1807       default "0";
1808       description
1809         "The absolute priority of the carrier frequency used by the
1810          cell reselection procedure. Value 0 means lowest priority. The value
1811          must not already used by other RAT, i.e. equal priorities between RATs
1812          are not supported. The UE behaviour when no value is entered is
1813          specified in subclause 5.2.4.1 of 3GPP TS 38.304.";
1814       reference
1815         "CellReselectionPriority in 3GPP TS 38.331, priority in
1816          3GPP TS 38.304";
1817     }
1818     leaf cellReselectionSubPriority {
1819       type uint8 {
1820         range "2 | 4 | 6 | 8";
1821       }
1822       units "0.1";
1823       description
1824         "Indicates a fractional value to be added to the value of
1825          cellReselectionPriority to obtain the absolute priority of the
1826          concerned carrier frequency for E-UTRA and NR.";
1827       reference
1828         "3GPP TS 38.331";
1829     }
1830     leaf pMax {
1831       type int32 {
1832         range "-30..33";
1833       }
1834       units "dBm";
1835       // mandatory false;
1836       description
1837         "Used for calculation of the parameter Pcompensation
1838          (defined in 3GPP TS 38.304), at cell reselection to a cell.";
1839       reference
1840         "PEMAX in 3GPP TS 38.101";
1841     }
1842     leaf qOffsetFreq {
1843       type QOffsetRange;
1844       default "0";
1845       // mandatory false;
1846       description
1847         "The frequency specific offset applied when evaluating
1848          candidates for cell reselection.";
1849     }
1850     leaf qQualMin {
1851       type int32 {
1852         range "-34..-3 | 0";
1853       }
1854       units "dB";
1855       default "0";
1856       description
1857         "Indicates the minimum required quality level in the cell.
1858          Value 0 means that it is not sent and UE applies in such case the
1859          (default) value of negative infinity for Qqualmin. Sent in SIB3 or
1860          SIB5.";
1861       reference
1862         "3GPP TS 38.304";
1863     }
1864     leaf qRxLevMin {
1865       type int32 {
1866         range "-140..-44";
1867       }
1868       units "dBm";
1869       mandatory false;
1870       description
1871         "Indicates the required minimum received Reference Symbol
1872          Received Power (RSRP) level in the NR frequency for cell reselection.
1873          Broadcast in SIB3 or SIB5, depending on whether the related frequency
1874          is intra- or inter-frequency. Resolution is 2.";
1875       reference
1876         "3GPP TS 38.304";
1877     }
1878     leaf threshXHighP {
1879       type int32 {
1880         range "0..62";
1881       }
1882       units "dB";
1883       mandatory false;
1884       description
1885         "Specifies the Srxlev threshold used by the UE when
1886          reselecting towards a higher priority RAT/frequency than the current
1887          serving frequency. Each frequency of NR and E-UTRAN might have a
1888          specific threshold. Resolution is 2.";
1889       reference
1890         "ThreshX, HighP in 3GPP TS 38.304";
1891     }
1892     leaf threshXHighQ {
1893       type int32 {
1894         range "0..31";
1895       }
1896       units "dB";
1897       mandatory false;
1898       description
1899         "Specifies the Squal threshold used by the UE when
1900          reselecting towards a higher priority RAT/frequency than the current
1901          serving frequency. Each frequency of NR and E-UTRAN might have a
1902          specific threshold.";
1903       reference
1904         "ThreshX, HighQ in 3GPP TS 38.304";
1905     }
1906     leaf threshXLowP {
1907       type int32 {
1908         range "0..62";
1909       }
1910       units "dB";
1911       mandatory false;
1912       description
1913         "Specifies the Srxlev threshold used by the UE when
1914          reselecting towards a lower priority RAT/frequency than the current
1915          serving frequency. Each frequency of NR and E-UTRAN might have a
1916          specific threshold. Resolution is 2.";
1917       reference
1918         "ThreshX, LowP in 3GPP TS 38.304";
1919     }
1920     leaf threshXLowQ {
1921       type int32 {
1922         range "0..31";
1923       }
1924       units "dB";
1925       mandatory false;
1926       description
1927         "Specifies the Squal threshold used by the UE when
1928          reselecting towards a lower priority RAT/frequency than the current
1929          serving frequency. Each frequency of NR and E-UTRAN might have a
1930          specific threshold.";
1931       reference
1932         "ThreshX, LowQ in 3GPP TS 38.304";
1933     }
1934     leaf tReselectionNR {
1935       type int32 {
1936         range "0..7";
1937       }
1938       units "s";
1939       mandatory false;
1940       description
1941         "Cell reselection timer for NR.";
1942       reference
1943         "TreselectionRAT for NR in 3GPP TS 38.331";
1944     }
1945     leaf tReselectionNRSfHigh {
1946       type uint8 {
1947         range "25 | 50 | 75 | 100";
1948       }
1949       units "%";
1950       mandatory false;
1951       description
1952         "The attribute tReselectionNr (parameter TreselectionNR in
1953          3GPP TS 38.304) is multiplied with this scaling factor if the UE is
1954          in high mobility state.";
1955       reference
1956         "Speed dependent ScalingFactor for TreselectionNR for high
1957          mobility state in 3GPP TS 38.304";
1958     }
1959     leaf tReselectionNRSfMedium {
1960       type uint8 {
1961         range "25 | 50 | 75 | 100";
1962       }
1963       units "%";
1964       mandatory false;
1965       description
1966         "The attribute tReselectionNr (parameter TreselectionNR in
1967          3GPP TS 38.304) multiplied with this scaling factor if the UE is in
1968          medium mobility state.";
1969       reference
1970         "Speed dependent ScalingFactor for TreselectionNR for medium
1971          mobility state in 3GPP TS 38.304";
1972     }
1973     leaf nRFrequencyRef {
1974       type DistinguishedName;
1975       mandatory false;
1976       description
1977         "Reference to a corresponding NRFrequency instance.";
1978     }
1979   } // grouping
1980
1981   grouping ManagedNFServiceGroup {
1982     description
1983       "A ManagedNFService representing a Network Function (NF) service.";
1984     reference
1985       "Clause 7 of 3GPP TS 23.501.";
1986     leaf userLabel {
1987       type string;
1988       description
1989         "A user-friendly (and user assignable) name of this object.";
1990     }
1991     list sAP {
1992       key "host port";
1993       min-elements 1;
1994       max-elements 1;
1995       description
1996         "The service access point of the managed NF service instance";
1997       uses SAP;
1998     }
1999   } // grouping
2000
2001   // container for RAN Network
2002
2003   container ran-network {
2004     description
2005       "Represents telecommunications equipment or
2006        TMN entities within the telecommunications network providing support
2007        and/or service to the subscriber.";
2008     list NearRTRIC {
2009       key "idNearRTRIC"; // list GNBCUCPFunction
2010       description
2011         "A list of expected near-real-time RIC O-RAN managed functions.";
2012       leaf idNearRTRIC {
2013         type string;
2014         description
2015           "Key leaf (namingAttribute) for a class/list.
2016            Should be used as a key leaf for lists representing
2017            stage 2 classes.";
2018         reference
2019           "3GPP TS 32.300 Name convention for managed objects";
2020       }
2021       container attributes {
2022         description
2023           "TODO";
2024         uses NearRTRICGroup;
2025       }
2026       list GNBDUFunction {
2027         key "idGNBDUFunction";
2028         description
2029           "Represents the logical function DU of gNB or en-gNB.";
2030         reference
2031           "3GPP TS 28.541";
2032         leaf idGNBDUFunction {
2033           type string;
2034           description
2035             "TODO";
2036         }
2037         container attributes {
2038           description
2039             "TODO";
2040           uses GNBDUFunctionGroup;
2041           uses ManagedNFServiceGroup;
2042         }
2043         list NRCellDU {
2044           key "idNRCellDU";
2045           description
2046             "Represents the information of a cell known by DU.";
2047           reference
2048             "3GPP TS 28.541";
2049           leaf idNRCellDU {
2050             type string;
2051             description
2052               "TODO";
2053           }
2054           container attributes {
2055             description
2056               "TODO";
2057             uses NRCellDUGroup;
2058             uses ManagedNFServiceGroup;
2059           }
2060         } // list NRCellDU
2061       } // list GNBDUFunction
2062       list GNBCUUPFunction {
2063         key "idGNBCUUPFunction";
2064         description
2065           "TODO";
2066         leaf idGNBCUUPFunction {
2067           type string;
2068           description
2069             "TODO";
2070         }
2071         container attributes {
2072           description
2073             "TODO";
2074           uses GNBCUUPFunctionGroup;
2075           uses ManagedNFServiceGroup;
2076         }
2077       } // list GNBCUUPFunction
2078       list GNBCUCPFunction {
2079         key "idGNBCUCPFunction"; // list NRCellCU
2080         description
2081           "Represents the logical function CU-CP of gNB and en-gNB.";
2082         reference
2083           "3GPP TS 28.541";
2084         leaf idGNBCUCPFunction {
2085           type string;
2086           description
2087             "TODO";
2088         }
2089         container attributes {
2090           description
2091             "TODO";
2092           uses GNBCUCPFunctionGroup;
2093           uses ManagedNFServiceGroup;
2094         }
2095         list NRCellCU {
2096           key "idNRCellCU";
2097           description
2098             "Represents the information required by CU that is
2099              responsible for the management of inter-cell mobility and neighbour
2100              relations via ANR.";
2101           reference
2102             "3GPP TS 28.541";
2103           leaf idNRCellCU {
2104             type string;
2105             description
2106               "TODO";
2107           }
2108           container attributes {
2109             description
2110               "TODO";
2111             uses NRCellCUGroup;
2112             uses ManagedNFServiceGroup;
2113           }
2114           list NRCellRelation {
2115             key "idNRCellRelation";
2116             description
2117               "Represents a neighbour cell relation from a source cell
2118                to a target cell, where the target cell is an NRCellCU or
2119                ExternalNRCellCU instance.";
2120             reference
2121               "3GPP TS 28.541";
2122             leaf idNRCellRelation {
2123               type string;
2124               description
2125                 "TODO";
2126             }
2127             container attributes {
2128               description
2129                 "TODO";
2130               uses NRCellRelationGroup;
2131               uses ManagedNFServiceGroup;
2132             }
2133           } // list NRCellRelation
2134           list NRFreqRelation {
2135             key "idNRFreqRelation";
2136             description
2137               "Together with the target NRFrequency, it represents the
2138                frequency properties applicable to the referencing NRFreqRelation.";
2139             reference
2140               "3GPP TS 28.541";
2141             leaf idNRFreqRelation {
2142               type string;
2143               description
2144                 "TODO";
2145             }
2146             container attributes {
2147               description
2148                 "TODO";
2149               uses NRFreqRelationGroup;
2150               uses ManagedNFServiceGroup;
2151             }
2152           } // list NRFreqRelation
2153         }
2154       }
2155     } // list ManagedElement
2156   }
2157 }