...
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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
- NSI Consolidated Solution
- Selected NSI candidate
- Slice profile generation request - HAS
- Demands: Slice profiles
- Constraints: Threshold constraint, CrossDemandAggregation constraint
- Optimization: Maximize/minimize the service profile parameters
- Generate slice profiles as candidates and select a suitable set of slice profiles
- Slice profile Solution
- Consolidated Solution based on the policybased 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)
...
Elite soft json viewer | ||||
---|---|---|---|---|
| ||||
{"URLLC":[{"inventory_provider":"aai","inventory_type":"nsi","unique":"true", "passthroughfiltering_attributes": {"creation_costservice-role": 0}, "filtering_attributes":{"nsi","service-rolefunction":"nsishared","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":{}}]} |
...
NSI candidate
Elite soft json viewer |
---|
{ "candidate_id": "1ac71fb8-ad43-4e16-9459-c3f372b8236d", "candidate_type": "nsi", "inventory_type": "nsi", "inventory_provider": "aai", "cost": "1","uniqueness": "true","current_availability": { },"passthrough_attributes"key": {"creation_cost": 0value"}} |
Slice profiles Candidate
Elite soft json viewer |
---|
{ "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": {} "passthrough_attributeskey": {"creation_costvalue":} 0} } |
Consumed APIs (AAI)
GET NSI info from AAI???
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{"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
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{
"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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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"
}
} |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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"
}
}
|
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"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
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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
} |