From a8491643dbb5dbeb0f3602b1bce65e72ade61485 Mon Sep 17 00:00:00 2001 From: shivasubedi Date: Wed, 16 Jun 2021 11:42:52 +0100 Subject: Update CPS ran model schema to the latest version - file name updates - fixed sql statements in the forward and rollback files - Updated to use insert statements instead of update statements - Removing liquibase steps Issue-ID: CPS-451 Signed-off-by: shivasubedi Change-Id: I3e08574837dfa0f16cf06a16b07de24788923411 --- .../onap/cps/api/impl/E2ENetworkSliceSpec.groovy | 2 +- .../e2e/basic/cps-ran-schema-model-data-v4.json | 6 +- .../e2e/basic/cps-ran-schema-model@2021-01-28.yang | 1452 ------------------ .../e2e/basic/cps-ran-schema-model@2021-05-19.yang | 1563 ++++++++++++++++++++ 4 files changed, 1567 insertions(+), 1456 deletions(-) delete mode 100644 cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang create mode 100644 cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang (limited to 'cps-service') diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy index a09166df1..aa54a9991 100755 --- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy +++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy @@ -150,7 +150,7 @@ class E2ENetworkSliceSpec extends Specification { def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap( 'ietf/ietf-inet-types@2013-07-15.yang', 'ietf/ietf-yang-types@2013-07-15.yang', - 'e2e/basic/cps-ran-schema-model@2021-01-28.yang' + 'e2e/basic/cps-ran-schema-model@2021-05-19.yang' ) and : 'json data' def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-schema-model-data-v4.json') diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json index 0925eef73..fba875bd7 100644 --- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json +++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json @@ -4,9 +4,9 @@ { "idNearRTRIC": "11", "attributes":{ - "ranNFNSSIIdList":[ - "ac8ca1a9-e1ec-4480-8720-c74e92566885" - ] + "ranNFNSSIIdList":[ + "ac8ca1a9-e1ec-4480-8720-c74e92566885" + ] }, "GNBCUUPFunction": [ { diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang deleted file mode 100644 index 224e884aa..000000000 --- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang +++ /dev/null @@ -1,1452 +0,0 @@ -module cps-ran-schema-model { - yang-version 1.1; - namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model"; - prefix rn; - - import ietf-inet-types { - prefix inet; - } - import ietf-yang-types { - prefix yang; - } - - organization - "Open Network Automation Platform - ONAP - "; - contact - "Editors: - Sandeep Shah - - - Swaminathan Seetharaman - "; - description - "This module contains a collection of YANG definitions for capturing - relationships among managed elements of the radio access Network - to be stored in ONAP CPS platform. - - Copyright 2020-2021 IBM. - - Licensed under the Apache License, Version 2.0 (the 'License'); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an 'AS IS' BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License."; - - revision 2021-01-28 { - description - "CPS RAN Network YANG Model for ONAP/O-RAN POC"; - reference - "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; - } - - typedef usageState { - type enumeration { - enum IDLE { - description - "TODO"; - } - enum ACTIVE { - description - "TODO"; - } - enum BUSY { - description - "TODO"; - } - } - description - "It describes whether or not the resource is actively in - use at a specific instant, and if so, whether or not it has spare - capacity for additional users at that instant. The value is READ-ONLY."; - reference - "ITU T Recommendation X.731"; - } - - typedef Mcc { - type string; - description - "The mobile country code consists of three decimal digits, - The first digit of the mobile country code identifies the geographic - region (the digits 1 and 8 are not used):"; - reference - "3GPP TS 23.003 subclause 2.2 and 12.1"; - } - - typedef Mnc { - type string; - description - "The mobile network code consists of two or three - decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; - reference - "3GPP TS 23.003 subclause 2.2 and 12.1"; - } - - typedef Nci { - type string; - description - "NR Cell Identity. The NCI shall be of fixed length of 36 bits - and shall be coded using full hexadecimal representation. - The exact coding of the NCI is the responsibility of each PLMN operator"; - reference - "TS 23.003"; - } - - typedef OperationalState { - type enumeration { - enum DISABLED { - value 0; - description - "The resource is totally inoperable."; - } - enum ENABLED { - value 1; - description - "The resource is partially or fully operable."; - } - } - description - "TODO"; - reference - "3GPP TS 28.625 and ITU-T X.731"; - } - - typedef AvailabilityStatus { - type enumeration { - enum IN_TEST { - description - "TODO"; - } - enum FAILED { - description - "TODO"; - } - enum POWER_OFF { - description - "TODO"; - } - enum OFF_LINE { - description - "TODO"; - } - enum OFF_DUTY { - description - "TODO"; - } - enum DEPENDENCY { - description - "TODO"; - } - enum DEGRADED { - description - "TODO"; - } - enum NOT_INSTALLED { - description - "TODO"; - } - enum LOG_FULL { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef CellState { - type enumeration { - enum IDLE { - description - "TODO"; - } - enum INACTIVE { - description - "TODO"; - } - enum ACTIVE { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef SNssai { - type string; - description - "Single Network Slice Selection Assistance Information."; - reference - "TS 23.501 clause 5.15.2"; - } - - typedef Sst { - type uint8; - description - "TODO"; - reference - "TODO"; - } - - typedef Nrpci { - type uint32; - description - "Physical Cell Identity (PCI) of the NR cell."; - reference - "TS 36.211 subclause 6.11"; - } - - typedef Tac { - type int32 { - range "0..16777215"; - } - description - "Tracking Area Code"; - reference - "TS 23.003 clause 19.4.2.3"; - } - - typedef AmfRegionId { - type string; - description - ""; - reference - "clause 2.10.1 of 3GPP TS 23.003"; - } - - typedef AmfSetId { - type string; - description - ""; - reference - "clause 2.10.1 of 3GPP TS 23.003"; - } - - typedef AmfPointer { - type string; - description - ""; - reference - "clause 2.10.1 of 3GPP TS 23.003"; - } - - // type definitions especially for core NFs - - typedef NfType { - type enumeration { - enum NRF { - description - "TODO"; - } - enum UDM { - description - "TODO"; - } - enum AMF { - description - "TODO"; - } - enum SMF { - description - "TODO"; - } - enum AUSF { - description - "TODO"; - } - enum NEF { - description - "TODO"; - } - enum PCF { - description - "TODO"; - } - enum SMSF { - description - "TODO"; - } - enum NSSF { - description - "TODO"; - } - enum UDR { - description - "TODO"; - } - enum LMF { - description - "TODO"; - } - enum GMLC { - description - "TODO"; - } - enum 5G_EIR { - description - "TODO"; - } - enum SEPP { - description - "TODO"; - } - enum UPF { - description - "TODO"; - } - enum N3IWF { - description - "TODO"; - } - enum AF { - description - "TODO"; - } - enum UDSF { - description - "TODO"; - } - enum BSF { - description - "TODO"; - } - enum CHF { - description - "TODO"; - } - } - description - "TODO"; - } - - typedef NotificationType { - type enumeration { - enum N1_MESSAGES { - description - "TODO"; - } - enum N2_INFORMATION { - description - "TODO"; - } - enum LOCATION_NOTIFICATION { - description - "TODO"; - } - } - description - "TODO"; - } - - typedef Load { - type uint8 { - range "0..100"; - } - description - "Latest known load information of the NF, percentage "; - } - - typedef N1MessageClass { - type enumeration { - enum 5GMM { - description - "TODO"; - } - enum SM { - description - "TODO"; - } - enum LPP { - description - "TODO"; - } - enum SMS { - description - "TODO"; - } - } - description - "TODO"; - } - - typedef N2InformationClass { - type enumeration { - enum SM { - description - "TODO"; - } - enum NRPPA { - description - "TODO"; - } - enum PWS { - description - "TODO"; - } - enum PWS_BCAL { - description - "TODO"; - } - enum PWS_RF { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef NsiId { - type string; - description - "TODO"; - } - - typedef UeMobilityLevel { - type enumeration { - enum STATIONARY { - description - "TODO"; - } - enum NOMADIC { - description - "TODO"; - } - enum RESTRICTED_MOBILITY { - description - "TODO"; - } - enum FULLY_MOBILITY { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef ResourceSharingLevel { - type enumeration { - enum SHARED { - description - "TODO"; - } - enum NOT_SHARED { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef TxDirection { - type enumeration { - enum DL { - description - "TODO"; - } - enum UL { - description - "TODO"; - } - enum DL_AND_UL { - description - "TODO"; - } - } - description - "TODO"; - reference - "TODO"; - } - - typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ? - type string; - description - "Represents the international standard for the representation - of Distinguished Name (RFC 4512). - The format of the DistinguishedName REGEX is: - {AttributeType = AttributeValue} - - AttributeType consists of alphanumeric and hyphen (OIDs not allowed). - All other characters are restricted. - The Attribute value cannot contain control characters or the - following characters : \\ > < ; \" + , (Comma) and White space - The Attribute value can contain the following characters if they - are excaped : \\ > < ; \" + , (Comma) and White space - The Attribute value can contain control characters if its an escaped - double digit hex number. - Examples could be - UID=nobody@example.com,DC=example,DC=com - CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US"; - reference - "RFC 4512 Lightweight Directory Access Protocol (LDAP): - Directory Information Models"; - } // recheck regexp it doesn't handle posix [:cntrl:] - - typedef QOffsetRange { - type int8; - units "dB"; - description - "TODO"; - reference - "TODO"; - } - - typedef QuotaType { - type enumeration { - enum STRICT { - description - "TODO"; - } - enum FLOAT { - description - "TODO"; - } - } - description - "TODO"; - } - - typedef CyclicPrefix { - type enumeration { - enum NORMAL { - description - "TODO"; - } - enum EXTENDED { - description - "TODO"; - } - } - description - "TODO"; - } - - grouping PLMNInfo { - description - "The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have - two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId represents a data type that - is comprised of mcc (mobile country code) and mnc (mobile network code), (See TS 23.003 - subclause 2.2 and 12.1) and S-NSSAI represents an data type, that is comprised of an SST - (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13])."; - uses PLMNId; - list sNSSAIList { - key "sNssai"; - uses sNSSAIConfig; - description "List of sNSSAIs"; - } - } - - grouping ManagedNFProfile { - description - "Defines profile for managed NF"; - reference - "3GPP TS 23.501"; - leaf idx { - type uint32; - description - "TODO"; - reference - "3GPP TS 23.501"; - } - leaf nfInstanceID { - type yang:uuid; - config false; - mandatory false; - description - "This parameter defines profile for managed NF. - The format of the NF Instance ID shall be a - Universally Unique Identifier (UUID) version 4, - as described in IETF RFC 4122 "; - } - leaf-list nfType { - type NfType; - config false; - min-elements 1; - description - "Type of the Network Function"; - } - leaf hostAddr { - type inet:host; - mandatory false; - description - "Host address of a NF"; - } - leaf authzInfo { - type string; - description - "This parameter defines NF Specific Service authorization - information. It shall include the NF type (s) and NF realms/origins - allowed to consume NF Service(s) of NF Service Producer."; - reference - "See TS 23.501"; - } - leaf location { - type string; - description - "Information about the location of the NF instance - (e.g. geographic location, data center) defined by operator"; - reference - "TS 29.510"; - } - leaf capacity { - type uint16; - mandatory false; - description - "This parameter defines static capacity information - in the range of 0-65535, expressed as a weight relative to other - NF instances of the same type; if capacity is also present in the - nfServiceList parameters, those will have precedence over this value."; - reference - "TS 29.510"; - } - leaf nFSrvGroupId { - type string; - description - "This parameter defines identity of the group that is - served by the NF instance. - May be config false or true depending on the ManagedFunction. - Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo. - Shall be present if ../nfType = UDM or AUSF or UDR. "; - reference - "TS 29.510"; - } - leaf-list supportedDataSetIds { - type enumeration { - enum SUBSCRIPTION { - description - "TODO"; - } - enum POLICY { - description - "TODO"; - } - enum EXPOSURE { - description - "TODO"; - } - enum APPLICATION { - description - "TODO"; - } - } - description - "List of supported data sets in the UDR instance. - May be present if ../nfType = UDR"; - reference - "TS 29.510"; - } - leaf-list smfServingAreas { - type string; - description - "Defines the SMF service area(s) the UPF can serve. - Shall be present if ../nfType = UPF"; - reference - "TS 29.510"; - } - leaf priority { - type uint16; - description - "This parameter defines Priority (relative to other NFs - of the same type) in the range of 0-65535, to be used for NF selection; - lower values indicate a higher priority. If priority is also present - in the nfServiceList parameters, those will have precedence over - this value. Shall be present if ../nfType = AMF "; - reference - "TS 29.510"; - } - } - - - grouping PLMNId { - description - "TODO"; - reference - "TS 23.658"; - leaf mcc { - type Mcc; - mandatory true; - description - "TODO"; - } - leaf mnc { - type Mnc; - mandatory true; - description - "TODO"; - } - } - - grouping AmfIdentifier { - description - "The AMFI is constructed from an AMF Region ID, - an AMF Set ID and an AMF Pointer. - The AMF Region ID identifies the region, - the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and - the AMF Pointer uniquely identifies the AMF within the AMF Set. "; - leaf amfRegionId { - type AmfRegionId; - description - "TODO"; - } - leaf amfSetId { - type AmfSetId; - description - "TODO"; - } - leaf amfPointer { - type AmfPointer; - description - "TODO"; - } - } - - grouping DefaultNotificationSubscription { - description - "TODO"; - leaf notificationType { - type NotificationType; - description - "TODO"; - } - leaf callbackUri { - type inet:uri; - description - "TODO"; - } - leaf n1MessageClass { - type N1MessageClass; - description - "TODO"; - } - leaf n2InformationClass { - type N2InformationClass; - description - "TODO"; - } - } - - grouping Ipv4AddressRange { - description - "TODO"; - leaf start { - type inet:ipv4-address; - description - "TODO"; - } - leaf end { - type inet:ipv4-address; - description - "TODO"; - } - } - - grouping Ipv6PrefixRange { - description - "TODO"; - leaf start { - type inet:ipv6-prefix; - description - "TODO"; - } - leaf end { - type inet:ipv6-prefix; - description - "TODO"; - } - } - - grouping AddressWithVlan { - description - "TODO"; - leaf ipAddress { - type inet:ip-address; - description - "TODO"; - } - leaf vlanId { - type uint16; - description - "TODO"; - } - } - - grouping ManagedElementGroup { - description - "Abstract class representing telecommunications resources."; - leaf dnPrefix { - type DistinguishedName; - description - "Provides naming context and splits the DN into a DN Prefix and Local DN"; - } - leaf userLabel { - type string; - description - "A user-friendly name of this object."; - } - leaf locationName { - type string; - config false; - description - "The physical location (e.g. an address) of an entity"; - } - leaf-list managedBy { - type DistinguishedName; - config false; - description - "Relates to the role played by ManagementSystem"; - } - leaf-list managedElementTypeList { - type string; - config false; - min-elements 1; - description - "The type of functionality provided by the ManagedElement. - It may represent one ME functionality or a combination of - Two examples of allowed values are: - - NodeB; - - HLR, VLR."; - } - } // Managed Element grouping - - grouping NearRTRICGroup { - description - "Abstract class representing Near RT RIC."; - leaf dnPrefix { - type DistinguishedName; - description - "Provides naming context and splits the DN into a DN Prefix and Local DN"; - } - leaf userLabel { - type string; - description - "A user-friendly name of this object."; - } - leaf locationName { - type string; - config false; - description - "The physical location (e.g. an address) of an entity"; - } - leaf gNBId { - type int64 { range "0..4294967295"; } - config false; - description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) - is part of the NR Cell Identifier (NCI) of the gNB cells."; - reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - - list pLMNInfoList { - uses PLMNInfo; - key "mcc mnc"; - description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC."; - } - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - leaf-list ranNFNSSIIdList{ - type string; - config true; - description "Contains the list of RANNFNSSIs configured in a NearRTRIC"; - } - - - } // Near RT RIC grouping - - - - grouping Configuration{ - leaf configParameter{ - type string; - description "Type of the configuration parameter"; - } - leaf configValue{ - type int64; - description "Identifies the configuration to be done for the network elements under the NearRTRIC"; - - } - } - - - grouping GNBDUFunctionGroup { - description - "Represents the GNBDUFunction IOC."; - reference - "3GPP TS 28.541"; - - leaf gNBId { - type int64 { - range "0..4294967295"; - } - config false; - mandatory false; - description - "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) - is part of the NR Cell Identifier (NCI) of the gNB cells."; - reference - "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - leaf gNBIdLength { - type int32 { - range "22..32"; - } - mandatory false; - description - "Indicates the number of bits for encoding the gNB ID."; - reference - "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - leaf gNBDUId { - type int64 { - range "0..68719476735"; - } - mandatory false; - description - "Uniquely identifies the DU at least within a gNB."; - reference - "3GPP TS 38.473"; - } - leaf gNBDUName { - type string { - length "1..150"; - } - description - "Identifies the Distributed Unit of an NR node"; - reference - "3GPP TS 38.473"; - } - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - } - - grouping NRCellDUGroup { - description - "Represents the NRCellDU IOC."; - reference - "3GPP TS 28.541"; - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - leaf cellLocalId { - type int32 { - range "0..16383"; - } - mandatory false; - description - "Identifies an NR cell of a gNB. Together with the - corresponding gNB identifier in forms the NR Cell Identity (NCI)."; - reference - "NCI in 3GPP TS 38.300"; - } - list pLMNInfoList { - key "mcc mnc"; - min-elements 1; - description - "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that - can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for - corresponding PLMN in case of network slicing feature is supported. The plMNId of the first - entry of the list is the PLMNId used to construct the nCGI for the NR cell."; - uses PLMNInfo; - } - leaf nRPCI { - type int32 { - range "0..1007"; - } - mandatory false; - description - "The Physical Cell Identity (PCI) of the NR cell."; - reference - "3GPP TS 36.211"; - } - leaf nRTAC { - type Tac; - description - "The common 5GS Tracking Area Code for the PLMNs."; - reference - "3GPP TS 23.003, 3GPP TS 38.473"; - } - } // grouping - - grouping rRMPolicyMemberGroup { - description - "TODO"; - uses PLMNId; - leaf sNSSAI { - type SNssai; - description - "This data type represents an RRM Policy member that will be part of a - rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI). - The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources - based on settings in RRMPolicy."; - } - } - - grouping RRMPolicyRatioGroup { - - uses RRMPolicy_Group; // Inherits RRMPolicy_ - - leaf quotaType { - type QuotaType; - mandatory false; - description "The type of the quota which allows to allocate resources as - strictly usable for defined slice(s) (strict quota) or allows that - resources to be used by other slice(s) when defined slice(s) do not - need them (float quota)."; - } - - leaf rRMPolicyMaxRatio { - type uint8; - mandatory false; - units percent; - description "The RRM policy setting the maximum percentage of radio - resources to be allocated to the corresponding S-NSSAI list. This - quota can be strict or float quota. Strict quota means resources are - not allowed for other sNSSAIs even when they are not used by the - defined sNSSAIList. Float quota resources can be used by other sNSSAIs - when the defined sNSSAIList do not need them. Value 0 indicates that - there is no maximum limit."; - } - - leaf rRMPolicyMinRatio { - type uint8; - mandatory false; - units percent; - description "The RRM policy setting the minimum percentage of radio - resources to be allocated to the corresponding S-NSSAI list. This - quota can be strict or float quota. Strict quota means resources are - not allowed for other sNSSAIs even when they are not used by the - defined sNSSAIList. Float quota resources can be used by other sNSSAIs - when the defined sNSSAIList do not need them. Value 0 indicates that - there is no minimum limit."; - } - leaf rRMPolicyDedicatedRatio { - type uint8; - units percent; - description "Dedicated Ration."; - } - description "Represents the RRMPolicyRatio concrete IOC."; - } - - - grouping sNSSAIConfig{ - leaf sNssai { - type string; - description "s-NSSAI of a network slice."; - reference "3GPP TS 23.003"; - } - leaf status { - type string; - description "status of s-NSSAI"; - } - list configData{ - uses Configuration; - key "configParameter"; - description "List of configurations to be done at the network elements"; - } - } - - grouping RRMPolicy_Group { - description - "This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC - needs to be subclassed to be instantiated. It defines two attributes apart from those - inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC - connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the - RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType - attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in - GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies, - both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC."; - leaf resourceType { - type string; - mandatory false; - description - "The resourceType attribute defines type of resource (PRB, RRC connected users, - DRB usage etc.) that is subject to policy. Valid values are 'PRB', 'RRC' or 'DRB'"; - } - list rRMPolicyMemberList { - key "idx"; - leaf idx { - type uint32; - description - "TODO"; - } - description - "It represents the list of RRMPolicyMember (s) that the managed object - is supporting. A RRMPolicyMember <> include the PLMNId <> - and S-NSSAI <>."; - uses rRMPolicyMemberGroup; - } - } // grouping - - grouping GNBCUUPFunctionGroup { - description - "Represents the GNBCUUPFunction IOC."; - reference - "3GPP TS 28.541"; - - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - leaf gNBCUUPId { - type uint64 { - range "0..68719476735"; - } - config false; - mandatory false; - description - "Identifies the gNB-CU-UP at least within a gNB-CU-CP"; - reference - "'gNB-CU-UP ID' in subclause 9.3.1.15 of 3GPP TS 38.463"; - } - leaf gNBId { - type int64 { - range "0..4294967295"; - } - mandatory false; - description - "Indicates the number of bits for encoding the gNB Id."; - reference - "gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - list pLMNInfoList { - key "mcc mnc"; - description - "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that - can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the - GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported"; - uses PLMNInfo; - } - } // grouping - - grouping GNBCUCPFunctionGroup { - description - "Represents the GNBCUCPFunction IOC."; - reference - "3GPP TS 28.541"; - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - leaf gNBId { - type int64 { - range "0..4294967295"; - } - mandatory false; - description - "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) - is part of the NR Cell Identifier (NCI) of the gNB cells."; - reference - "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - leaf gNBIdLength { - type int32 { - range "22..32"; - } - mandatory false; - description - "Indicates the number of bits for encoding the gNB ID."; - reference - "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; - } - leaf gNBCUName { - type string { - length "1..150"; - } - mandatory false; - description - "Identifies the Central Unit of an gNB."; - reference - "3GPP TS 38.473"; - } - list pLMNId { - key "mcc mnc"; - min-elements 1; - max-elements 1; - description - "The PLMN identifier to be used as part of the global RAN - node identity."; - uses PLMNId; - } - } // grouping - - grouping NRCellCUGroup { - description - "Represents the NRCellCU IOC."; - reference - "3GPP TS 28.541"; - leaf cellLocalId { - type int32 { - range "0..16383"; - } - mandatory false; - description - "Identifies an NR cell of a gNB. Together with corresponding - gNB ID it forms the NR Cell Identifier (NCI)."; - } - list pLMNInfoList { - key "mcc mnc"; - min-elements 1; - description - "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs - that can be served by the NR cell, and which S-NSSAIs that can be supported by the - NR cell for corresponding PLMN in case of network slicing feature is supported."; - uses PLMNInfo; - // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation. - } - list RRMPolicyRatio { - key id; - leaf id { - type string; - description - "Key leaf"; - } - container attributes { - uses RRMPolicyRatioGroup; - } - description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the - inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both - standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the - abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; - } - } // grouping NRCellCUGroup - - grouping NRCellRelationGroup { - description - "Represents the NRCellRelation IOC."; - reference - "3GPP TS 28.541"; - leaf nRTCI { - type uint64; - description - "Target NR Cell Identifier. It consists of NR Cell - Identifier (NCI) and Physical Cell Identifier of the target NR cell - (nRPCI)."; - } - } // grouping - - // container for RAN Network - - container cps-ran-schema { - description - "High-level hierarchical data structure to establish - relationships among O-RAN managed elements for the - purposes of storing in Configuration and Persistence - ONAP system "; - list NearRTRIC { - key "idNearRTRIC"; // list GNBCUCPFunction - description - "A list of expected near-real-time RIC O-RAN managed functions."; - leaf idNearRTRIC { - type string; - description - "Key leaf (namingAttribute) for a class/list. - Should be used as a key leaf for lists representing - stage 2 classes."; - reference - "3GPP TS 32.300 Name convention for managed objects"; - } - container attributes { - description - "TODO"; - uses NearRTRICGroup; - } - list GNBDUFunction { - key "idGNBDUFunction"; - description - "Represents the logical function DU of gNB or en-gNB."; - reference - "3GPP TS 28.541"; - leaf idGNBDUFunction { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses GNBDUFunctionGroup; - } - list NRCellDU { - key "idNRCellDU"; - description - "Represents the information of a cell known by DU."; - reference - "3GPP TS 28.541"; - leaf idNRCellDU { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses NRCellDUGroup; - } - } // list NRCellDU - } // list GNBDUFunction - list GNBCUUPFunction { - key "idGNBCUUPFunction"; - description - "TODO"; - leaf idGNBCUUPFunction { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses GNBCUUPFunctionGroup; - } - } // list GNBCUUPFunction - list GNBCUCPFunction { - key "idGNBCUCPFunction"; // list NRCellCU - description - "Represents the logical function CU-CP of gNB and en-gNB."; - reference - "3GPP TS 28.541"; - leaf idGNBCUCPFunction { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses GNBCUCPFunctionGroup; - } - list NRCellCU { - key "idNRCellCU"; - description - "Represents the information required by CU that is - responsible for the management of inter-cell mobility and neighbour - relations via ANR."; - reference - "3GPP TS 28.541"; - leaf idNRCellCU { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses NRCellCUGroup; - } - list NRCellRelation { - key "idNRCellRelation"; - description - "Represents a neighbour cell relation from a source cell - to a target cell, where the target cell is an NRCellCU or - ExternalNRCellCU instance."; - reference - "3GPP TS 28.541"; - leaf idNRCellRelation { - type string; - description - "TODO"; - } - container attributes { - description - "TODO"; - uses NRCellRelationGroup; - } - } // list NRCellRelation - list NRFreqRelation { - key "idNRFreqRelation"; - description - "Together with the target NRFrequency, it represents the - frequency properties applicable to the referencing NRFreqRelation."; - reference - "3GPP TS 28.541"; - leaf idNRFreqRelation { - type string; - description - "TODO"; - } - } // list NRFreqRelation - } - } - } // list ManagedElement - } -} diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang new file mode 100644 index 000000000..5fd292a99 --- /dev/null +++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang @@ -0,0 +1,1563 @@ +module cps-ran-schema-model { + yang-version 1.1; + namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model"; + prefix rn; + + import ietf-inet-types { + prefix inet; + } + import ietf-yang-types { + prefix yang; + } + + organization + "Open Network Automation Platform - ONAP + "; + contact + "Editors: + Sandeep Shah + + + Swaminathan Seetharaman + "; + description + "This module contains a collection of YANG definitions for capturing + relationships among managed elements of the radio access Network + to be stored in ONAP CPS platform. + + Copyright 2020-2021 IBM. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2021-05-19 { + description + "Added support for OOF PCI SON Use case"; + reference + "https://wiki.onap.org/display/DW/CPS+APIs"; + } + + revision 2021-01-28 { + description + "CPS RAN Network YANG Model for ONAP/O-RAN POC"; + reference + "https://wiki.onap.org/display/DW/E2E+Network+Slicing+Use+Case+in+R7+Guilin"; + } + + typedef usageState { + type enumeration { + enum IDLE { + description + "TODO"; + } + enum ACTIVE { + description + "TODO"; + } + enum BUSY { + description + "TODO"; + } + } + description + "It describes whether or not the resource is actively in + use at a specific instant, and if so, whether or not it has spare + capacity for additional users at that instant. The value is READ-ONLY."; + reference + "ITU T Recommendation X.731"; + } + + typedef Mcc { + type string; + description + "The mobile country code consists of three decimal digits, + The first digit of the mobile country code identifies the geographic + region (the digits 1 and 8 are not used):"; + reference + "3GPP TS 23.003 subclause 2.2 and 12.1"; + } + + typedef Mnc { + type string; + description + "The mobile network code consists of two or three + decimal digits (for example: MNC of 001 is not the same as MNC of 01)"; + reference + "3GPP TS 23.003 subclause 2.2 and 12.1"; + } + + typedef Nci { + type string; + description + "NR Cell Identity. The NCI shall be of fixed length of 36 bits + and shall be coded using full hexadecimal representation. + The exact coding of the NCI is the responsibility of each PLMN operator"; + reference + "TS 23.003"; + } + + typedef OperationalState { + type enumeration { + enum DISABLED { + value 0; + description + "The resource is totally inoperable."; + } + enum ENABLED { + value 1; + description + "The resource is partially or fully operable."; + } + } + description + "TODO"; + reference + "3GPP TS 28.625 and ITU-T X.731"; + } + + typedef AvailabilityStatus { + type enumeration { + enum IN_TEST { + description + "TODO"; + } + enum FAILED { + description + "TODO"; + } + enum POWER_OFF { + description + "TODO"; + } + enum OFF_LINE { + description + "TODO"; + } + enum OFF_DUTY { + description + "TODO"; + } + enum DEPENDENCY { + description + "TODO"; + } + enum DEGRADED { + description + "TODO"; + } + enum NOT_INSTALLED { + description + "TODO"; + } + enum LOG_FULL { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef CellState { + type enumeration { + enum IDLE { + description + "TODO"; + } + enum INACTIVE { + description + "TODO"; + } + enum ACTIVE { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef SNssai { + type string; + description + "Single Network Slice Selection Assistance Information."; + reference + "TS 23.501 clause 5.15.2"; + } + + typedef Sst { + type uint8; + description + "TODO"; + reference + "TODO"; + } + + typedef Nrpci { + type uint32; + description + "Physical Cell Identity (PCI) of the NR cell."; + reference + "TS 36.211 subclause 6.11"; + } + + typedef Tac { + type int32 { + range "0..16777215"; + } + description + "Tracking Area Code"; + reference + "TS 23.003 clause 19.4.2.3"; + } + + typedef AmfRegionId { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + typedef AmfSetId { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + typedef AmfPointer { + type string; + description + ""; + reference + "clause 2.10.1 of 3GPP TS 23.003"; + } + + // type definitions especially for core NFs + + typedef NfType { + type enumeration { + enum NRF { + description + "TODO"; + } + enum UDM { + description + "TODO"; + } + enum AMF { + description + "TODO"; + } + enum SMF { + description + "TODO"; + } + enum AUSF { + description + "TODO"; + } + enum NEF { + description + "TODO"; + } + enum PCF { + description + "TODO"; + } + enum SMSF { + description + "TODO"; + } + enum NSSF { + description + "TODO"; + } + enum UDR { + description + "TODO"; + } + enum LMF { + description + "TODO"; + } + enum GMLC { + description + "TODO"; + } + enum 5G_EIR { + description + "TODO"; + } + enum SEPP { + description + "TODO"; + } + enum UPF { + description + "TODO"; + } + enum N3IWF { + description + "TODO"; + } + enum AF { + description + "TODO"; + } + enum UDSF { + description + "TODO"; + } + enum BSF { + description + "TODO"; + } + enum CHF { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef NotificationType { + type enumeration { + enum N1_MESSAGES { + description + "TODO"; + } + enum N2_INFORMATION { + description + "TODO"; + } + enum LOCATION_NOTIFICATION { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef Load { + type uint8 { + range "0..100"; + } + description + "Latest known load information of the NF, percentage "; + } + + typedef N1MessageClass { + type enumeration { + enum 5GMM { + description + "TODO"; + } + enum SM { + description + "TODO"; + } + enum LPP { + description + "TODO"; + } + enum SMS { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef N2InformationClass { + type enumeration { + enum SM { + description + "TODO"; + } + enum NRPPA { + description + "TODO"; + } + enum PWS { + description + "TODO"; + } + enum PWS_BCAL { + description + "TODO"; + } + enum PWS_RF { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef NsiId { + type string; + description + "TODO"; + } + + typedef UeMobilityLevel { + type enumeration { + enum STATIONARY { + description + "TODO"; + } + enum NOMADIC { + description + "TODO"; + } + enum RESTRICTED_MOBILITY { + description + "TODO"; + } + enum FULLY_MOBILITY { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef ResourceSharingLevel { + type enumeration { + enum SHARED { + description + "TODO"; + } + enum NOT_SHARED { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef TxDirection { + type enumeration { + enum DL { + description + "TODO"; + } + enum UL { + description + "TODO"; + } + enum DL_AND_UL { + description + "TODO"; + } + } + description + "TODO"; + reference + "TODO"; + } + + typedef DistinguishedName { // TODO is this equivalent to TS 32.300 ? + type string; + description + "Represents the international standard for the representation + of Distinguished Name (RFC 4512). + The format of the DistinguishedName REGEX is: + {AttributeType = AttributeValue} + + AttributeType consists of alphanumeric and hyphen (OIDs not allowed). + All other characters are restricted. + The Attribute value cannot contain control characters or the + following characters : \\ > < ; \" + , (Comma) and White space + The Attribute value can contain the following characters if they + are excaped : \\ > < ; \" + , (Comma) and White space + The Attribute value can contain control characters if its an escaped + double digit hex number. + Examples could be + UID=nobody@example.com,DC=example,DC=com + CN=John Smith,OU=Sales,O=ACME Limited,L=Moab,ST=Utah,C=US"; + reference + "RFC 4512 Lightweight Directory Access Protocol (LDAP): + Directory Information Models"; + } // recheck regexp it doesn't handle posix [:cntrl:] + + typedef QOffsetRange { + type int8; + units "dB"; + description + "TODO"; + reference + "TODO"; + } + + typedef QuotaType { + type enumeration { + enum STRICT { + description + "TODO"; + } + enum FLOAT { + description + "TODO"; + } + } + description + "TODO"; + } + + typedef CyclicPrefix { + type enumeration { + enum NORMAL { + description + "TODO"; + } + enum EXTENDED { + description + "TODO"; + } + } + description + "TODO"; + } + + grouping PLMNInfo { + description + "The PLMNInfo data type define a S-NSSAI member in a specific PLMNId, and it have + two attributes PLMNId and S-NSSAI (PLMNId, S-NSSAI). The PLMNId represents a data type that + is comprised of mcc (mobile country code) and mnc (mobile network code), (See TS 23.003 + subclause 2.2 and 12.1) and S-NSSAI represents an data type, that is comprised of an SST + (Slice/Service type) and an optional SD (Slice Differentiator) field, (See TS 23.003 [13])."; + uses PLMNId; + list sNSSAIList { + key "sNssai"; + uses sNSSAIConfig; + description "List of sNSSAIs"; + } + } + + grouping ManagedNFProfile { + description + "Defines profile for managed NF"; + reference + "3GPP TS 23.501"; + leaf idx { + type uint32; + description + "TODO"; + reference + "3GPP TS 23.501"; + } + leaf nfInstanceID { + type yang:uuid; + config false; + mandatory false; + description + "This parameter defines profile for managed NF. + The format of the NF Instance ID shall be a + Universally Unique Identifier (UUID) version 4, + as described in IETF RFC 4122 "; + } + leaf-list nfType { + type NfType; + config false; + min-elements 1; + description + "Type of the Network Function"; + } + leaf hostAddr { + type inet:host; + mandatory false; + description + "Host address of a NF"; + } + leaf authzInfo { + type string; + description + "This parameter defines NF Specific Service authorization + information. It shall include the NF type (s) and NF realms/origins + allowed to consume NF Service(s) of NF Service Producer."; + reference + "See TS 23.501"; + } + leaf location { + type string; + description + "Information about the location of the NF instance + (e.g. geographic location, data center) defined by operator"; + reference + "TS 29.510"; + } + leaf capacity { + type uint16; + mandatory false; + description + "This parameter defines static capacity information + in the range of 0-65535, expressed as a weight relative to other + NF instances of the same type; if capacity is also present in the + nfServiceList parameters, those will have precedence over this value."; + reference + "TS 29.510"; + } + leaf nFSrvGroupId { + type string; + description + "This parameter defines identity of the group that is + served by the NF instance. + May be config false or true depending on the ManagedFunction. + Config=true for Udrinfo. Config=false for UdmInfo and AusfInfo. + Shall be present if ../nfType = UDM or AUSF or UDR. "; + reference + "TS 29.510"; + } + leaf-list supportedDataSetIds { + type enumeration { + enum SUBSCRIPTION { + description + "TODO"; + } + enum POLICY { + description + "TODO"; + } + enum EXPOSURE { + description + "TODO"; + } + enum APPLICATION { + description + "TODO"; + } + } + description + "List of supported data sets in the UDR instance. + May be present if ../nfType = UDR"; + reference + "TS 29.510"; + } + leaf-list smfServingAreas { + type string; + description + "Defines the SMF service area(s) the UPF can serve. + Shall be present if ../nfType = UPF"; + reference + "TS 29.510"; + } + leaf priority { + type uint16; + description + "This parameter defines Priority (relative to other NFs + of the same type) in the range of 0-65535, to be used for NF selection; + lower values indicate a higher priority. If priority is also present + in the nfServiceList parameters, those will have precedence over + this value. Shall be present if ../nfType = AMF "; + reference + "TS 29.510"; + } + } + + + grouping PLMNId { + description + "TODO"; + reference + "TS 23.658"; + leaf mcc { + type Mcc; + mandatory true; + description + "TODO"; + } + leaf mnc { + type Mnc; + mandatory true; + description + "TODO"; + } + } + + grouping AmfIdentifier { + description + "The AMFI is constructed from an AMF Region ID, + an AMF Set ID and an AMF Pointer. + The AMF Region ID identifies the region, + the AMF Set ID uniquely identifies the AMF Set within the AMF Region, and + the AMF Pointer uniquely identifies the AMF within the AMF Set. "; + leaf amfRegionId { + type AmfRegionId; + description + "TODO"; + } + leaf amfSetId { + type AmfSetId; + description + "TODO"; + } + leaf amfPointer { + type AmfPointer; + description + "TODO"; + } + } + + grouping DefaultNotificationSubscription { + description + "TODO"; + leaf notificationType { + type NotificationType; + description + "TODO"; + } + leaf callbackUri { + type inet:uri; + description + "TODO"; + } + leaf n1MessageClass { + type N1MessageClass; + description + "TODO"; + } + leaf n2InformationClass { + type N2InformationClass; + description + "TODO"; + } + } + + grouping Ipv4AddressRange { + description + "TODO"; + leaf start { + type inet:ipv4-address; + description + "TODO"; + } + leaf end { + type inet:ipv4-address; + description + "TODO"; + } + } + + grouping Ipv6PrefixRange { + description + "TODO"; + leaf start { + type inet:ipv6-prefix; + description + "TODO"; + } + leaf end { + type inet:ipv6-prefix; + description + "TODO"; + } + } + + grouping AddressWithVlan { + description + "TODO"; + leaf ipAddress { + type inet:ip-address; + description + "TODO"; + } + leaf vlanId { + type uint16; + description + "TODO"; + } + } + + grouping ManagedElementGroup { + description + "Abstract class representing telecommunications resources."; + leaf dnPrefix { + type DistinguishedName; + description + "Provides naming context and splits the DN into a DN Prefix and Local DN"; + } + leaf userLabel { + type string; + description + "A user-friendly name of this object."; + } + leaf locationName { + type string; + config false; + description + "The physical location (e.g. an address) of an entity"; + } + leaf-list managedBy { + type DistinguishedName; + config false; + description + "Relates to the role played by ManagementSystem"; + } + leaf-list managedElementTypeList { + type string; + config false; + min-elements 1; + description + "The type of functionality provided by the ManagedElement. + It may represent one ME functionality or a combination of + Two examples of allowed values are: + - NodeB; + - HLR, VLR."; + } + } // Managed Element grouping + + grouping NearRTRICGroup { + description + "Abstract class representing Near RT RIC."; + leaf dnPrefix { + type DistinguishedName; + description + "Provides naming context and splits the DN into a DN Prefix and Local DN"; + } + leaf userLabel { + type string; + description + "A user-friendly name of this object."; + } + leaf locationName { + type string; + config false; + description + "The physical location (e.g. an address) of an entity"; + } + leaf gNBId { + type int64 { range "0..4294967295"; } + config false; + description "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + + list pLMNInfoList { + uses PLMNInfo; + key "mcc mnc"; + description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC."; + } + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + + leaf-list ranNFNSSIIdList{ + type string; + config true; + description "Contains the list of RANNFNSSIs configured in a NearRTRIC"; + } + + + } // Near RT RIC grouping + + + + grouping Configuration{ + leaf configParameter{ + type string; + description "Type of the configuration parameter"; + } + leaf configValue{ + type int64; + description "Identifies the configuration to be done for the network elements under the NearRTRIC"; + + } + } + + + grouping GNBDUFunctionGroup { + description + "Represents the GNBDUFunction IOC."; + reference + "3GPP TS 28.541"; + + leaf gNBId { + type int64 { + range "0..4294967295"; + } + config false; + mandatory false; + description + "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBIdLength { + type int32 { + range "22..32"; + } + mandatory false; + description + "Indicates the number of bits for encoding the gNB ID."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBDUId { + type int64 { + range "0..68719476735"; + } + mandatory false; + description + "Uniquely identifies the DU at least within a gNB."; + reference + "3GPP TS 38.473"; + } + leaf gNBDUName { + type string { + length "1..150"; + } + description + "Identifies the Distributed Unit of an NR node"; + reference + "3GPP TS 38.473"; + } + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + } + + grouping NRCellDUGroup { + description + "Represents the NRCellDU IOC."; + reference + "3GPP TS 28.541"; + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + leaf cellLocalId { + type int32 { + range "0..16383"; + } + mandatory false; + description + "Identifies an NR cell of a gNB. Together with the + corresponding gNB identifier in forms the NR Cell Identity (NCI)."; + reference + "NCI in 3GPP TS 38.300"; + } + + leaf siteLatitude { + type decimal64 { + fraction-digits 4; + range "-90.0000..+90.0000"; + } + description "The latitude of the site where the ManagedFunction + instance resides, based on World Geodetic System (1984 version) + global reference frame (WGS 84). Positive values correspond to + the northern hemisphere. This attribute is optional in case of + BTSFunction and RNCFunction instance(s)."; + } + + leaf siteLongitude { + type decimal64 { + fraction-digits 4; + range "-180.0000..+180.0000"; + } + description "The longitude of the site where the ManagedFunction + instance resides, based on World Geodetic System (1984 version) + global reference frame (WGS 84). Positive values correspond to + degrees east of 0 degrees longitude. This attribute is optional in + case of BTSFunction and RNCFunction instance(s)."; + } + + list pLMNInfoList { + key "mcc mnc"; + min-elements 1; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that + can be served by the NR cell, and which S-NSSAIs that can be supported by the NR cell for + corresponding PLMN in case of network slicing feature is supported. The plMNId of the first + entry of the list is the PLMNId used to construct the nCGI for the NR cell."; + uses PLMNInfo; + } + leaf nRPCI { + type int32 { + range "0..1007"; + } + mandatory false; + description + "The Physical Cell Identity (PCI) of the NR cell."; + reference + "3GPP TS 36.211"; + } + leaf nRTAC { + type Tac; + description + "The common 5GS Tracking Area Code for the PLMNs."; + reference + "3GPP TS 23.003, 3GPP TS 38.473"; + } + } // grouping + + grouping rRMPolicyMemberGroup { + description + "TODO"; + uses PLMNId; + leaf sNSSAI { + type SNssai; + description + "This data type represents an RRM Policy member that will be part of a + rRMPolicyMemberList. A RRMPolicyMember is defined by its pLMNId and sNSSAI (S-NSSAI). + The members in a rRMPolicyMemberList are assigned a specific amount of RRM resources + based on settings in RRMPolicy."; + } + } + + grouping RRMPolicyRatioGroup { + + uses RRMPolicy_Group; // Inherits RRMPolicy_ + + leaf quotaType { + type QuotaType; + mandatory false; + description "The type of the quota which allows to allocate resources as + strictly usable for defined slice(s) (strict quota) or allows that + resources to be used by other slice(s) when defined slice(s) do not + need them (float quota)."; + } + + leaf rRMPolicyMaxRatio { + type uint8; + mandatory false; + units percent; + description "The RRM policy setting the maximum percentage of radio + resources to be allocated to the corresponding S-NSSAI list. This + quota can be strict or float quota. Strict quota means resources are + not allowed for other sNSSAIs even when they are not used by the + defined sNSSAIList. Float quota resources can be used by other sNSSAIs + when the defined sNSSAIList do not need them. Value 0 indicates that + there is no maximum limit."; + } + + leaf rRMPolicyMinRatio { + type uint8; + mandatory false; + units percent; + description "The RRM policy setting the minimum percentage of radio + resources to be allocated to the corresponding S-NSSAI list. This + quota can be strict or float quota. Strict quota means resources are + not allowed for other sNSSAIs even when they are not used by the + defined sNSSAIList. Float quota resources can be used by other sNSSAIs + when the defined sNSSAIList do not need them. Value 0 indicates that + there is no minimum limit."; + } + leaf rRMPolicyDedicatedRatio { + type uint8; + units percent; + description "Dedicated Ration."; + } + description "Represents the RRMPolicyRatio concrete IOC."; + } + + + grouping sNSSAIConfig{ + leaf sNssai { + type string; + description "s-NSSAI of a network slice."; + reference "3GPP TS 23.003"; + } + leaf status { + type string; + description "status of s-NSSAI"; + } + list configData{ + uses Configuration; + key "configParameter"; + description "List of configurations to be done at the network elements"; + } + } + + grouping RRMPolicy_Group { + description + "This IOC represents the properties of an abstract RRMPolicy. The RRMPolicy_ IOC + needs to be subclassed to be instantiated. It defines two attributes apart from those + inherited from Top IOC, the resourceType attribute defines type of resource (PRB, RRC + connected users, DRB usage etc.) and the rRMPolicyMemberList attribute defines the + RRMPolicyMember(s)that are subject to this policy. An RRM resource (defined in resourceType + attribute) is located in NRCellDU, NRCellCU, GNBDUFunction, GNBCUCPFunction or in + GNBCUUPFunction. The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in TS 28.541 Figure 4.2.1.2-1. This RRM framework allows adding new policies, + both standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC."; + leaf resourceType { + type string; + mandatory false; + description + "The resourceType attribute defines type of resource (PRB, RRC connected users, + DRB usage etc.) that is subject to policy. Valid values are 'PRB', 'RRC' or 'DRB'"; + } + list rRMPolicyMemberList { + key "idx"; + leaf idx { + type uint32; + description + "TODO"; + } + description + "It represents the list of RRMPolicyMember (s) that the managed object + is supporting. A RRMPolicyMember <> include the PLMNId <> + and S-NSSAI <>."; + uses rRMPolicyMemberGroup; + } + } // grouping + + grouping GNBCUUPFunctionGroup { + description + "Represents the GNBCUUPFunction IOC."; + reference + "3GPP TS 28.541"; + + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + leaf gNBCUUPId { + type uint64 { + range "0..68719476735"; + } + config false; + mandatory false; + description + "Identifies the gNB-CU-UP at least within a gNB-CU-CP"; + reference + "'gNB-CU-UP ID' in subclause 9.3.1.15 of 3GPP TS 38.463"; + } + leaf gNBId { + type int64 { + range "0..4294967295"; + } + mandatory false; + description + "Indicates the number of bits for encoding the gNB Id."; + reference + "gNB Id in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + list pLMNInfoList { + key "mcc mnc"; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that + can be served by the GNBCUUPFunction and which S-NSSAIs can be supported by the + GNBCUUPFunction for corresponding PLMN in case of network slicing feature is supported"; + uses PLMNInfo; + } + } // grouping + + grouping GNBCUCPFunctionGroup { + description + "Represents the GNBCUCPFunction IOC."; + reference + "3GPP TS 28.541"; + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + leaf gNBId { + type int64 { + range "0..4294967295"; + } + mandatory false; + description + "Identifies a gNB within a PLMN. The gNB Identifier (gNB ID) + is part of the NR Cell Identifier (NCI) of the gNB cells."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBIdLength { + type int32 { + range "22..32"; + } + mandatory false; + description + "Indicates the number of bits for encoding the gNB ID."; + reference + "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413"; + } + leaf gNBCUName { + type string { + length "1..150"; + } + mandatory false; + description + "Identifies the Central Unit of an gNB."; + reference + "3GPP TS 38.473"; + } + list pLMNId { + key "mcc mnc"; + min-elements 1; + max-elements 1; + description + "The PLMN identifier to be used as part of the global RAN + node identity."; + uses PLMNId; + } + } // grouping + + grouping NRCellCUGroup { + description + "Represents the NRCellCU IOC."; + reference + "3GPP TS 28.541"; + leaf cellLocalId { + type int32 { + range "0..16383"; + } + mandatory false; + description + "Identifies an NR cell of a gNB. Together with corresponding + gNB ID it forms the NR Cell Identifier (NCI)."; + } + list pLMNInfoList { + key "mcc mnc"; + min-elements 1; + description + "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs + that can be served by the NR cell, and which S-NSSAIs that can be supported by the + NR cell for corresponding PLMN in case of network slicing feature is supported."; + uses PLMNInfo; + // Note: Whether the attribute pLMNId in the pLMNInfo can be writable depends on the implementation. + } + list RRMPolicyRatio { + key id; + leaf id { + type string; + description + "Key leaf"; + } + container attributes { + uses RRMPolicyRatioGroup; + } + description " The RRMPolicyRatio IOC is one realization of a RRMPolicy_ IOC, see the + inheritance in Figure 4.2.1.2-1. This RRM framework allows adding new policies, both + standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the + abstract RRMPolicy_ IOC. For details see subclause 4.3.36."; + } + } // grouping NRCellCUGroup + + grouping RegionNRCellCUMappingGroup { + description + "Represents the NRCellCU IOC."; + reference + "3GPP TS 28.541"; + leaf cellLocalId { + type int32 { + range "0..16383"; + } + mandatory false; + description + "Identifies an NR cell of a gNB. Together with corresponding + gNB ID it forms the NR Cell Identifier (NCI)."; + } + + } // grouping RegionNRCellCUMappingGroup + + grouping NRCellRelationGroup { + description + "Represents the NRCellRelation IOC."; + reference + "3GPP TS 28.541"; + leaf nRTCI { + type uint64; + description + "Target NR Cell Identifier. It consists of NR Cell + Identifier (NCI) and Physical Cell Identifier of the target NR cell + (nRPCI)."; + } + } // grouping + + typedef RegionId { + type union { + type uint8; + type string { + length 8; + } + } + reference "similar to clause 2.10.1 of 3GPP TS 23.003"; + } + + + // container for RAN Network + + container cps-ran-schema { + description + "High-level hierarchical data structure to establish + relationships among O-RAN managed elements for the + purposes of storing in Configuration and Persistence + ONAP system "; + + list Regions { + key "regionId"; // list Regions + description + "A list of regions in the RAN network to map to mutually exclusive NRCellCU's"; + leaf regionId { + type RegionId; + } + container cps-region-cell-mapping { + list NRCellCU { + key "idNRCellCU"; + description + "Represents the information required by CU that is + responsible for the management of inter-cell mobility and neighbour + relations via ANR."; + reference + "3GPP TS 28.541"; + leaf idNRCellCU { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses RegionNRCellCUMappingGroup; + } + list NRCellRelation { + key "idNRCellRelation"; + description + "Represents a neighbour cell relation from a source cell + to a target cell, where the target cell is an NRCellCU or + ExternalNRCellCU instance."; + reference + "3GPP TS 28.541"; + leaf idNRCellRelation { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellRelationGroup; + } + } // list NRCellRelation + } + } + } + + list NearRTRIC { + key "idNearRTRIC"; // list GNBCUCPFunction + description + "A list of expected near-real-time RIC O-RAN managed functions."; + leaf idNearRTRIC { + type string; + description + "Key leaf (namingAttribute) for a class/list. + Should be used as a key leaf for lists representing + stage 2 classes."; + reference + "3GPP TS 32.300 Name convention for managed objects"; + } + container attributes { + description + "TODO"; + uses NearRTRICGroup; + } + list GNBDUFunction { + key "idGNBDUFunction"; + description + "Represents the logical function DU of gNB or en-gNB."; + reference + "3GPP TS 28.541"; + leaf idGNBDUFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBDUFunctionGroup; + } + list NRCellDU { + key "idNRCellDU"; + description + "Represents the information of a cell known by DU."; + reference + "3GPP TS 28.541"; + leaf idNRCellDU { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellDUGroup; + } + } // list NRCellDU + } // list GNBDUFunction + list GNBCUUPFunction { + key "idGNBCUUPFunction"; + description + "TODO"; + leaf idGNBCUUPFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBCUUPFunctionGroup; + } + } // list GNBCUUPFunction + list GNBCUCPFunction { + key "idGNBCUCPFunction"; // list NRCellCU + description + "Represents the logical function CU-CP of gNB and en-gNB."; + reference + "3GPP TS 28.541"; + leaf idGNBCUCPFunction { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses GNBCUCPFunctionGroup; + } + list NRCellCU { + key "idNRCellCU"; + description + "Represents the information required by CU that is + responsible for the management of inter-cell mobility and neighbour + relations via ANR."; + reference + "3GPP TS 28.541"; + leaf idNRCellCU { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellCUGroup; + } + list NRCellRelation { + key "idNRCellRelation"; + description + "Represents a neighbour cell relation from a source cell + to a target cell, where the target cell is an NRCellCU or + ExternalNRCellCU instance."; + reference + "3GPP TS 28.541"; + leaf idNRCellRelation { + type string; + description + "TODO"; + } + container attributes { + description + "TODO"; + uses NRCellRelationGroup; + } + } // list NRCellRelation + list NRFreqRelation { + key "idNRFreqRelation"; + description + "Together with the target NRFrequency, it represents the + frequency properties applicable to the referencing NRFreqRelation."; + reference + "3GPP TS 28.541"; + leaf idNRFreqRelation { + type string; + description + "TODO"; + } + } // list NRFreqRelation + } + } + } // list ManagedElement + } +} -- cgit 1.2.3-korg