1. Details of Config DB APIs supported in Guilin
Please refer to below ConfigDB API swagger document for a full list of API's supported: ConfigDB Swagger JSON
Following API's are currently used to support RAN Network Slicing and OOF SON use case:
...
Get complete details associated with a list of NearRT RIC's and
corresponding managed elements
...
trackingArea - String
<Changes at consumer end> - trackingArea should be an int
...
Complete Yang model. Refer CPS-196
cps-ran-schema-model
...
The result seems to be a a combination of many queries from differnt data sources
Several elements not clear in model?!:
- TrackingArea = Tac? not string but 32bit int?
- gNBCUCPList, 0x
- cellCUList, 0x
- pLMNInfoList, 4x
Tac is a type, used by nRTAC, which is normal (normal not key) leaf for NRCellDUGroup which is used by NRCellDU (Yang List)
Proposed CPS query:
get all elelements (with children?) in list (NRCellDU) fiter on one attribue vale (nRTAC)
- Fetch the List of Cells using API #2
- Fetch the parents and grandparents pertaining to those cells
...
trackingArea - String
<Changes at consumer end> - trackingArea should be an int
...
[
"15289",
"15290",
"15296"
]
...
cps-cavsta-onap-internal
+--rw taCellsList* [cellLocalId]
+--rw cellLocalId int32
...
Refer cps-cavsta-onap-internal
...
1. Details of Config DB APIs supported in Guilin
Please refer to below ConfigDB API swagger document for a full list of API's supported: ConfigDB Swagger JSON
Following API's are currently used to support RAN Network Slicing and OOF SON use case:
S.No | Use case | API endpoint | HTTP Method | Description | API input/Request Payload | Result obtained for API call (in case of GET) | Yang sub-tree/element(s) accessed (for GET), or updated (for UPDATE) | Consuming Component | Priority | Comments | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. | E2E Network Slicing | /api/sdnc-config-db/v4/nearrtric-list/{trackingArea} | GET | Get complete details associated with a list of NearRT RIC's and corresponding managed elements | trackingArea - String <Changes at consumer end> - trackingArea should be an int | [ { "gNBCUCPList": [ { "cellCUList": [ { "cellLocalId": 0, "pLMNInfoList": [ { "pLMNId": "string", "sNSSAI": { "configData": { "dLThptPerSlice": 0, "maxNumberOfConns": 0, "uLThptPerSlice": 0 }, "globalSubscriberId": "string", "sNSSAI": "string", "status": "string", "subscriptionServiceType": "string" } } ], "resourceType": "string" } ], "gNBCUName": "string", "gNBId": 0, "gNBIdLength": 0, "nFType": "string", "nearRTRICId": 0, "pLMNId": "string" } ], "gNBCUUPList": [ { "gNBCUUPId": 0, "gNBId": 0, "gNBIdLength": 0, "nearRTRICId": 0, "pLMNInfoList": [ { "pLMNId": "string", "sNSSAI": { "configData": { "dLThptPerSlice": 0, "maxNumberOfConns": 0, "uLThptPerSlice": 0 }, "globalSubscriberId": "string", "sNSSAI": "string", "status": "string", "subscriptionServiceType": "string" } } ], "resourceType": "string" } ], "gNBDUList": [ { "cellDUList": [ { "administrativeState": "string", "cellLocalId": 0, "cellState": "string", "nRPCI": 0, "nRTAC": 0, "operationalState": "string", "pLMNInfoList": [ { "pLMNId": "string", "sNSSAI": { "configData": { "dLThptPerSlice": 0, "maxNumberOfConns": 0, "uLThptPerSlice": 0 }, "globalSubscriberId": "string", "sNSSAI": "string", "status": "string", "subscriptionServiceType": "string" } } ], "resourceType": "string" } ], "gNBDUId": 0, "gNBDUName": "string", "gNBId": 0, "gNBIdLength": 0, "nFType": "string", "nearRTRICId": 0, "pLMNId": "string" } ], "gNBId": 0, "nearRTRICId": 0, "pLMNInfoList": [ { "pLMNId": "string", "sNSSAI": { "configData": { "dLThptPerSlice": 0, "maxNumberOfConns": 0, "uLThptPerSlice": 0 }, "globalSubscriberId": "string", "sNSSAI": "string", "status": "string", "subscriptionServiceType": "string" } } ], "ranNFNSSIList": [ "string" ], "resourceType": "string", "trackingArea": [ "string" ] } ] | Complete Yang model. Refer CPS-196 cps-ran-schema-model | SDN-R | 1 | The result seems to be a a combination of many queries from differnt data sources Several elements not clear in model?!:
Tac is a type, used by nRTAC, which is normal (normal not key) leaf for NRCellDUGroup which is used by NRCellDU (Yang List) Proposed CPS query: <Ahila> Please note the below:
| |||||||||||||||||||||||
2. | E2E Network Slicing | /api/sdnc-config-db/v4/cell-list/{trackingArea} | GET | Get a list of cells that correspond to a specific tracking area | trackingArea - String <Changes at consumer end> - trackingArea should be an int |
| cps-cavsta-onap-internal +--rw taCellsList* [cellLocalId] | SDN-R | 1 | Proposed CPS query: Refer cps-cavsta-onap-internal In scope of H-release | |||||||||||||||||||||||
3. | E2E Network Slicing | /api/sdnc-config-db/v4/nearRTRIC | PUT | Store nearRTRIC details | { "nearRTRICId":22, "gNBId":98763, "trackingArea":[ "Kingston" ], "resourceType":"NearRTRIC", "ranNFNSSIList":[ "11", "22" ], "pLMNInfoList":[ { "pLMNId":"310-410", "sNSSAI":{ "sNSSAI":"001-010000", "status":"ACTIVE", "globalSubscriberId":"Customer-001", "subscriptionServiceType":"Premium", "configData": { "dLThptPerSlice":25, "uLThptPerSlice":30, "maxNumberOfConns":3000 } } } ] } | cps-ran-schema-model +--rw NearRTRIC* [idNearRTRIC] | SDN-R | 1 | There is no model that defines that has a TrackingArea String is this now the 'locationName'? suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! Note 1. SNSSAIList is a list contained within each element of PLMNInfo Yes. Refer Section-3 for field mapping Note 2. Please note this action replace all existing list element, it is NOT an add-to-element action <Need to discuss> | ||||||||||||||||||||||||
4. | E2E Network Slicing | /api/sdnc-config-db/v4/gNBCUCP | PUT | Store gNBCUCP, NRCellCU details | { | cps-ran-schema-model +--rw GNBCUCPFunction* [idGNBCUCPFunction] | SDN-R | 1 | from CPS point of view this case is similar as previous case (#3), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! <Need to discuss> | ||||||||||||||||||||||||
5. | E2E Network Slicing | /api/sdnc-config-db/v4/gNBCUUP | PUT | Store gNBCUUP details | { | cps-ran-schema-model +--rw GNBCUUPFunction* [idGNBCUUPFunction] | SDN-R | 1 | from CPS point of view this case is similar as previous 2 cases (#3, #4), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! <Need to discuss> | ||||||||||||||||||||||||
6. | E2E Network Slicing | /api/sdnc-config-db/v4/gNBDU | PUT | Store gNBDU, NRCellDU details | { "sNSSAI":{ "sNSSAI":"001-010000", "status":"ACTIVE", "subscriptionServiceType":"Premium", " "configData":{ "dLThptPerSlice": 25 9, "uLThptPerSlice": 30,"maxNumberOfConns":3000 } } } 10 | cps-ran-schema-model +--rw NearRTRICGNBDUFunction* [idNearRTRICidGNBDUFunction] | SDN-RSlicing | 1 | There is no model that defines that has a TrackingArea String is this now the 'locationName'?from CPS point of view this case is similar as previous 2 cases (#3, #4, #5), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! Note 1. SNSSAIList is a list contained within each element of PLMNInfo Yes. Refer Section-3 for field mapping Note 2. Please note this action replace all existing list element, it is NOT an add-to-element action <Need to discuss> | ||||||||||||||||||||||||
47. | E2E Network Slicing | /api/sdnc-config-db/v4/gNBCUCPrrmPolicy | PUT | Store gNBCUCP, NRCellCU network elements' RRMPolicy details | { | cps-ran-schema-model +--rw GNBCUCPFunctionRRMPolicyRatio* [idGNBCUCPFunctionid] | SDN-RSlicing | 1 | from CPS point of view this case is similar as previous case (#3), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too!Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here. <Need to discuss> | ||||||||||||||||||||||||
58. | /api/sdnc-config-db/v4/gNBCUUP | PUT | Store gNBCUUP details | {E2E Network Slicing | /api/sdnc-config-db/v4/ranslice-details | PUT | RAN Inventory. Store RAN slice details | { "ranNFNSSIId":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82", "ranNSSIList":[ "ran4" ], "nsiList":[ "nsi1","nsi2" ], "nSSAIList":[ "001-010000" ], "sliceProfilesList":[ { "sliceProfileId": "878f32c0-3699-4dbd-95a3-1f01d6c763fd", "dLThptPerSlice": 25, "uLThptPerSlice": 30, "maxNumberofConns":3000, "sNSSAI":"001-010000", "pLMNIdList":"310-410" } ], "sNSSAItrackingAreaList":{ "sNSSAI "Kingston" , "subnetStatus":"001-003ACTIVE", "statusnsstId":"ACTIVENSSTID1", "configDatasliceType":{ "maxNumberOfConns": 3000 } } } ] } cps-ran-schema-model +--rw GNBCUUPFunction* [idGNBCUUPFunction]"eMBB","isShareable":"true" } | cps-ran-inventory +--rw ran-inventory | SDN-R | Slicing | 1 | from CPS point of view this case is similar as previous 2 cases (#3, #4), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! <Need to discuss> | 6.2 | little difference can be found between the request payload and the yang model. Yang model is final one. For CPS this seems like populating the whole data-tree for given model in one go. i.e. replace all existing data Modifed the YANG model to support storing list of Slices | ||||||||||||||||||
9. | E2E Network Slicing | /api/sdnc-config-db/v4/gNBDU | PUT | Store gNBDU, NRCellDU details | {/du-list/{sNSSAI} | GET | Fetch the DU functions for sNSSAI | sNSSAI - String | [ { "gNBDUId":1, "gNBId":98763, "gNBIdLength":5, "pLMNId":"310-410004", "gNBDUName":"ACTIVEgnduserver1", "configDatanFType":{ "nearRTRICId":11, "cellDUList":[ { "cellLocalId":1129515621, "operationalState":"ENABLED", "administrativeState":"UNLOCKED", "cellState":"ACTIVE", "nRPCI":12, "nRTAC":310, "pLMNInfoList":[ { "pLMNId":"310-004", "sNSSAI":{ "sNSSAI":"001-003", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 45, "uLThptPerSlice": 40 } } }, { "pLMNId":"310-410", "sNSSAI":{ "sNSSAI":"001-010000024", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 965, "uLThptPerSlice": 10 } } } ] } ] }, cps-ran-schema-model +--rw GNBDUFunction* [idGNBDUFunction] ] | cps-ran-schema-model +--rw GNBDUFunction* [idGNBDUFunction] | DCAE--rw configData* [configParameter] | | +--rw configParameter string | | +--rw configValue? int64 | +--rw nRPCI? int32 | +--rw nRTAC? Tac | SDN-R | Slicing | 1 | from CPS point of view this case is similar as previous 2 cases (#3, #4, #5), just different target (parent)data node. suggested CPS-action: Update DataNode with children (in this case a list) all children will be replaced! All unchanged data has to be provided too! <Need to discuss> | 7. | /api/sdnc-config-db/v4/rrmPolicy | PUT | Store network elements' RRMPolicy details | { | slice-analysis-ms | 1 | Suggested CPS Actions: Yes. Result includes parent as well. Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs It doesn't matter. The grandparent node (GNBDUs) of the sNNSAI should be returned properly. | ||||||||||
10. | E2E Network Slicing | /api/sdnc-config-db/v4/du-cell-list/{sNSSAI} | GET | Fetch DU Cells for sNSSAI | sNSSAI - String | { "1": [ { "cellLocalId": 111, "operationalState": "ENABLED", "administrativeState": "UNLOCKED", "cellState": "ACTIVE", "pLMNInfoList": [ { "pLMNId": "pLMNId1", "sNSSAI": { "sNSSAI": "001-003", "status": "ACTIVE", "globalSubscriberId": null, "subscriptionServiceType": null, "configData": {} } }, { "pLMNId": "pLMNId2", "sNSSAI": { "sNSSAI": "001-024", "status": "ACTIVE", "globalSubscriberId": null, "subscriptionServiceType": null, "configData": {} } } ], "nRPCI": 45, "nRTAC": 9087 } ] } Note: Key - nearRTRIC Id value - list of cells | cps-ran-schema-model | +--rw RRMPolicyRatioNRCellDU* [ididNRCellDU] | SDN-R | Slicing | 1 | Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here. <Need to discuss> | 8. | Tac | DCAE-slice-analysis-ms | 1 | Yang model defines only the DUCellList which is the value in the response. Key is a nearRTRICId Suggested CPS Actions: Seems very simialr to #9 Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs Similar to #9 | |||||||||||||||||
11. | E2E Network Slicing | /api/sdnc-config-db/v4/ | ranslice-detailsPUT | RAN Inventory. Store RAN slice details | { "ranNFNSSIId":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","ranNSSIList":[ "ran4" ], "nsiList":[ "nsi1","nsi2" ], "nSSAIList":[ "001-010000" ], "sliceProfilesList":[ { "sliceProfileId": "878f32c0-3699-4dbd-95a3-1f01d6c763fd", "dLThptPerSlice": 25, "uLThptPerSlice": 30, "maxNumberofConns":3000, "sNSSAI":"001-010000", "pLMNIdList":"310-410" } ], "trackingAreaList": "Kingston" , "subnetStatus":"ACTIVE", "nsstId":"NSSTID1", "sliceType":"eMBB", "isShareable":"true" } cps-ran-inventory +--rw ran-inventory+--rw ran-slices* [rannfnssiid] +--rw rannfnssiid string +--rw sliceProfilesList* [sliceProfileId] | +--rw sliceProfileId string | +--rw sNSSAIprofile-config/{sNSSAI} | GET | Fetch slice profile configuration for a sNSSAI | sNSSAI - String | DCAE-slice-analysis-ms, ML MS | 2 | This API will be replaced by AAI APIs Do we need to discs CPS for this one. IF so which model etc? This API can be ignored | ||||||||||||||||||||||
12. | E2E Network Slicing | /api/sdnc-config-db/v4/slice-config/{sNSSAI} | GET | Fetch NearRTRIC configuration for a sNSSAI | sNSSAI - String | { "1": { "dLThptPerSlice": 45, "uLThptPerSlice": 40 } } Note: key "1" is nearRTRICId - marked in green color Value - nssai config - marked in purple color | +--rw cps-ran-schema | DCAE-slice-analysis-ms | 1 | Yang model defines only the pLMNInfoConfiguration. Key is NEarRTRICid Suggested CPS-Query: get lis elements with children where leave has certain value,. | |||||||||||||||||||||||
13. | E2E Network Slicing | /api/sdnc-config--rw mnc Mnc +--rw subnetStatus? string +--rw nsstid? string +--rw slicetype? string +--rw isshareable? string | SDN-R | Slicing | 2 | db/v4/subscriber-details/{sNSSAI} | GET | Fetch subscriber details | sNSSAI - String | DCAE-slice-analysis-ms | 2 | This API will be replaced by AAI APIs Do we need to discs CPS for this one. IF so which model etc? This API can be ignored | |||||||||||||||||||||
14. | 5G SON | /api/sdnc-config-db | /v4/du-list/{sNSSAI}GET | Fetch the DU functions for sNSSAI | sNSSAI - String | [ { "gNBDUId":1, "gNBId":98763, "gNBIdLength":5, "pLMNId":"310-004", "gNBDUName":"gnduserver1", "nFType":"DU", "nearRTRICId":11, "cellDUList":[ { "cellLocalId":1, "operationalState":"ENABLED", "administrativeState":"UNLOCKED", "cellState":"ACTIVE", "nRPCI":12, "nRTAC":310, "pLMNInfoList":[ { "pLMNId":"310-004", "sNSSAI":{ "sNSSAI":"001-003", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 45, "uLThptPerSlice": 40 } } }, { "pLMNId":"310-410", "sNSSAI":{ "sNSSAI":"001-024", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 65, "uLThptPerSlice": 30 } } } ] } ] } ] cps-ran-schema-model +--rw GNBDUFunction* [idGNBDUFunction]| +--rw idGNBDUFunction string | +--rw attributes | | +--ro gNBId? int64 | | +--rw gNBIdLength? int32 | | +--rw gNBDUId? int64 | | +--rw gNBDUName? string | | +--rw RRMPolicyRatio* [id] | | +--rw id string | /v3/insertData | PUT | Pre-load Cell Data | { | OOF-PCI MS | 3 | ||||||||||||||||||||||
15. | 5G SON | /api/sdnc-config-db/v3/modifyPci/{cellId} | PATCH | Modfify PCI value of a cell | { "pci-value":1 } | +--rw GNBDUFunction* [idGNBDUFunction] | +--rw NRCellDU* [idNRCellDU] | +--rw attributes | | +--rw resourceType? string | SDNR | 3 | |||||||||||||||||||||||||
16. | 5G SON | /api/sdnc-config-db/v3/modifyNbrHO/{cellId}/{targetCellId} | PATCH | Modify HO (Handoff) flag for a target neighbor cell | { "ho":false } | +--rw GNBCUCPFunction* [idGNBCUCPFunction] +--rw idGNBCUCPFunction string +--rw NRCellCU* [idNRCellCU] +--rw NRCellRelation* [idNRCellRelation] | +--rw attributes | DCAE-slice-analysis-ms | Slicing | 1 | Suggested CPS Actions: Yes. Result includes parent as well. Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs It doesn't matter. The grandparent node (GNBDUs) of the sNNSAI should be returned properly. | 10. isHOAllowed? boolean | SDNR | 3 | ||||||||||||||||||||
17. | 5G SON | /api/sdnc-config-db/v3/createNbr/{cellId} | PUT | Create a neigbor for a cell |
| +--rw GNBCUCPFunction* [idGNBCUCPFunction] +--rw idGNBCUCPFunction string +--rw NRCellCU* [idNRCellCU] +--rw NRCellRelation* [idNRCellRelation] | +--rw isHOAllowed? boolean | SDNR | 3 | |||||||||||||||||||||||||
18. | 5G SON | /api/sdnc-config-db/v3/deleteNbr/{cellId}/{targetCellId} | DELETE | Delete a neighbor for a call | cellId - string trgetCellId - string | +--rw GNBCUCPFunction* [idGNBCUCPFunction] +--rw idGNBCUCPFunction string +--rw NRCellCU* [idNRCellCU] +--rw NRCellRelation* [idNRCellRelation] | SDNR | 3 | |||||||||||||||||||||||||
19. | E2E Network Slicing | api/sdnc-config-db/v4/nearrtric/{ranNFNSSIId} | GET | Fetches the NearRTRICs for the RANNFNSSI | ranNFNSSIId - String | Returns the RAN-schema yang (Refer CPS - 196) | SDNR | 1 | |||||||||||||||||||||||||
20. | E2E Network Slicing | /api/sdnc-config-db/v4/plmn/{sliceProfileId} | GET | Returns PLMN id for the sliceProfile | sliceProfileId - String | PLMNId as String | SDNR | 1 | |||||||||||||||||||||||||
21. | E2E Network Slicing | /api/sdnc-config-db/v4/du-cell-list/{sNSSAI} | GET | Fetch DU Cells for sNSSAI | sNSSAI - String | { "1": [ { "cellLocalId": 111, "operationalState": "ENABLED", "administrativeState": "UNLOCKED", "cellState": "ACTIVE", "pLMNInfoList": [ { "pLMNId": "pLMNId1", "sNSSAI": { "sNSSAI": "001-003", "status": "ACTIVE", "globalSubscriberId": null, "subscriptionServiceType": null, "configData": {} } }, { "pLMNId": "pLMNId2", "sNSSAI": { "sNSSAI": "001-024", "status": "ACTIVE", "globalSubscriberId": null, "subscriptionServiceType": null, "configData": {} } } ], "nRPCI": 45, "nRTAC": 9087 } ] } Note: Key - nearRTRIC Id value - list of cells | cps-ran-schema-model | +--rw NRCellDU* [idNRCellDU] | DCAE-slice-analysis-ms | Slicing | 1 | Yang model defines only the DUCellList which is the value in the response. Key is a nearRTRICId Suggested CPS Actions: Seems very simialr to #9 Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs Similar to #9 11.ta-list/{mcc}/{mnc}/{coverageArea} | GET | Returns List of tracking area (coverageAreaTAList) of the specified coverage area | coverageArea - String mcc - String mnc - String | [ 675, 834 ] | cps-cavsta-onap-internal +--rw coverage-area* [coverageArea] | OOF | 1 | In scope of H-release | ||||||||||||||
22. | 5G SON | /api/sdnc-config-db/v3/getCell/{cellId} | GET | Get information about a cell. cellId is referred to in YANG model as any of the following: idNRCellDU, idNRCellCU, cellLocalId | { "Cell": { "latitude": "string", "longitude": "string", "networkId": "string", "nodeId": "string", "notes": "string", "physicalCellId": 0, "pnfId": "string", "sectorNumber": "string" }, "neighbor": [ "string" ] } | +--rw cps-ran-schema | +--rw NRCellDU* [idNRCellDU] +--rw NRCellCU* [idNRCellCU] | OOF, Policy | 3 | |||||||||||||||||||||||||
23. | 5G SON | /api/sdnc-config-db/v3/ v4/profile-configgetCellList/{regionId}/{ sNSSAIts} | GET | Fetch slice profile configuration for a sNSSAI | sNSSAI - String | DCAE-slice-analysis-ms, ML MS | Slicing | 2 | This API will be replaced by AAI APIs Do we need to discs CPS for this one. IF so which model etc? This API can be ignored | 12.Get list of cells for a specific region (identified by regionId) | [ "string" ] | +--rw cps-ran-schema +--rw Regions* [regionId] | +--rw regionId RegionId | +--rw cps-region-cell-mapping | +--rw NRCellCU* [idNRCellCU] | +--rw idNRCellCU string | 3 | ||||||||||||||||||||
24. | 5G SON | /api/sdnc-config-db/ v4v3/ slice-configgetNbrCellsNetwork/{ sNSSAIregionId} | GET | Fetch NearRTRIC configuration for a sNSSAI | sNSSAI - String | { "1": { "dLThptPerSlice": 45, "uLThptPerSlice": 40 } } Note: key "1" is nearRTRICId - marked in green color Value - nssai config - marked in purple colorGet a list of all neighbor relationships for a specific region (identified by regionId) | { "cellsNbrList": [ { "cellId": "string", "nbrList": [ { "ho": true, "pciValue": 0, "targetCellId": "string" } ] } ], "networkId": "string" } | +--rw cps-ran-schema +--rw NearRTRIC* [idNearRTRIC] +--rw idNearRTRIC string +--rw attributes | +--rw dnPrefix? DistinguishedName | +--rw userLabel? string | +--ro locationName? string | +--ro gNBId? int64 | +--rw pLMNInfoList* [mcc mnc] | Regions* [regionId] | +--rw mcc MccregionId RegionId | | +--rw mnc Mnc | cps-region-cell-mapping | +--rw sNSSAIListNRCellCU* [sNssaiidNRCellCU] | +--rw idNRCellCU string | +--rw sNssai stringattributes | | +--rw statuscellLocalId? stringint32 | | +--rw configDataNRCellRelation* [configParameteridNRCellRelation] | | +--rw configParameter idNRCellRelation string | | +--rw configValue? int64 | DCAE-slice-analysis-ms | Slicing | 1 | 13. | /api/sdnc-config-db/v4/subscriber-details/{sNSSAI} | GET | Fetch subscriber details | sNSSAI - String | DCAE-slice-analysis-ms | Slicing | 2 | This API will be replaced by AAI APIs Do we need to discs CPS for this one. IF so which model etc? This API can be ignored | 14.attributes | +--rw nRTCI? uint64 | 3 | |||||||||||
25. | 5G SON | /api/sdnc-config-db/v3 /insertData | PUT | Pre-load Cell Data | { | OOF-PCI MS | SON | 3 | 15. | /api/sdnc-config-db/v3/modifyPci/{cellId} | PATCH | Modfify PCI value of a cell | { "pci-value":1 } | SDNR | SON | 3 | 16. /getNbrList/{cellId}/{ts} | GET | Get a list of neighbors for a cell | { "cellId": "string", "nbrList": [ { "ho": true, "pciValue": 0, "targetCellId": "string" } ] } | +--rw cps-ran-schema +--rw NRCellCU* [idNRCellCU] +--rw NRCellRelation* [idNRCellRelation] | 3 | |||||||||||
26. | 5G SON | /api/sdnc-config-db/v3/ modifyNbrHOgetPCI/{cellId}/{ targetCellIdts} | PATCH | Modify HO (Handoff) flag for a target neighbor GET | GET PCI value of a cell | {ho":false } | SDNR | SON | 3 | 17. | /api/sdnc-config-db/v3/createNbr/{cellId} | PUT | Create a neigbor for a cell | {
"ho": true,
"targetCellIdattribute-name": "string",} | SDNR | SON | 3 | 18.
| +--rw cps-ran-schema +--rw GNBDUFunction* [idGNBDUFunction] | +--rw NRCellDU* [idNRCellDU] | +--rw nRPCI? int32 | 3 | |||||||||||||
27. | 5G SON | /api/sdnc-config-db/v3/ deleteNbrgetPnfId/{ cellIdmaanagedElementId}/{ targetCellIdts} | DELETEGET | Delete a neighbor for a call | cellId - string trgetCellId - string | SDNR | SON | 3 | 19. | api/sdnc-config-db/v4/nearrtric/{ranNFNSSIId} | GET | Fetches the NearRTRICs for the RANNFNSSI | ranNFNSSIId - String | Returns the RAN-schema yang (Refer CPS - 196) | SDNR | Slicing | 1 | 20. | /api/sdnc-config-db/v4/plmn/{sliceProfileId} | GET | Returns PLMN id for the sliceProfile | sliceProfileId - String | PLMNId as String | SDNR | Slicing | 1 | Get PnfId of a managed element in O-RAN. PnfId represents the node name for Netconf Mount for various O-RAN managed elements as below: For NonRTRIC: - idNearRTRIC | { "attribute-name": "string", "value": "string" } | +--rw cps-ran-schema +--rw NearRTRIC* [idNearRTRIC] +--rw GNBDUFunction* [idGNBDUFunction] +--rw GNBCUUPFunction* [idGNBCUUPFunction] | +--ro gNBCUUPId? uint64 +--rw GNBCUCPFunction* [idGNBCUCPFunction] | +--rw gNBCUName? string | 3 |
Link to SON CPS: CPS 5G-SON APIs
2. Sample CPS APIs (to mapper service and XPath queries)
#1 Get complete details associated with a list of NearRT RIC's
/api/sdnc-config-db/v4/nearrtric-list/{trackingArea}
Combination of data from different queries of different data from different model using both CPS-Core and NF-Proxy.
TBC
#2 Get a list of cells that correspond to a specific tracking area
/api/sdnc-config-db/v4/cell-list/{trackingArea}
target model/data: cps-cavsta-onap-internal
component to be used : CPS-Core
'trackingArea' maps to 'nRTAC' and is an integer.
nRTAC is the key field for coverageAreaTAList
coverageAreaTAList is contained in a 'coverage-area' list. the key for that list key is 'CoverageArea' (string e.g. "Washington")
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "cps-cavsta-onap-internal:ran-coverage-area": { "pLMNIdList": [ { "mcc": "310", "mnc": "410" , } ], "coverage-area": [ { "coverageArea": "Washington", "coverageAreaTAList": [ { "nRTAC": 234, "taCellsList": [ { "cellLocalId": 15709 } { ] "cellLocalId": 15709 } } ] ] } } ] ] } } ] } } |
So although the key-value for the coverageAreaTAList is known the key for the parent list is NOT known. so this requires a more advanced query:
It could be done with either query #3 or #5 #4 described in CPS-235: Overview of (early) CPS Query and Update ScenariosQuery#Queries assuming it wil ahve have an option to also retreive all descendantsretrieve all descendants
#21 List tracking area (coverageAreaTAList) for the specified coverage area
I think this is a simple 'get with children' xpath e.g. : /ran-coverage-area[@mcc=310 and @mnc=410]/coverage-area[@coverageArea='Washington']
Note: Compound key fields need to be in alphabetical order. The key is matched as a string literal so incorrect order or spacing issues will result in the key not being found in the database
3. Field Mapping Between ConfigDB Schema and Yang Model
...