CPS 5G-SON APIs

CPS-330: Analyse SON Use case PUT,PATCH & DELETE endpointsClosed

Issue Description

Notes

Decision

Issue Description

Notes

Decision

1

Data not found for this API number 14 below





2

No. 22 requires the client to process two separate calls.

Could possibly be handled by TBDMT.





CPS RAN schema yang

cps-ran-schema-model@2021-05-19-tree.txt



RAN Network Yang (Similar to O-RAN Yang)

ran-network-tree-12.dat





S. No

API End Point

HTTP Method

Description

API Input / Request Payload

Resulting API response in case of "GET"

YANG subtree

Possible CPS path

Required Query

Comments

S. No

API End Point

HTTP Method

Description

API Input / Request Payload

Resulting API response in case of "GET"

YANG subtree

Possible CPS path

Required Query

Comments

14

/api/sdnc-config-db/v3/insertData

PUT

Pre-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"
]
}]
}









[Sandeep] This was done for ConfigDB data schema. We have already provided YANG models (configuration and supplemental to help queries) for CPS. I guess there has been an API or some mechanism to pre-load data.

15

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

PATCH

Modfify PCI value of a cell

{

"pci-value":1

}



+--rw cps-ran-schema

+--rw NearRTRIC* [idNearRTRIC]

+--rw idNearRTRIC string

+--rw GNBDUFunction* [idGNBDUFunction]

| +--rw idGNBDUFunction string

| +--rw NRCellDU* [idNRCellDU]

| +--rw idNRCellDU string

| +--rw nRPCI? int32



cps-ran-schema/GNBDUFunction/{idGNBDUFunction}/NRCellDU/{idNRCellDU}/attributes/nRPCI



Based on the givenNRCellDU, modify the attribute PCI value 





16

/api/sdnc-config-db/v3/modifyNbrHO/{cellId}/{targetCellId}

PATCH

Modify HO (Handoff) flag for a target neighbor cell

{

"ho":false

}



+--rw ran-network

+--rw NearRTRIC* [idNearRTRIC]

+--rw idNearRTRIC string

+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]

+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]

| +--rw idNRCellRelation string

| +--rw attributes

| +--rw isHOAllowed? boolean

ran-network/NearRTRIC/{idNearRTRIC}/GNBCUCPFunction/{idGNBCUCPFunction}/NRCellCU/{idNRCellCU}/NRCellRelation/idNRCellRelation/attributes/isHOAllowed/{isHOAllowed}



For the given path that contains NRCellCU and NRCellRelation, modify the isHOAllowed attribute.





17

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

PUT

Create a neigbor for a cell

{ "ho": true, "targetCellId": "string" }



+--rw ran-network

+--rw NearRTRIC* [idNearRTRIC]

+--rw idNearRTRIC string

+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]

+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]

| +--rw idNRCellRelation string

| +--rw attributes

| +--rw adjacentNRCellRef? DistinguishedName

| +--rw isHOAllowed? boolean

ran-network/NearRTRIC/{idNearRTRIC}/GNBCUCPFunction/{idGNBCUCPFunction}/NRCellCU/{idNRCellCU}/NRCellRelation/idNRCellRelation/attributes/isHOAllowed/{isHOAllowed}



For the given path for NRCellCU add the NRCellRelation and isHOAllowed set to true



Query first and then

18

/api/sdnc-config-db/v3/deleteNbr/{cellId}/{targetCellId}

DELETE

Delete a neighbor for a call

cellId - string

trgetCellId - string



+--rw ran-network

+--rw NearRTRIC* [idNearRTRIC]

+--rw idNearRTRIC string

+--rw GNBCUCPFunction* [idGNBCUCPFunction]

+--rw idGNBCUCPFunction string

+--rw NRCellCU* [idNRCellCU]

+--rw idNRCellCU string

+--rw NRCellRelation* [idNRCellRelation]

| +--rw idNRCellRelation string

| +--rw attributes

| +--rw adjacentNRCellRef? DistinguishedName

| +--rw isHOAllowed? boolean

ran-network/NearRTRIC/{idNearRTRIC}/GNBCUCPFunction/{idGNBCUCPFunction}/NRCellCU/{idNRCellCU}/NRCellRelation/idNRCellRelation/attributes/isHOAllowed/{isHOAllowed}





Delete the object (targetCellId) of the child list NRCellRelation for the parent NRCellCU



Query first and then perform delete operation on every result found.

22

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

GET

Get information about a cell. cellId is referred to in the 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

this requires a double query





[Sandeep] The expected response payload from CPS includes details from 2 separate YANG fragments, and they are included in the CPS API wiki site. CPS needs to do two separate XPATH queries, collect/consolidate the info in the final response payload. The idea of supplemental YANG is to help queries...and these relationships already exist in the supplemental YANG model (also attached herewith).

23

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

GET

Get the 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

cps-ran-schema/Regions/{regionId}/cps-region-cell-mapping/NRCellCU/{idNRCellCU}



Get the list of children for the given XPath





24

/api/sdnc-config-db/v3/getNbrCellsNetwork/{regionId}

GET

Get a list of all neighbor relationships for a specific region (identified by regionId)



{

"cellsNbrList": [

{

"cellId": "string",

"nbrList": [

{

"ho": true,

"pciValue": 0,

"targetCellId": "string"

}

]

}

],

"networkId": "string"

}

+--rw cps-ran-schema

+--rw Regions* [regionId]

| +--rw regionId RegionId

| +--rw cps-region-cell-mapping

| +--rw NRCellCU* [idNRCellCU]

| +--rw idNRCellCU string

| +--rw attributes

| | +--rw cellLocalId? int32

| +--rw NRCellRelation* [idNRCellRelation]

| +--rw idNRCellRelation string

| +--rw attributes

| +--rw nRTCI? uint64

cps-ran-schema/Regions/{regionId}/cps-region-cell-mapping/NRCellCU/{idNRCellCU}/NRCellRelation/{idNRCellRelation}/attributes/nRTCI



Get the list of all children on this given XPath given only regionId





25

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

GET

Get a list of neighbors for a cell



{

"cellId": "string",

"nbrList": [

{

"ho": true,

"pciValue": 0,

"targetCellId": "string"

}

]

}

+--rw cps-ran-schema

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

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

for the path below, get the list of idNRCellRelation

  • ran-network/NearRTRIC/{idNearRTRIC}/GNBCUCPFunction/{idGNBCUCPFunction}/NRCellCU/{idNRCellCU}/NRCellRelation/idNRCellRelation/





26

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

GET

GET PCI value of a cell



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

+--rw cps-ran-schema

+--rw GNBDUFunction* [idGNBDUFunction]

| +--rw NRCellDU* [idNRCellDU]

| +--rw nRPCI? int32

cps-ran-schema/GNBDUFunction/{idGNBDUFunction}/NRCellDU/{idNRCellDU}/nRPCI



for the given xpath return the node attributes





27

/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





How do we know which attribute are we looking for?