aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service/src/test
diff options
context:
space:
mode:
authorRuslan Kashapov <ruslan.kashapov@pantheon.tech>2021-02-18 12:31:24 +0200
committerRuslan Kashapov <ruslan.kashapov@pantheon.tech>2021-02-18 12:32:23 +0200
commit3b0221cabd6614ed82fe2931948651666300cf39 (patch)
tree9a81908b1284e9e1a4070c54e6b6cfdc653a0168 /cps-service/src/test
parent6d13f166f2e3d1c357677ad6f37f6e35238aeac6 (diff)
E2E RAN Schema Model - yang model vs data test
Issue-ID: CPS-196 Change-Id: I0171dfc2f82505c8ae8497ff49fe3eb28e1972a6 Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
Diffstat (limited to 'cps-service/src/test')
-rwxr-xr-xcps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy22
-rw-r--r--cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json541
-rw-r--r--cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang1452
3 files changed, 2008 insertions, 7 deletions
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 ac4ef278ee..75c98a82d9 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
@@ -26,7 +26,7 @@ import org.onap.cps.api.CpsAdminService
import org.onap.cps.spi.CpsDataPersistenceService
import org.onap.cps.spi.CpsModulePersistenceService
import org.onap.cps.spi.model.Anchor
-import org.onap.cps.spi.model.DataNode
+import org.onap.cps.utils.YangUtils
import org.onap.cps.yang.YangTextSchemaSourceSetBuilder
import spock.lang.Specification
@@ -121,7 +121,7 @@ class E2ENetworkSliceSpec extends Specification {
1 * mockDataStoreService.storeDataNode('someDataspace', 'someAnchor', _) >>
{ args -> dataNodeStored = args[2]}
and: 'the size of the tree is correct'
- def cpsRanInventory = treeToFlatMapByXpath(new HashMap<>(), dataNodeStored)
+ def cpsRanInventory = TestUtils.getFlattenMapByXpath(dataNodeStored)
assert cpsRanInventory.size() == 3
and: 'ran-inventory contains the correct child node'
def ranInventory = cpsRanInventory.get('/ran-inventory')
@@ -136,10 +136,18 @@ class E2ENetworkSliceSpec extends Specification {
pLMNIdList.getChildDataNodes().size() == 0
}
- def static treeToFlatMapByXpath(Map<String, DataNode> flatMap, DataNode dataNodeTree) {
- flatMap.put(dataNodeTree.getXpath(), dataNodeTree)
- dataNodeTree.getChildDataNodes()
- .forEach(childDataNode -> treeToFlatMapByXpath(flatMap, childDataNode))
- return flatMap
+ def 'E2E RAN Schema Model.'(){
+ given: 'yang resources'
+ def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(
+ 'e2e/basic/ietf-inet-types.yang',
+ 'e2e/basic/ietf-yang-types.yang',
+ 'e2e/basic/cps-ran-schema-model@2021-01-28.yang'
+ )
+ and : 'json data'
+ def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-schema-model-data-v4.json')
+ expect: 'schema context is built with no exception indicating the schema set being valid '
+ def schemaContext = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap).getSchemaContext()
+ and: 'data is parsed with no exception indicating the model match'
+ YangUtils.parseJsonData(jsonData, schemaContext) != null
}
}
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
new file mode 100644
index 0000000000..0925eef735
--- /dev/null
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
@@ -0,0 +1,541 @@
+{
+ "cps-ran-schema-model:cps-ran-schema": {
+ "NearRTRIC": [
+ {
+ "idNearRTRIC": "11",
+ "attributes":{
+ "ranNFNSSIIdList":[
+ "ac8ca1a9-e1ec-4480-8720-c74e92566885"
+ ]
+ },
+ "GNBCUUPFunction": [
+ {
+ "idGNBCUUPFunction": "1111",
+ "attributes": {
+ "gNBId": 98763
+ }
+ }
+ ],
+ "GNBCUCPFunction": [
+ {
+ "idGNBCUCPFunction": "cucpserver1",
+ "attributes": {
+ "gNBCUName": "cucpserver1",
+ "gNBIdLength": 32,
+ "gNBId": 98763
+ },
+ "NRCellCU": [
+ {
+ "idNRCellCU": "15826",
+ "attributes": {
+ "cellLocalId": 15826
+ }
+ },
+ {
+ "idNRCellCU": "15825",
+ "attributes": {
+ "cellLocalId": 15825
+ }
+ },
+ {
+ "idNRCellCU": "13999",
+ "attributes": {
+ "cellLocalId": 13999
+ }
+ },
+ {
+ "idNRCellCU": "15426",
+ "attributes": {
+ "cellLocalId": 15426
+ }
+ },
+ {
+ "idNRCellCU": "15425",
+ "attributes": {
+ "cellLocalId": 15425
+ }
+ },
+ {
+ "idNRCellCU": "15689",
+ "attributes": {
+ "cellLocalId": 15689
+ }
+ },
+ {
+ "idNRCellCU": "15687",
+ "attributes": {
+ "cellLocalId": 15687
+ }
+ },
+ {
+ "idNRCellCU": "15289",
+ "attributes": {
+ "cellLocalId": 15289
+ }
+ },
+ {
+ "idNRCellCU": "15176",
+ "attributes": {
+ "cellLocalId": 15176
+ }
+ },
+ {
+ "idNRCellCU": "14000",
+ "attributes": {
+ "cellLocalId": 14000
+ }
+ },
+ {
+ "idNRCellCU": "15155",
+ "attributes": {
+ "cellLocalId": 15155
+ }
+ },
+ {
+ "idNRCellCU": "15174",
+ "attributes": {
+ "cellLocalId": 15174
+ }
+ },
+ {
+ "idNRCellCU": "15175",
+ "attributes": {
+ "cellLocalId": 15175
+ }
+ },
+ {
+ "idNRCellCU": "15296",
+ "attributes": {
+ "cellLocalId": 15296
+ }
+ },
+ {
+ "idNRCellCU": "15290",
+ "attributes": {
+ "cellLocalId": 15290
+ }
+ }
+ ]
+ }
+ ],
+ "GNBDUFunction": [
+ {
+ "idGNBDUFunction": "1",
+ "attributes": {
+ "gNBDUId": 1,
+ "gNBDUName": "gnduserver1",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "15296",
+ "attributes": {
+ "cellLocalId": 15296,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15689",
+ "attributes": {
+ "cellLocalId": 15689,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15687",
+ "attributes": {
+ "cellLocalId": 15687,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15289",
+ "attributes": {
+ "cellLocalId": 15289,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15290",
+ "attributes": {
+ "cellLocalId": 15290,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ },
+ {
+ "idGNBDUFunction": "3",
+ "attributes": {
+ "gNBDUId": 3,
+ "gNBDUName": "gnduserver3",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "15425",
+ "attributes": {
+ "cellLocalId": 15425,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15826",
+ "attributes": {
+ "cellLocalId": 15826,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "13999",
+ "attributes": {
+ "cellLocalId": 13999,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15426",
+ "attributes": {
+ "cellLocalId": 15426,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "14000",
+ "attributes": {
+ "cellLocalId": 14000,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ },
+ {
+ "idGNBDUFunction": "2",
+ "attributes": {
+ "gNBDUId": 2,
+ "gNBDUName": "gnduserver2",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "15174",
+ "attributes": {
+ "cellLocalId": 15174,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15175",
+ "attributes": {
+ "cellLocalId": 15175,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15825",
+ "attributes": {
+ "cellLocalId": 15825,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15176",
+ "attributes": {
+ "cellLocalId": 15176,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15155",
+ "attributes": {
+ "cellLocalId": 15155,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "idNearRTRIC": "22",
+ "GNBCUUPFunction": [
+ {
+ "idGNBCUUPFunction": "2222",
+ "attributes": {
+ "gNBId": 98763
+ }
+ }
+ ],
+ "GNBCUCPFunction": [
+ {
+ "idGNBCUCPFunction": "cucpserver2",
+ "attributes": {
+ "gNBCUName": "cucpserver2",
+ "gNBIdLength": 32,
+ "gNBId": 98763
+ },
+ "NRCellCU": [
+ {
+ "idNRCellCU": "13905",
+ "attributes": {
+ "cellLocalId": 13905
+ }
+ },
+ {
+ "idNRCellCU": "11569",
+ "attributes": {
+ "cellLocalId": 11569
+ }
+ },
+ {
+ "idNRCellCU": "14427",
+ "attributes": {
+ "cellLocalId": 14427
+ }
+ },
+ {
+ "idNRCellCU": "15549",
+ "attributes": {
+ "cellLocalId": 15549
+ }
+ },
+ {
+ "idNRCellCU": "10896",
+ "attributes": {
+ "cellLocalId": 10896
+ }
+ },
+ {
+ "idNRCellCU": "14656",
+ "attributes": {
+ "cellLocalId": 14656
+ }
+ },
+ {
+ "idNRCellCU": "10897",
+ "attributes": {
+ "cellLocalId": 10897
+ }
+ },
+ {
+ "idNRCellCU": "11568",
+ "attributes": {
+ "cellLocalId": 11568
+ }
+ },
+ {
+ "idNRCellCU": "13910",
+ "attributes": {
+ "cellLocalId": 13910
+ }
+ },
+ {
+ "idNRCellCU": "15548",
+ "attributes": {
+ "cellLocalId": 15548
+ }
+ },
+ {
+ "idNRCellCU": "11561",
+ "attributes": {
+ "cellLocalId": 11561
+ }
+ },
+ {
+ "idNRCellCU": "11562",
+ "attributes": {
+ "cellLocalId": 11562
+ }
+ },
+ {
+ "idNRCellCU": "14655",
+ "attributes": {
+ "cellLocalId": 14655
+ }
+ },
+ {
+ "idNRCellCU": "15361",
+ "attributes": {
+ "cellLocalId": 15361
+ }
+ },
+ {
+ "idNRCellCU": "15360",
+ "attributes": {
+ "cellLocalId": 15360
+ }
+ }
+ ]
+ }
+ ],
+ "GNBDUFunction": [
+ {
+ "idGNBDUFunction": "6",
+ "attributes": {
+ "gNBDUId": 6,
+ "gNBDUName": "gnduserver6",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "15361",
+ "attributes": {
+ "cellLocalId": 15361,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15360",
+ "attributes": {
+ "cellLocalId": 15360,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "14427",
+ "attributes": {
+ "cellLocalId": 14427,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15549",
+ "attributes": {
+ "cellLocalId": 15549,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "15548",
+ "attributes": {
+ "cellLocalId": 15548,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ },
+ {
+ "idGNBDUFunction": "5",
+ "attributes": {
+ "gNBDUId": 5,
+ "gNBDUName": "gnduserver5",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "14655",
+ "attributes": {
+ "cellLocalId": 14655,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "13905",
+ "attributes": {
+ "cellLocalId": 13905,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "14656",
+ "attributes": {
+ "cellLocalId": 14656,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "10897",
+ "attributes": {
+ "cellLocalId": 10897,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "13910",
+ "attributes": {
+ "cellLocalId": 13910,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ },
+ {
+ "idGNBDUFunction": "4",
+ "attributes": {
+ "gNBDUId": 4,
+ "gNBDUName": "gnduserver4",
+ "gNBIdLength": 32
+ },
+ "NRCellDU": [
+ {
+ "idNRCellDU": "11561",
+ "attributes": {
+ "cellLocalId": 11561,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "11569",
+ "attributes": {
+ "cellLocalId": 11569,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "11562",
+ "attributes": {
+ "cellLocalId": 11562,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "10896",
+ "attributes": {
+ "cellLocalId": 10896,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ },
+ {
+ "idNRCellDU": "11568",
+ "attributes": {
+ "cellLocalId": 11568,
+ "nRPCI": 12,
+ "nRTAC": 310
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+} \ No newline at end of file
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
new file mode 100644
index 0000000000..224e884aa5
--- /dev/null
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang
@@ -0,0 +1,1452 @@
+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
+ <https://www.onap.org>";
+ contact
+ "Editors:
+ Sandeep Shah
+ <mailto:sandeep.shah@ibm.com>
+
+ Swaminathan Seetharaman
+ <mailto:swaminathan.seetharaman@wipro.com>";
+ 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 <<dataType>> include the PLMNId <<dataType>>
+ and S-NSSAI <<dataType>>.";
+ 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
+ }
+}