Slice-analysis MS:
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))