- Created by krishna moorthy, last modified on Sep 02, 2020
Sequence diagram
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6ImtyaXNobmEgbW9vcnRoeSIsIm91dHB1dFR5cGUiOiJibG9jayIsImxhc3RNb2RpZmllck5hbWUiOiJkaGViZWhhIG1qIiwibGFuZ3VhZ2UiOiJlbiIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6Ijg0NjYzMjkxIiwiZGlhZ3JhbU5hbWUiOiJOU0kgc2VsZWN0aW9uIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6Ik5TSSBTZWxlY3Rpb24iLCJ0YnN0eWxlIjoidG9wIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjp0cnVlLCJtYXhTY2FsZSI6IjEiLCJvd25pbmdQYWdlSWQiOjg0NjYxODc2LCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjo4NDY2MTg3NiwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6NSwibWFjcm9JZCI6ImM0ODI4ZTUxLTZhNDUtNGY0Yy1hYTQwLTE5NDFhYjE5NmEwYyIsInByZXZpZXdOYW1lIjoiTlNJIHNlbGVjdGlvbi5wbmciLCJsaWNlbnNlU3RhdHVzIjoiT0siLCJzZXJ2aWNlIjoiIiwiaXNUZW1wbGF0ZSI6IiIsIndpZHRoIjoiNzQxIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNTk3MDYyNjE5MDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
Interfaces
- NSI selection Request
- Input: Service profile
- NST details
- NSST details with subnet capabilities
- reuse: true/false
- Fetch Optimization policies
- Demand policy for NSI and Slice profiles
- Constraint policies for Selection
- Optimization policies for NSI selection and slice profile generation.
- NSI selection request - HAS
- Demand: NSI
- Constraint: Threshold policy, New policy(for CoverageArea )??
- Optimization: Maximize/minimize the service profile parameters
- Fetch NSI for AAI
- Input: NST info
- Output: List of NSIs as candidates
- Run Optimization
- Consolidated Solution based on the policy
- Solution List. Solution object can have NSI/Slice profiles
Note:
For the non-shared scenario, Only slice profiles will be generated. HAS need not fetch the existing NSIs.
Demand
Candidates:
- NSI (AAI Inventory)
- Slice profiles (Generator)
Demand Examples:
{"URLLC":[{"inventory_provider":"aai","inventory_type":"nsi","unique":"true", "filtering_attributes":{"service-role":"nsi","service-function":"shared","model-invariant-id":"21d57d4b-52ad-4d3c-a798-248b5bb9124a","model-version-id":"bfba363e-e39c-4bd9-a9d5-1371c28f4d22"}}, {"inventory_provider":"generator","inventory_type":"slice_profiles","unique":"true", "passthrough_attributes": {"creation_cost": 1.0},"filtering_attributes":{}}]}
Note: Creation cost will come from policy
{
"core": {"latency": {"min": 5, "max": 20, "steps": 1}, "reliability": {"values": [99.9, 99.999]}},
"ran": {"latency": {"min": 10, "max": 20, "steps": 1}, "reliability": {"values": [99.9, 99.9]}},
"transport": {"latency": {"min": 7, "max": 20, "steps": 1}, "reliability": {"values": [99.9, 99.99]}}
}
List of Constraints
- Threshold Constraint (Matching NSI and slice profile tuple)
NSI Selection Policies
Demand Policy(NSI)
- Demand name(NST)
- For NSI
- inventory provider (AAI)
- Inventory type(nsi)
- filtering attributes
- Uniqueness
- Passthrough attributes
- For Slice profiles
- inventory provider (Generator)
- Inventory type(slice_profiles)
- filtering attributes
- Uniqueness
- Passthrough attributes
Threshold Policy
- Demand name(NST)
- List of Constraints
Query policy
- Existing (All service profile parameters)
Optimization policy
- minimize latency
- maximize throughput
- minimize creation cost
- maximize creation cost
HAS Candidates
NSI candidate
{"candidate_id":"1ac71fb8-ad43-4e16-9459-c3f372b8236d","candidate_type":"nsi","inventory_type":"nsi","inventory_provider":"aai","cost":"1","uniqueness":"true","current_availability":{"key":"value"}}
Slice profiles Candidate
{"candidate_id":"1ac71fb8-ad43-4e16-9459-c3f372b8236d",
"candidate_type":"slice_profiles",
"inventory_type":"slice_profiles",
"inventory_provider":"generator",
"cost":"1",
"uniqueness":"true",
"subnet_requirements":{
"core":{"key":"value"},
"ran":{"key":"value"},
"transport":{"key":"value"}},
"slice_requirements":{"key":"value"}
}
Consumed APIs (AAI)
GET NSI info from AAI
Expand source
{"service-instance": [{ "service-instance-id": "1a636c4d-5e76-427e-bfd6-241a947224b0", "service-instance-name": "nsi_test_0211", "service-type": "urllc", "service-role": "nsi", "service-function": "shared", "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" } ] } ] }, "service-profiles": { "service-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" } ] } }]}
Optimization Policies
Demand policy
Demand policy Expand source
{ "OSDF_FRANKFURT.vnfPolicy_URLLC": { "metadata": { "policy-id": "OSDF_FRANKFURT.vnfPolicy_URLLC", "policy-version": 1 }, "properties": { "applicableResources": "any", "identity": "vnf_URLLC", "resources": [ "URLLC" ], "scope": [ "OSDF_FRANKFURT", "URLLC" ], "services": [ "URLLC" ], "vnfProperties": [ { "attributes": { "modelInvariantId": "bfbg3636-e39c-iidd-0987-27c28f4oo3", "modelVersionId": "bfbg3636-e39c-iidd-0987-27c28f4d33", "service-function": "shared", "service-role": "nsi" }, "inventoryProvider": "aai", "inventoryType": "nsi", "unique": "true" }, { "attributes": { "core": { "latency": { "max": 20, "min": 5, "steps": 1 }, "reliability": { "values": [ 99.9, 99.999 ] } }, "ran": { "latency": { "max": 20, "min": 10, "steps": 1 }, "reliability": { "values": [ 99.9, 99.9 ] } }, "transport": { "latency": { "max": 20, "min": 7, "steps": 1 }, "reliability": { "values": [ 99.9, 99.99 ] } } }, "inventoryProvider": "generator", "inventoryType": "slice_profiles", "unique": "true" } ] }, "type": "onap.policies.optimization.resource.VnfPolicy", "type_version": "1.0.0", "version": "1.0.0" } }
Threshold Policy
Expand source
{ "OSDF_FRANKFURT.Threshold_URLLC": { "metadata": { "policy-id": "OSDF_FRANKFURT.Threshold_URLLC", "policy-version": 1 }, "properties": { "geography": [], "identity": "Threshold_URLLC", "resources": [ "URLLC" ], "scope": [ "OSDF_FRANKFURT", "URLLC" ], "services": [ "URLLC" ], "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" } }
Expand source
{ "OSDF_FRANKFURT.queryPolicy_URLLC": { "type": "onap.policies.optimization.service.QueryPolicy", "version": "1.0.0", "type_version": "1.0.0", "metadata": { "policy-id": "OSDF_FRANKFURT.queryPolicy_URLLC", "policy-version": 1 }, "properties": { "scope": [ "OSDF_FRANKFURT" ], "services": [ "URLLC" ], "geography": [ "US" ], "identity": "queryPolicy_URLLC", "queryProperties": [ { "attribute": "latency", "attribute_location": "latency" }, { "attribute": "reliability", "attribute_location": "reliability" } ] } } }
Optimization Policy
Expand source
{ "OSDF_FRANKFURT.minimizeCost_URLLC": { "metadata": { "policy-id": "OSDF_FRANKFURT.minimizeCost_URLLC", "policy-version": 1 }, "properties": { "geography": [], "identity": "optimization", "objective": "minimize", "objectiveParameter": { "operator": "sum", "parameterAttributes": [ { "operator": "product", "parameter": "creation_cost", "resources": [ "URLLC" ], "weight": "1" } ] }, "resources": [ "URLLC" ], "scope": [ "OSDF_FRANKFURT", "REUSE" ], "services": [ "URLLC" ] }, "type": "onap.policies.optimization.resource.OptimizationPolicy", "type_version": "1.0.0", "version": "1.0.0" } }
Expand source
{ "OSDF_FRANKFURT.maximizeCost_URLLC": { "metadata": { "policy-id": "OSDF_FRANKFURT.maximizeCost_URLLC", "policy-version": 1 }, "properties": { "geography": [], "identity": "optimization", "objective": "maximize", "objectiveParameter": { "operator": "sum", "parameterAttributes": [ { "operator": "product", "parameter": "creation_cost", "resources": [ "URLLC" ], "weight": "1" } ] }, "resources": [ "URLLC" ], "scope": [ "OSDF_FRANKFURT", "CREATE_NEW" ], "services": [ "URLLC" ] }, "type": "onap.policies.optimization.resource.OptimizationPolicy", "type_version": "1.0.0", "version": "1.0.0" } }
Sample HAS Templates
Expand source
{ "files": {}, "limit": 10, "name": "urllc_sample", "num_solution": "1", "template": { "constraints": { "URLLC_Threshold": { "demands": [ "URLLC" ], "properties": { "evaluate": [ { "attribute": "latency", "operator": "lte", "threshold": { "get_param": "latency" }, "unit": "ms" }, { "attribute": "reliability", "operator": "gte", "threshold": { "get_param": "reliability" }, "unit": "" }, { "attribute": "coverage_area_ta_list", "operator": "eq", "threshold": { "get_param": "coverage_area_ta_list" }, "unit": "" } ] }, "type": "threshold" } }, "demands": { "URLLC": [ { "default_attributes": { "creation_cost": 0.1 }, "filtering_attributes": { "environment-context": "shared", "model-invariant-id": "21d57d4b-52ad-4d3c-a798-248b5bb9124a", "model-version-id": "bfba363e-e39c-4bd9-a9d5-1371c28f4d22", "service-role": "nsi" }, "inventory_provider": "aai", "inventory_type": "nsi", "unique": "true" }, { "default_attributes": { "creation_cost": 0.9 }, "filtering_attributes": { "core": { "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "core_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "core_reliability" } } }, "ran": { "coverage_area_ta_list": { "values": [ { "get_param": "coverage_area_ta_list" } ] }, "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "ran_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "ran_reliability" } } }, "transport": { "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "tn_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "tn_reliability" } } } }, "inventory_provider": "generator", "inventory_type": "slice_profiles", "unique": "true" } ] }, "homing_template_version": "2020-08-13", "optimization": { "goal": "maximize", "operation_function": { "operands": [ { "function": "attribute", "params": { "attribute": "creation_cost", "demand": "URLLC" } } ], "operator": "sum" } } }, "timeout": 1200 }
Expand source
{ "files": {}, "limit": 10, "name": "urllc_sample", "num_solution": "1", "template": { "constraints": { "URLLC_Threshold": { "demands": [ "URLLC" ], "properties": { "evaluate": [ { "attribute": "latency", "operator": "lte", "threshold": { "get_param": "latency" }, "unit": "ms" }, { "attribute": "reliability", "operator": "gte", "threshold": { "get_param": "reliability" }, "unit": "" }, { "attribute": "coverage_area_ta_list", "operator": "eq", "threshold": { "get_param": "coverage_area_ta_list" }, "unit": "" } ] }, "type": "threshold" } }, "demands": { "URLLC": [ { "default_attributes": { "creation_cost": 0.9 }, "filtering_attributes": { "core": { "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "core_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "core_reliability" } } }, "ran": { "coverage_area_ta_list": { "values": [ { "get_param": "coverage_area_ta_list" } ] }, "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "ran_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "ran_reliability" } } }, "transport": { "latency": { "max": { "get_param": "latency" }, "min": { "get_param": "tn_latency" }, "steps": 1 }, "reliability": { "values": { "get_param": "tn_reliability" } } } }, "inventory_provider": "generator", "inventory_type": "slice_profiles", "unique": "true" } ] }, "homing_template_version": "2020-08-13", "optimization": { "goal": "maximize", "operation_function": { "operands": [ { "function": "attribute", "normalization": { "end": 0, "start": { "get_param": "latency" } }, "params": { "attribute": "latency", "demand": "URLLC" } }, { "function": "attribute", "normalization": { "end": { "get_param": "reliability" }, "start": 99.999 }, "params": { "attribute": "reliability", "demand": "URLLC" } } ], "operator": "sum" } } }, "timeout": 1200 }
- No labels