Versions Compared

Key

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

...

The HPA requirements are captured in a VNF descriptor provided by a vendor. During the service-design phase, these requirements are extracted out from the VNF descriptor and captured in a service model. Some of the HPA requirements cannot be changed during the lifecycle of a service; while other optional requirements can be changed by a service designer or operator over time (e.g. the use of SR-IOV may be preferred by an operator if the SR-IOV capability is optionally provided by a vendor). Once a service model is designed and uploaded into the SDC repository, SDC notifies the policy service about the distribution of a new service model. The policy service then fetches the service model and extracts out the HPA requirements through model decomposition. Next, the policy service creates HPA policies for the homing service (OOF-HAS) by populating the HPA requirements in policy models provided by OOF, and stores the policies in a repository. When the homing service receives a homing request from SO, the homing service asks for the associated HPA policies from the policy platform. Finally, the homing service finds homing solutions based on the evaluation of the received HPA policies and returns the solutions to SO.

...

bordertrue

As per meeting minutes here: OOF 2018-02-19 Meeting Notes, it was understood that all HPA requirements for a given VM can be put in one policy or across different policies. Also, it was discussed that each HPA

...

capability can be enhanced to include mandatory and score attributes. Keeping this in mind, HPA capabilities are defined here. As indicated, policy can have multiple capabilities.

Section
bordertrue
Column
width60%
Code Block
languagejs
themeEclipse
titleExtensible HPA Hyper-Threading Policy Example
linenumberstrue
collapsetrue
{
  "service": "hpaHyperThreadingPolicy",
  "policyName": "oofBeijing.hyperThreadingPolicy_vGMuxInfra",
  "description": "Hyper threading policy for vGMuxInfra",
  "templateVersion": "0.0.1",
  "version": "oofBeijing",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "hyperThreadingProperties": [
      {"attribute": "cpuCores", "value": "4", "operator": ">=", "unit": ""},
      {"attribute": "cpuCores", "value": "10", "operator": "<=", "unit": ""},
      {"attribute": "cpuThreads", "value": "2", "operator": ">", "unit": ""},
      {"attribute": "cpuThreadsPolicy", "value": "dedicated", "operator": "=", "unit": ""},
      {"attribute": "cpuSockets", "values": ["2", "4", "6"], "operator": "any", "unit": ""},
	  {"attribute": "memory", "value": 8, "operator": ">", "unit": "GB"}
    ],
    "identity": "hyperThreading_vGMuxInfra",
    "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
    "type": "hpaHyperThreadingPolicy",
    "resourceInstanceType": ["vGMuxInfra"]
  }
}
Column
width45%
Expand
titleComments and Notes: HPA Hyper-Threading Policy Example
  • Underlying model to generate this policy example is extensible
    and can be used to generate other HPA policies.
  • The value domain of the operator field is <, <=, >, >=, =, !=,
    any, all, many where any represents one from a set,
    all represents all the values of a set, and many represents more
    than one from a set.
  • The model can capture simple expressions. This example captures;
    4<=cpuCores<=10, cpuThreads>2, cpuThreadsPolicy=dedicated,
    cpuSockets is one from {2, 4, 6}, memory>8GB, etc.
  • Instead of modeling policy scope over multiple explicite dimentions,
    it is modeled as a list of tags/strings to achieve extensiblity and
    support model-agnostic getConfig query.
Section
bordertrue
Column
width60%
Code Block
languagejs
themeEclipse
titleHPA Hyper-Threading Policy Example
linenumberstrue
collapsetrue
{
  "service": "hpaHyperThreadingPolicy",
  "policyName": "oofBeijing.hyperThreadingPolicy_vGMuxInfra",
  "description": "Hyper threading policy for vGMuxInfra",
  "templateVersion": "0.0.1",
  "version": "oofBeijing",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "hyperThreadingProperties": {
      "cpuCores": { "value": 4, "operator": "="},
      "cpuThreads": { "value": 2, "operator": "="},
      "cpuThreadsPolicy": { "value": "dedicated", "operator": "="},
      "cpuSockets": { "value": 2, "operator": "="}
    },
    "identity": "hyperThreading_vGMuxInfra",
    "policyScope": {
      "serviceType": ["vCPE"],
      "geoRegion": ["US", "INTERNATIONAL"],
      "networkType": ["ip"],
      "resourceInstanceType": ["vGMuxInfra"]
    },
    "type": "hpaHyperThreadingPolicy",
    "resourceInstanceType": ["vGMuxInfra"]
  }
}
Column
width45%
Expand
titleComments and Notes: HPA Hyper-Threading Policy Example

The fields in this example policy are typically generated from a TOSCA service model specified by VNF vendors or service designers. This policy cannot be changed during the life-cycle of a service.

...