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
...
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 | 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 | Usecase | Priority | Comments | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. | /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" } } ], "ranNFNSSIListresourceType": [ "string" } ], "resourceTypegNBCUName": "string", "trackingArea"gNBId": 0, "gNBIdLength": [ 0, "nFType": "string" ], "nearRTRICId": 0, "pLMNId": "string" } ] Complete Yang model. Refer CPS-196 cps-ran-schema-model | SDN-R | Slicing | 1 | 2. | /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-R1 | Proposed CPS query:3. | /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 } } } ] } | , "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 +--rw NearRTRIC* [idNearRTRIC] | SDN-R | Slicing | 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> | 4SDN-R | Slicing | 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:
|
2. | /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 | ||||||||||||||||||||||
3. | /api/sdnc-config-db/v4/gNBCUCPnearRTRIC | PUT | Store gNBCUCP, NRCellCU nearRTRIC details | { "gNBCUNamenearRTRICId":"cucpserver1"22, "gNBId":98763, "gNBIdLengthtrackingArea":5[ "Kingston" ], "pLMNIdresourceType":"310-410NearRTRIC", "nFTyperanNFNSSIList":[ "CUCP11", "nearRTRICId":1122" ], "cellCUListpLMNInfoList":[ { "cellLocalIdpLMNId":103594000, "pLMNInfoList":[ { "pLMNId"310-410", "sNSSAI":{ "sNSSAI":"310001-200010000", "sNSSAIstatus":{ "sNSSAI"ACTIVE", "globalSubscriberId":"Customer-001-00110", "statussubscriptionServiceType":"ACTIVEPremium", "configData": { "dLThptPerSlice":25, "uLThptPerSlice":30, "maxNumberOfConns": 70003000 } } } ] } } ] } | cps-ran-schema-model +--rw GNBCUCPFunctionNearRTRIC* [idGNBCUCPFunctionidNearRTRIC] | SDN-R | Slicing | 1from CPS point of view this case is similar as previous case (#3), just different target (parent)data node. | 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! <Need to discuss> | 5. | 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. | /api/sdnc-config-db/v4/gNBCUUPgNBCUCP | PUT | Store gNBCUUP gNBCUCP, NRCellCU details | { | cps-ran-schema-model +--rw GNBCUUPFunctionGNBCUCPFunction* [idGNBCUUPFunctionidGNBCUCPFunction] | SDN-R | Slicing | 1 | from CPS point of view this case is similar as previous 2 cases case (#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> | ||||||||||||||||||||||
65. | /api/sdnc-config-db/v4/gNBDUgNBCUUP | PUT | Store gNBDU, NRCellDU gNBCUUP details | { | cps-ran-schema-model +--rw GNBCUUPFunction* [idGNBCUUPFunction] | 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. | /api/sdnc-config-db/v4/gNBDU | PUT | Store gNBDU, NRCellDU details | { | cps-ran-schema-model +--rw GNBDUFunction* [idGNBDUFunction] | 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 | { | cps-ran-schema-model +--rw RRMPolicyRatioGNBDUFunction* [ididGNBDUFunction] | SDN-R | Slicing | 1 | Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here.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> | ||||||||||||
87. | /api/sdnc-config-db/v4/ranslice-detailsrrmPolicy | PUT | RAN Inventory. Store RAN slice Store network elements' RRMPolicy details | { rrmPolicyID": "3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82"1, resourceID": [" ran4113025289" ] , ] resourceType": ["nsi1","nsi2" "PRB", "001-010000" ] quotaType": ["STRICT", { "sliceProfileId": "878f32c0-3699-4dbd-95a3-1f01d6c763fd", "dLThptPerSlice": 25, "uLThptPerSlice": 30, "maxNumberofConns":3000, "sNSSAI":"001-010000 rRMPolicyMaxRatio": [0, sNSSAI":" 310001- 410010000" "Kingston" , "subnetStatus":"ACTIVE", "nsstId":"NSSTID1", "sliceType":"eMBB", "isShareable":"true" } | cps-ran-inventory +--rw ran-inventory | SDN-R | Slicing | 2 | 9. | /api/sdnc-config-db/v4/du-list/{sNSSAI} | GET | Fetch the DU functions for sNSSAI | sNSSAI - String | cps-ran-schema-model +--rw GNBDUFunction* [idGNBDUFunction] | 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. | /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} | cps-ran-schema-model +--rw RRMPolicyRatio* [id] | 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. | /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" } ], "trackingAreaList": "Kingston" , "subnetStatus":"ACTIVE", "nsstId":"NSSTID1", "sliceType":"eMBB", "isShareable":"true" } | cps-ran-inventory +--rw ran-inventory | SDN-R | Slicing | 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. | /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] | DCAE-slice-analysis-ms | Slicing | 1 | Yang model defines only the DUCellList which is the value in the response. Key is a nearRTRICId| +--rw pLMNInfoList* [mcc mnc] | DCAE-slice-analysis-ms | Slicing | 1 | Suggested CPS Actions: Seems very simialr to #9Yes. Result includes parent as well. Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs Similar to #9 | 11. | /api/sdnc-config-db/v4/profile-config/{sNSSAI} | 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 It doesn't matter. The grandparent node (GNBDUs) of the sNNSAI should be returned properly. | |||||||
10. | /api/sdnc-config-db/v4/slicedu-cell-configlist/{sNSSAI} | GET | Fetch NearRTRIC configuration DU Cells for a sNSSAI | sNSSAI - String | { "1": [ { "dLThptPerSlicecellLocalId": 45111, "uLThptPerSliceoperationalState": 40 } } Note: key "1" is nearRTRICId - marked in green color Value - nssai config - marked in purple color | +--rw cps-ran-schema | DCAE-slice-analysis "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 pLMNInfoConfigurationDUCellList which is the value in the response. Key is NEarRTRICida nearRTRICId Suggested CPS -Query: get lis elements with children where leave has certain value,. 13Actions: Seems very simialr to #9 Sample seems to return other/all(?) pLMNInfoList with different sNSSAIs Similar to #9 | |||||||||||||||||||
11. | /api/sdnc-config-db/v4/subscriberprofile-detailsconfig/{sNSSAI} | GET | Fetch subscriber detailsslice 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 | |||||||||||||||||||||||
1412. | /api/sdnc-config-db/v4/v3/insertData | PUT | Pre-load Cell Dataslice-config/{sNSSAI} | GET | Fetch NearRTRIC configuration for a sNSSAI | sNSSAI - String | { " cellList1": [{ " CelldLThptPerSlice": {45, " networkIduLThptPerSlice": "jio","nodeId": "Chn1003", "physicalCellId": 0, "pnfName": "ncserver1007", "sectorNumber": 0, "latitude": "13.081907", "longitude": "80.270862" }, "neighbor": [ "Chn1006", "Chn906", "Chn1005", "Chn905" ] }] } | 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 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 | Slicing | 1 | Yang model defines only the pLMNInfoConfiguration. Key is NEarRTRICid Suggested CPS-Query: get lis elements with children where leave has certain value,. | |||||||
13. | /api/sdnc-config-db/v3v4/modifyNbrHOsubscriber-details/{cellId}/{targetCellIdsNSSAI} | PATCH | Modify HO (Handoff) flag for a target neighbor cell | { "ho":false } | SDNR | SON | 3 | 17GET | 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. | /api/sdnc-config-db/v3/createNbr/{cellId}insertData | PUT | Create a neigbor for a cell |
| SDNR | SON | 3 | 18Pre-load Cell Data | { | OOF-PCI MS | SON | 3 | |||||||||||||||||||
15. | /api/sdnc-config-db/v3/deleteNbrmodifyPci/{cellId}/{targetCellId} | DELETE | Delete a neighbor for a call | cellId - string trgetCellId - stringPATCH | Modfify PCI value of a cell | { "pci-value":1 } | SDNR | SON | 3 | ||||||||||||||||||||||
1916. | /api/sdnc-config-db/v3/v4modifyNbrHO/nearrtric{cellId}/{ranNFNSSIIdtargetCellId} | 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 |
...
PATCH | Modify HO (Handoff) flag for a target neighbor cell | { "ho":false } | SDNR | SON | 3 | |||||
17. | /api/sdnc-config-db/v3/createNbr/{cellId} | PUT | Create a neigbor for a cell |
| SDNR | SON | 3 | |||
18. | /api/sdnc-config-db/v3/deleteNbr/{cellId}/{targetCellId} | DELETE | 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 |
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"ran-coverage-area":{
"pLMNIdList": [
{
"mcc": "310",
"mnc": "410"
}
],
"coverage-area": [
{
"coverageArea": "Washington",
"coverageAreaTAList": [
{
"nRTAC": 234,
"taCellsList": [
{
"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 described in CPS-235: Overview of (early) CPS Query and Update Scenarios assuming it wil ahve an option to also retreive all descendants
3. Field Mapping Between ConfigDB Schema and Yang Model
S.No | Yang Model | Mapping Sheet |
---|---|---|
1. | cps-ran-schema-model | |