Table of Contents |
---|
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:
Gliffy size 1200 name vCPEPoliciesAndInformationSources
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
...
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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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, "pnf_id": "some_pnf_id" }, "locations": { "customer_loc": { "latitude": { "get_param": "customer_lat" }, "longitude": { "get_param": "customer_long" } }, "brg_loc": { "pnf_host_name": { "get_param": "pnf_id" } } }, "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": [ { "label": "flavor_label_1", "features": [ { "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": "=" } ] } ] }, { "label": "flavor_label_2", "features": [ { "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" } ] } ] } ] } } }, { "cloud_min_guarantee": { "type": "attribute", "demands": [ "vG" ], "properties": { "evaluate": { "cpu_min_guarantee": true, "mem_min_guarantee": true } } } }, { "check_cloud_capacity": null, "type": "vim_fit", "demands": [ "vG" ], "properties": { "vim-controller": "multicloud", "request": { "vCPU": 10, "mem": { "quantity": { "get_param": "REQUIRED_MEM" }, "unit": "GB" }, "disk": { "quantity": { "get_param": "REQUIRED_DISK" }, "unit": "GB" } } } } ], "optimization": { "minimize": { "sum": [ { "distance_between": [ "customer_loc", "vGMuxInfra" ] }, { "distance_between": [ "customer_loc", "vG" ] } ] } } } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
--- 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 pnf_id: some_pnf_id locations: customer_loc: latitude: get_param: customer_lat longitude: get_param: customer_long brg_loc: pnf_host_name: get_param: pnf_id 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: - label: flavor_label_1 features: - 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: "=" - label: flavor_label_2 features: - 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 - cloud_min_guarantee: type: attribute demands: - vG properties: evaluate: cpu_min_guarantee: true mem_min_guarantee: true - check_cloud_capacity: type: vim_fit demands: - vG properties: vim-controller: multicloud request: vCPU: 10 mem: quantity: get_param: REQUIRED_MEM unit: GB disk: quantity: get_param: REQUIRED_DISK unit: GB optimization: minimize: sum: - distance_between: - customer_loc - vGMuxInfra - distance_between: - customer_loc - vG |
HAS Homing Response
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "recommendations": [ { "vG": { "inventory_provider": "aai", "candidate": { "candidate_id": "DLLSTX1A", "cloud_owner": "rackspace", "inventory_type": "cloud", "location_id": "DLLSTX1A", "location_type": "openstack-cloud" }, "attributes": { "flavors": { "flavor_label_1": "vim_flavor_X", "flavor_label_2": "vim_flavor_Y" }, "physical-location-id": "DLLSTX1223" } } }, { "vGMuxInfra": { "inventory_provider": "aai", "candidate": { "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a", "cloud_owner": "rackspace", "host_id": "vgmux_host_name", "inventory_type": "service", "location_id": "DLLSTX1A", "location_type": "openstack-cloud" }, "attributes": { "physical-location-id": "DLLSTX1223" } } } ] } |