Fix cps ran yang data model
[cps.git] / cps-ri / src / main / resources / changelog / db / changes / 08-update-yang-resources-cps-ran-model-rollback.sql
1 update yang_resource set
2 name = 'cps-ran-schema-model2021-01-28.yang',
3 checksum = '436fef591eba7f38d1a0c5e3cbd3c122f01ab41dfab37cc5a9cbca1ed53b29fb',
4 content = 'module cps-ran-schema-model {
5   yang-version 1.1;
6   namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model";
7   prefix rn;
8
9   import ietf-inet-types {
10     prefix inet;
11   }
12   import ietf-yang-types {
13     prefix yang;
14   }
15
16   organization
17     "Open Network Automation Platform - ONAP
18      <https://www.onap.org>";
19   contact
20     "Editors:
21        Sandeep Shah
22        <mailto:sandeep.shah@ibm.com>
23
24        Swaminathan Seetharaman
25        <mailto:swaminathan.seetharaman@wipro.com>";
26   description
27     "This module contains a collection of YANG definitions for capturing
28      relationships among managed elements of the radio access Network
29      to be stored in ONAP CPS platform.
30
31      Copyright 2020-2021 IBM.
32
33      Licensed under the Apache License, Version 2.0 (the ''''License'''');
34      you may not use this file except in compliance with the License.
35      You may obtain a copy of the License at
36
37      http://www.apache.org/licenses/LICENSE-2.0
38
39      Unless required by applicable law or agreed to in writing, software
40      distributed under the License is distributed on an ''''AS IS'''' BASIS,
41      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
42      See the License for the specific language governing permissions and
43      limitations under the License.";
44
45   revision 2021-01-28 {
46     description
47       "CPS RAN Network YANG Model for ONAP/O-RAN POC";
48     reference
49       "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin";
50   }
51
52   typedef usageState {
53     type enumeration {
54       enum IDLE {
55         description
56           "TODO";
57       }
58       enum ACTIVE {
59         description
60           "TODO";
61       }
62       enum BUSY {
63         description
64           "TODO";
65       }
66     }
67     description
68       "It describes whether or not the resource is actively in
69        use at a specific instant, and if so, whether or not it has spare
70        capacity for additional users at that instant. The value is READ-ONLY.";
71     reference
72       "ITU T Recommendation X.731";
73   }
74
75   typedef Mcc {
76     type string;
77     description
78       "The mobile country code consists of three decimal digits,
79        The first digit of the mobile country code identifies the geographic
80        region (the digits 1 and 8 are not used):";
81     reference
82       "3GPP TS 23.003 subclause 2.2 and 12.1";
83   }
84
85   typedef Mnc {
86     type string;
87     description
88       "The mobile network code consists of two or three
89        decimal digits (for example: MNC of 001 is not the same as MNC of 01)";
90     reference
91       "3GPP TS 23.003 subclause 2.2 and 12.1";
92   }
93
94   typedef Nci {
95     type string;
96     description
97       "NR Cell Identity. The NCI shall be of fixed length of 36 bits
98        and shall be coded using full hexadecimal representation.
99        The exact coding of the NCI is the responsibility of each PLMN operator";
100     reference
101       "TS 23.003";
102   }
103
104   typedef OperationalState {
105     type enumeration {
106       enum DISABLED {
107         value 0;
108         description
109           "The resource is totally inoperable.";
110       }
111       enum ENABLED {
112         value 1;
113         description
114           "The resource is partially or fully operable.";
115       }
116     }
117     description
118       "TODO";
119     reference
120       "3GPP TS 28.625 and ITU-T X.731";
121   }
122
123   typedef AvailabilityStatus {
124     type enumeration {
125       enum IN_TEST {
126         description
127           "TODO";
128       }
129       enum FAILED {
130         description
131           "TODO";
132       }
133       enum POWER_OFF {
134         description
135           "TODO";
136       }
137       enum OFF_LINE {
138         description
139           "TODO";
140       }
141       enum OFF_DUTY {
142         description
143           "TODO";
144       }
145       enum DEPENDENCY {
146         description
147           "TODO";
148       }
149       enum DEGRADED {
150         description
151           "TODO";
152       }
153       enum NOT_INSTALLED {
154         description
155           "TODO";
156       }
157       enum LOG_FULL {
158         description
159           "TODO";
160       }
161     }
162     description
163       "TODO";
164     reference
165       "TODO";
166   }
167
168   typedef CellState {
169     type enumeration {
170       enum IDLE {
171         description
172           "TODO";
173       }
174       enum INACTIVE {
175         description
176           "TODO";
177       }
178       enum ACTIVE {
179         description
180           "TODO";
181       }
182     }
183     description
184       "TODO";
185     reference
186       "TODO";
187   }
188
189   typedef SNssai {
190     type string;
191     description
192       "Single Network Slice Selection Assistance Information.";
193     reference
194       "TS 23.501 clause 5.15.2";
195   }
196
197   typedef Sst {
198     type uint8;
199     description
200       "TODO";
201     reference
202       "TODO";
203   }
204
205   typedef Nrpci {
206     type uint32;
207     description
208       "Physical Cell Identity (PCI) of the NR cell.";
209     reference
210       "TS 36.211 subclause 6.11";
211   }
212
213   typedef Tac {
214     type int32 {
215       range "0..16777215";
216     }
217     description
218       "Tracking Area Code";
219     reference
220       "TS 23.003 clause 19.4.2.3";
221   }
222
223   typedef AmfRegionId {
224     type string;
225     description
226       "";
227     reference
228       "clause 2.10.1 of 3GPP TS 23.003";
229   }
230
231   typedef AmfSetId {
232     type string;
233     description
234       "";
235     reference
236       "clause 2.10.1 of 3GPP TS 23.003";
237   }
238
239   typedef AmfPointer {
240     type string;
241     description
242       "";
243     reference
244       "clause 2.10.1 of 3GPP TS 23.003";
245   }
246
247   // type definitions especially for core NFs
248
249   typedef NfType {
250     type enumeration {
251       enum NRF {
252         description
253           "TODO";
254       }
255       enum UDM {
256         description
257           "TODO";
258       }
259       enum AMF {
260         description
261           "TODO";
262       }
263       enum SMF {
264         description
265           "TODO";
266       }
267       enum AUSF {
268         description
269           "TODO";
270       }
271       enum NEF {
272         description
273           "TODO";
274       }
275       enum PCF {
276         description
277           "TODO";
278       }
279       enum SMSF {
280         description
281           "TODO";
282       }
283       enum NSSF {
284         description
285           "TODO";
286       }
287       enum UDR {
288         description
289           "TODO";
290       }
291       enum LMF {
292         description
293           "TODO";
294       }
295       enum GMLC {
296         description
297           "TODO";
298       }
299       enum 5G_EIR {
300         description
301           "TODO";
302       }
303       enum SEPP {
304         description
305           "TODO";
306       }
307       enum UPF {
308         description
309           "TODO";
310       }
311       enum N3IWF {
312         description
313           "TODO";
314       }
315       enum AF {
316         description
317           "TODO";
318       }
319       enum UDSF {
320         description
321           "TODO";
322       }
323       enum BSF {
324         description
325           "TODO";
326       }
327       enum CHF {
328         description
329           "TODO";
330       }
331     }
332     description
333       "TODO";
334   }
335
336   typedef NotificationType {
337     type enumeration {
338       enum N1_MESSAGES {
339         description
340           "TODO";
341       }
342       enum N2_INFORMATION {
343         description
344           "TODO";
345       }
346       enum LOCATION_NOTIFICATION {
347         description
348           "TODO";
349       }
350     }
351     description
352       "TODO";
353   }
354
355   typedef Load {
356     type uint8 {
357       range "0..100";
358     }
359     description
360       "Latest known load information of the NF, percentage ";
361   }
362
363   typedef N1MessageClass {
364     type enumeration {
365       enum 5GMM {
366         description
367           "TODO";
368       }
369       enum SM {
370         description
371           "TODO";
372       }
373       enum LPP {
374         description
375           "TODO";
376       }
377       enum SMS {
378         description
379           "TODO";
380       }
381     }
382     description
383       "TODO";
384   }
385
386   typedef N2InformationClass {
387     type enumeration {
388       enum SM {
389         description
390           "TODO";
391       }
392       enum NRPPA {
393         description
394           "TODO";
395       }
396       enum PWS {
397         description
398           "TODO";
399       }
400       enum PWS_BCAL {
401         description
402           "TODO";
403       }
404       enum PWS_RF {
405         description
406           "TODO";
407       }
408     }
409     description
410       "TODO";
411     reference
412       "TODO";
413   }
414
415   typedef NsiId {
416     type string;
417     description
418       "TODO";
419   }
420
421   typedef UeMobilityLevel {
422     type enumeration {
423       enum STATIONARY {
424         description
425           "TODO";
426       }
427       enum NOMADIC {
428         description
429           "TODO";
430       }
431       enum RESTRICTED_MOBILITY {
432         description
433           "TODO";
434       }
435       enum FULLY_MOBILITY {
436         description
437           "TODO";
438       }
439     }
440     description
441       "TODO";
442     reference
443       "TODO";
444   }
445
446   typedef ResourceSharingLevel {
447     type enumeration {
448       enum SHARED {
449         description
450           "TODO";
451       }
452       enum NOT_SHARED {
453         description
454           "TODO";
455       }
456     }
457     description
458       "TODO";
459     reference
460       "TODO";
461   }
462
463   typedef TxDirection {
464     type enumeration {
465       enum DL {
466         description
467           "TODO";
468       }
469       enum UL {
470         description
471           "TODO";
472       }
473       enum DL_AND_UL {
474         description
475           "TODO";
476       }
477     }
478     description
479       "TODO";
480     reference
481       "TODO";
482   }
483
484   typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ?
485     type string;
486     description
487       "Represents the international standard for the representation
488        of Distinguished Name (RFC 4512).
489        The format of the DistinguishedName REGEX is:
490        {AttributeType = AttributeValue}
491
492        AttributeType consists of alphanumeric and hyphen (OIDs not allowed).
493        All other characters are restricted.
494        The Attribute value cannot contain control characters or the
495        following characters :  > < ; " + , (Comma) and White space
496        The Attribute value can contain the following characters if they
497        are excaped :  > < ; " + , (Comma) and White space
498        The Attribute value can contain control characters if its an escaped
499        double digit hex number.
500        Examples could be
501        UID=nobody@example.com,DC=example,DC=com
502        CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US";
503     reference
504       "RFC 4512 Lightweight Directory Access Protocol (LDAP):
505              Directory Information Models";
506   } // recheck regexp it doesn''''t handle posix [:cntrl:]
507
508   typedef QOffsetRange {
509     type int8;
510     units "dB";
511     description
512       "TODO";
513     reference
514       "TODO";
515   }
516
517   typedef QuotaType {
518     type enumeration {
519       enum STRICT {
520         description
521           "TODO";
522       }
523       enum FLOAT {
524         description
525           "TODO";
526       }
527     }
528     description
529       "TODO";
530   }
531
532   typedef CyclicPrefix {
533     type enumeration {
534       enum NORMAL {
535         description
536           "TODO";
537       }
538       enum EXTENDED {
539         description
540           "TODO";
541       }
542     }
543     description
544       "TODO";
545   }
546
547   grouping PLMNInfo {
548     description
549       "The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have
550        two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId represents a data type that
551        is comprised of mcc (mobile country code) and mnc (mobile network code), (See TS 23.003
552        subclause 2.2 and 12.1) and S-NSSAI represents an data type, that is comprised of an SST
553        (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13]).";
554     uses PLMNId;
555     list sNSSAIList {
556       key "sNssai";
557       uses sNSSAIConfig;
558       description "List of sNSSAIs";
559     }
560   }
561
562   grouping ManagedNFProfile {
563     description
564       "Defines profile for managed NF";
565     reference
566       "3GPP TS 23.501";
567     leaf idx {
568       type uint32;
569       description
570         "TODO";
571       reference
572         "3GPP TS 23.501";
573     }
574     leaf nfInstanceID {
575       type yang:uuid;
576       config false;
577       mandatory false;
578       description
579         "This parameter defines profile for managed NF.
580          The format of the NF Instance ID shall be a
581          Universally Unique Identifier (UUID) version 4,
582          as described in IETF RFC 4122 ";
583     }
584     leaf-list nfType {
585       type NfType;
586       config false;
587       min-elements 1;
588       description
589         "Type of the Network Function";
590     }
591     leaf hostAddr {
592       type inet:host;
593       mandatory false;
594       description
595         "Host address of a NF";
596     }
597     leaf authzInfo {
598       type string;
599       description
600         "This parameter defines NF Specific Service authorization
601          information. It shall include the NF type (s) and NF realms/origins
602          allowed to consume NF Service(s) of NF Service Producer.";
603       reference
604         "See TS 23.501";
605     }
606     leaf location {
607       type string;
608       description
609         "Information about the location of the NF instance
610          (e.g. geographic location, data center) defined by operator";
611       reference
612         "TS 29.510";
613     }
614     leaf capacity {
615       type uint16;
616       mandatory false;
617       description
618         "This parameter defines static capacity information
619          in the range of 0-65535, expressed as a weight relative to other
620          NF instances of the same type; if capacity is also present in the
621          nfServiceList parameters, those will have precedence over this value.";
622       reference
623         "TS 29.510";
624     }
625     leaf nFSrvGroupId {
626       type string;
627       description
628         "This parameter defines identity of the group that is
629          served by the NF instance.
630          May be config false or true depending on the ManagedFunction.
631          Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo.
632          Shall be present if ../nfType = UDM or AUSF or UDR. ";
633       reference
634         "TS 29.510";
635     }
636     leaf-list supportedDataSetIds {
637       type enumeration {
638         enum SUBSCRIPTION {
639           description
640             "TODO";
641         }
642         enum POLICY {
643           description
644             "TODO";
645         }
646         enum EXPOSURE {
647           description
648             "TODO";
649         }
650         enum APPLICATION {
651           description
652             "TODO";
653         }
654       }
655       description
656         "List of supported data sets in the UDR instance.
657          May be present if ../nfType = UDR";
658       reference
659         "TS 29.510";
660     }
661     leaf-list smfServingAreas {
662       type string;
663       description
664         "Defines the SMF service area(s) the UPF can serve.
665          Shall be present if ../nfType = UPF";
666       reference
667         "TS 29.510";
668     }
669     leaf priority {
670       type uint16;
671       description
672         "This parameter defines Priority (relative to other NFs
673          of the same type) in the range of 0-65535, to be used for NF selection;
674          lower values indicate a higher priority. If priority is also present
675          in the nfServiceList parameters, those will have precedence over
676          this value. Shall be present if ../nfType = AMF ";
677       reference
678         "TS 29.510";
679     }
680   }
681
682
683   grouping PLMNId {
684     description
685       "TODO";
686     reference
687       "TS 23.658";
688     leaf mcc {
689       type Mcc;
690       mandatory true;
691       description
692         "TODO";
693     }
694     leaf mnc {
695       type Mnc;
696       mandatory true;
697       description
698         "TODO";
699     }
700   }
701
702   grouping AmfIdentifier {
703     description
704       "The AMFI is constructed from an AMF Region ID,
705        an AMF Set ID and an AMF Pointer.
706        The AMF Region ID identifies the region,
707        the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and
708        the AMF Pointer uniquely identifies the AMF within the AMF Set. ";
709     leaf amfRegionId {
710       type AmfRegionId;
711       description
712         "TODO";
713     }
714     leaf amfSetId {
715       type AmfSetId;
716       description
717         "TODO";
718     }
719     leaf amfPointer {
720       type AmfPointer;
721       description
722         "TODO";
723     }
724   }
725
726   grouping DefaultNotificationSubscription {
727     description
728       "TODO";
729     leaf notificationType {
730       type NotificationType;
731       description
732         "TODO";
733     }
734     leaf callbackUri {
735       type inet:uri;
736       description
737         "TODO";
738     }
739     leaf n1MessageClass {
740       type N1MessageClass;
741       description
742         "TODO";
743     }
744     leaf n2InformationClass {
745       type N2InformationClass;
746       description
747         "TODO";
748     }
749   }
750
751   grouping Ipv4AddressRange {
752     description
753       "TODO";
754     leaf start {
755       type inet:ipv4-address;
756       description
757         "TODO";
758     }
759     leaf end {
760       type inet:ipv4-address;
761       description
762         "TODO";
763     }
764   }
765
766   grouping Ipv6PrefixRange {
767     description
768       "TODO";
769     leaf start {
770       type inet:ipv6-prefix;
771       description
772         "TODO";
773     }
774     leaf end {
775       type inet:ipv6-prefix;
776       description
777         "TODO";
778     }
779   }
780
781   grouping AddressWithVlan {
782     description
783       "TODO";
784     leaf ipAddress {
785       type inet:ip-address;
786       description
787         "TODO";
788     }
789     leaf vlanId {
790       type uint16;
791       description
792         "TODO";
793     }
794   }
795
796   grouping ManagedElementGroup {
797     description
798       "Abstract class representing telecommunications resources.";
799     leaf dnPrefix {
800       type DistinguishedName;
801       description
802         "Provides naming context and splits the DN into a DN Prefix and Local DN";
803     }
804     leaf userLabel {
805       type string;
806       description
807         "A user-friendly name of this object.";
808     }
809     leaf locationName {
810       type string;
811       config false;
812       description
813         "The physical location (e.g. an address) of an entity";
814     }
815     leaf-list managedBy {
816       type DistinguishedName;
817       config false;
818       description
819         "Relates to the role played by ManagementSystem";
820     }
821     leaf-list managedElementTypeList {
822       type string;
823       config false;
824       min-elements 1;
825       description
826         "The type of functionality provided by the ManagedElement.
827          It may represent one ME functionality or a combination of
828          Two examples of allowed values are:
829          -  NodeB;
830          -  HLR, VLR.";
831     }
832   } // Managed Element grouping
833
834   grouping NearRTRICGroup {
835     description
836       "Abstract class representing Near RT RIC.";
837     leaf dnPrefix {
838       type DistinguishedName;
839       description
840         "Provides naming context and splits the DN into a DN Prefix and Local DN";
841     }
842     leaf userLabel {
843       type string;
844       description
845         "A user-friendly name of this object.";
846     }
847     leaf locationName {
848       type string;
849       config false;
850       description
851         "The physical location (e.g. an address) of an entity";
852     }
853     leaf gNBId {
854           type int64 { range "0..4294967295"; }
855           config false;
856           description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
857             is part of the NR Cell Identifier (NCI) of the gNB cells.";
858           reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
859         }
860
861         list pLMNInfoList {
862           uses PLMNInfo;
863           key "mcc mnc";
864           description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC.";
865         }
866     list RRMPolicyRatio {
867       key id;
868       leaf id {
869         type string;
870         description
871           "Key leaf";
872       }
873       container attributes {
874         uses RRMPolicyRatioGroup;
875       }
876       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
877         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
878         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
879         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
880     }
881
882   } // Near RT RIC grouping
883
884
885
886         grouping Configuration{
887                 leaf configParameter{
888                         type string;
889                         description "Type of the configuration parameter";
890         }
891                 leaf configValue{
892                         type int64;
893                         description "Identifies the configuration to be done for the network elements under the NearRTRIC";
894
895                 }
896         }
897
898
899   grouping GNBDUFunctionGroup {
900     description
901       "Represents the GNBDUFunction IOC.";
902     reference
903       "3GPP TS 28.541";
904
905     leaf gNBId {
906       type int64 {
907         range "0..4294967295";
908       }
909       config false;
910       mandatory false;
911       description
912         "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
913          is part of the NR Cell Identifier (NCI) of the gNB cells.";
914       reference
915         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
916     }
917     leaf gNBIdLength {
918       type int32 {
919         range "22..32";
920       }
921       mandatory false;
922       description
923         "Indicates the number of bits for encoding the gNB ID.";
924       reference
925         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
926     }
927     leaf gNBDUId {
928       type int64 {
929         range "0..68719476735";
930       }
931       mandatory false;
932       description
933         "Uniquely identifies the DU at least within a gNB.";
934       reference
935         "3GPP TS 38.473";
936     }
937     leaf gNBDUName {
938       type string {
939         length "1..150";
940       }
941       description
942         "Identifies the Distributed Unit of an NR node";
943       reference
944         "3GPP TS 38.473";
945     }
946     list RRMPolicyRatio {
947       key id;
948       leaf id {
949         type string;
950         description
951           "Key leaf";
952       }
953       container attributes {
954         uses RRMPolicyRatioGroup;
955       }
956       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
957         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
958         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
959         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
960     }
961   }
962
963   grouping NRCellDUGroup {
964     description
965       "Represents the NRCellDU IOC.";
966     reference
967       "3GPP TS 28.541";
968     list RRMPolicyRatio {
969       key id;
970       leaf id {
971         type string;
972         description
973           "Key leaf";
974       }
975       container attributes {
976         uses RRMPolicyRatioGroup;
977       }
978       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
979         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
980         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
981         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
982     }
983     leaf cellLocalId {
984       type int32 {
985         range "0..16383";
986       }
987       mandatory false;
988       description
989         "Identifies an NR cell of a gNB. Together with the
990          corresponding gNB identifier in forms the NR Cell Identity (NCI).";
991       reference
992         "NCI in 3GPP TS 38.300";
993     }
994     list pLMNInfoList {
995       key "mcc mnc";
996       min-elements 1;
997       description
998         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
999          can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for
1000          corresponding PLMN in case of network slicing feature is supported. The plMNId of the first
1001          entry of the list is the PLMNId used to construct the nCGI for the NR cell.";
1002       uses PLMNInfo;
1003     }
1004     leaf nRPCI {
1005       type int32 {
1006         range "0..1007";
1007       }
1008       mandatory false;
1009       description
1010         "The Physical Cell Identity (PCI) of the NR cell.";
1011       reference
1012         "3GPP TS 36.211";
1013     }
1014     leaf nRTAC {
1015       type Tac;
1016       description
1017         "The common 5GS Tracking Area Code for the PLMNs.";
1018       reference
1019         "3GPP TS 23.003, 3GPP TS 38.473";
1020     }
1021   } // grouping
1022
1023   grouping rRMPolicyMemberGroup {
1024     description
1025       "TODO";
1026     uses PLMNId;
1027     leaf sNSSAI {
1028       type SNssai;
1029       description
1030         "This data type represents an RRM Policy member that will be part of a
1031          rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI).
1032          The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources
1033          based on settings in RRMPolicy.";
1034     }
1035   }
1036
1037   grouping RRMPolicyRatioGroup {
1038
1039     uses RRMPolicy_Group;    // Inherits RRMPolicy_
1040
1041     leaf quotaType {
1042       type QuotaType;
1043       mandatory false;
1044       description "The type of the quota which allows to allocate resources as
1045         strictly usable for defined slice(s) (strict quota) or allows that
1046         resources to be used by other slice(s) when defined slice(s) do not
1047         need them (float quota).";
1048     }
1049
1050     leaf rRMPolicyMaxRatio {
1051       type uint8;
1052       mandatory false;
1053       units percent;
1054       description "The RRM policy setting the maximum percentage of radio
1055         resources to be allocated to the corresponding S-NSSAI list. This
1056         quota can be strict or float quota. Strict quota means resources are
1057         not allowed for other sNSSAIs even when they are not used by the
1058         defined sNSSAIList. Float quota resources can be used by other sNSSAIs
1059         when the defined sNSSAIList do not need them. Value 0 indicates that
1060         there is no maximum limit.";
1061     }
1062
1063     leaf rRMPolicyMinRatio {
1064       type uint8;
1065       mandatory false;
1066       units percent;
1067       description "The RRM policy setting the minimum percentage of radio
1068         resources to be allocated to the corresponding S-NSSAI list. This
1069         quota can be strict or float quota. Strict quota means resources are
1070         not allowed for other sNSSAIs even when they are not used by the
1071         defined sNSSAIList. Float quota resources can be used by other sNSSAIs
1072         when the defined sNSSAIList do not need them. Value 0 indicates that
1073         there is no minimum limit.";
1074     }
1075     leaf rRMPolicyDedicatedRatio {
1076       type uint8;
1077       units percent;
1078       description "Dedicated Ration.";
1079       }
1080     description "Represents the RRMPolicyRatio concrete IOC.";
1081     }
1082
1083
1084   grouping sNSSAIConfig{
1085         leaf sNssai {
1086         type string;
1087         description "s-NSSAI of a network slice.";
1088            reference "3GPP TS 23.003";
1089       }
1090          leaf status {
1091         type string;
1092         description "status of s-NSSAI";
1093       }
1094         list configData{
1095                 uses Configuration;
1096                 key "configParameter";
1097                 description "List of configurations to be done at the network elements";
1098         }
1099         }
1100
1101   grouping RRMPolicy_Group {
1102     description
1103       "This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC
1104        needs to be subclassed to be instantiated. It defines two attributes apart from those
1105        inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC
1106        connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the
1107        RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType
1108        attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in
1109        GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1110        inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies,
1111        both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1112        abstract RRMPolicy_ IOC.";
1113     leaf resourceType {
1114       type string;
1115       mandatory false;
1116       description
1117         "The resourceType attribute defines type of resource (PRB, RRC connected users,
1118          DRB usage etc.) that is subject to policy. Valid values are ''''PRB'''', ''''RRC'''' or ''''DRB''''";
1119     }
1120     list rRMPolicyMemberList {
1121       key "idx";
1122       leaf idx {
1123         type uint32;
1124         description
1125           "TODO";
1126       }
1127       description
1128         "It represents the list of RRMPolicyMember (s) that the managed object
1129          is supporting. A RRMPolicyMember <<dataType>> include the PLMNId <<dataType>>
1130          and S-NSSAI <<dataType>>.";
1131       uses rRMPolicyMemberGroup;
1132     }
1133   } // grouping
1134
1135   grouping GNBCUUPFunctionGroup {
1136     description
1137       "Represents the GNBCUUPFunction IOC.";
1138     reference
1139       "3GPP TS 28.541";
1140
1141     list RRMPolicyRatio {
1142       key id;
1143       leaf id {
1144         type string;
1145         description
1146           "Key leaf";
1147       }
1148       container attributes {
1149         uses RRMPolicyRatioGroup;
1150       }
1151       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1152         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1153         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1154         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1155     }
1156     leaf gNBCUUPId {
1157       type uint64 {
1158         range "0..68719476735";
1159       }
1160       config false;
1161       mandatory false;
1162       description
1163         "Identifies the gNB-CU-UP at least within a gNB-CU-CP";
1164       reference
1165         "''''gNB-CU-UP ID'''' in subclause 9.3.1.15 of 3GPP TS 38.463";
1166     }
1167     leaf gNBId {
1168       type int64 {
1169       range "0..4294967295";
1170     }
1171       mandatory false;
1172       description
1173         "Indicates the number of bits for encoding the gNB Id.";
1174       reference
1175         "gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1176     }
1177     list pLMNInfoList {
1178       key "mcc mnc";
1179       description
1180         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that
1181          can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the
1182          GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported";
1183       uses PLMNInfo;
1184     }
1185   } // grouping
1186
1187   grouping GNBCUCPFunctionGroup {
1188     description
1189       "Represents the GNBCUCPFunction IOC.";
1190     reference
1191       "3GPP TS 28.541";
1192     list RRMPolicyRatio {
1193       key id;
1194       leaf id {
1195         type string;
1196         description
1197           "Key leaf";
1198       }
1199       container attributes {
1200         uses RRMPolicyRatioGroup;
1201       }
1202       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1203         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1204         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1205         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1206     }
1207     leaf gNBId {
1208       type int64 {
1209         range "0..4294967295";
1210       }
1211       mandatory false;
1212       description
1213         "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID)
1214          is part of the NR Cell Identifier (NCI) of the gNB cells.";
1215       reference
1216         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1217     }
1218     leaf gNBIdLength {
1219       type int32 {
1220         range "22..32";
1221       }
1222       mandatory false;
1223       description
1224         "Indicates the number of bits for encoding the gNB ID.";
1225       reference
1226         "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
1227     }
1228     leaf gNBCUName {
1229       type string {
1230         length "1..150";
1231       }
1232       mandatory false;
1233       description
1234         "Identifies the Central Unit of an gNB.";
1235       reference
1236         "3GPP TS 38.473";
1237     }
1238     list pLMNId {
1239       key "mcc mnc";
1240       min-elements 1;
1241       max-elements 1;
1242       description
1243         "The PLMN identifier to be used as part of the global RAN
1244          node identity.";
1245       uses PLMNId;
1246     }
1247   } // grouping
1248
1249   grouping NRCellCUGroup {
1250     description
1251       "Represents the NRCellCU IOC.";
1252     reference
1253       "3GPP TS 28.541";
1254     leaf cellLocalId {
1255       type int32 {
1256         range "0..16383";
1257       }
1258       mandatory false;
1259       description
1260         "Identifies an NR cell of a gNB. Together with corresponding
1261          gNB ID it forms the NR Cell Identifier (NCI).";
1262     }
1263     list pLMNInfoList {
1264       key "mcc mnc";
1265       min-elements 1;
1266       description
1267         "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs
1268          that can be served by the NR cell, and which S-NSSAIs that can be supported by the
1269          NR cell for corresponding PLMN in case of network slicing feature is supported.";
1270       uses PLMNInfo;
1271       // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation.
1272     }
1273     list RRMPolicyRatio {
1274       key id;
1275       leaf id {
1276         type string;
1277         description
1278           "Key leaf";
1279       }
1280       container attributes {
1281         uses RRMPolicyRatioGroup;
1282       }
1283       description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the
1284         inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both
1285         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
1286         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
1287     }
1288   } // grouping NRCellCUGroup
1289
1290   grouping NRCellRelationGroup {
1291     description
1292       "Represents the NRCellRelation IOC.";
1293     reference
1294       "3GPP TS 28.541";
1295     leaf nRTCI {
1296       type uint64;
1297       description
1298         "Target NR Cell Identifier. It consists of NR Cell
1299          Identifier (NCI) and Physical Cell Identifier of the target NR cell
1300          (nRPCI).";
1301     '
1302 where name = 'cps-ran-schema-model@2021-01-28.yang'
1303 and checksum = 'a825c571c4a1d585a7f09a3716dedbfab1146abc4725b75a16f9ac89440bf46b';