Versions Compared

Key

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

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

Image Added


Homing Policies and information sources relevant to the policies

Gliffy Diagram
size1200
namevCPEPoliciesAndInformationSources
pagePin18


Homing Workflow


SO - HAS API (R) -

...

 before retrieving homing policies

Code Block
languagetext
titleSO - HAS API (R)
collapsetrue
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'

Image Removed


HAS Homing Specification (R') - after retrieving and translating homing policies

...

Code Block
languagejs
titlevCPE Homing Template (JSON)
collapsetrue
{
  "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"
          ]
        }
      ]
    }
  }
}



Code Block
languagetext
titlevCPE Homing Template (YAML)
collapsetrue
---
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

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{
  "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 

Code Block
languagejs
titleHAS Error Response
collapsetrue
{
  "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
languagejs
titleHAS Plan in Template State
collapsetrue
{
  "status": "template",
  "name": "Plan Name 1",
  "links": [
    [
      {
        "href": "http://conductor:8091/v1/plans/plan_id",
        "rel": "self"
      }
    ]
  ],
  "id": "plan_id"
}


State - Solving

Code Block
languagejs
titleHAS Plan in Solving state
collapsetrue
{
  "plans": [
    {
      "status": "solving",
      "name": "Plan Name 1",
      "links": [
        [
          {
            "href": "http://conductor:8091/v1/plans/plan_id",
            

...

"rel": "self"
          }
  

...

      ]
      

...

],
    

...

  "id": "plan_id"
    

...

}
  ]
}