NST Selection
Interfaces
NST selection Request (from SO)
Input: Service profiler parameters.
{
"requestInfo":{
"transactionId":"c86b3019-39f4-4cd3-b847-b22afe9f36dc",
"requestId":"c86b3019-39f4-4cd3-b847-b22afe9f36dc",
"sourceId":"so",
"timeout":600,
"callbackUrl":"http://0.0.0.0:9000/callback/"
},
"serviceProfile":{
"serviceProfileParameters":{
"latency":20,
"areaTrafficCapDL" : 10000,
"coverageAreaTAList" : "India"
}}
}
Fetch Optimization policies
vnfPolicy - it will identify the inventoryProvider and inventoryType - Forms demand policy.
Attribute policy - for storing the serviceprofileparameters and its value as attribute - value pair- Constraint policy.
QueryPolicy - Its used to query the serviceprofileparameters from the input so that it can be added as a value to the attribute.
NST selection request - HAS
Demand: NST
Constraint: Attribute policy for matching whether nst templates have these attributes.
Fetch NST metadata from AAI
Output: List of all NSTs metadata
Sample Request:
curl --user AAI:AAI -X GET -H "X-FromAppId:AAI" -H "X-TransactionId:get_aai_subscr" -H "Accept:application/json" -H "Content-Type:application/json" -k "https://10.31.4.27:30233/aai/v21/service-design-and-creation/models?model-role=NST&depth=2"
Sample Response:
{ "model":[ { "model-invariant-id":"50cd1233-dbec-4a46-a24f-46345a23635e", "model-type":"service", "model-role":"NST", "resource-version":"1607656942756", "model-vers":{ "model-ver":[ { "model-version-id":"bac7e4cb-c27e-48a8-999e-87531f192a1d", "model-name":"EmbbNST", "model-version":"1.0", "model-description":"TestNst", "resource-version":"1607656942756", "model-elements":{ "model-element":[ { "model-element-uuid":"23ecdf3f-f3fa-4715-8a86-65dc33c60cd2", "new-data-del-flag":"T", "cardinality":"unbounded", "resource-version":"1607656942756", "relationship-list":{ "relationship":[ { "related-to":"model-ver", "relationship-label":"org.onap.relationships.inventory.IsA", "related-link":"/aai/v21/service-design-and-creation/models/model/82194af1-3c2c-485a-8f44-420e22a9eaa4/model-vers/model-ver/46b92144-923a-4d20-b85a-3cbd847668a9", "relationship-data":[ { "relationship-key":"model.model-invariant-id", "relationship-value":"82194af1-3c2c-485a-8f44-420e22a9eaa4" }, { "relationship-key":"model-ver.model-version-id", "relationship-value":"46b92144-923a-4d20-b85a-3cbd847668a9" } ], "related-to-property":[ { "property-key":"model-ver.model-name", "property-value":"service-instance" } ] } ] } } ] } } ] } } ] }
Fetch NST candidate from SDC
Input: NST metadata
Sample Request:
curl -X GET -H "authorization: Basic YWFpOktwOGJKNFNYc3pNMFdYbGhhazNlSGxjc2UyZ0F3ODR2YW9HR21KdlV5MlU=" -H "x-ecomp-instanceid:AAI" -H 'Accept:application/octet-stream' -k https://10.31.4.27:30204/sdc/v1/catalog/services/bac7e4cb-c27e-48a8-999e-87531f192a1d/toscaModel
Output: List of NST candidates matching the metadata
Sample Response:
Run optimization - taking attribute constraint, the candidates are filtered out matching the attributes.
Solution list is formed
Solution List. Solution object have nst candidates matching the input service profile params.
NST Template example (Candidate)
{ } | "name": "EmbbNst", "id": "EmbbNst_1", "latency": 20, "uplink": 5, "downlink": 8, "reliability": 95, "areaTrafficCapDL": 10, "areaTrafficCapUL": 100, "maxNumberofUEs": 10000, "areas": " area1|area2", "expDataRateDL": 10, "expDataRateUL": 1000, "resourceSharingLevel": "shared", "coverageAreaTAList": "Beijing;Beijing;HaidanDistrict;WanshouluStreet", "modelinvariantuuid": "7d7df980-cb81-45f8-bad9-4e5ad2876393", "modeluuid": "fe6c82b9-4e53-4322-a671-e2d8637bfbb7", "uniqueness": true, "inventory_type":"nst", "candidate_id": "EmbbNst_ID", "cost": 2 |
Sample Has Template:
{
"name":"urllc_sample",
"files":{
},
"limit":10,
"num_solution":"1",
"timeout":1200,
"template":{
"homing_template_version":"2020-08-13",
"demands":{
"nst_demand":[
{
"inventory_provider":"aai",
"inventory_type":"nst",
"unique":"true",
"region":"RegionOne",
"filtering_attributes":{
"model-role":"nst"
}
}
]
},
"constraints":{
"nst_Threshold":{
"type":"threshold",
"demands":[
"nst_demand"
],
"properties":{
"evaluate":[
{
"attribute":"latency",
"operator":"lte",
"threshold":30,
"unit":"ms"
}
]
}
} },
"optimization":{
"goal": "minimize",
"operation_function": {
"operator": "sum",
"operands": [{
"function": "attribute",
"params": {
"demand": "nst_demand",
"attribute": "latency"
}
}]
}
}
}
}
Consumed APIs
GET NST metadata from AAI
GET NST cabdidates from SDC by the metadata got
Policies:
Attribute policy
{ "Threshold_nst": { "metadata": { "policy-id": "Threshold_nst", "policy-version": 1 }, "properties": { "geography": [], "identity": "Threshold_nst", "resources": [ "nst" ], "scope": [ "OSDF_GUILIN" ], "services": [ "nst" ], "thresholdProperties": [ { "attribute": "latency", "operator": "lte", "threshold": { "get_param": "latency" }, "unit": "ms" }, { "attribute": "reliability", "operator": "gte", "threshold": { "get_param": "reliability" }, "unit": "" } ] }, "type": "onap.policies.optimization.resource.ThresholdPolicy", "type_version": "1.0.0", "version": "1.0.0" } }
2. Query Policy
3. vnf policy