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 pagePin 18
Homing Workflow
...
SO - HAS API (R) -
...
before retrieving homing policies
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
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
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_locdemands": { "pnf_host_namevGMuxInfra": [ { "getinventory_paramprovider": "pnf_idaai" , } } }, "demands": { "vGMuxInfra": [ { "inventory_provider": "aai", "inventory"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": { "colocationtype": { "type": "zone", "demands": [ "vGMuxInfra", "vG" ], "properties": { "qualifier": "same", "category": "region" } } }, { "hpa_constraint": { "type": "hpa", "demands": [ "vG" ], "properties": { "evaluate": [ { "labelflavorLabel": "flavor_label_1", "featuresflavorProperties": [ { "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": "=" } ] } ] }}, { "labelflavorLabel": "flavor_label_2", "featuresflavorProperties": [ { "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_min_guaranteecapacity": { "type": "attributevim_fit", "demands": [ "vG" ], "properties": { "evaluatecontroller": { "multicloud", "cpu_min_guaranteerequest": true,{ "mem_min_guarantee"vCPU": true10, }"Memory": { } "quantity": { } }, { "check_cloud_capacity": null, "typeget_param": "vimREQUIRED_fitMEM", "demands": [ }, "vG" ], "properties": {"unit": "GB" "vim-controller": "multicloud", }, "requestStorage": { "vCPUquantity": 10,{ "mem": { "get_param": "REQUIRED_DISK" "quantity": { }, "get_paramunit": "REQUIRED_MEMGB" }, } "unit": "GB" } } }, "optimization": { "diskminimize": { "sum": [ "quantity": { { "getdistance_parambetween": "REQUIRED_DISK"[ }"customer_loc", "unitvGMuxInfra": "GB" ] } }, } }{ } ], "optimizationdistance_between": {[ "minimize": { "sumcustomer_loc":, [ { "vG" "distance_between": [ ] } "customer_loc", ] } "vGMuxInfra"} } |
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 locations: "distance_between"customer_loc: [ latitude: get_param: "customer_loc",lat longitude: get_param: "vG"customer_long demands: vGMuxInfra: - inventory_provider: aai ] inventory_type: service attributes: } ]equipment_type: vG_Mux } } }customer_id: some_company | ||||||
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 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: latitudetype: distance_to_location demands: get_param: customer_lat - vGMuxInfra properties: longitudedistance: "< 100 km" get_param location: customer_longloc brg_loccolocation: pnf_host_nametype: zone demands: get_param: pnf_id demands: - vGMuxInfra: - inventory_provider:vG aai properties: inventory_type: service attributesqualifier: same equipment_typecategory: vG_Muxregion hpa_constraint: customer_idtype: some_companyhpa excluded_candidatesdemands: - vG candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d properties: existing_placement: - candidate_idevaluate: 21d5f3e8-e714-4383-8f99-cc480144505a vG: - inventory_providerflavorLabel: aaiflavor_label_1 inventory_type: cloud constraints: - constraint_vgmux_customerflavorProperties: type: distance_to_location - demands:hpa-feature: basicCapabilities - vGMuxInfra propertieshpa-version: v1 distance: "< 100 km" architecture: generic location: customer_loc - colocation: typehpa-feature-attributes: zone demands: - hpa-attribute-key: numVirtualCpu vGMuxInfra - vG propertieshpa-attribute-value: '4' qualifier: same operator: "=" category: region - hpa_constraint: - typehpa-attribute-key: hpavirtualMemSize demands: - vG hpa-attribute-value: '4' properties: evaluate: operator: "=" - label: flavor_label_1 featuresunit: GB - hpa-feature: basicCapabilitiesnuma hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numVirtualCpunumaNodes hpa-attribute-value: '42' operator: "=" - hpa-attribute-key: virtualMemSizenumaCpu-0 hpa-attribute-value: '42' operator: "=" - unit: GB - hpa-feature: numahpa-attribute-key: numaCpu-1 hpa-versionattribute-value: v1'4' architectureoperator: generic"=" - hpa-featureattribute-attributeskey: numaMem-0 - hpa-attribute-keyvalue: numaNodes'2' hpa-attribute-valueoperator: '2'"=" operatorunit: "="GB - hpa-attribute-key: numaCpunumaMem-01 hpa-attribute-value: '24' operator: "=" - hpa-attribute-key unit: numaCpu-1GB - hpa-attribute-valuefeature: '4'cpuPinning hpa-version: operator: "="v1 architecture: generic - hpa-attributefeature-keyattributes: numaMem-0 - hpa-attribute-valuekey: '2'logicalCpuThreadPinningPolicy operatorhpa-attribute-value: "="prefer unitoperator: GB"=" - hpa-attribute-key: numaMem-1logicalCpuPinningPolicy hpa-attribute-value: '4'dedicated operator: "=" - flavorLabel: flavor_label_2 unit flavorProperties: GB - hpa-feature: cpuPinningbasicCapabilities hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: logicalCpuThreadPinningPolicynumVirtualCpu hpa-attribute-value: prefer'8' operator: "=" - hpa-attribute-key: logicalCpuPinningPolicyvirtualMemSize hpa-attribute-value: dedicated'16' operator: "=" - label: flavor_label_2 unit: GB features: - hpa- hpa-feature: basicCapabilitiesnuma hpa-version: v1 architecture: generic hpa-feature-attributes: - hpa-attribute-key: numVirtualCpunumaNodes hpa-attribute-value: '82' operator: "=" - hpa-attribute-key: virtualMemSizenumaCpu-0 hpa-attribute-value: '162' operator: "=" unit: GB - hpa-feature: numa- hpa-attribute-key: numaCpu-1 hpa-attribute-versionvalue: v1'4' architectureoperator: generic"=" - hpa-featureattribute-attributeskey: numaMem-0 - hpa-attribute-keyvalue: numaNodes'2' hpa-attribute-valueoperator: '2'"=" operatorunit: "="GB - hpa-attribute-key: numaCpunumaMem-01 hpa-attribute-value: '24' operator: "=" - hpa-attribute-key: numaCpu-1 unit: GB - hpa-feature: memoryPageSize hpa-attribute-value: '4' version: v1 architecture: generic operator: "="hpa-feature-attributes: - hpa-attribute-key: numaMem-0memoryPageSize hpa-attribute-value: '2' operator: "=" unit: GB check_cloud_capacity: type: vim_fit - hpa-attribute-key: numaMem-1 demands: - vG hpa-attribute-valueproperties: '4' controller: multicloud operatorrequest: "=" vCPU: 10 unit: GB - hpa-featureMemory: memoryPageSize quantity: hpa-version: v1 architectureget_param: genericREQUIRED_MEM hpa-feature-attributesunit: GB - hpa-attribute-keyStorage: memoryPageSize hpa-attribute-value: '2'quantity: operatorget_param: "="REQUIRED_DISK unit: GB unitoptimization: GB - cloud_min_guaranteeminimize: typesum: attribute - demandsdistance_between: - customer_loc vG properties:- vGMuxInfra - evaluatedistance_between: - cpu_min_guarantee: truecustomer_loc - vG mem_min_guarantee: true |
HAS Homing Response
State -
...
Done
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "plans": [ { "status": "done", "id": "plan_id", "name": "Plan vCPU: 10Name 1", mem"links": [ quantity: [ get_param: REQUIRED_MEM { unit: GB "href": "http://conductor:8091/v1/plans/plan_id", disk: quantity"rel": "self" get_param: REQUIRED_DISK } unit: GB optimization:] minimize: ], sum: - distance_between "recommendations": [ - customer_loc { - vGMuxInfra - distance_between"vG": { - customer_loc - 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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "status": |
...
"template",
"name": "Plan Name 1",
"links": [
[
{
"href": "http://conductor:8091/v1/plans/plan_id",
"rel": "self"
}
]
],
"id": "plan_id"
}
|
State - Solving
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "plans": [ { "status": "solving", "name": "Plan Name 1", "links": [ [ |
...
{ |
...
...
"href": "http://conductor:8091/v1/plans/plan_id", |
...
"rel": "self" |
...
|
...
} |
...
|
...
|
...
] |
...
|
...
], |
...
"id": "plan_id" } |
...
] |
...
} |