CPS APIs

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.NoUse caseAPI endpointHTTP MethodDescriptionAPI input/Request PayloadResult obtained for API call (in case of GET)Yang sub-tree/element(s) accessed (for GET), or updated (for UPDATE)Consuming ComponentPriorityComments
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-R1

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)

<Ahila> Please note the below:

  1. Fetch the List of Cells using API #2
  2. Fetch the parents and grandparents pertaining to those cells
2.E2E Network Slicing/api/sdnc-config-db/v4/cell-list/{trackingArea}GETGet a list of cells that correspond to a specific tracking area

trackingArea - String

<Changes at consumer end> - trackingArea should be an int

[
  "15289",
"15290",
"15296"
]

cps-cavsta-onap-internal

+--rw taCellsList* [cellLocalId]
+--rw cellLocalId int32

SDN-R

1

Proposed CPS query:
get all elelements in list (NRCellDU) fiter on one attribue vale (nRTAC)

Same as #1 except without children

Refer cps-cavsta-onap-internal

In scope of H-release

3.E2E Network Slicing/api/sdnc-config-db/v4/nearRTRICPUTStore 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-R1

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/gNBCUCPPUTStore 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-R1

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/gNBCUUPPUTStore 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-R1

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/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-R1

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/rrmPolicyPUTStore 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 sNSSAI? SNssai
| | +--rw quotaType? QuotaType
| | +--rw rRMPolicyMaxRatio? uint8
| | +--rw rRMPolicyMinRatio? uint8
| | +--rw rRMPolicyDedicatedRatio? uint8

SDN-R1

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-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]
| +--rw mcc Mcc
| +--rw mnc Mnc
+--rw subnetStatus? string
+--rw nsstid? string
+--rw slicetype? string
+--rw isshareable? string

SDN-R2

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/du-list/{sNSSAI}GETFetch the DU functions for sNSSAIsNSSAI - 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
| | +--rw attributes
| | +--rw resourceType? string
| | +--rw rRMPolicyMemberList* [idx]
| | | +--rw idx uint32
| | | +--rw mcc Mcc
| | | +--rw mnc Mnc
| | | +--rw sNSSAI? SNssai
| | +--rw quotaType? QuotaType
| | +--rw rRMPolicyMaxRatio? uint8
| | +--rw rRMPolicyMinRatio? uint8
| | +--rw rRMPolicyDedicatedRatio? uint8
| +--rw NRCellDU* [idNRCellDU]
| +--rw idNRCellDU string
| +--rw attributes
| +--rw RRMPolicyRatio* [id]
| | +--rw id string
| | +--rw attributes
| | +--rw resourceType? string
| | +--rw rRMPolicyMemberList* [idx]
| | | +--rw idx uint32
| | | +--rw mcc Mcc
| | | +--rw mnc Mnc
| | | +--rw sNSSAI? SNssai
| | +--rw quotaType? QuotaType
| | +--rw rRMPolicyMaxRatio? uint8
| | +--rw rRMPolicyMinRatio? uint8
| | +--rw rRMPolicyDedicatedRatio? uint8
| +--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

DCAE-slice-analysis-ms1

Suggested CPS Actions:
query list element that have leaf (sNSSAI) with given value. Also get parent? (requires additional get)

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}GETFetch DU Cells for sNSSAIsNSSAI - 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]
| +--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

DCAE-slice-analysis-ms1

Yang model defines only the DUCellList which is the value in the response.

Key is a nearRTRICId


Suggested CPS Actions:
query list element that have leaf (sNSSAI) with given value. Also get parent? (requires additional get)

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}GETFetch slice profile configuration for a sNSSAIsNSSAI - 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}GETFetch NearRTRIC configuration for a sNSSAIsNSSAI - 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
+--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

DCAE-slice-analysis-ms1

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}GETFetch subscriber detailssNSSAI - String

DCAE-slice-analysis-ms2

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/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 MS3
15.5G SON/api/sdnc-config-db/v3/modifyPci/{cellId}PATCHModfify PCI value of a cell

{

"pci-value":1

}


+--rw GNBDUFunction* [idGNBDUFunction]
| +--rw idGNBDUFunction string

| +--rw NRCellDU* [idNRCellDU]
| +--rw idNRCellDU string

| +--rw attributes

| +--rw nRPCI? int32


SDNR3
16.5G SON/api/sdnc-config-db/v3/modifyNbrHO/{cellId}/{targetCellId}PATCHModify HO (Handoff) flag for a target neighbor cell

{

"ho":false

}


+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]
| +--rw idNRCellRelation string

| +--rw isHOAllowed? boolean

SDNR3
17.5G SON/api/sdnc-config-db/v3/createNbr/{cellId}PUTCreate a neigbor for a cell
{
  "ho": true,
  "targetCellId": "string"
}

+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]
| +--rw idNRCellRelation string

| +--rw isHOAllowed? boolean

SDNR3
18.5G SON/api/sdnc-config-db/v3/deleteNbr/{cellId}/{targetCellId}DELETEDelete a neighbor for a call

cellId - string

trgetCellId - string


+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]
| +--rw idNRCellRelation string

SDNR3
19.E2E Network Slicingapi/sdnc-config-db/v4/nearrtric/{ranNFNSSIId}GETFetches the NearRTRICs for the RANNFNSSIranNFNSSIId - String

Returns the RAN-schema yang (Refer CPS - 196)

SDNR1
20.E2E Network Slicing/api/sdnc-config-db/v4/plmn/{sliceProfileId}GETReturns PLMN id for the sliceProfilesliceProfileId - StringPLMNId as String
SDNR1
21.E2E Network Slicing/api/sdnc-config-db/v4/ta-list/{mcc}/{mnc}/{coverageArea}GETReturns 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]
+--rw coverageArea string
+--rw coverageAreaTAList* [nRTAC]

OOF1In scope of H-release
22.5G SON

/api/sdnc-config-db/v3/getCell/{cellId}

GETGet 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 idNRCellDU string

+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string

OOF, Policy3
23.5G SON

/api/sdnc-config-db/v3/getCellList/{regionId}/{ts}

GETGet 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}

GETGet 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}

GETGet a list of neighbors for a cell
{
"cellId": "string",
"nbrList": [
{
"ho": true,
"pciValue": 0,
"targetCellId": "string"
}
]
}

+--rw cps-ran-schema

+--rw NRCellCU* [idNRCellCU]
+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]
| +--rw idNRCellRelation string
| +--rw attributes
| +--rw nRTCI? uint64


3
26.5G SON

/api/sdnc-config-db/v3/getPCI/{cellId}/{ts}

GETGET PCI value of a cell
{
"attribute-name": "string",
"value": "string"
}

+--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
For GNBDUFunction: - gNBDUId
For GNBCUUPFunction: gNBCUUPId
For GNBCUCPFunction: gNBCUName


{
"attribute-name": "string",
"value": "string"
}

+--rw cps-ran-schema

+--rw NearRTRIC* [idNearRTRIC]
+--rw idNearRTRIC string

+--rw GNBDUFunction* [idGNBDUFunction]
| | +--rw gNBDUId? int64

+--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")

Data Sample
{
  "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.NoYang ModelMapping Sheet
1.cps-ran-schema-model
2.cps-cavsta-onap-internal
`3.cps-ran-inventory