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

...


Homing Policies and information sources relevant to the policies

...

Gliffy
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'


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,
    "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_id"
      }
    }
  },
  "demands": {aai",
     "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""colocation": {
 
      "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,"get_param": "REQUIRED_MEM"
       "type": "vim_fit",    },
  "demands": [         "vGunit": "GB"
     ],       "properties": {
        "vim-controller": "multicloud"},
        "request": {           "vCPU": 10,
          "mem": "Storage": {
            "quantity": {
              "get_param": "REQUIRED_MEMDISK"
            },
            "unit": "GB"
          },
        }
 "disk": {    }
    }
  },
  "quantityoptimization": {
    "minimize":  {
       "get_paramsum": "REQUIRED_DISK"[
        {
   },             "unit"distance_between": "GB"[
          }  "customer_loc",
      }      "vGMuxInfra"
}     }   ],  ]
"optimization": {     "minimize": {    },
  "sum": [         {
          "distance_between": [
            "customer_loc",
            "vGMuxInfravG"
          ]
        },
      ]
 {   }
  }
}



"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
  
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
  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'  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:
   operator: "="        get_param: REQUIRED_MEM
 - hpa-attribute-key: virtualMemSize         unit: GB
     hpa-attribute-value: '4'  Storage:
          operatorquantity:
"="             unit: GBget_param: REQUIRED_DISK
         - hpa-featureunit: numaGB
optimization:
  minimize:
      hpa-versionsum:
v1    - distance_between:
     architecture: generic- customer_loc
      - vGMuxInfra
 hpa-feature-attributes:   - distance_between:
      - hpa-attribute-key: numaNodes customer_loc
      - vG




HAS Homing Response

State - Done

Code Block
languagejs
titlevCPE homing response (JSON)
collapsetrue
{
  hpa-attribute-value"plans": '2'[
    {
       operator"status": "=done",
          - hpa-attribute-key: numaCpu-0"id": "plan_id",
      "name": "Plan     hpa-attribute-value: '2'Name 1",
      "links": [
     operator: "="  [
        - hpa-attribute-key: numaCpu-1 {
            hpa-attribute-value: '4'"href": "http://conductor:8091/v1/plans/plan_id",
            operator"rel": "=self"
          - hpa-attribute-key: numaMem-0}
        ]
      hpa-attribute-value: '2'],
      "recommendations": [
     operator: "="  {
          unit"vG": {
GB           - hpa-attribute-key: numaMem-1 "inventory_provider": "aai",
            hpa-attribute-value: '4'"candidate": {
              operator"candidate_id": "=DLLSTX1A",
            unit: GB "cloud_owner": "CloudOwner1",
      - hpa-feature: cpuPinning      "inventory_type": "cloud",
   hpa-version: v1           architecture: generic
     "location_id": "DLLSTX1A",
    hpa-feature-attributes:          "location_type": "openstack- hpa-attribute-key: logicalCpuThreadPinningPolicycloud"
            },
 hpa-attribute-value: prefer          "attributes": {
 operator: "="           - hpa-attribute-key: logicalCpuPinningPolicy "flavors": {
                hpa-attribute-value: dedicated"flavor_label_1": "vim_flavor_X",
                operator"flavor_label_2": "=vim_flavor_Y"
       -  label: flavor_label_2    },
    features:         - hpa-feature: basicCapabilities "cloud_owner": "CloudOwner1",
          hpa-version: v1   "physical-location-id": "DLLSTX1A",
      architecture: generic       "cloud_version": "3.0",
			  hpa-feature-attributes"vim-id": "CloudOwner1_DLLSTX1A"
         - hpa-attribute-key: numVirtualCpu   }
          }
 hpa-attribute-value: '8'      },
      operator: "=" {
         - hpa-attribute-key "vGMuxInfra": virtualMemSize{
            hpa-attribute-value: '16'"attributes": {
              operator"host_id": "=vgmux_host_name",
            unit: GB "cloud_owner": "CloudOwner1",
      - hpa-feature: numa           hpa-version: v1"physical-location-id": "DLLSTX1A",
          architecture: generic   "service_instance_id": "21d5f3e8-e714-4383-8f99-cc480144505a",
      hpa-feature-attributes:        "cloud_version": "3.0",
			 - hpa-attribute-key: numaNodes"vim-id": "CloudOwner1_DLLSTX1A"
            hpa-attribute-value: '2'},
             operator"inventory_provider": "=aai",
           - hpa-attribute-key: numaCpu-0 "service_resource_id": "12345",
            hpa-attribute-value: '2'"candidate": {
              operator"is_rehome": "=false",
             - hpa-attribute-key: numaCpu-1 "location_id": "DLLSTX1A",
              hpa-attribute-value: '4'"inventory_type": "service",
              operator"candidate_id": "="21d5f3e8-e714-4383-8f99-cc480144505a",
          - hpa-attribute-key: numaMem-0    "host_id": "vgmux_host_name",
               hpa-attribute-value: '2'"cloud_owner": "CloudOwner1",
              operator"location_type": "=openstack-cloud"
            unit:}
GB          }
- hpa-attribute-key: numaMem-1      }
      hpa-attribute-value: '4']
    }
  ]
}


State - Error 

Code Block
languagejs
titleHAS Error Response
collapsetrue
{
 operator: "=plans": [
    {
      unit: GB
  "status": "error",
      "message": "Some error message",
     - hpa-feature "name": memoryPageSize"Plan Name 1",
        hpa-version"links": v1[
        [
 architecture: generic        {
  hpa-feature-attributes:           - hpa-attribute-key: memoryPageSize"href": "http://conductor:8091/v1/plans/plan_id",
             hpa-attribute-value: '2'"rel": "self"
          }
 operator: "="      ]
      unit: GB
- cloud_min_guarantee:],
      type"id": attribute"plan_id"
    }
demands:  ]
}


State -

...

Template 

Code Block
languagejs
titleHAS Plan in Template State
collapsetrue
{
  "status": "template",
  properties"name": "Plan Name 1",
   evaluate"links": [
    [
  cpu_min_guarantee: true   {
     mem_min_guarantee: true - check_cloud_capacity: 
  type: vim_fit
  demands:
  - vG
  properties: "href": "http://conductor:8091/v1/plans/plan_id",
        "rel": "self"
    vim-controller: multicloud }
   request: ]
  ],
  vCPU"id": 10"plan_id"
}


State - Solving

Code Block
languagejs
titleHAS Plan in Solving state
collapsetrue
{
  mem"plans": [
    {
   quantity:   "status": "solving",
      get_param"name": REQUIRED_MEM"Plan Name 1",
      unit"links": GB[
      disk:  [
      quantity:    {
      get_param: REQUIRED_DISK     "href": "http://conductor:8091/v1/plans/plan_id",
  unit: GB optimization:   minimize:     sum"rel": "self"
   - distance_between:      }
- customer_loc       -]
vGMuxInfra     - distance_between: ],
      - customer_loc"id": "plan_id"
    }
  -]
vG}