- Created by Shankaranarayanan Puzhavakath Narayanan, last modified on May 25, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 46 Next »
vCPE Homing Use Case
This document describes the Homing Template Specifications for residential vCPE. It is a work in progress and subject to frequent revision.
vCPE Service Model
Homing Policies and information sources relevant to the policies
Homing Workflow
SO - HAS API (R) - before retrieving homing policies
requestInfo: callbackUrl: https://so:5000/callback numSolutions: 1 optimizer: - placement requestId: yyy-yyy-yyyy sourceId: so timeout: 600 transactionId: xxx-xxx-xxxx requestType: new placementInfo: orderInfo: requestParameters: customerLatitude: 32.897480 customerLongitude: -97.040443 customerName: some_company demandInfo: placementDemands: - resourceName: vGMuxInfra resourceId: some_resource_id tenantId: some_tenant_id resourceModelInfo: modelId: vGMux_model_id modelName: '' modelType: allotted modelVersion: '2.0' existingPlacement: serviceInstanceId: 87257b49-9602-4ca1-9817-094e52bc873b excludedCandidates: - candidateType: service candidates: - serviceInstanceId: 1ac71fb8-ad43-4e16-9459-c3f372b8236d requiredCandidates: - candidateType: service candidates: - serviceInstanceId: 7e6c3e57-62cd-44f6-aa88-d0896998f7ec - resourceName: vG tenantId: some_tenant_id resourceId: 71d563e8-e714-4393-8f99-cc480144a05e resourceModelInfo: modelId: vG_model_id modelName: '' modelType: dedicated modelVersion: '2.0' existingPlacement: serviceInstanceId: 21d5f3e8-e714-4383-8f99-cc480144505a excludedCandidates: - candidateType: service candidates: - serviceInstanceId: 1ac71fb8-ad43-4e16-9459-c3f372b8236d requiredCandidates: - candidateType: cloud candidates: - cloud-region-id: TXAUS219 otherInfo: serviceInstanceId: d61b2543-5914-4b8f-8e81-81e38575b8ec serviceModelInfo: serviceName: Residential vCPE service_id: vcpe_service_id serviceType: service serviceVersion: '1.0'
HAS Homing Specification (R') - after retrieving and translating homing policies
{ "homing_template_version": "2017-10-10", "parameters": { "service_name": "Residential vCPE", "service_id": "vcpe_service_id", "customer_lat": 32.89748, "customer_long": -97.040443, "REQUIRED_MEM": 4, "REQUIRED_DISK": 100 }, "locations": { "customer_loc": { "latitude": { "get_param": "customer_lat" }, "longitude": { "get_param": "customer_long" } } }, "demands": { "vGMuxInfra": [ { "inventory_provider": "aai", "inventory_type": "service", "attributes": { "equipment_type": "vG_Mux", "customer_id": "some_company" }, "excluded_candidates": [ { "candidate_id": "1ac71fb8-ad43-4e16-9459-c3f372b8236d" } ], "existing_placement": [ { "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a" } ] } ], "vG": [ { "inventory_provider": "aai", "inventory_type": "cloud" } ] }, "constraints": { "constraint_vgmux_customer": { "type": "distance_to_location", "demands": [ "vGMuxInfra" ], "properties": { "distance": "< 100 km", "location": "customer_loc" } }, "colocation": { "type": "zone", "demands": [ "vGMuxInfra", "vG" ], "properties": { "qualifier": "same", "category": "region" } }, "hpa_constraint": { "type": "hpa", "demands": [ "vG" ], "properties": { "evaluate": [ { "flavorLabel": "flavor_label_1", "flavorProperties": [ { "hpa-feature": "basicCapabilities", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "numa", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numaNodes", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-0", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-1", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "numaMem-0", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" }, { "hpa-attribute-key": "numaMem-1", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "cpuPinning", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "logicalCpuThreadPinningPolicy", "hpa-attribute-value": "prefer", "operator": "=" }, { "hpa-attribute-key": "logicalCpuPinningPolicy", "hpa-attribute-value": "dedicated", "operator": "=" } ] } ] }, { "flavorLabel": "flavor_label_2", "flavorProperties": [ { "hpa-feature": "basicCapabilities", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "8", "operator": "=" }, { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "16", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "numa", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numaNodes", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-0", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-1", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "numaMem-0", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" }, { "hpa-attribute-key": "numaMem-1", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "memoryPageSize", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "memoryPageSize", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" } ] } ] } ] } }, "check_cloud_capacity": { "type": "vim_fit", "demands": [ "vG" ], "properties": { "controller": "multicloud", "request": { "vCPU": 10, "Memory": { "quantity": { "get_param": "REQUIRED_MEM" }, "unit": "GB" }, "Storage": { "quantity": { "get_param": "REQUIRED_DISK" }, "unit": "GB" } } } } }, "optimization": { "minimize": { "sum": [ { "distance_between": [ "customer_loc", "vGMuxInfra" ] }, { "distance_between": [ "customer_loc", "vG" ] } ] } } }
--- homing_template_version: '2017-10-10' parameters: service_name: Residential vCPE service_id: vcpe_service_id customer_lat: 32.89748 customer_long: -97.040443 REQUIRED_MEM: 4 REQUIRED_DISK: 100 locations: customer_loc: latitude: get_param: customer_lat longitude: get_param: customer_long demands: vGMuxInfra: - inventory_provider: aai inventory_type: service attributes: equipment_type: vG_Mux customer_id: some_company excluded_candidates: - candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d existing_placement: - candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505a vG: - inventory_provider: aai inventory_type: cloud constraints: constraint_vgmux_customer: type: distance_to_location demands: - vGMuxInfra properties: distance: "< 100 km" location: customer_loc colocation: type: zone demands: - vGMuxInfra - vG properties: qualifier: same category: region hpa_constraint: type: hpa demands: - vG properties: evaluate: - flavorLabel: flavor_label_1 flavorProperties: - hpa-feature: basicCapabilities hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numVirtualCpu hpa-attribute-value: '4' operator: "=" - hpa-attribute-key: virtualMemSize hpa-attribute-value: '4' operator: "=" unit: GB - hpa-feature: numa hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numaNodes hpa-attribute-value: '2' operator: "=" - hpa-attribute-key: numaCpu-0 hpa-attribute-value: '2' operator: "=" - hpa-attribute-key: numaCpu-1 hpa-attribute-value: '4' operator: "=" - hpa-attribute-key: numaMem-0 hpa-attribute-value: '2' operator: "=" unit: GB - hpa-attribute-key: numaMem-1 hpa-attribute-value: '4' operator: "=" unit: GB - hpa-feature: cpuPinning hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: logicalCpuThreadPinningPolicy hpa-attribute-value: prefer operator: "=" - hpa-attribute-key: logicalCpuPinningPolicy hpa-attribute-value: dedicated operator: "=" - flavorLabel: flavor_label_2 flavorProperties: - hpa-feature: basicCapabilities hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numVirtualCpu hpa-attribute-value: '8' operator: "=" - hpa-attribute-key: virtualMemSize hpa-attribute-value: '16' operator: "=" unit: GB - hpa-feature: numa hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numaNodes hpa-attribute-value: '2' operator: "=" - hpa-attribute-key: numaCpu-0 hpa-attribute-value: '2' operator: "=" - hpa-attribute-key: numaCpu-1 hpa-attribute-value: '4' operator: "=" - hpa-attribute-key: numaMem-0 hpa-attribute-value: '2' operator: "=" unit: GB - hpa-attribute-key: numaMem-1 hpa-attribute-value: '4' operator: "=" unit: GB - hpa-feature: memoryPageSize hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: memoryPageSize hpa-attribute-value: '2' operator: "=" unit: GB check_cloud_capacity: type: vim_fit demands: - vG properties: controller: multicloud request: vCPU: 10 Memory: quantity: get_param: REQUIRED_MEM unit: GB Storage: quantity: get_param: REQUIRED_DISK unit: GB optimization: minimize: sum: - distance_between: - customer_loc - vGMuxInfra - distance_between: - customer_loc - vG
HAS Homing Response
State - Done
{ "plans": [ { "status": "done", "id": "plan_id", "name": "Plan Name 1", "links": [ [ { "href": "http://conductor:8091/v1/plans/plan_id", "rel": "self" } ] ], "recommendations": [ { "vG": { "inventory_provider": "aai", "candidate": { "candidate_id": "DLLSTX1A", "cloud_owner": "CloudOwner1", "inventory_type": "cloud", "location_id": "DLLSTX1A", "location_type": "openstack-cloud" }, "attributes": { "flavors": { "flavor_label_1": "vim_flavor_X", "flavor_label_2": "vim_flavor_Y" }, "cloud_owner": "CloudOwner1", "physical-location-id": "DLLSTX1A", "cloud_version": "3.0", "vim-id": "CloudOwner1_DLLSTX1A" } } }, { "vGMuxInfra": { "attributes": { "host_id": "vgmux_host_name", "cloud_owner": "CloudOwner1", "physical-location-id": "DLLSTX1A", "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a", "cloud_version": "3.0", "vim-id": "CloudOwner1_DLLSTX1A" }, "inventory_provider": "aai", "service_resource_id": "12345", "candidate": { "is_rehome": "false", "location_id": "DLLSTX1A", "inventory_type": "service", "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a", "host_id": "vgmux_host_name", "cloud_owner": "CloudOwner1", "location_type": "openstack-cloud" } } } ] } ] }
State - Error
{ "plans": [ { "status": "error", "message": "Some error message", "name": "Plan Name 1", "links": [ [ { "href": "http://conductor:8091/v1/plans/plan_id", "rel": "self" } ] ], "id": "plan_id" } ] }
State - Template
{ "status": "template", "name": "Plan Name 1", "links": [ [ { "href": "http://conductor:8091/v1/plans/plan_id", "rel": "self" } ] ], "id": "plan_id" }
State - Solving
{ "plans": [ { "status": "solving", "name": "Plan Name 1", "links": [ [ { "href": "http://conductor:8091/v1/plans/plan_id", "rel": "self" } ] ], "id": "plan_id" } ] }
vCPE use case testing
Here's the list of requirements that need to be met at each of the components for the homing block from SO to succeed for the vCPE use case.
AAI
Data needed
- vGMuxInfra (run the vcpe flows that create the vGMuxInfra)
- list of Cloud regions, one of which should have the vGMuxInfra
MultiCloud
Data needed
Policy
Policy models to be created:
Policies to be uploaded:
- vG demand
vGMuxInfra demand
- objective function (distance)
- colocation constraint
HAS
OSDF
SO
HPA
- upload HPA policies into policy framework
Capacity checks
- upload Capacity check policy into policy framework
Sequence of actions (how to..)
- populate the cloud region data into AAI
- upload the policies into policy framework
- Run the vcpe flows that create the vGMuxInfra
- No labels