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. 

  1. 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

  1.  

    1. Use configDb/CPS to get the SNSSAI from the slice-profile-id received (from request).

    2. 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))