From c0de5820c2c8141ac8090d1d4bd7c9c7c7464d25 Mon Sep 17 00:00:00 2001 From: krishnaa96 Date: Wed, 20 May 2020 18:47:29 +0530 Subject: Update documentation Issue-ID: OPTFRA-566 Issue-ID: OPTFRA-495 Issue-ID: OPTFRA-543 Issue-ID: OPTFRA-409 Signed-off-by: krishnaa96 Change-Id: If48ec9e054c1bb7e323e23de04930759beb5fcef --- docs/sections/example.rst | 348 ++++++++++++++++----------- docs/sections/homingspecification.rst | 429 ++++++++++++++++++++++------------ 2 files changed, 500 insertions(+), 277 deletions(-) diff --git a/docs/sections/example.rst b/docs/sections/example.rst index a3dd55b..0339236 100644 --- a/docs/sections/example.rst +++ b/docs/sections/example.rst @@ -4,142 +4,230 @@ Example Conductor Templates Example 1 --------- -.. code:: yaml +.. code:: json - name: yyy-yyy-yyyy - files: {} - timeout: 600 - limit: 1 - template: - homing_template_version: '2018-02-01' - parameters: - service_name: '' - service_id: d61b2543-5914-4b8f-8e81-81e38575b8ec - customer_lat: 32.89748 - customer_long: -97.040443 - locations: - customer_loc: - latitude: - get_param: customer_lat - longitude: - get_param: customer_long - demands: - vGMuxInfra: - - inventory_provider: aai - inventory_type: service - service_type: vGMuxInfra-xx - attributes: - customer-id: '' - orchestration-status: '' - model-invariant-id: b3dc6465-942c-42af-8464-2bf85b6e504b - model-version-id: ba3b8981-9a9c-4945-92aa-486234ec321f - service-type: vGMuxInfra-xx - equipment-role: '' - global-customer-id: SDN-ETHERNET-INTERNET - vG: - - inventory_provider: aai - inventory_type: cloud - service_type: 71d563e8-e714-4393-8f99-cc480144a05e - constraints: - affinity_vCPE: - type: zone - demands: - - vGMuxInfra - - vG - properties: - category: complex - qualifier: same - optimization: - minimize: - sum: - - product: - - '1' - - distance_between: - - customer_loc - - vGMuxInfra - - product: - - '1' - - distance_between: - - customer_loc - - vG + { + "name": "yyy-yyy-yyyy", + "files": {}, + "timeout": 600, + "limit": 1, + "num_solutions": 10, + "template": { + "homing_template_version": "2018-02-01", + "parameters": { + "service_name": "", + "service_id": "d61b2543-5914-4b8f-8e81-81e38575b8ec", + "customer_lat": 32.89748, + "customer_long": -97.040443 + }, + "locations": { + "customer_loc": { + "latitude": { + "get_param": "customer_lat" + }, + "longitude": { + "get_param": "customer_long" + } + } + }, + "demands": { + "vGMuxInfra": [ + { + "inventory_provider": "aai", + "inventory_type": "service", + "service_type": "vGMuxInfra-xx", + "attributes": { + "customer-id": "", + "orchestration-status": "", + "model-invariant-id": "b3dc6465-942c-42af-8464-2bf85b6e504b", + "model-version-id": "ba3b8981-9a9c-4945-92aa-486234ec321f", + "service-type": "vGMuxInfra-xx", + "equipment-role": "", + "global-customer-id": "SDN-ETHERNET-INTERNET" + } + } + ], + "vG": [ + { + "inventory_provider": "aai", + "inventory_type": "cloud", + "service_type": "71d563e8-e714-4393-8f99-cc480144a05e" + } + ] + }, + "constraints": { + "affinity_vCPE": { + "type": "zone", + "demands": [ + "vGMuxInfra", + "vG" + ], + "properties": { + "category": "complex", + "qualifier": "same" + } + } + }, + "optimization": { + "minimize": { + "sum": [ + { + "product": [ + "1", + { + "distance_between": [ + "customer_loc", + "vGMuxInfra" + ] + } + ] + }, + { + "product": [ + "1", + { + "distance_between": [ + "customer_loc", + "vG" + ] + } + ] + } + ] + } + } + } + } -Example 1 +The example template is for the placement of vG and vGMuxInfra. It has +an affinity constraint which specifies that both the vnfs must be in +the same complex. The optimiation here is to minimize the sum of the +distances of the vnfs from the customer location. + +Example 2 --------- -.. code:: yaml +.. code:: json + + { + "files": {}, + "limit": 1, + "num_solutions": 10, + "name": "a2e3e0cc-3a97-44fc-8a08-1b86143fbdd3", + "template": { + "constraints": { + "affinity_vCPE": { + "demands": [ + "vgMuxAR", + "vGW" + ], + "properties": { + "category": "complex", + "qualifier": "same" + }, + "type": "zone" + }, + "distance-vGMuxAR": { + "demands": [ + "vgMuxAR" + ], + "properties": { + "distance": "< 500 km", + "location": "customer_loc" + }, + "type": "distance_to_location" + }, + "distance-vGW": { + "demands": [ + "vGW" + ], + "properties": { + "distance": "< 1500 km", + "location": "customer_loc" + }, + "type": "distance_to_location" + } + }, + "demands": { + "vGW": [ + { + "attributes": { + "model-invariant-id": "782c87a6-b712-47d1-9c5b-1ea2cd9a2dd5", + "model-version-id": "9877dbbe-8ada-40a2-8adb-f6f26f1ad9ab" + }, + "inventory_provider": "aai", + "inventory_type": "cloud", + "service_type": "c3e0e82b-3367-48ce-ab00-27dc2e91a34a" + } + ], + "vgMuxAR": [ + { + "attributes": { + "global-customer-id": "SDN-ETHERNET-INTERNET", + "model-invariant-id": "565d5b75-11b8-41be-9991-ee03a0049159", + "model-version-id": "61414c6c-6082-4e03-9824-bf53c3582b78" + }, + "inventory_provider": "aai", + "inventory_type": "service", + "service_type": "46b29078-8442-4ea3-bea6-9199a7d514d4" + } + ] + }, + "homing_template_version": "2017-10-10", + "locations": { + "customer_loc": { + "latitude": { + "get_param": "customer_lat" + }, + "longitude": { + "get_param": "customer_long" + } + } + }, + "optimization": { + "minimize": { + "sum": [ + { + "product": [ + "1", + { + "distance_between": [ + "customer_loc", + "vgMuxAR" + ] + } + ] + }, + { + "product": [ + "1", + { + "distance_between": [ + "customer_loc", + "vGW" + ] + } + ] + } + ] + } + }, + "parameters": { + "customer_lat": 32.89748, + "customer_long": 97.040443, + "service_id": "0dbb9d5f-27d9-429b-bc36-293e9fab7731", + "service_name": "" + } + }, + "timeout": 600 + } + +This is similar to the first example except that it has an additional distance +constraint which specifies that the distance of each vnf from the customer +location must be less than 500km. - files: {} - limit: 1 - name: a2e3e0cc-3a97-44fc-8a08-1b86143fbdd3 - template: - constraints: - affinity_vCPE: - demands: - - vgMuxAR - - vGW - properties: - category: complex - qualifier: same - type: zone - distance-vGMuxAR: - demands: - - vgMuxAR - properties: - distance: "< 500 km" - location: customer_loc - type: distance_to_location - distance-vGW: - demands: - - vGW - properties: - distance: "< 1500 km" - location: customer_loc - type: distance_to_location - demands: - vGW: - - attributes: - model-invariant-id: 782c87a6-b712-47d1-9c5b-1ea2cd9a2dd5 - model-version-id: 9877dbbe-8ada-40a2-8adb-f6f26f1ad9ab - inventory_provider: aai - inventory_type: cloud - service_type: c3e0e82b-3367-48ce-ab00-27dc2e91a34a - vgMuxAR: - - attributes: - global-customer-id: SDN-ETHERNET-INTERNET - model-invariant-id: 565d5b75-11b8-41be-9991-ee03a0049159 - model-version-id: 61414c6c-6082-4e03-9824-bf53c3582b78 - inventory_provider: aai - inventory_type: service - service_type: 46b29078-8442-4ea3-bea6-9199a7d514d4 - homing_template_version: '2017-10-10' - locations: - customer_loc: - latitude: - get_param: customer_lat - longitude: - get_param: customer_long - optimization: - minimize: - sum: - - product: - - '1' - - distance_between: - - customer_loc - - vgMuxAR - - product: - - '1' - - distance_between: - - customer_loc - - vGW - parameters: - customer_lat: 32.89748 - customer_long: 97.040443 - service_id: 0dbb9d5f-27d9-429b-bc36-293e9fab7731 - service_name: '' - timeout: 600 - Contact ------- Shankar Narayanan shankarpnsn@gmail.com -a \ No newline at end of file +a diff --git a/docs/sections/homingspecification.rst b/docs/sections/homingspecification.rst index 0edb441..9f517f9 100644 --- a/docs/sections/homingspecification.rst +++ b/docs/sections/homingspecification.rst @@ -1,5 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. +.. Copyright (C) 2020 Wipro Limited. All rights reserved. Homing Specification Guide ========================== @@ -159,7 +160,8 @@ Placemark An address expressed in geographic region-agnostic terms (referred to as a *placemark*). -*Support for this schema is deferred.* +*This is an example as of Frankfurt release. Support for this schema is + deferred to subsequent release.* +-----------------------------------+----------------------------------+ | Key | Value | @@ -189,10 +191,9 @@ a *placemark*). | | information for the placemark. | +-----------------------------------+----------------------------------+ -**Questions** - -- What geocoder can we use to convert placemarks to a - latitude/longitude? +**Note:** +- A geocoder could be used to convert placemarks to a + latitude/longitude Examples ~~~~~~~~ @@ -237,63 +238,70 @@ Demand criteria is dependent upon the inventory provider in use. **Provider-agnostic Schema** -+---------------------------------+------------------------------------+ -| Key | Value | -+=================================+====================================+ -| ``inventory_provider`` | A HAS-supported inventory | -| | provider. | -+---------------------------------+------------------------------------+ -| ``inventory_type`` | The reserved word ``cloud`` (for | -| | cloud regions) or the reserved | -| | word ``service`` (for existing | -| | service instances). Exactly one | -| | inventory type may be specified. | -+---------------------------------+------------------------------------+ -| ``attributes`` (Optional) | A list of key-value pairs, that is | -| | used to select inventory | -| | candidates that match *all* the | -| | specified attributes. The key | -| | should be a uniquely identifiable | -| | attribute at the inventory | -| | provider. | -+---------------------------------+------------------------------------+ -| ``service_type`` (Optional) | If ``inventory_type`` is | -| | ``service``, a list of one or more | -| | provider-defined service types. If | -| | only one service type is | -| | specified, it may appear without | -| | list markers (``[]``). | -+---------------------------------+------------------------------------+ -| ``service_id`` (Optional) | If ``inventory_type`` is | -| | ``service``, a list of one or more | -| | provider-defined service ids. If | -| | only one service id is specified, | -| | it may appear without list markers | -| | (``[]``). | -+---------------------------------+------------------------------------+ -| ``default_cost`` (Optional) | The default cost of an inventory | -| | candidate, expressed as currency. | -| | This must be specified if the | -| | inventory provider may not always | -| | return a cost. | -+---------------------------------+------------------------------------+ -| ``required_candidates`` | A list of one or more candidates | -| (Optional) | from which a solution will be | -| | explored. Must be a valid | -| | candidate as described in the | -| | **candidate schema**. | -+---------------------------------+------------------------------------+ -| ``excluded_candidates`` | A list of one or more candidates | -| (Optional) | that should be excluded from the | -| | search space. Must be a valid | -| | candidate as described in the | -| | **candidate schema**. | -+---------------------------------+------------------------------------+ -| ``existing_placement`` | The current placement for the | -| (Optional) | demand. Must be a valid candidate | -| | as described in the **candidate | -| | schema**. | -+---------------------------------+------------------------------------+ ++-----------------------------+------------------------------------+ +| Key | Value | ++=============================+====================================+ +| ``inventory_provider`` | A HAS-supported inventory | +| | provider. | ++-----------------------------+------------------------------------+ +| ``inventory_type`` | The reserved words ``cloud`` | +| | (cloud regions), ``service`` (for | +| | existing service instances), | +| | ``vfmodule`` (for vf instances), | +| | ``nssi`` (for slice subnet | +| | instances). Exactly one inventory | +| | type may be specified. | ++-----------------------------+------------------------------------+ +| ``attributes`` (Optional) | A list of key-value pairs, that is | +| | used to select inventory | +| | candidates that match *all* the | +| | specified attributes. The key | +| | should be a uniquely identifiable | +| | attribute at the inventory | +| | provider. | ++-----------------------------+------------------------------------+ +| ``service_type`` (Optional) | If ``inventory_type`` is | +| | ``service``, a list of one or more | +| | provider-defined service types. If | +| | only one service type is | +| | specified, it may appear without | +| | list markers (``[]``). | ++-----------------------------+------------------------------------+ +| ``service_id`` (Optional) | If ``inventory_type`` is | +| | ``service``, a list of one or more | +| | provider-defined service ids. If | +| | only one service id is specified, | +| | it may appear without list markers | +| | (``[]``). | ++-----------------------------+------------------------------------+ +| ``default_cost`` (Optional) | The default cost of an inventory | +| | candidate, expressed as currency. | +| | This must be specified if the | +| | inventory provider may not always | +| | return a cost. | ++-----------------------------+------------------------------------+ +| ``required_candidates`` | A list of one or more candidates | +| (Optional) | from which a solution will be | +| | explored. Must be a valid | +| | candidate as described in the | +| | **candidate schema**. | ++-----------------------------+------------------------------------+ +| ``excluded_candidates`` | A list of one or more candidates | +| (Optional) | that should be excluded from the | +| | search space. Must be a valid | +| | candidate as described in the | +| | **candidate schema**. | ++-----------------------------+------------------------------------+ +| ``existing_placement`` | The current placement for the | +| (Optional) | demand. Must be a valid candidate | +| | as described in the **candidate | +| | schema**. | ++-----------------------------+------------------------------------+ + +**Note** + +- The demand attributes in the template come from either policy or from + a northbound request scope. .. _examples-1: @@ -306,73 +314,80 @@ for ONAP. **Inventory Provider Criteria** -+---------------------------------+------------------------------------+ -| Key | Value | -+=================================+====================================+ -| ``inventory_provider`` | Examples: ``aai``, ``multicloud``. | -+---------------------------------+------------------------------------+ -| ``inventory_type`` | The reserved word ``cloud`` (for | -| | new inventory) or the reserved | -| | word ``service`` (for existing | -| | inventory). Exactly one inventory | -| | type may be specified. | -+---------------------------------+------------------------------------+ -| ``attributes`` (Optional) | A list of key-value pairs to match | -| | against inventory when drawing | -| | candidates. | -+---------------------------------+------------------------------------+ -| ``service_type`` (Optional) | Examples may include ``vG``, | -| | ``vG_MuxInfra``, etc. | -+---------------------------------+------------------------------------+ -| ``service_id`` (Optional) | Must be a valid service id. | -| | Examples may include ``vCPE``, | -| | ``VoLTE``, etc. | -+---------------------------------+------------------------------------+ -| ``default_cost`` (Optional) | The default cost of an inventory | -| | candidate, expressed as a unitless | -| | number. | -+---------------------------------+------------------------------------+ -| ``required_candidates`` | A list of one or more valid | -| (Optional) | candidates. See **Candidate | -| | Schema** for details. | -+---------------------------------+------------------------------------+ -| ``excluded_candidates`` | A list of one or more valid | -| (Optional) | candidates. See **Candidate | -| | Schema** for details. | -+---------------------------------+------------------------------------+ -| ``existing_placement`` | A single valid candidate, | -| (Optional) | representing the current placement | -| | for the demand. See **candidate | -| | schema** for details. | -+---------------------------------+------------------------------------+ ++-----------------------------+------------------------------------+ +| Key | Value | ++=============================+====================================+ +| ``inventory_provider`` | Examples: ``aai``, ``multicloud``. | ++-----------------------------+------------------------------------+ +| ``inventory_type`` | The reserved words ``cloud`` | +| | (cloud regions), ``service`` (for | +| | existing service instances), | +| | ``vfmodule`` (for vf instances), | +| | ``nssi`` (for slice subnet | +| | instances). Exactly one inventory | +| | type may be specified. | ++-----------------------------+------------------------------------+ +| ``attributes`` (Optional) | A list of key-value pairs to match | +| | against inventory when drawing | +| | candidates. | ++-----------------------------+------------------------------------+ +| ``service_type`` (Optional) | Examples may include ``vG``, | +| | ``vG_MuxInfra``, etc. | ++-----------------------------+------------------------------------+ +| ``service_id`` (Optional) | Must be a valid service id. | +| | Examples may include ``vCPE``, | +| | ``VoLTE``, etc. | ++-----------------------------+------------------------------------+ +| ``default_cost`` (Optional) | The default cost of an inventory | +| | candidate, expressed as a unitless | +| | number. | ++-----------------------------+------------------------------------+ +| ``required_candidates`` | A list of one or more valid | +| (Optional) | candidates. See **Candidate | +| | Schema** for details. | ++-----------------------------+------------------------------------+ +| ``excluded_candidates`` | A list of one or more valid | +| (Optional) | candidates. See **Candidate | +| | Schema** for details. | ++-----------------------------+------------------------------------+ +| ``existing_placement`` | A single valid candidate, | +| (Optional) | representing the current placement | +| | for the demand. See **candidate | +| | schema** for details. | ++-----------------------------+------------------------------------+ **Candidate Schema** -The following is the schema for a valid ``candidate``: \* -``candidate_id`` uniquely identifies a candidate. Currently, it is -either a Service Instance ID or Cloud Region ID. \* ``candidate_type`` -identifies the type of the candidate. Currently, it is either ``cloud`` -or ``service``. \* ``inventory_type`` is defined as described in -**Inventory Provider Criteria** (above). \* ``inventory_provider`` -identifies the inventory from which the candidate was drawn. \* -``host_id`` is an ID of a specific host (used only when referring to -service/existing inventory). \* ``cost`` is expressed as a unitless -number. \* ``location_id`` is always a location ID of the specified -location type (e.g., for a type of ``cloud`` this will be an Cloud -Region ID). \* ``location_type`` is an inventory provider supported -location type. \* ``latitude`` is a valid latitude corresponding to the -*location_id*. \* ``longitude`` is a valid longitude corresponding to -the *location_id*. \* ``city`` (Optional) city corresponding to the -*location_id*. \* ``state`` (Optional) state corresponding to the -*location_id*. \* ``country`` (Optional) country corresponding to the -*location_id*. \* ``region`` (Optional) geographic region corresponding -to the *location_id*. \* ``complex_name`` (Optional) Name of the complex -corresponding to the *location_id*. \* ``cloud_owner`` (Optional) refers -to the *cloud owner* (e.g., ``azure``, ``aws``, ``att``, etc.). \* -``cloud_region_version`` (Optional) is an inventory provider supported -version of the cloud region. \* ``physical_location_id`` (Optional) is -an inventory provider supported CLLI code corresponding to the cloud -region. +The following is the schema for a valid ``candidate``: + +- ``candidate_id`` uniquely identifies a candidate. Currently, it is + either a Service Instance ID or Cloud Region ID. +- ``candidate_type`` identifies the type of the candidate. Currently, it + is either ``cloud`` or ``service``. \* ``inventory_type`` is defined + as described in **Inventory Provider Criteria** (above). +- ``inventory_provider`` identifies the inventory from which the + candidate was drawn. \* +- ``host_id`` is an ID of a specific host (used only when referring to + service/existing inventory). +- ``cost`` is expressed as a unitless number. +- ``location_id`` is always a location ID of the specified location type + (e.g., for a type of ``cloud`` this will be an Cloud Region ID). +- ``location_type`` is an inventory provider supported location type. +- ``latitude`` is a valid latitude corresponding to the *location_id*. +- ``longitude`` is a valid longitude corresponding to the *location_id*. +- ``city`` (Optional) city corresponding to the *location_id*. +- ``state`` (Optional) state corresponding to the *location_id*. +- ``country`` (Optional) country corresponding to the *location_id*. +- ``region`` (Optional) geographic region corresponding to the + *location_id*. +- ``complex_name`` (Optional) Name of the complex corresponding to the + *location_id*. +- ``cloud_owner`` (Optional) refers to the *cloud owner* + (e.g., ``azure``, ``aws``, ``att``, etc.). +- ``cloud_region_version`` (Optional) is an inventory provider supported + version of the cloud region. +- ``physical_location_id`` (Optional) is an inventory provider supported + CLLI code corresponding to the cloud region. **Examples** @@ -620,9 +635,122 @@ region. } } -**Questions** \* Currently, candidates are either service instances or -cloud regions. As new services are on-boarded, this can be evolved to -represent different types of resources. +**vfmodule candidate** + +.. code-block:: json + + { + "candidate_id": "d187d743-5932-4fb9-a42d-db0a5be5ba7e", + "city": "example-city-val-27150", + "cloud_owner": "CloudOwner", + "cloud_region_version": "1", + "complex_name": "clli1", + "cost": 1.0, + "country": "example-country-val-94173", + "existing_placement": "false", + "host_id": "vFW-PKG-MC", + "inventory_provider": "aai", + "inventory_type": "vfmodule", + "ipv4-oam-address": "oam_network_zb4J", + "ipv6-oam-address": "", + "latitude": "example-latitude-val-89101", + "location_id": "RegionOne", + "location_type": "att_aic", + "longitude": "32.89948", + "nf-id": "fcbff633-47cc-4f38-a98d-4ba8285bd8b6", + "nf-name": "vFW-PKG-MC", + "nf-type": "vnf", + "passthrough_attributes": { + "td-role": "anchor" + }, + "physical_location_id": "clli1", + "port_key": "vlan_port", + "region": "example-region-val-13893", + "service_instance_id": "3e8d118c-10ca-4b4b-b3db-089b5e9e6a1c", + "service_resource_id": "vPGN-XX", + "sriov_automation": "false", + "state": "example-state-val-59487", + "uniqueness": "false", + "vf-module-id": "d187d743-5932-4fb9-a42d-db0a5be5ba7e", + "vf-module-name": "vnf-pkg-r1-t2-mc", + "vim-id": "CloudOwner_RegionOne", + "vlan_key": "vlan_key", + "vnf-type": "5G_EVE_Demo/5G_EVE_PKG 0", + "vservers": [ + { + "l-interfaces": [ + { + "interface-id": "4b333af1-90d6-42ae-8389-d440e6ff0e93", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_2_port-mf7lu55usq7i", + "ipv4-addresses": [ + "10.100.100.2" + ], + "ipv6-addresses": [], + "macaddr": "fa:16:3e:c4:07:7f", + "network-id": "59763a33-3296-4dc8-9ee6-2bdcd63322fc", + "network-name": "" + }, + { + "interface-id": "85dd57e9-6e3a-48d0-a784-4598d627e798", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_1_port-734xxixicw6r", + "ipv4-addresses": [ + "10.0.110.2" + ], + "ipv6-addresses": [], + "macaddr": "fa:16:3e:b5:86:38", + "network-id": "cdb4bc25-2412-4b77-bbd5-791a02f8776d", + "network-name": "" + }, + { + "interface-id": "edaff25a-878e-4706-ad52-4e3d51cf6a82", + "interface-name": "vnf-pkg-r1-t2-mc-vpg_private_0_port-e5qdm3p5ijhe", + "ipv4-addresses": [ + "192.168.10.200" + ], + "ipv6-addresses": [], + "macaddr": "fa:16:3e:ff:d8:6f", + "network-id": "932ac514-639a-45b2-b1a3-4c5bb708b5c1", + "network-name": "" + } + ], + "vserver-id": "00bddefc-126e-4e4f-a18d-99b94d8d9a30", + "vserver-name": "zdfw1fwl01pgn01" + } + ] + } + +**nssi candidate** + +.. code-block:: json + + { + "candidate_id": "1a636c4d-5e76-427e-bfd6-241a947224b0", + "candidate_type": "nssi", + "conn_density": 0, + "cost": 1.0, + "domain": "cn", + "e2e_latency": 0, + "exp_data_rate": 0, + "exp_data_rate_dl": 100, + "exp_data_rate_ul": 100, + "instance_name": "nssi_test_0211", + "inventory_provider": "aai", + "inventory_type": "nssi", + "jitter": 0, + "latency": 20, + "max_number_of_ues": 0, + "nsi_id": "4115d3c8-dd59-45d6-b09d-e756dee9b518", + "nsi_model_invariant_id": "39b10fe6-efcc-40bc-8184-c38414b80771", + "nsi_model_version_id": "8b664b11-6646-4776-9f59-5c3de46da2d6", + "nsi_name": "nsi_test_0211", + "payload_size": 0, + "reliability": 99.99, + "resource_sharing_level": "0", + "survival_time": 0, + "traffic_density": 0, + "ue_mobility_level": "stationary", + "uniqueness": "true" + } **Examples** @@ -658,7 +786,11 @@ The following examples illustrate two demands: - inventory_provider: aai inventory_type: cloud -**Questions** \* Do we need to support cost as a function ? +**Note** + +- Cost could be used to specify the cost of choosing a specific + candidate. For example, choosing an existing VNF instance can be less + costlier than creating a new instance. Constraints ----------- @@ -794,7 +926,7 @@ Constraint Types +-------------------------------------------+--------------------------+ *Note: Constraint names marked “Deferred” **will not** be supported in -the initial release of HAS.* +the current release of HAS.* Threshold Values ~~~~~~~~~~~~~~~~ @@ -1589,10 +1721,10 @@ settings. **Notes** -- For ONAP Beijing release the REQUEST_DICT is of the following format as +- For the current release the REQUEST_DICT is of the following format as defined by the policy for vim_fit. The REQUEST_DICT is an opaque request object defined through policy, so it is not restricted to this format. In - ONAP Beijing release MultiCloud supports the check_vim_capacity using the + the current release MultiCloud supports the check_vim_capacity using the following grammar. .. code-block:: json @@ -1630,15 +1762,15 @@ This constraint has no properties. type: inventory_group demands: [demand_1, demand_2] -*Note: Only pair-wise groups are supported at this time. If three or -more demands are specified, only the first two will be used.* +*Note: Only pair-wise groups are supported at this time. The list must +have only two demands.* License ~~~~~~~ Constrain demands according to license availability. -*Support for this constraint is deferred.* +*Support for this constraint is deferred to a later release.* **Schema** @@ -1666,7 +1798,7 @@ Network Between Demands Constrain each pairwise combination of two or more demands by network requirements. -*Support for this constraint is deferred.* +*Support for this constraint is deferred to a later release.* **Schema** @@ -1708,7 +1840,7 @@ Network To Location Constrain one or more demands by network requirements relative to a specific location. -*Support for this constraint is deferred.* +*Support for this constraint is deferred to a later release.* **Schema** @@ -1751,7 +1883,7 @@ Constrain each demand by its cluster capability requirements. For example, as described by an OpenStack Heat template and operational environment. -*Support for this constraint is deferred.* +*Support for this constraint is deferred to a later release.* **Schema** @@ -1787,6 +1919,10 @@ environment. template: http://repository/my/stack_template environment: http://repository/my/stack_environment +**Note:** + +- The status of the constraint support is of Frankfurt release. + Reservations ------------ @@ -1899,8 +2035,6 @@ While the template format supports any number of arrangements of numbers, operators, and functions, HAS’s solver presently expects a very specific arrangement. -Until further notice: - - Optimizations must conform to a single goal of ``minimize`` followed by a ``sum`` operator. - The sum can consist of two ``distance_between`` function calls, or @@ -1939,10 +2073,10 @@ there is a point of diminishing returns in terms of readability! **Notes** -- In the first version, we do not support more than one dimension in - the optimization (e.g., Minimize distance and cost). For supporting - multiple dimensions we would need a function the normalize the unit - across dimensions. +- We do not support more than one dimension in the optimization + (e.g., Minimize distance and cost). For supporting multiple + dimensions we would need a function the normalize the unit across + dimensions. Intrinsic Functions ------------------- @@ -2008,10 +2142,11 @@ would be of that file’s contents. - ``file:///path/to/stack_template.yaml`` - ``http://hostname/environment.yaml`` -**Questions** +**Note** - If Homing will only be accessed over DMaaP, files will need to be - embedded using the Homing API request format. + embedded using the Homing API request format. This will be a + consideration when DMaaP integration happens. get_param ~~~~~~~~~ -- cgit 1.2.3-korg