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
...
Complete Yang model. Refer CPS-196
cps-ran-schema-model
...
The result seems to be a a combination of many queries.
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)
...
[
"15289",
"15290",
"15296"
]
...
cps-cavsta-onap-internal
+--rw taCellsList* [cellLocalId]
+--rw cellLocalId int32
...
cps-ran-schema-model
+--rw NearRTRIC* [idNearRTRIC]
+--rw idNearRTRIC string
+--rw attributes
| +--rw dnPrefix? DistinguishedName
| +--rw userLabel? string
| +--ro locationName? string
| +--ro gNBId? int64
| +--rw pLMNInfoList* [mcc mnc]
| | +--rw mcc Mcc
| | +--rw mnc Mnc
| | +--rw sNSSAIList* [sNssai]
| | +--rw sNssai string
| | +--rw status? string
| | +--rw configData* [configParameter]
| | +--rw configParameter string
| | +--rw configValue? int64
...
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
Note 2. Please note this action replace all existing list element, it is NOT an add-to-element action
...
{
"gNBCUName":"cucpserver1",
"gNBId":98763,
"gNBIdLength":5,
"pLMNId":"310-410",
"nFType":"CUCP",
"nearRTRICId":11,
"cellCUList":[
{
"cellLocalId":103594000,
"pLMNInfoList":[
{
"pLMNId":"310-200",
"sNSSAI":{
"sNSSAI":"001-00110",
"status":"ACTIVE",
"configData":{
"maxNumberOfConns": 7000
}
}
}
]
}
]
}
...
cps-ran-schema-model
+--rw GNBCUCPFunction* [idGNBCUCPFunction]
+--rw idGNBCUCPFunction string
+--rw attributes
| +--rw gNBId? int64
| +--rw gNBIdLength? int32
| +--rw gNBCUName? string
| +--rw pLMNId* [mcc mnc]
| +--rw mcc Mcc
| +--rw mnc Mnc
+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string
+--rw attributes
| +--rw cellLocalId? int32
| +--rw pLMNInfoList* [mcc mnc]
| | +--rw mcc Mcc
| | +--rw mnc Mnc
| | +--rw sNSSAIList* [sNssai]
| | +--rw sNssai string
| | +--rw status? string
| | +--rw configData* [configParameter]
| | +--rw configParameter string
| | +--rw configValue? int64
...
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!
...
{
"gNBCUUPId":1111,
"gNBId":98763,
"gNBIdLength":2,
"pLMNId":"310-410",
"resourceType":"DRB",
"nearRTRICId":11,
"pLMNInfoList":[
{
"pLMNId":"310-410",
"sNSSAI":{
"sNSSAI":"001-003",
"status":"ACTIVE",
"configData":{
"maxNumberOfConns": 3000
}
}
}
]
}
...
cps-ran-schema-model
+--rw GNBCUUPFunction* [idGNBCUUPFunction]
| +--rw idGNBCUUPFunction string
| +--rw attributes
| +--ro gNBCUUPId? uint64
| +--rw gNBId? int64
| +--rw pLMNInfoList* [mcc mnc]
| +--rw mcc Mcc
| +--rw mnc Mnc
| +--rw sNSSAIList* [sNssai]
| +--rw sNssai string
| +--rw status? string
| +--rw configData* [configParameter]
| +--rw configParameter string
| +--rw configValue? int64
...
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!
...
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", "configDataglobalSubscriberId":{"Customer-001", "dLThptPerSlicesubscriptionServiceType": 9"Premium", "uLThptPerSliceconfigData": 10 } } } ] }, { "cellLocalIddLThptPerSlice":11295156225, "operationalStateuLThptPerSlice":"ENABLED"30, "administrativeStatemaxNumberOfConns":"UNLOCKED", "cellState":"ACTIVE", "nRPCI":12, "nRTAC":310, "resourceType":"PRB", "pLMNInfoList":[ { "pLMNId":"310-410", "sNSSAI":{ "sNSSAI":"001-010000", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 9, "uLThptPerSlice": 10 } } } ] }, { "cellLocalId":112951568, "operationalState":"ENABLED", "administrativeState":"UNLOCKED", "cellState":"ACTIVE", "nRPCI":12, "nRTAC":310, "resourceType":"PRB", "pLMNInfoList":[ { "pLMNId":"310-410", "sNSSAI":{ "sNSSAI":"001-010000", "status":"ACTIVE", "configData":{ "dLThptPerSlice": 9, "uLThptPerSlice": 10 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 GNBDUFunctionGNBCUCPFunction* [idGNBDUFunctionidGNBCUCPFunction] | SDN-R | Slicing | 1 | from CPS point of view this case is similar as previous 2 cases case (#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> | ||||||||||||||||||||||||
75. | E2E Network Slicing | /api/sdnc-config-db/v4/rrmPolicygNBCUUP | PUT | Store network elements' RRMPolicy gNBCUUP details | { | cps-ran-schema-model +--rw RRMPolicyRatioGNBCUUPFunction* [ididGNBCUUPFunction] | SDN-R | Slicing | 1 | Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here. | 8.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/ranslice-detailsgNBDU | PUT | RAN Inventory. Store RAN slice Store gNBDU, NRCellDU details | { " ranNFNSSIIdgNBDUId": "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 | 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", 4, { "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 | 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 | +--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 11.nRTAC? Tac | SDN-R | 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. | E2E Network Slicing | /api/sdnc-config-db/v4/rrmPolicy | PUT | Store network elements' RRMPolicy details | { | cps-ran-schema-model +--rw RRMPolicyRatio* [id] | SDN-R | 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. | 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" } ], "trackingAreaList": "Kingston" , "subnetStatus":"ACTIVE", "nsstId":"NSSTID1", "sliceType":"eMBB", "isShareable":"true" } | cps-ran-inventory +--rw ran-inventory | SDN-R | 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/ | profiledu- | configlist/{sNSSAI} | GET | Fetch | slice profile configuration for athe DU functions for 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? | ||||||||||||||||||||||
12. | /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 nearRICId Value - nssai config | | | +--rw configData* [configParameter] | | +--rw configParameter string | | +--rw configValue? int64 | DCAE-slice-analysis-ms | Slicing | 1 | Yang model defines only the DUCellConfiguration. Key is NEarRTRICid Suggested CPS-Query: get lis elements with children where leave has certain value,. | 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? | 14. | /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. | /api/sdnc-config-db/v3/modifyNbrHO/{cellId}/{targetCellId} | 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 |
...
[ { "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 | 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 NRCellDU* [idNRCellDU] | 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/profile-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-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/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 nRPCI? int32 | 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 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/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/getCellList/{regionId}/{ts} | GET | 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/v3/getNbrCellsNetwork/{regionId} | GET | Get 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 Regions* [regionId] | +--rw regionId RegionId | +--rw cps-region-cell-mapping | +--rw NRCellCU* [idNRCellCU] | +--rw idNRCellCU string | +--rw attributes | | +--rw cellLocalId? int32 | +--rw NRCellRelation* [idNRCellRelation] | +--rw idNRCellRelation string | +--rw attributes | +--rw nRTCI? uint64 | 3 | |||
25. | 5G SON | /api/sdnc-config-db/v3/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/getPCI/{cellId}/{ts} | GET | GET PCI value of a cell | { | +--rw cps-ran-schema +--rw GNBDUFunction* [idGNBDUFunction] | +--rw NRCellDU* [idNRCellDU] | +--rw nRPCI? int32 | 3 | |||
27. | 5G SON | /api/sdnc-config-db/v3/getPnfId/{maanagedElementId}/{ts} | GET | 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
}
]
}
]
}
]
}
]
}
} |
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 #4 described in CPS-235: Overview of (early) CPS Query#Queries assuming it wil have an option to also retrieve 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
S.No | Yang Model | Mapping Sheet |
---|---|---|
1. | cps-ran-schema-model | |
2. | cps-cavsta-onap-internal | |
`3. | cps-ran-inventory |