NOTE : This documentation is still in progress and not the final version.
SEQUENCE DIAGRAM :
Steps :
- SO request OOF for NSI/NSSI selection
- OSDF fetches the optimization policies for the requested NST/NSST
- OSDF request HAS(conductor) for optimization
- HAS fetches the list of NSIs/NSSIs from AAI
- Using the NSI/NSSI id that it fetched from AAI, HAS requests DCAE(Slice Analysis MS) with attributes present in the service profile
- DCAE returns current utilization of the resources by the requested NSIs/NSSIs
- Based on the current utilization, HAS run the optimization to choose the suitable NSI/NSSI
- The selected NSI/NSSI is returned to OSDF, which forwards it to SO
Step 7 - Optimization to be done considering the following points :
NSI Selection:
- Find the configuration requested for the NSI for the current request from AAI ( Fetch Service Profile)
- Find the difference between the response from DCAE and the requested config for the NSI (maxNoOfConnections in DCAEResponse – MaxNoOFPDUSessions in ServiceProfile)
- If the difference is > 0, allow for NSI reuse
RAN NSSI Selection:
- Find the configuration requested for the RAN NSSI for the current request from AAI ( Fetch AN Slice Profile)
- Find the difference between the response from DCAE and the requested config for the RAN NSSI
- If the difference is > 0, allow for RAN NSSI reuse
- For the moment, we can assume that the calculation for TN-FH and TN-MH slices returns true by default. But keep a place holder to do all these findings for TN-FH and TN-MH slices. We can enhance it later.
RAN NF NSSI Selection:
- Find the configuration requested for the RAN NF NSSI for the current request from AAI ( Fetch AN NF Slice Profile)
- Find the difference between the response from DCAE and the requested config for the RAN NF NSSI
- If the difference is > 0, allow for RAN NF NSSI reuse
The optimization method to be done depends on the feasibility of the below two suggested methods :
1 - Including the operand attribute and difference function in the constraint model of the HAS template to find the current throughput
2 - Passing only the difference attribute ( current throughput) to the constraint model of the existing HAS template
SAMPLE HAS TEMPLATE :
{ "files": {}, "limit": 10, "name": "urllc_sample", "num_solution": "1", "template": { "constraints": { "URLLC_core_Threshold": { "demands": [ "URLLC_core" ], "properties": { "evaluate": [ { "operation_function": { "operands": [ { "function": "difference_between", "params": { "attribute": "maxNoOfConnections", "demand": "max-number-of-UEs" } } ], } "attribute": "latency", "operator": "lte", "threshold": { "get_param": "latency" }, "unit": "ms" }, { "attribute": "difference", "operator": "gte", "threshold": "0" "unit": "" } ] }, "type": "threshold" } }, "demands": { "URLLC_core": [ { "filtering_attributes": { "environment-context": "shared", "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a", "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22", "service-role": "nsi", "max-number-of-UEs": "10" }, "inventory_provider": "dcae", "inventory_type": "nsi", "unique": "true" } ] }, "homing_template_version": "2020-08-13", "optimization": { "goal": "minimize", "operation_function": { "operands": [ { "function": "attribute", "params": { "attribute": "latency", "demand": "URLLC_core" } } ], "operator": "sum" } } }, "timeout": 1200 }
Outgoing APIs
AAI API
Already present in the code. The below pages contain the details regd. the AAI APIs used.
DCAE API
DCAE API is documented in this page - NSI/NSSI Selection based on resource occupancy levels - DCAE changes
Sample Request to fetch the required parameter :
curl -X GET -H "authorization: Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=" -H "x-ecomp-instanceid:AAI" -H 'Accept:application/json' -k https://10.31.4.43:8080/api/v1/slices-config/
Sample Response :
{
"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 – NSI/NSSI
Impacted OOF modules
HAS-DATA component
HAS data component fetches the data from AAI and other inventory sources. A new inventory source for DCAE should be added, and it should be used during the NSI/NSSI selection flow.