Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Analyse
...
API PUT
...
calls listed on this page
...
for E2E slicing use case (priority 1 and 2)
- Ensure use case is clear using model and data example
- Find out required (new) update functionality in CPS (several API
...
- calls might need the same CPS functionality.
- One API call might require more
...
- than one CPS-Core call, indicate in the report if this is the case
- One API call might need to access more
...
- than one model (report!)
- Distinguish between NCMP (ran network data) and
...
- CPS-Core access for slicing specific data.
A/C
- Wiki Page with a conclusion for each API call (see toines example for API call no.2 https://wiki.onap.org/display/DW/CPS+APIs)
- Add new update functionality if needed to https://wiki.onap.org/display/DW/CPS-235%3A+Overview+of+%28early%29+CPS+Update+Scenarios
https://wiki.onap.org/display/DW/CPS-235%3A+Overview+of+%28early%29+CPS+Query+and+Update+Scenarios - Review with the full team
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:
- Review with network slicing team
Issues and Decisions
Issue | Notes | Decision | |
---|---|---|---|
1 | What to do if the value already exists when inserting it into a list? | reject it or replace it without warning? | It can be rejected. |
2 | Would this be a new entry or is this updating an existing entry in a list for no. 4, 5, and 6? | Create a new entry, if it does not exists. Update, if it already exists. | |
3 | Confirm the exact list you a referring to in no 7? | He is referring to the list below. The expected behavior here is that update to the parent and the child list. It needs to be updated for NRCellDU, NRCellCU & GNBCUUPFunction +--rw rRMPolicyMemberList* [idx] | | +--rw idx uint32 | | +--rw mcc Mcc | | +--rw mnc Mnc | | +--rw sNSSAI? SNssai |
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 | Description | API input/Request Payload | Yang sub-tree/element(s) accessed (for GET), or updated (for UPDATE) | Consuming Component | Target Component | Transformation Required? | Comments |
---|---|---|---|---|---|---|---|---|
3. | /api/sdnc-config-db/v4/nearRTRIC | 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 | NCMP | 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> Replace data node with descendants. | |
4. | /api/sdnc-config-db/v4/gNBCUCP | Store gNBCUCP, NRCellCU details | { | cps-ran-schema-model +--rw GNBCUCPFunction* [idGNBCUCPFunction] |
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
"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]
+--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
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>
{
"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!
<Need to discuss>
{
"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 |
rw cellLocalId? |
int32 |
| +--rw 1
pLMNInfoList* [mcc mnc] | SDN-R |
NCMP | from CPS point of view this case is similar as previous |
case (#3 |
), just a 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> |
Create a new entry, if it does not exists. Update, if it already exists. | |
5. | /api/sdnc-config-db/v4/ |
gNBCUUP | Store |
gNBCUUP details | { |
gNBCUUPId": |
1111, |
2, |
resourceType":" |
"nFType":"DU
DRB", |
11, |
" |
pLMNInfoList":[ |
{ |
" |
pLMNId": |
"310-410", |
" |
sNSSAI": |
"administrativeState
{ |
001-003", |
" |
status":"ACTIVE", |
" |
configData": |
{ |
" |
maxNumberOfConns": |
"resourceType":"PRB",
"pLMNInfoList":[
{
"pLMNId":"310-410",
"sNSSAI":{
"sNSSAI":"001-010000",
"status":"ACTIVE",
"configData":{
"dLThptPerSlice": 9,
"uLThptPerSlice": 10
}
}
}
]
},
{
"cellLocalId":112951562,
"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
}
}
}
]
},
{
"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 GNBCUUPFunction* [idGNBCUUPFunction] | SDN-R | NCMP | 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> Create a new entry, if it does not exists. Update, if it already exists. | |
6. | /api/sdnc-config-db/v4/gNBDU | Store gNBDU, NRCellDU details | { |
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 NRCellDU* [idNRCellDU]
| +--rw idNRCellDU 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
| +--rw nRPCI? int32
| +--rw nRTAC? Tac
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>
"rrmPolicyID":1,
"resourceID":"113025289",
"resourceType":"PRB",
"sliceType":"eMBB",
"quotaType":"STRICT",
"rRMPolicyMaxRatio":0,
"rRMPolicyMinRatio":10,
"rRMPolicyDedicatedRatio":0,
"rRMPolicyMemberList":
[ |
410", |
}
]
}
, | cps |
-ran-schema-model +--rw |
GNBDUFunction* [ |
idGNBDUFunction] |
+--rw |
idGNBDUFunction string |
+--rw attributes |
ro gNBId? |
int64 |
gNBIdLength? int32 |
+--rw |
gNBDUId? int64 |
NRCellDU* [idNRCellDU] |
+--rw idNRCellDU string |
attributes |
| +--rw |
cellLocalId? |
int32 |
| +--rw |
pLMNInfoList* [mcc mnc] |
mcc Mcc |
mnc Mnc |
sNSSAIList* [sNssai] | SDN-R | NCMP | 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> Create a new entry, if it does not exists. Update, if it already exists. Will require a new method in cps core to add something to a list. | |||||
7. | /api/sdnc-config-db/v4/rrmPolicy | Store network elements' RRMPolicy details | { | cps-ran-schema-model +--rw RRMPolicyRatio* [id] | SDN-R | Currently, CPS has no option to replace an entire list without updating its parent which seems what is required here. <Need to discuss> Update the parent and the child list for rRMPolicyMemberList - will update multiple instances of RRMPolicyRatio | ||
8. | /api/sdnc-config-db/v4/ranslice-details | 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 | cps core | little difference can be found between the request payload and the yang model. Yang model is the final one. For CPS this seems like populating the whole data tree for a given model in one go. i.e. replace all existing data Modified the YANG model to support storing a list of Slices Replace datanode and children. |
Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here.
<Need to discuss>
{
"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 sNSSAI? string
| +--rw maxNumberofUEs? int64
| +--rw latency? int64
| +--rw uLThptPerSlice? int64
| +--rw dLThptPerSlice? int64
| +--rw maxNumberofConns? int64
| +--rw uEMobilityLevel? string
| +--rw resourceSharingLevel? string
| +--rw coverageAreaList* string
| +--rw pLMNIdList* [mcc mnc]
| +--rw mcc Mcc
| +--rw mnc Mnc
+--rw subnetStatus? string
+--rw nsstid? string
+--rw slicetype? string
+--rw isshareable? string
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
{
"cellList": [{
"Cell": {
"networkId": "jio",
"nodeId": "Chn1003",
"physicalCellId": 0,
"pnfName": "ncserver1007",
"sectorNumber": 0,
"latitude": "13.081907",
"longitude": "80.270862"
},
"neighbor": [
"Chn1006",
"Chn906",
"Chn1005",
"Chn905"
]
}]
}
{
"pci-value":1
}
{
"ho":false
}
{
"ho": true,
"targetCellId": "string"
}
cellId - string
trgetCellId - string