SDN-R is modified for
- RANSlice Instantiation
- RANSlice Modification
- RANSlice Activation
- RANSlice Deactivation
- RANSlice Termination
- Closed Loop (covers intelligent slicing)
Refer the end-to-end RAN Slicing flow: https://wiki.onap.org/display/DW/RAN+Slicing+Flow
- First draft of YANG Models for Northbound RPC's for review and comments
- G-release yang model is available at https://gerrit.onap.org/r/gitweb?p=ccsdk/features.git;a=tree;f=sdnr/northbound/ranSlice/model/src/main/yang;h=8a63dcd8202b01ac259136e57fd786428595feba;hb=refs/heads/guilin
Assumptions & Assumptions & Limitations:
- PLMNInfoRRMPolicy
- sNSSAI is configured in NRCellDU, NRCellCU, gNBCUUPFunction
- ConfigDB updates are not handled for activate and deactivate flows
- RRMPolicy
- rRMPolicyDedicatedRatio is alone rRMPolicyDedicatedRatio is alone considered for this release which indicates that resource sharing is not allowed across the RRMPolicymemberslist
- RRMPolicy update is handled for NRCellDU, NRCellCU, gNBCUUPFunction
- YANG Model
- NearRTRIC sliceprofile is not updated to Netconf in G-release
RAN Slice Lifecycle Management
SDNR Development
DMaapInterfaces Interfaces & I/O parameters:
SO (RAN NSSMF) → SDN-C :
...
- RAN-Slice-Mgmt – Requests from SO are posted at this topic. The same topic is used for configureNSSI, closed loop and intelligent slicingall RPCs
Asynchronous Asynchronous Response:
- Call back to SO is sent via Rest API
DMaap Messages:
RAN NF NSSI Allocation
Code Block | ||||
---|---|---|---|---|
| ||||
{ "body": { "input": { "action": "allocate", "payload": "{ \"input\": "CommonHeader{ \"sliceProfile\": { "TimeStamp\"sliceProfileId\": "2018-11-30T09:13:37.368Z", "APIver": "1.0", "RequestID": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "SubRequestID": "1", "RequestTrack": {}, "Flags": {} }, "Action": "allocate”, "Payload": { "input": { “sliceProfile”:{ “sliceProfileId”:””, “sNSSAI”:””, “maxNumberofUEs”:20000, “latency”:10, “uLThptPerSlice”:3000, “dLThptPerSlice”:3000, “maxNumberofConns”:4000, “coverageAreaList”:[], “uEMobilityLevel”:””, “resourceSharingLevel”:””, "pLMNIdList":"" }, “RANNSSIId”:””, “RANNFNSSIId”:””, “callbackURL”:””, “additionalproperties”:{ } } } } }, "version": "1.0", "rpc-name": " InstantiateRANSlice", \"1002\", \"sNSSAI\": \"2002\", \"maxNumberofUEs\": 20000, \"latency\": 10, \"uLThptPerSlice\": 3000, \"dLThptPerSlice\": 3000, \"maxNumberofConns\": 4000, \"coverageAreaList\": [\"Kingston\"], \"uEMobilityLevel\": \"\", \"resourceSharingLevel\": \"\", \"pLMNIdList\": [\"310-410\"] }, \"RANNSSIId\": \"\", \"RANNFNSSIId\": \"\", \"callbackURL\": \"\", \"additionalproperties\": { } } }", "common-header": { "timestamp": "2020-09-30T09:13:37.368Z", "api-ver": "1.0", "originator-id": "testing", "request-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "sub-request-id": "", "flags": { "mode": "EXCLUSIVE", "force": "TRUE", "ttl": "0" } } } }, "version": "1.0", "rpc-name": "instantiateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "type": "request" } |
RAN NF NSSI Modification
Requests available for below actions:
- modify-allocate
- modify-deallocate
- closed loop
- intelligent slicing
Code Block | ||||
---|---|---|---|---|
| ||||
modify-allocate { "body": { "correlation-idinput": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", { "type": "request" } |
RAN NF NSSI Modification
Code Block | ||
---|---|---|
| ||
{ "bodyaction": { "input": {"modify-allocate", "CommonHeaderpayload": { "TimeStamp": "2018-11-30T09:13:37.368Z", "APIver": "1.0", "RequestID": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "SubRequestID": "1", "RequestTrack": {}, "Flags": {} }, "Action": "modify-allocate,modify-deallocate,reconfigure", "{\"input\":{\"sliceProfile\":{\"sliceProfileId\":\"b594-e98r-c7f2-ij78\",\"sNSSAI\":\"101-10000\",\"maxNumberofUEs\": 5000, \"uLThptPerSlice\":3000,\"dLThptPerSlice\":3000,\"maxNumberofConns\":4000},\"RANNFNSSIId\":\"ab9af40f13f721b5f13539d87484098\",\"callbackURL\":\"http://so-bpmn-infra.onap:8081/mso/WorkflowMessage/AsyncSdnrResponse/9d2d790e-a5f0-11e8-98d0-529269fb1459\",\"globalSubscriberId\":\"5GCustomer\",\"subscriptionServiceType\":\"5G\",\"additionalproperties\":{\"resourceConfig\":{}}}}", "Payloadcommon-header": { "input": { “sliceProfile”:{ “sliceProfileId”:””, “sNSSAI”:””, //Required fields for modify-allocate “uLThptPerSlice”:3000, “dLThptPerSlice”:3000, “maxNumberofConns”:4000 }, “RANNFNSSIId”:””, “callbackURL”:””, “additionalproperties”:{ "timestamp": "2020-09-30T09:13:37.368Z", “resourceConfig”:{ //This map contains RIC level configuration data in closed loop scenario and "api-ver": "1.0", //Cell level Configurations for Intelligent slicing }"originator-id": "testing", } } } } }, "version"request-id": "1.09d2d790e-a5f0-11e8-98d0-529269fb1459", "rpc-name": " InstantiateRANSlice ", "correlationsub-request-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "type": "request" } where, resourceConfig: Closed Loop:flags": { "1":{ "mode": "dLThptPerSliceEXCLUSIVE":50, "uLThptPerSlice":40 "force": "TRUE", }, "2ttl":{ "0" "dLThptPerSlice":50,} "uLThptPerSlice":30 } } } Intelligent Slicing: "maxNumberofConns":{ , "snssaiversion":"0001-0111 "1.0", "datarpc-name":[ { "instantiateRANSlice", "gNBCUName"correlation-id":"cucpName "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "nearRTRICIdtype": "NearRTRIC1",request" } modify-deallocate { "cellCUList"body":[ { "input": { "action": "cellLocalIdmodify-deallocate":111, "configDatapayload":{ "maxNumberofConns":"20", "predictedMaxNumberofConns":"25", "lastUpdatedTS":"yyyy/MM/dd HH:mm:ss" } }, "{\"input\":{\"sliceProfile\":{\"sliceProfileId\":\"b594-e98r-c7f2-ij78\",\"sNSSAI\":\"001-100001\",\"maxNumberofUEs\": 5000, \"uLThptPerSlice\":3000,\"dLThptPerSlice\":3000,\"maxNumberofConns\":4000},\"RANNFNSSIId\":\"ab9af40f13f721b5f13539d87484098\",\"callbackURL\":\"\",\"globalSubscriberId\":\"5GCustomer\",\"subscriptionServiceType\":\"5G\",\"additionalproperties\":{\"resourceConfig\":{}}}}", "common-header": { "timestamp"cellLocalId":112: "2020-09-30T09:13:37.368Z", "configDataapi-ver":{ "1.0", "maxNumberofConnsoriginator-id": "20testing", "predictedMaxNumberofConnsrequest-id":"25 "9d2d790e-a5f0-11e8-98d0-529269fb1459", "lastUpdatedTSsub-request-id":"yyyy/MM/dd HH:mm:ss" "", }"flags": { } ]"mode": "EXCLUSIVE", }, { "gNBCUNameforce": "cucpName2TRUE", "nearRTRICId":"NearRTRIC2", "cellCUList":[ { "ttl": "0" "cellLocalId":113,} "configData":{} } }, "maxNumberofConnsversion": "201.0", "predictedMaxNumberofConns":"25"rpc-name": "instantiateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "lastUpdatedTStype":"yyyy/MM/dd HH:mm:ss" } }, { "cellLocalId":114, "configData":{ "maxNumberofConns":"20", "predictedMaxNumberofConns":"25", "lastUpdatedTS":"yyyy/MM/dd HH:mm:ss" } } ] } ] } |
...
Code Block | ||
---|---|---|
| ||
{ "body": { "input": { "CommonHeader": { "TimeStamp": "2018-11-30T09:13:37.368Z", "APIver": "1.0", "RequestID": " "request" } Closed Loop { "body": { "input": { "action": "reconfigure", "payload": "{ \"input\": { \"sliceProfile\": { \"sliceProfileId\": \"b594-e98r-c7f2-ij78\", \"sNSSAI\": \"100-10000\" }, \"RANNFNSSIId\": \"\", \"callbackURL\": \"http:\/\/so-bpmn-infra.onap:8081\/mso\/WorkflowMessage\/AsyncSdnrResponse\/9d2d790e-a5f0-11e8-98d0-529269fb1459\", \"additionalproperties\": { \"resourceConfig\": { \"data\": [{ \"nearRTRICId\": \"11\", \"dLThptPerSlice\": 50, \"uLThptPerSlice\": 40 }, { \"nearRTRICId\": \"22\", \"dLThptPerSlice\": 50, \"uLThptPerSlice\": 30 } ] } } } }", "common-header": { "timestamp": "2020-09-30T09:13:37.368Z", "api-ver": "1.0", "originator-id": "testing", "request-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "sub-request-id": "", "flags": { "mode": "EXCLUSIVE", "force": "TRUE", "ttl": "0" } } } }, "version": "1.0", "rpc-name": "instantiateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "SubRequestIDtype": "1request", "RequestTrack } Intelligent Slicing { "body": {}, "Flags "input": {} }, "Action": " deallocate ", "Payload": { "input": { { “RANNFNSSIId”: “”, “callbackURL”:””, “s-NSSAI”:””, “additionalproperties”:{ } } }, "version": "1.0", "rpc-name": " TerminateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "type": "request" } |
RAN NF NSSI Activation
Code Block | ||
---|---|---|
| ||
{ "body": { "input": { "CommonHeader": { "TimeStamp": "2018-11-30T09:13:37.368Z", "APIver": "1.0", "RequestID": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "SubRequestID": "1", "RequestTrack": {}, "Flags": {} }, "Action": "activate ", "Payload": { "input": { { “RANNFNSSIId”: “”, “sNSSAI”:”” “callbackURL”:””, “additionalproperties”:{ } } }, "action": "reconfigure", "payload": "{ \"input\": { \"sliceProfile\": { \"sliceProfileId\": \"b594-e98r-c7f2-ij78\" }, \"RANNFNSSIId\": \"\", \"callbackURL\": \"http:\/\/so-bpmn-infra.onap:8081\/mso\/WorkflowMessage\/AsyncSdnrResponse\/9d2d790e-a5f0-11e8-98d0-529269fb1459\", \"additionalproperties\": { \"resourceConfig\": { \"snssai\": \"0001-0111\", \"data\": [{ \"gNBCUName\": \"cucpName\", \"nearRTRICId\": \"NearRTRIC1\", \"cellCUList\": [{ \"cellLocalId\": 111, \"configData\": { \"maxNumberofConns\": \"20\", \"predictedMaxNumberofConns\": \"25\", \"lastUpdatedTS\": \"yyyy\/MM\/dd HH:mm:ss\" } }, { \"cellLocalId\": 112, \"configData\": { \"maxNumberofConns\": \"20\", \"predictedMaxNumberofConns\": \"25\", \"lastUpdatedTS\": \"yyyy\/MM\/dd HH:mm:ss\" } } ] }, { \"gNBCUName\": \"cucpName2\", \"nearRTRICId\": \"NearRTRIC2\", \"cellCUList\": [{ \"cellLocalId\": 113, \"configData\": { \"maxNumberofConns\": \"20\", \"predictedMaxNumberofConns\": \"25\", \"lastUpdatedTS\": \"yyyy\/MM\/dd HH:mm:ss\" } }, { \"cellLocalId\": 114, \"configData\": { \"maxNumberofConns\": \"20\", \"predictedMaxNumberofConns\": \"25\", \"lastUpdatedTS\": \"yyyy\/MM\/dd HH:mm:ss\" } } ] } ] } } } }", "common-header": { "timestamp": "2020-09-30T09:13:37.368Z", "api-ver": "1.0", "originator-id": "testing", "request-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "sub-request-id": "", "flags": { "mode": "EXCLUSIVE", "force": "TRUE", "ttl": "0" } } } }, "version": "1.0", "rpc-name": " activateRANSliceinstantiateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "type": "request" } |
RAN NF NSSI DeactivationTermination
Code Block | ||||
---|---|---|---|---|
| ||||
{ "body": { "input": { "CommonHeader": { "TimeStamp": "2018-11-30T09:13:37.368Z", "APIver": "1.0", "RequestID": "9d2d790e-a5f0-11e8-98d0-529269fb1459", "SubRequestID": "1", "RequestTrack": {}, "Flags": {} }, "Action": "deactivate "Action": " deallocate ", "Payload": "{ \"input\": { { “RANNFNSSIId”: “”, “sNSSAI”:””, “callbackURL”:””, “additionalproperties”:{ } } }, "version": "1.0", "rpc-name": " deactivateRANSlice", "correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1", "type": "request" } |
Callback:
...
title | Callback Response |
---|
...
{\"RANNFNSSIId\":\"79f2ce09-3de3-44cb-aa05-cae0cbe8f778\",\"callbackURL\":\"\",\"sNSSAI\":\"001-100001\",\"sliceProfileId\":\"4b7c3c8f-eb79-401a-b40b-290d74f5b189\",\"additionalproperties\":{}}}"
}
},
"version": "1.0",
"rpc-name": "terminateRANSliceInstance",
"correlation-id": "9d2d790e-a5f0-11e8-98d0-529269fb1459-1",
"type": "request"
} |
RAN NF NSSI Activation
Code Block | ||||
---|---|---|---|---|
| ||||
{
"body": {
"input": {
"action": "activate",
"payload": "{\"input\":{\"sliceProfileId\":\"1002\",\"RANNFNSSIId\":\"ccb2f161-f1a7-4f9e-aa2b-9e2965e3c8a0\",\"callbackURL\":\"http://so-bpmn-infra.onap:8081/mso/WorkflowMessage/SDNRActivateResponse/ecf745ab-167d-49b3-8f62-8218f2e6eb8a\",\"sNSSAI\":\"101-10000\"}}",
"common-header": {
"timestamp": "2020-09-30T09:13:37.368Z",
"api-ver": "1.0",
"request-id": "ecf745ab-167d-49b3-8f62-8218f2e6eb8a",
"sub-request-id": "1"
}
}
},
"version": "1.0",
"rpc-name": "activateRANSliceInstance",
"correlation-id": "ecf745ab-167d-49b3-8f62-8218f2e6eb8a",
"type": "request"
} |
RAN NF NSSI Deactivation
Code Block | ||||
---|---|---|---|---|
| ||||
{
"body": {
"input": {
"action": "deactivate",
"payload": "{\"input\":{\"sliceProfileId\":\"1002\",\"RANNFNSSIId\":\"ccb2f161-f1a7-4f9e-aa2b-9e2965e3c8a0\",\"callbackURL\":\"http://so-bpmn-infra.onap:8081/mso/WorkflowMessage/SDNRActivateResponse/ecf745ab-167d-49b3-8f62-8218f2e6eb8a\",\"sNSSAI\":\"101-10000\"}}",
"common-header": {
"timestamp": "2020-09-30T09:13:37.368Z",
"api-ver": "1.0",
"request-id": "ecf745ab-167d-49b3-8f62-8218f2e6eb8a",
"sub-request-id": "1"
}
}
},
"version": "1.0",
"rpc-name": "activateRANSliceInstance",
"correlation-id": "ecf745ab-167d-49b3-8f62-8218f2e6eb8a",
"type": "request"
} |
Callback response to SO is sent through REST API.Callback:
EndPoint URL: Comes in SO request
Code Block | ||||
---|---|---|---|---|
| ||||
{
"status": "",
"reason": {},
"requestId": "",
"action": "",
"nfIds":{
"CUCPs":[],
"CUUPs":[],
"DUs":[]
}
} |
CUCPs - List of gNBCUNames configured as part of this request
CUUPs - List of gNBCUUPId
DUs - List of gNBDUId
DMaap Consumer – RPC Mapping
Scenarios | Action in DMaap message | RPC to invoke |
ConfigureNSSI | allocate, modify-allocate, modify-deallocate, reconfigure | instantiateRANSlice |
terminateNSSI | terminate | terminateRANSliceInstance |
activateNSSI | activate | activateRANSliceInstance |
deactivateNSSI | deactivate | activateRANSliceInstance |
RPCs Supported
- configureNearRTRIC
- configureCU
- configureDU
- configureRANSliceInstance
- instantiateRANSlice
- terminateRANSliceInstance
- determineRANSliceResources - Not covered in G-release
- activateRANSliceInstance
- deactivateRANSliceInstance - As this RPC repeats most of the actions of activateRANSliceInstance, it is clubbed with activateRANSliceInstance
- CMNotify - Not covered in G-release
RPCs 1,2,3, & 4 are grouped and implemented as a single RPC 'instantiateRANSlice'.
RPCs in detail
1. InstantiateRANSlice
This RPC,
a) Allocates resources for a slice subnet instance
b) Configures NSSAI in RAN slice resources – cells, CU’s, DU’s, Near-RT RIC
c) Updates Slice details in Config DB
Request: Dmaap payload as string
Actions supported: allocate, modify-allocate, modify-deallocate, reconfigure
allocate - new RAN Slice created across RAN manged elements covered in the Tracking Area (TA) in the DMAAP request. Managed elements for TA is obtained from ConfigDB.
modify-allocate - sharing existing RAN slice for a new sNSSAI
modify-deallocate - sNSSAI is removed from the existing RAN Slice when the RAN Slice is shared among more than one sNSSAI and it cannot be terminated. terminateRANSliceInstance RPC is used to handle this action.
reconfigure - indicates closed loop or intelligent slicing. It is differentiated, based on the resourceConfig received in the Dmaap payload.
2. ActivateRANSliceInstance
a) Update the RAN resources status as ‘activated’. This is needed to enable the traffic flow
b) Currently, the status of sNSSAI is set to 'ÁCTIVE' for activate, 'INACTIVE' for deactivate
c) Config DB will be updated
Request: Dmaap payload as string
Action : activate, deactivate
4. TerminateRANSliceInstance
a) Deallocate resources for a slice subnet instance
b) Disassociate xNF’s to a slice subnet instance
c) Remove RAN slice from Config DB
Request: Dmaap payload as string
Action: terminate
Config DB updates
RPC | Entities to update |
instantiateRANSlice | NearRTRIC, GNBDUFunction, NRCellDU, RRMPolicy, GNBCUCPFunction, GNBCUUPFunction, NRCellCU, RANSliceInventory, SliceProfile |
terminateRANSlice | NearRTRIC, GNBDUFunction, NRCellDU, RRMPolicy, GNBCUCPFunction, GNBCUUPFunction, NRCellCU, RANSliceInventory, SliceProfile |
Refer Config DB for schema details.