Versions Compared

Key

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

Sequence diagram

draw.io Diagram
bordertrue
diagramNameNSI selection
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth741
revision5

Interfaces

  1. NSI selection Request
    1. Input: Service profile
    2. NST details
    3. NSST details with subnet capabilities
    4. reuse: true/false
  2. Fetch Optimization policies
    1. Demand policy for NSI and Slice profiles
    2. Constraint policies for Selection
    3. Optimization policies for NSI selection and slice profile generation.
  3. NSI selection request - HAS
    1. Demand: NSI
    2. Constraint: Threshold policy, New policy(for CoverageArea )??
    3. Optimization: Maximize/minimize the service profile parameters
  4. Fetch NSI for AAI
    1. Input: NST info
    2. Output: List of NSIs as candidates
  5. Run Optimization
  6. Consolidated Solution based on the policy
    1. 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:

JSON Viewer
hideMenutrue
height500
{"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: Filtering attributes will have the upper and lower bounds for each subnet(based on capability set and service profile)

Note: Creation cost will come from policy

JSON Viewer
{
"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

JSON Viewer
{"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

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":{"key":"value"}
}


Consumed APIs (AAI)

GET NSI info from AAI

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