Mapping netconf edits to O-RAN yang model

The SON use case used the BBF yang model in RAN-Sim till now for the netconf edit-config messages from SDN-R to RAN-Sim. The plan has been to use the "primary" ran-network yang model

which is a subset of the O-RAN O1 model based on 3GPP NRM. The modification of SDN-R/CCSDK to align to the new yang models was carried over to Jakarta releas.e

CCSDK-3544: Modify SDN-R to use new yang models in netconf session with RAN-SimClosed  captures the requirement. This wiki documents the aspects involved.

There are two types of actions - the original ModifyConfig to change PCI value, and the later ModifyConfigANR to change the neighbor relation property.

The sections below list the information and the mapping needed in the DG to the netconf edit-config message so that it is aligned to the new O-RAN yang model.



1. ModifyConfig (used for PCI change)


Fields needed to form netconf edit-config message:

alias  - primary key for cell id
pnfName - name of netconf server / DU / CU
phyCellIdInUse - pci (integer)



Example payload for msg to SDNR for ModifyConfigANR action in ANR usecase showing blacklisted:

cell id:  alias -> 
pNFName ->

Payload for ModifyConfig message to SDNR to change PCI for PCI use case:

{
"body": {
"input": {
"CommonHeader": {
"TimeStamp": "2020-06-19T13:36:33.966464Z",
"APIVer": "1.0",
"RequestID": "abad4556-7bed-4bb6-b35b-74f558141a14",
"SubRequestID": "0c95324b-6b57-4874-b252-4f00cd8194ef",
"RequestTrack": {},
"Flags": {}
},
"Action": "ModifyConfig",
"Payload": "{\"Configurations\":[{\"data\":{\"FAPService\":{\"alias\":\"Chn0005\",\"X0005b9Lte\":{\"phyCellIdInUse\":1,\"pnfName\":\"ncserver1\"},\"CellConfig\":{\"LTE\":{\"RAN\":{\"Common\":{\"CellIdentity\":\"Chn0005\"}}}}}}}]}"
}
},
"version": "1.0",
"rpc-name": "modifyconfig",
"correlation-id": "abad4556-7bed-4bb6-b35b-74f558141a14-0c95324b-6b57-4874-b252-4f00cd8194ef",
"type": "request"
}



Mapping of fields to RANSim yang model (bold fields may be the only ones relevant): 


Map netconf server id to both DU and CU:

pnfName  (e.g., ncserver1) -> idGNBDUFunction (string)
pnfName  (e.g., ncserver1) -> idGNBCUCPFunction (string)

Map cellid (alias field in msg received by SDNR) to both nrcellDU and nrcellCU:
alias (e.g, Chn0001) -> idNRCellDU (string)  
alias (e.g, Chn0001) -> idNRCellCU (string)
Note: CellIdentity has same value as alias

idNRCellDU used for nRPCI
idNRCellCU used for isHOAllowed

phyCellIdInUse  -> nrCellDU/nrPCI



2. ModifyConfigANR (used for neighbor relation blacklist change in ANR)

Fields needed to form netconf edit-config message:

alias  - primary key for cell id
PNFName - name of netconf server / DU / CU
Blacklisted - maps to isHOAllowed
PhyCellID - pci (integer) .. this is not used for ANR action, but listed her for completeness since the syntax is different.

CID in NeighborListInUse - is used to map to cellrelation (from source cell to target neighbor cell)



Payload for msg to SDNR for ModifyConfigANR action in ANR usecase showing blacklisted:

{"body":{"input":{"CommonHeader":{"TimeStamp":"2020-05-15T06:58:33.255034Z","APIVer":"1.0","ReestID":"e2262d44-82bc-4ae4-8616-1df3c0e6b30b","SubRequestID":"be24d1f5-c255-4cf3-9125-3a0c97c3ee53","RequestTrack":{},"Flags":{}},"Action":"ModifyConfigANR","Payload":"{\"Configurations\":[{\"data\":{\"FAPService\":{\"alias\":\"Chn0003\",\"CellConfig\":{\"LTE\":{\"RAN\":{\"Common\":{\"CellIdentity\":\"Chn0003\"},\"NeighborListInUse\":{\"LTECell\":[{\"PNFName\":\"ncserver1\",\"PLMNID\":\"ran-1\",\"CID\":\"Chn0008\",\"PhyCellID\":4,\"Blacklisted\":\"true\"},{\"PNFName\":\"ncserver1\",\"PLMNID\":\"ran-1\",\"CID\":\"Chn0005\",\"PhyCellID\":31,\"Blacklisted\":\"true\"},{\"PNFName\":\"ncserver1\",\"PLMNID\":\"ran-1\",\"CID\":\"Chn0001\",\"PhyCellID\":26,\"Blacklisted\":\"true\"}],\"LTECellNumberOfEntries\":\"3\"}}}}}}}]}"}},"version":"1.0","rpc-name":"modifyconfiganr","correlation-id":"e2262d44-82bc-4ae4-8616-1df3c0e6b30b-be24d1f5-c255-4cf3-9125-3a0c97c3ee53","type":"request"}



Mapping of fields to RANSim yang model (bold fields may be the only ones relevant): 


Map netconf server id to both DU and CU
PNFName (e.g., ncserver1) -> idGNBDUFunction (string)
PNFName (e.g., ncserver1) -> idGNBCUCPFunction (string)

Map cellid (alias field in msg received by SDNR) to both nrcellDU and nrcellCU
alias (e.g, Chn0001) -> idNRCellDU (string)  
alias (e.g, Chn0001) -> idNRCellCU (string)
Note: CellIdentity has same value as alias

idNRCellDU used for nRPCI
idNRCellCU used for isHOAllowed

Need to find the source cell ("alias") and the target neighbor cell (in "NeighborList/CID") to identify the idNRCellRelation to be used

Blacklisted -> NRCellRelation/isHOAllowed 
Note: boolean value needs to be inverted. blacklisted=true -> isHOAllowed=false

PhyCellID -> nrCellDU/nrPCI (not used in ANR)



Current structure of nodes and cells in RAN-Sim

There are cells which are assigned to netconf server nodes. For example:


netconf server id: ncserver1 (node)
list of cellids/cellnames:
Chn0001 ->
Chn0002
Chn0003
..
Chn0016


netconf server id: ncserver2 (node)
cellids/cellnames:
Chn0017
Chn0018
..
Chn0031
..



 



 



 



 





Example of cell object in RAN-Sim and ConfigDB


Note: isHOAllowed is not listed here. It is set to "true" during pre-loading.

{
      "Cell": {
        "latitude": 25.14454397161673,
        "networkId": "ran-1",
        "longitude": -55.517305203562884,
        "sectorNumber": 0,
        "pnfId": "ncserver1",
        "physicalCellId": 0,
        "nodeId": "Chn0000"
      },
      "neighbor": [
        "Chn0001",
        "Chn0002",
        "Chn0003",
        "Chn0004",
        "Chn0005",
        "Chn0006",
        "Chn0007",
        "Chn0008",
        "Chn0009",
        "Chn0010",
        "Chn0013",
        "Chn0014",
        "Chn0015",
        "Chn0016"
      ]
    }