Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Sequence diagram

Drawio
bordertrue
diagramNameNSSI Selection
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth711
revision2

Interfaces

  1. NSI NSSI selection Request
    1. Input: Slice profile
    2. NSST details
  2. Fetch Optimization policies
    1. Demand policy for NSSI
    2. Constraint policies for Selection
    3. Optimization policies for NSSI selection.
  3. NSSI selection request - HAS
    1. Demand: NSSI
    2. Constraint: Threshold policy, New policy(for CoverageArea )??
    3. Optimization: Maximize/minimize the service profile parameters
  4. Fetch NSSI for AAI
    1. Input: NSST info
    2. Output: List of NSSIs as candidates
  5. Run Optimization
  6. Consolidated Solution based on the policy
    1. Solution List. Solution object can have NSSI

Note

...

For the non-shared scenario, No solution will be returned.

Demand

Candidates:

  • NSSI (AAI Inventory)

...

Elite soft json viewer
hideMenutrue
height500350
{"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
Code Block
languagetext
titleSample Vnf Policy
linenumberstrue
collapsetrue
{
   "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
Code Block
languagetext
titleSample Threshold Policy
linenumberstrue
collapsetrue
{
   "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)
Code Block
languagetext
titleSample Query Policy
linenumberstrue
collapsetrue
{
   "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

{
Elite soft json viewer
Code Block
languagetext
titleHAS Candidate sample
linenumberstrue
collapsetrue
{
  "candidate_id": "1ac71fb8cdad9f49-ad434201-4e164e3a-9459aac1-c3f372b8236db0f27902c299",
  "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": "[{"key":"value"}}\"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

Code Block
languagetext
titleNSSI query to AAI
linenumberstrue
collapsetrue
{"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

Code Block
languagejs
collapsetrue
{
    "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
}