NSI/NSSI Selection based on resource occupancy levels - DCAE changes
Slice-analysis MS:
OOF depends on DCAE (Slice Analysis MS) for capacity available for the required slices.
Slice analysis MS in turn requests DES (Data Exposure Service) for the PM data for a specific time interval, converts it into configuration data, aggregates the configuration data for the slices and returns it back to OOF.
The interface details between OOF and Slice Analysis MS are below.
API Definition
Get utilization of Slices
Interface definition | Description |
Content-Type | application/json |
Operation | GET |
URI | /api/v1/slices-config |
Request Body
Attribute | Required | Type | Description |
sliceIdentifiers | Y | List<String> | Identifier for the specific type of slices |
configParams | Y | List<String> | configuration fields expected from Slice Analysis MS |
Request Body - Sample
{
"sliceIdentifiers": [
"7e000ddc-7ba1-4fdb-a7ce-8f0a65ab3282",
"cb51e744-bfcf-4188-885a-e3e3c51ed53e"
],
"configParams": [
"dLThptPerSlice",
"uLThptPerSlice",
"maxNumberOfConns"
]
}
Response Codes
Code | Description |
200 | Data returned successfully |
400 | Bad Request (Error in request attributes) |
500 | Internal server error |
Response Body
Attribute | Required | Type | Description |
sliceConfigResponse | Y | SliceConfigResponse | Response body containing the configuration details for the requested slices |
SliceConfigResponse - Sample Response
Response Body - Sample
{
"sliceConfigDetails": [{
"sliceIdentifier": "5d9b3293-fa20-4776-bb41-92ba5e384419",
"aggregatedConfig": {
"dLThptPerSlice":27,
"uLThptPerSlice":30,
"maxNumberOfConns":300
}
},
{
"sliceIdentifier": "e316f4b2-01fa-479a-8522-64fe9c0c2971",
"aggregatedConfig": {
"dLThptPerSlice":40,
"uLThptPerSlice":25,
"maxNumberOfConns":400
}
}]
}
NOTE: sliceIdentifier – can be SNSSAI/slice-profile-id
Updates to Slice-Analysis:
Add/Update the changes in controller/service classes.
If ‘sliceIdentifier’ is sNSSAI
2. Send request to DES to collect PM data.
Uplink Throughput Data
curl --header "Content-type: application/json" --request POST --data '{}' http://localhost:1681/datalake/v1/exposure/slice_config_ul -i
{"result":[{"measValue":"84","measType":"SM.PrbUsedUl.001-00110"}],"request":{},"result_count":1}
Downlink Throughput Data
curl --header "Content-type: application/json" --request POST --data '{}' http://localhost:1681/datalake/v1/exposure/slice_config_dl -i
{"result":[{"measValue":"75","measType":"SM.PrbUsedDl.001-00110"}],"request":{"interval":"10"},"result_count":1}
3. Filter based on required SNSSAI(received in request) and aggregate UL and DL throughput for it.
4. Step 2 handled in for-loop for each ‘sliceIdentifier’(‘sliceIdentifier’ is an array)
5. Model the result (as per the sample response shown above) and send back the response.
6. If ‘sliceIdentifier’ is slice-profile-id
Use configDb/CPS to get the SNSSAI from the slice-profile-id received (from request).
Continue from step 2.
DES:
Possible DES template:
Data to be inserted in postgres DB:
insert into data_exposure(id, note,sql_template,db_id) values ('slice_config_ul','pm_message', 'select event.perf3gppFields.measDataCollection.measInfoList[1].measTypes.sMeasTypesList[2] as measType, event.perf3gppFields.measDataCollection.measInfoList[1].measValuesList[1].measResults[2].sValue as measValue from datalake',3);
insert into data_exposure(id, note,sql_template,db_id) values ('slice_config_dl','pm_message', 'select event.perf3gppFields.measDataCollection.measInfoList[1].measTypes.sMeasTypesList[1] as measType, event.perf3gppFields.measDataCollection.measInfoList[1].measValuesList[1].measResults[1].sValue as measValue from datalake ',3);
(order by ‘startEpochMicrosec’ can be used to get latest PM Data from DB, as well as LIMIT(number of data received at a time))