Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira LegacyserverSystem Jiracolumnskey,summary,

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-278

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

  1. Wiki Page with a conclusion for each API call (see toines example for API call no.2 https://

...

  1. lf-onap.

...

  1. atlassian.net/wiki/display/DW/CPS+APIs)
  2. Add new update functionality if needed to https://lf-onap.atlassian.net/wiki

...

  1. /display/DW/CPS-235%3A+Overview+of+%28early%29+CPS+Update+Scenarios
    https://lf-onap.atlassian.net/wiki/display/DW/CPS-235%3A+Overview+of+%28early%29+CPS+Query+and+Update+Scenarios
  2. 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:

...

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

...

cps-ran-schema-model

...

  1. Review with network slicing team

Issues and Decisions


IssueNotesDecision
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.

2Would 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.

3Confirm 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 ComponentTransformation Required?

Comments

3./api/sdnc-config-db/v4/nearRTRICStore 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]
+--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

SDN-R
Slicing1

There is no model that defines that has a TrackingArea String

is this now the 'locationName'?

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
PUT1
Store gNBCUCP, NRCellCU details

{
   "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

SDN-R
Slicing
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
PUT1
Store gNBCUUP details

{
   "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

SDN-R
Slicing"rRMPolicyMemberList
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>

6./api/sdnc-config-db/v4/gNBDUPUTStore gNBDU, NRCellDU details

{
   "gNBDUId":4
   "gNBId":98763,
   "gNBIdLength":5,
   "pLMNId":"310-410",
   "gNBDUName":"gnduserver4",
   "nFType":"DU",
   "nearRTRICId":22,
   "cellDUList":[
       {
    "cellLocalId":112951561,
    "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":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
                }
            }
        }
    ]
}
   ]
}

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

SDN-RSlicing1

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/rrmPolicyPUTStore network elements' RRMPolicy details{
    "rrmPolicyID":1,
    "resourceID":"113025289",
    "resourceType":"PRB",
    "sliceType":"eMBB",
    "quotaType":"STRICT",
    "rRMPolicyMaxRatio":0,
    "rRMPolicyMinRatio":10,
    "rRMPolicyDedicatedRatio":0,
    


Create a new entry, if it does not exists. Update, if it already exists.

6./api/sdnc-config-db/v4/gNBDUStore gNBDU, NRCellDU details

{
   "gNBDUId":4
   "gNBId":98763,
   "gNBIdLength":5,
   "pLMNId":"310-410",
   "gNBDUName":"gnduserver4",
   "nFType":"DU",
   "nearRTRICId":22,
   "cellDUList":[
       {
    "cellLocalId":112951561,
    "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":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-

400

410",            
            "sNSSAI":{
                "sNSSAI":"001-010000",
                "status":"ACTIVE",
                "configData":{
               "dLThptPerSlice"9,
                "uLThptPerSlice"10
                }
            }
        }
    ]
}
   ]
}

cps-ran-schema-model

+--rw GNBDUFunction* [idGNBDUFunction]


}

cps-ran-schema-model


| +--rw idGNBDUFunction string
| +--rw attributes
| | +--ro gNBId? int64
| | +--rw gNBIdLength? int32
| | +--rw gNBDUId? int64
| | +--rw gNBDUName? string
| +--rw

RRMPolicyRatio

NRCellDU* [

id

idNRCellDU]

|

| +--rw

id

idNRCellDU string

|

| +--rw attributes

|

| +--rw

resourceType

cellLocalId?

string

int32
|

|

+--rw

rRMPolicyMemberList

pLMNInfoList* [

idx

mcc mnc]
| | +--rw mcc Mcc
| | +--rw

idx uint32

mnc Mnc
| | +--rw sNSSAIList* [sNssai]
| | +--rw

mcc Mcc

sNssai string
| |

|

+--rw

mnc Mnc

status? string
| |

|

+--rw

sNSSAI? SNssai

configData* [configParameter]
| | +--rw

quotaType? QuotaType

configParameter string
| | +--rw

rRMPolicyMaxRatio

configValue?

uint8

int64
|

|

+--rw

rRMPolicyMinRatio

nRPCI?

uint8

int32
|

|

+--rw

rRMPolicyDedicatedRatio

nRTAC?

uint88

Tac

SDN-R
Slicing1

Currently CPS has no option to replace an entire list without udpating its parent wihc seems what is required here.

<Need to discuss>

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/
ranslice-detailsPUTRAN 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 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]
|
rrmPolicyStore network elements' RRMPolicy details

{
    "rrmPolicyID":1,
    "resourceID":"113025289",
    "resourceType":"PRB",
    "sliceType":"eMBB",
    "quotaType":"STRICT",
    "rRMPolicyMaxRatio":0,
    "rRMPolicyMinRatio":10,
    "rRMPolicyDedicatedRatio":0,
    "rRMPolicyMemberList":[
        {
            "pLMNId":"310-400",
            "sNSSAI":"001-010000"
        }
    ]
}

cps-ran-schema-model

+--rw RRMPolicyRatio* [id]
| | +--rw id string
| | +--rw attributes
| | +--rw resourceType? string
| | +--rw rRMPolicyMemberList* [idx]
| | | +--rw idx uint32
| | | +--rw mcc Mcc
| | | +--rw mnc Mnc
| | | +--rw

subnetStatus? string

sNSSAI? SNssai
| | +--rw quotaType? QuotaType
| | +--rw

nsstid

rRMPolicyMaxRatio?

string

uint8
| | +--rw

slicetype

rRMPolicyMinRatio?

string

uint8
| | +--rw

isshareable? stringSDN-RSlicing2

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

14./api/sdnc-config-db/v3/insertDataPUTPre-load Cell Data
{
"cellList": [{
"Cell": {
"networkId": "jio",
"nodeId": "Chn1003",
"physicalCellId": 0,
"pnfName": "ncserver1007",
"sectorNumber": 0,
"latitude": "13.081907",
"longitude": "80.270862"
},
"neighbor": [
"Chn1006",
"Chn906",
"Chn1005",
"Chn905"
]
}]
}
OOF-PCI MSSON315./api/sdnc-config-db/v3/modifyPci/{cellId}PATCHModfify PCI value of a cell

{

"pci-value":1

}

SDNRSON316./api/sdnc-config-db/v3/modifyNbrHO/{cellId}/{targetCellId}PATCHModify HO (Handoff) flag for a target neighbor cell

{

"ho":false

}

SDNRSON317./api/sdnc-config-db/v3/createNbr/{cellId}PUTCreate a neigbor for a cell
{
  "ho": true,
  "targetCellId": "string"
}
SDNRSON318./api/sdnc-config-db/v3/deleteNbr/{cellId}/{targetCellId}DELETEDelete a neighbor for a call

cellId - string

trgetCellId - string

SDNRSON3

rRMPolicyDedicatedRatio? uint8

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-detailsRAN 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 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

SDN-Rcps 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.