- Created by krishna moorthy, last modified on Sep 02, 2020
Sequence diagram
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6ImRoZWJlaGEgbWoiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiZGhlYmVoYSBtaiIsImxhbmd1YWdlIjoiZW4iLCJkaWFncmFtRGlzcGxheU5hbWUiOiIiLCJzRmlsZUlkIjoiIiwiYXR0SWQiOiI4NDY2NDU2MCIsImRpYWdyYW1OYW1lIjoiTlNTSSBTZWxlY3Rpb24iLCJhc3BlY3QiOiIiLCJsaW5rcyI6ImF1dG8iLCJjZW9OYW1lIjoiTlNTSSBTZWxlY3Rpb24iLCJ0YnN0eWxlIjoidG9wIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjp0cnVlLCJtYXhTY2FsZSI6IjEiLCJvd25pbmdQYWdlSWQiOjg0NjYzNjU0LCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjo4NDY2MzY1NCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MiwibWFjcm9JZCI6ImMxMjgzMGFjLWM1YTctNDc1MS1iMjc5LWUyOTc1YTM1MzM1NyIsInByZXZpZXdOYW1lIjoiTlNTSSBTZWxlY3Rpb24ucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjcxMSIsInNpbXBsZVZpZXdlciI6ZmFsc2UsImxhc3RNb2RpZmllZCI6MTU5NzA2MzE1NDAwMCwiZXhjZWVkUGFnZVdpZHRoIjpmYWxzZSwib0NsaWVudElkIjoiIn0=
Interfaces
- NSSI selection Request
- Input: Slice profile
- NSST details
- Fetch Optimization policies
- Demand policy for NSSI
- Constraint policies for Selection
- Optimization policies for NSSI selection.
- NSSI selection request - HAS
- Demand: NSSI
- Constraint: Threshold policy, New policy(for CoverageArea )??
- Optimization: Maximize/minimize the service profile parameters
- Fetch NSSI for AAI
- Input: NSST info
- Output: List of NSSIs as candidates
- Run Optimization
- Consolidated Solution based on the policy
- Solution List. Solution object can have NSSI
Note
For the non-shared scenario, No solution will be returned.
Demand
Candidates:
- NSSI (AAI Inventory)
Demand Examples:
{"URLLC_core":[{"inventory_provider":"aai","inventory_type":"nssi","unique":"true","filtering_attributes":{"service-role":"nssi","service-function":"shared","model-invariant-id":"21d57d4b-52ad-4d3c-a798-248b5bb9124a","model-version-id":"bfba363e-e39c-4bd9-a9d5-1371c28f4d22"}}]}
List of Constraints
- Threshold Constraint (Matching NSSI)
NSI Selection Policies
1) Demand Policy (VNF Policy)
- Demand name (NSST)
- For NSI
- inventory provider (AAI)
- Inventory type (nssi)
- filtering attributes
- Uniqueness
Sample Vnf Policy Expand source
{ "tosca_definitions_version":"tosca_simple_yaml_1_1_0", "topology_template":{ "policies":[ { "OSDF_FRANKFURT.vnfPolicy_URLLC_Core_1":{ "type":"onap.policies.optimization.resource.VnfPolicy", "version":"1.0.0", "type_version":"1.0.0", "metadata":{ "policy-id":"OSDF_FRANKFURT.vnfPolicy_URLLC_Core_1", "policy-version":1 }, "name":"OSDF_FRANKFURT.vnfPolicy_URLLC_Core_1", "properties":{ "scope":[ "OSDF_FRANKFURT", "URLLC_1", "URLLC_Core_1" ], "resources":[ ], "services":[ "URLLC_1" ], "identity":"vnf_URLLC_Core_1", "geography":[ ], "vnfProperties":[ { "inventoryProvider":"aai", "inventoryType":"nssi", "unique": "true", "filtering_attributes":{ "service-role":"nssi", "service-function":"shared", "model-invariant-id":"21d57d4b-52ad-4d3c-a798-248b5bb9124a", "model-version-id":"bfba363e-e39c-4bd9-a9d5-1371c28f4d22" } } ] } } } ] } }
2) Threshold Policy
- Demand name (NSST)
- List of Constraints
Sample Threshold Policy Expand source
{ "tosca_definitions_version":"tosca_simple_yaml_1_1_0", "topology_template":{ "policies":[ { "OSDF_FRANKFURT.Threshold_URLLC_Core_1":{ "type":"onap.policies.optimization.resource.ThresholdPolicy", "version":"1.0.0", "type_version":"1.0.0", "metadata":{ "policy-id":"OSDF_FRANKFURT.Threshold_URLLC_Core_1", "policy-version":1 }, "properties":{ "scope":[ "OSDF_FRANKFURT", "URLLC_Core_1" ], "resources":[], "services":["URLLC_Core_1"], "geography":[], "identity":"Threshold_URLLC_Core_1", "applicableResources":[ "any" ], "thresholdProperties":[ { "attribute":"latency", "operator":"lte", "threshold":{ "get_param": "latency" }, "unit":"ms" } ] } } } ] } }
3) Query policy
- Existing (All slice profile parameters)
Sample Query Policy Expand source
{ "tosca_definitions_version":"tosca_simple_yaml_1_1_0", "topology_template":{ "policies":[ { "OSDF_FRANKFURT.queryPolicy_URLLC_1":{ "type":"onap.policies.optimization.service.QueryPolicy", "version":"1.0.0", "type_version":"1.0.0", "metadata":{ "policy-id":"OSDF_FRANKFURT.queryPolicy_URLLC_1", "policy-version":1 }, "properties":{ "scope":[ "OSDF_FRANKFURT" ], "services":[ "URLLC_Core_1" ], "geography":[], "identity":"queryPolicy_URLLC_1", "queryProperties":[ { "attribute":"latency", "attribute_location":"sliceProfile.latency" } ] } } } ] }, "name":"ToscaServiceTemplateSimple", "version":"1.0.0" }
4) Optimization policy
- minimize latency
- maximize throughput
HAS Candidates
NSSI candidate
HAS Candidate sample Expand source
{ "candidate_id": "cdad9f49-4201-4e3a-aac1-b0f27902c299", "candidate_type": "nssi", "inventory_type": "nssi", "inventory_provider": "aai", "cost": "1", "uniqueness": "true", "nssi_id": "1a636c4d-5e76-427e-bfd6-241a947224b0", "nssi_name": "nssi_test_0211", "current_availability": { "domain_type": "cn", "latency": 20, "max_numberof_UEs": 0, "coverage_area_TA_list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]", "ue_mobility_level": "stationary", "resource_sharing_level": "0", "exp_data_rate_UL": 100, "exp_data_rate_DL": 100, "activity_factor": 0, "e2e_latency": 0, "jitter": 0, "survival_time": 0, "exp_data_rate": 0, "payload_size": 0, "traffic_density": 0, "conn_density": 0 }
Consumed APIs (AAI)
GET NSSI info from AAI
NSSI query to AAI Expand source
{"service-instance": [{ "service-instance-id": "1a636c4d-5e76-427e-bfd6-241a947224b0", "service-instance-name": "nssi_test_0211", "service-type": "embb", "service-role": "nssi", "service-function": "shared", "environment-context": "cn", "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a", "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22", "resource-version": "1581418601616", "orchestration-status": "active", "relationship-list": { "relationship": [ { "related-to": "service-instance", "relationship-label": "org.onap.relationships.inventory.ComposedOf", "related-link": "/aai/v16/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/4115d3c8-dd59-45d6-b09d-e756dee9b518", "relationship-data": [ { "relationship-key": "customer.global-customer-id", "relationship-value": "5GCustomer" }, { "relationship-key": "service-subscription.service-type", "relationship-value": "5G" }, { "relationship-key": "service-instance.service-instance-id", "relationship-value": "4115d3c8-dd59-45d6-b09d-e756dee9b518" } ], "related-to-property": [ { "property-key": "service-instance.service-instance-name", "property-value": "nsi_test_0211" } ] } ] }, "slice-profiles": { "slice-profile": [ { "profile-id": "cdad9f49-4201-4e3a-aac1-b0f27902c299", "latency": 20, "max-number-of-UEs": 0, "coverage-area-TA-list": "[{\"province\":\"??\",\"city\":\"???\",\"county\":\"???\",\"street\":\"?????\"}]", "ue-mobility-level": "stationary", "resource-sharing-level": "0", "exp-data-rate-UL": 100, "exp-data-rate-DL": 100, "activity-factor": 0, "e2e-latency": 0, "jitter": 0, "survival-time": 0, "exp-data-rate": 0, "payload-size": 0, "traffic-density": 0, "conn-density": 0, "resource-version": "1581418602494" } ] } }]}
Sample HAS template
Expand source
{ "files": {}, "limit": 10, "name": "urllc_sample", "num_solution": "1", "template": { "constraints": { "URLLC_core_Threshold": { "demands": [ "URLLC_core" ], "properties": { "evaluate": [ { "attribute": "latency", "operator": "lte", "threshold": { "get_param": "latency" }, "unit": "ms" }, { "attribute": "reliability", "operator": "gte", "threshold": { "get_param": "reliability" }, "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": "nssi" }, "inventory_provider": "aai", "inventory_type": "nssi", "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 }
- No labels