Versions Compared

Key

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

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

...

Complete Yang model. Refer CPS-196

cps-ran-schema-model

...

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)

  1. Fetch the List of Cells using API #2
  2. Fetch the parents and grandparents pertaining to those cells

...

trackingArea - String

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

...

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

...

cps-cavsta-onap-internal

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

...

Refer cps-cavsta-onap-internal

In scope of H-release

...

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:

-rw status? string
| +--rw configData* [configParameter]
| +--rw configParameter string
| +--rw configValue? int64{
   "gNBDUId":4
   "gNBId":98763,
   "gNBIdLength":5,
   "pLMNId8.ranslice-detailsRAN Inventory. Store RAN slice details

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

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/nearRTRICgNBDUPUTStore nearRTRIC gNBDU, NRCellDU details4./api/sdnc-config-db/v4/gNBCUCPPUTStore gNBCUCP, NRCellCU details

{


    "nearRTRICId":22,
    "gNBId":98763,
    "trackingArea":[
        "Kingston"
    ],
    "resourceType":"NearRTRIC",
    "ranNFNSSIList":[
        "11",
        "22"
    ]


   "gNBDUId":4
   "gNBId":98763,
   "

pLMNInfoList

gNBIdLength":

[
        {
           

5,
   "pLMNId":"310-410",

           


            "sNSSAI":{
                "sNSSAI

   "gNBDUName":"

001-010000

gnduserver4",

               

   "

status

nFType":"

ACTIVE

DU",

           

   "

globalSubscriberId

nearRTRICId":

"Customer-001"

22,

               

   "

subscriptionServiceType

cellDUList":

"Premium",
                "configData":

[
       {

                   

    "

dLThptPerSlice

cellLocalId":

25

112951561,

                   

    "

uLThptPerSlice

operationalState":

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

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"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-200410",            
            "sNSSAI":{
                "sNSSAI":"001-00110010000",
                "status":"ACTIVE",
                                 "configData":{
                    "maxNumberOfConns
               "dLThptPerSlice"9,
                "uLThptPerSlice"700010
                            }
            }
        }
    ]
}
   ]
}


cps-ran-schema-model

+--rw GNBCUCPFunctionGNBDUFunction* [idGNBCUCPFunctionidGNBDUFunction]
| +--rw idGNBCUCPFunction idGNBDUFunction string
| +--rw attributes
| | +--rw ro gNBId? int64
| | +--rw gNBIdLength? int32
| | +--rw gNBCUNamegNBDUId? stringint64
| +--rw pLMNId* [mcc mnc]
| +--rw mcc MccgNBDUName? string
| +--rw mnc Mnc
+--rw NRCellCUNRCellDU* [idNRCellCUidNRCellDU]
| +--rw idNRCellCU 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? int64int64
| +--rw nRPCI? int32
| +--rw nRTAC? Tac

SDN-RSlicing1

from CPS point of view this case is similar as previous case 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>

57.E2E Network Slicing/api/sdnc-config-db/v4/gNBCUUPrrmPolicyPUTStore gNBCUUP network elements' RRMPolicy details

{
   "gNBCUUPId":1111
   "gNBId":98763,
   "gNBIdLength":2,
   "pLMNId":"310-410",
   "resourceType":"DRB",
   "nearRTRICId":11,
    "pLMNInfoList
    "rrmPolicyID":1,
    "resourceID":"113025289",
    "resourceType":"PRB",
    "sliceType":"eMBB",
    "quotaType":"STRICT",
    "rRMPolicyMaxRatio":0,
    "rRMPolicyMinRatio":10,
    "rRMPolicyDedicatedRatio":0,
    "rRMPolicyMemberList":[
        {
            "pLMNId":"310-410400",
            "sNSSAI":{
                "sNSSAI":"001-003",
                "status":"ACTIVE",
                "configData":{
                    "maxNumberOfConns"3000
            }
            }010000"
        }
    ]
}


cps-ran-schema-model

+--rw GNBCUUPFunctionRRMPolicyRatio* [idGNBCUUPFunctionid]
| | +--rw idGNBCUUPFunction id string
| | +--rw attributes
| | +--ro gNBCUUPIdrw resourceType? uint64string
| | +--rw gNBId? int64
rRMPolicyMemberList* [idx]
| | | +--rw pLMNInfoList* [mcc mnc]
idx uint32
| | | +--rw mcc Mcc
| | | +--rw mnc Mnc
| | | +--rw sNSSAI? SNssai
| | +--rw quotaType? QuotaType
| | +--rw sNSSAIList* [sNssai]
rRMPolicyMaxRatio? uint8
| | +--rw sNssai stringrRMPolicyMinRatio? 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-SDN-RSlicing1

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 detailsdb/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"

        }

    ],
   
    "gNBDUNametrackingAreaList":
        "gnduserver4Kingston" ,
   
    "nFTypesubnetStatus":"DUACTIVE",
   
    "nearRTRICIdnsstId":22"NSSTID1",
   
    "cellDUListsliceType":[
       {
    "cellLocalId":112951561"eMBB",

    "operationalStateisShareable":"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,
    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,
    "resourceType":"PRB",
    "pLMNInfoList":[
        {
            -004",

            "sNSSAI":{

                "sNSSAI":"001-003",

                "status":"ACTIVE",

                "configData":{

                "dLThptPerSlice": 45,

                "uLThptPerSlice": 40

                }

            }

        },

        {

            "pLMNId":"310-410",                        

            "sNSSAI":{

                                "sNSSAI":"001-010000024",

                                "status":"ACTIVE",                

                "configData":{

                "dLThptPerSlice":  965,                

                "uLThptPerSlice":  1030

                                }

                        }

                }

        ]

}

      ]

}

]


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 NRCellDURRMPolicyRatio* [idNRCellDUid]
| | +--rw idNRCellDU id string
| | +--rw attributes
| | +--rw cellLocalIdresourceType? int32string
| | +--rw pLMNInfoListrRMPolicyMemberList* [mcc mncidx]
| | | +--rw mcc Mccidx uint32
| | | +--rw mnc Mncmcc Mcc
| | | +--rw sNSSAIList* [sNssai]
| | +--rw sNssai string
mnc Mnc
| | | +--rw statussNSSAI? stringSNssai
| | +--rw configData* [configParameter]
| | +--rw configParameter stringquotaType? QuotaType
| | +--rw configValuerRMPolicyMaxRatio? int64uint8
| | +--rw nRPCIrRMPolicyMinRatio? int32uint8
| | +--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,
    "rRMPolicyMemberList":[
        {
            "pLMNId":"310-400",
            "sNSSAI":"001-010000"
        }
    ]
}

cps-ran-schema-model

+--rw RRMPolicyRatio* [id]
| | +--rw id stringrRMPolicyDedicatedRatio? 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 attributesmcc Mcc
| | +--rw resourceType? stringmnc Mnc
| | +--rw rRMPolicyMemberListsNSSAIList* [idxsNssai]
| | | +--rw idx uint32sNssai string
| | | +--rw mcc Mccstatus? string
| | | +--rw mnc Mnc
| configData* [configParameter]
| | +--rw sNSSAI? SNssaiconfigParameter string
| | +--rw quotaTypeconfigValue? QuotaTypeint64
| | +--rw rRMPolicyMaxRationRPCI? uint8int32
| | +--rw rRMPolicyMinRationRTAC? uint8Tac| | +

DCAE--rw rRMPolicyDedicatedRatio? uint8SDN-RSlicingslice-analysis-ms1

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

<Need to discuss>

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/PUTdu-cell-list/{sNSSAI}GETFetch DU Cells for sNSSAIsNSSAI - String

{

    

   "

ranNFNSSIId

1":

"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

[

        {

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

    

                        "

nsstId

globalSubscriberId": null,

                        "

NSSTID1

subscriptionServiceType": null,

    

                        "

sliceType

configData":

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

                    }

                }

            ],

            "nRPCI": 45,

            "nRTAC": 9087

        }

    ]

}

Note:

Key - nearRTRIC Id

value - list of cells

cps-ran-schema-model

| +--rw pLMNIdListNRCellDU* [mcc mncidNRCellDU]
| +--rw mcc MccidNRCellDU string
| +--rw mnc Mnc
+--rw subnetStatus? string
+--rw nsstid? string
+--rw slicetype? string
+--rw isshareable? string

SDN-RSlicing29./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* [idattributes
| +--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

10.

+--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 id sNssai string
| | +--rw attributes
| | +--rw resourceTypestatus? string
| | +--rw rRMPolicyMemberListconfigData* [idxconfigParameter]
| | | +--rw idx uint32configParameter string
| | | +--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-msSlicing1

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.

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/v4/du-cell-listv3/modifyPci/{sNSSAIcellId}GETFetch DU Cells for sNSSAIsNSSAI - StringPATCHModfify PCI value of a cell

{

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

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.

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/profile-configta-list/{mcc}/{mnc}/{sNSSAIcoverageArea}GETFetch slice profile configuration for a sNSSAIsNSSAI - String

DCAE-slice-analysis-ms,

ML MS

Slicing2

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.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]
+--rw coverageArea string
+--rw coverageAreaTAList* [nRTAC]

OOF1In scope of H-release
22.5G SON

/api/sdnc-config-db/

v4

v3/

slice-config

getCell/{

sNSSAI

cellId}

GETFetch NearRTRIC configuration for a sNSSAIsNSSAI - StringGet information about a cell. cellId is referred to in YANG model as any of the following: idNRCellDU, idNRCellCU, cellLocalId
{
    "1Cell": {
        "dLThptPerSlicelatitude": 45"string",
        "uLThptPerSlicelongitude": 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-msSlicing1

Yang model defines only the pLMNInfoConfiguration.

Key is NEarRTRICid

Suggested CPS-Query: get lis elements with children where leave has certain value,.

13."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/

v4/subscriber-details

getCellList/{regionId}/{

sNSSAI

ts}

GETFetch subscriber detailssNSSAI - StringDCAE-slice-analysis-msSlicing2

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

insertData

{regionId}

PUTPre-load Cell DataGETGet a list of all neighbor relationships for a specific region (identified by regionId)
{
"cellListcellsNbrList": [{
"Cell": {
"networkIdcellId": "jiostring",
"nodeIdnbrList": "Chn1003",
"physicalCellId": 0,[
{
"pnfNameho": "ncserver1007"true,
"sectorNumberpciValue": 0,
"latitudetargetCellId": "13.081907string",
"longitude": "80.270862"
},
"neighbor": [
"Chn1006",
"Chn906"
]
}
],
"Chn1005networkId",
: "Chn905string"
]
}]
}
OOF-PCI MSSON315./api/sdnc-config-db/v3/modifyPci/{cellId}PATCHModfify PCI value of a cell

{

"pci-value":1

}

SDNRSON316.
}
+--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/

modifyNbrHO

getNbrList/{cellId}/{

targetCellId

ts}

PATCHModify HO (Handoff) flag for a target neighbor GETGet a list of neighbors for a cell
{
"hocellId": false

}

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

cellId - string

trgetCellId - string

SDNRSON319.}
]
}

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

v4

getPCI/

nearrtric

{cellId}/{

ranNFNSSIId

ts}

GETFetches the NearRTRICs for the RANNFNSSIranNFNSSIId - String

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

SDNRSlicing120./api/sdnc-config-db/v4/plmn/{sliceProfileId}GETReturns PLMN id for the sliceProfilesliceProfileId - StringPLMNId as StringSDNRSlicing121.GET 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/

v4

v3/

ta-list

getPnfId/{

mcc

maanagedElementId}/{

mnc}/{coverageArea

ts}

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]

OOFSlicing1In scope of H-release

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


Code Block
languagexml
titleData Sample
collapsetrue
{
  "cps-cavsta-onap-internal:ran-coverage-area": {
    "pLMNIdList": [
      {
        "mcc": "310",
        "mnc": "410"
 ,
  }   ],   "coverage-area": [
          {
            "coverageArea": "Washington",
            "coverageAreaTAList": [
              {
                "nRTAC": 234,
                "taCellsList": [
                  {
                    "cellLocalId": 15709
                  }
  {              ]
"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 #4 described in CPS-235: Overview of (early) CPS Query and Update ScenariosQuery#Queries assuming it wil ahve have an option to also retreive all descendantsretrieve 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

...