Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 25 Next »

Contents

Summary

Introduction

The OOF retrieves applicable constraints and objective functions as policies from the policy platform. These policies are retrieved at runtime, thus allowing an operator to change policies as and when needed. These policies are specified using policy models that are on-boarded during the OOF application deployment-time in the policy platform. The OOF-related policy models are typically derived from the constraints and objective functions of an OOF-application. Currently, for R2, these models will be pushed into the policy platform manually using the OOF policy uploader module.

Policy Platform

The OOF currently relies on the following features of the policy platform:

  • Policy specification: Optimization constraints and objective functions can be specified in terms of policies by service providers and operators.
  • Policy prioritization: Policies capturing constraints and objectives can be prioritized.
  • Policy searching and filtering: OOF policies can be searched and filtered based on different criteria; by scope or by name patterns.

Resources Related to Policy

OOF Policies (multiple applications)

OOF-HAS Policies

OOF-HAS Service Design Policies

Service design policies are typically defined as a part of a service design model and evaluated/enforced prior to the service instantiation phase. For example, Hardware Platform Enablement (HPA) policies are defined in an SDC service model and evaluated/enforced during the homing optimization process in ONAP.

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.

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.


HPA CPU Topology Policy Example
{
  "service": "hpaCpuTopologyPolicy",
  "policyName": "oofBeijing.hpaCpuTopologyPolicy_vGMuxInfra",
  "description": "Cpu Topology policy for vGMuxInfra",
  "templateVersion": "0.0.1",
  "version": "oofBeijing",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "cpuTopologyProperties": [
      {"attribute":"hpaFeature", "value": "cpuTopology","operator": "=", "unit":""},
      {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
      {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
      {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
      {"attribute":"numCpuSockets", "values": "2","operator": ">=", "unit": ""},
      {"attribute":"numCpuSockets", "values": "4","operator": "<=", "unit": ""},
      {"attribute":"numCpuCores", "value": "2", "operator":">=", "unit": ""},
      {"attribute":"numCpuCores", "value": "4", "operator":"<=", "unit": ""},
      {"attribute":"numCpuThreads", "value": "4", "operator":">=", "unit": ""},
      {"attribute":"numCpuThreads", "value": "8", "operator":"<=", "unit": ""},
    ],
    "identity": "cpuTopology_vGMuxInfra",
    "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
    "type": "hpaCpuTopologyPolicy",
    "resourceInstanceType": ["vGMuxInfra"]
  }
}
 Comments and Notes: HPA CPU Topology 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.

Distance Policy Example
{
  "service": "distancePolicy",
  "policyName": "oofBeijing.distancePolicy_vGMuxInfra",
  "description": "Distance Policy for vGMuxInfra",
  "templateVersion": "0.0.1",
  "version": "oofBeijing",
  "priority": "3",
  "riskType": "test",
  "riskLevel": "2",
  "guard": "False",
  "content": {
    "distanceProperties": {
      "locationInfo": { "value": "customer_location", "operator": "="},
      "distance": { "value": "500", "operator": "<", "unit": "km" },
      "resourceInstanceType": { "value": "vGMuxInfra", "operator": "="},
    },
    "identity": "distance-vGMuxInfra",
    "policyScope": {
      "serviceType": ["vCPE"],
      "geoRegion": ["US", "INTERNATIONAL"],
      "networkType": ["ip"],
      "resourceInstanceType": ["vGMuxInfra"]
    },
    "type": "distancePolicy"
  }
}
 Comments and Notes: Distance Policy

The fields in this example policy are typically generated from a TOSCA service model specified by VNF vendors or service designers. However, the policy can be updated over time by operators.

HPA Basic Capabilities Policy Example
{
    "service": "hpaBasicCapabilitiesPolicy",
    "policyName": "oofBeijing.hpaBasicCapabilitiesPolicy_vGMuxInfra",
    "description": "HPA Basic Capabilities policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "BasicCapabilitiesProperties": [
          {"attribute":"hpaFeature", "value": "basicCapabilities","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute": "numVirtualCpu", "value": "6", "operator": "=", "unit": ""},
          {"attribute": "virtualMemSize", "value":"6", "operator": "=", "unit": "GB"},
       ],
        "identity": "basicCapabilities_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaBasicCapabilitiesPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA Basic Capabilities Policy

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.

HPA OVS DPDK Policy Example
{
    "service": "hpaOvsDpdkPolicy",
    "policyName": "oofBeijing.hpaOvsDpdkPolicy_vGMuxInfra",
    "description": "HPA OVS DPDK policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "ovsDpdkProperties": [
	      {"attribute":"hpaFeature", "value": "ovsDpdk","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute":"dataProcessingAccelerationLibrary", "value":"ovsDpdk_version", "operator": "=", "unit":""},
        ],
        "identity": "ovsDpdk_vGMuxInfra",
        "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaOvsDpdkPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA OVS DPDK Policy

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.

HPA CPU Pinning Policy Example
{
    "service": "hpaCpuPinningPolicy",
    "policyName": "oofBeijing.hpaCpuPinningPolicy_vGMuxInfra",
    "description": "CPU Pinning policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "cpuPinningProperties":  [
          {"attribute":"hpaFeature", "value": "cpuPinning","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute":"logicalCpuThreadPinningPolicy", "value":"<CPUTHREADPOLICY>", "operator": "=", "unit":""},
          {"attribute":"logicalCpuPinningPolicy", "value": "<CPUPOLICY>","operator": "=", "unit":""},
    ],
        "identity": "cpuPinning_vGMuxInfra",
        "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaCpuPinning",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA CPU Pinning Policy

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.


CPUTHREADPOLICY = prefer, isolate, require
CPUPOLICY = shared, dedicated


HPA NUMA Policy Example
{
    "service": "hpaNumaPolicy",
    "policyName": "oofBeijing.hpaNumaPolicy_vGMuxInfra",
    "description": "Hyper NUMA policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "numaProperties": [   
		 {"attribute": "hpaFeature", "value": "numa", "operator": "=", "unit": ""},
         {"attribute": "architecture", "value": "INTELx64", "operator": "=", "unit": ""},
         {"attribute": "mandatory", "value": "true", "operator": "=", "unit": ""},
         {"attribute": "score", "value": "4", "operator": "=", "unit": ""},
         {"attribute": "numaNodes", "value": "2", "operator": "=", "unit": ""},
         {"attribute": "numaCpu-0", "values":["0", "1"], "operator": "=", "unit": ""},
         {"attribute": "numaMem-0", "value": "2048", "operator": "=", "unit": "MB"}
         {"attribute": "numaCpu-1", "values":["2", "3", "4", "5"], "operator": "=", "unit": ""},
         {"attribute": "numaMem-1", "value": "4096", "operator": "=", "unit": "MB"}
        ],
        "identity": "numa_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaNumaPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA NUMA Policy

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.

HPA SGX Policy Example
{
    "service": "hpaSgxPolicy",
    "policyName": "oofBeijing.hpaSgxPolicy_vGMuxInfra",
    "description": "SGX policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "sgxProperties": [
          {"attribute":"hpaFeature", "value": "sgx","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute":"sgxMemSize", "value": "65","operator": "=", "unit":"MB"},
          {"attribute":"sgxPubkeyHash", "value": "octect_string","operator": "=", "unit": ""},
        ],
        "identity": "sgx_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaSgxPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA SGX Policy

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.

Affinity Policy Example
{
    "service": "affinityPolicy",
    "policyName": "oofBeijing.affinityPolicy_vcpe",
    "description": "Affinity policy for vCPE",
    "templateVersion": "1702.03",
    "version": "oofBeijing",
    "priority": "5",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "identity": "affinity_vCPE",
        "policyScope": {
            "serviceType": ["vCPE"],
            "geoRegion": ["US", "INTERNATIONAL"],
            "networkType": ["ip"],
            "resourceInstanceType": ["vGMuxInfra", "vG"]
        },
        "affinityProperty": {
            "qualifier": {"value": "different", "operator": "="},
            "category": {"value": "complex", "operator": "="}
        },
        "type": "affinityPolicy",
        "resourceInstanceType": ["vGMuxInfra", "vG"]
    }
}
 Comments and Notes: Affinity Policy

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.

Capacity Policy Example
{
    "service": "capacityPolicy",
    "policyName": "oofBeijing.capacityPolicy_vGMuxInfra",
    "description": "Capacity policy for vGMuxInfra",
    "templateVersion": "1702.03",
    "version": "oofBeijing",
    "priority": "5",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "identity": "capacity_vGMuxInfra",
        "policyScope": {
            "serviceType": ["VCPE"],
            "geoRegion": ["US", "INTERNATIONAL"],
            "networkType": ["ip"],
            "resourceInstanceType": ["vGMuxInfra"]
        },
        "capacityProperty": {
            "cpu": {"value": 2, "operator": ">"},
            "memory": {"value": 4, "operator": ">", "unit": "Gb"}
        },
        "type": "capacityPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: Capacity Policy

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.

Min Guarantee Policy Example
{
    "service": "minGuaranteePolicy",
    "policyName": "oofBeijing.minGuaranee_vGMuxInfra",
    "description": "Min guarantee policy for vGMuxInfra",
    "templateVersion": "1702.03",
    "version": "oofBeijing",
    "priority": "5",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "identity": "minGuarantee_vGMuxInfra",
        "policyScope": {
            "serviceType": ["vCPE"],
            "geoRegion": ["US", "INTERNATIONAL"],
            "networkType": ["ip"],
            "resourceInstanceType": ["vGMuxInfra"]
        },
        "minGuaranteeProperty": {
            "cpu": {"value": "true", "operator": "="},
            "memory": {"value": "false", "operator": "="}
        },
        "type": "minGuaraneePolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: Min Guarantee Policy

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.

Optimization Policy Example
{
    "service": "PlacementOptimizationPolicy",
    "policyName": "oofBeijing.PlacementOptimizationPolicy_vGMuxInfra",
    "description": "Placement Optimization Policy for vGMuxInfra",
    "templateVersion": "1702.03",
    "version": "oofBeijing",
    "priority": "5",
    "riskType": "test",
    "riskLevel": "3",
    "guard": "False",
    "content": {
        "objectiveParameter": {
            "parameterAttributes": [
                {
                    "resource": ["vGMuxInfra"],
                    "customerLocationInfo": "customer_loc",
                    "parameter": "distance",
                    "weight": "1",
                    "operator": "product"=
                },
                {
                    "resource": ["vG"],
                    "customerLocationInfo": "customer_loc",
                    "parameter": "distance",
                    "weight": "1",
                    "operator": "product"
                }
            ],
            "operator": "sum"
        },
        "identity": "optimization",
        "policyScope": {
            "serviceType": ["vCPE"],
            "geoRegion": ["US", "INTERNATIONAL"],
            "networkType": ["ip"],
            "resourceInstanceType": ["vGMuxInfra", "vG"]
        },
        "type": "placementOptimization",
        "objective": "minimize"
    }
}
 Comments and Notes: Optimization Policy

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.



HPA PCIe Passthrough Policy Example
{
    "service": "hpaPciePassthroughPolicy",
    "policyName": "oofBeijing.hpaPciePassthroughPolicy_vGMuxInfra",
    "description": "Pcie Passthrough policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "PciePassthroughProperties": [
          {"attribute":"hpaFeature", "value": "pciePassthrough","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute": "pciCount", "value": "2", "operator": "=", "unit": ""},
          {"attribute": "pciVendorId", "value":"8086", "operator": "=", "unit": ""},
	      {"attribute": "pciDeviceId", "value": "2", "operator": "=", "unit": ""}   
       ],
        "identity": "pciePassthrough_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaPciePassthroughPolicy", 
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA PCIe Passthrough Policy Example


HPA Local Storage Policy Example
{
    "service": "hpaLocalStoragePolicy",
    "policyName": "oofBeijing.hpaLocalStorage_vGMuxInfra",
    "description": "HPA Local Storage policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "LocalStorageProperties": [
          {"attribute":"hpaFeature", "value": "localStorage","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
	      {"attribute": "diskSize", "value": "2", "operator": "=", "unit": "GB"},   
	      {"attribute": "ephemeralDiskSize", "value": "2", "operator": "=", "unit": "GB"},
		  {"attribute": "swapMemSize", "value":"16", "operator": "=", "unit": "MB"},
       ],
        "identity": "localStorage_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaLocalStoragePolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA Generic Attributes 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.

HPA CPU Instruction Set Extensions Policy Example
{
    "service": "hpaCpuInstructionSetExtensionsPolicy",
    "policyName": "oofBeijing.hpaCpuInstructionSetExtensionsPolicy_vGMuxInfra",
    "description": "Cpu Instruction Set Extensions policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "avxProperties": [
	      {"attribute":"hpaFeature", "value": "cpuInstructionSetExtensions","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute":"instructionSetExtensions", "value":["avx", "aes"] "operator": "ALL", "unit":""},
        ],
        "identity": "cpuInstructionSetExtensions_vGMuxInfra",
        "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaCpuInstructionSetExtensionsPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA CPU Instruction Set Extensions Policy Example
instructionSetExtensions attribute has a list of all instruction set extensions required. 
HPA Huge Pages Policy Example
{
    "service": "hpaHugePagesPolicy",
    "policyName": "oofBeijing.hpaHugePagesPolicy_vGMuxInfra",
    "description": "HPA Huge Pages policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "HugePagesProperties": [
          {"attribute":"hpaFeature", "value": "virtualCpuMemory","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute": "memoryPageSize", "value": "<MEMORYPAGESIZE>", "operator": "=", "unit": ""},
       ],
        "identity": "hugePagesAttributes_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaHugePagesPolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA Huge Pages Policy Example

MEMORYPAGESIZE = 4KB (unit=KB), 2MB (unit=MB), 1GB(unit GB), ANY, Other explicit Page size

HPA Realtime Policy Example
{
    "service": "hpaRealtimePolicy",
    "policyName": "oofBeijing.hpaRealtimePolicy_vGMuxInfra",
    "description": "HPA Realtime policy for vGMuxInfra",
    "templateVersion": "0.0.1",
    "version": "oofBeijing",
    "priority": "3",
    "riskType": "test",
    "riskLevel": "2",
    "guard": "False",
    "content": {
        "RealtimeProperties": [
          {"attribute":"hpaFeature", "value": "realtime","operator": "=", "unit":""},
          {"attribute":"architecture", "value": "INTELx64","operator": "=", "unit": ""},
          {"attribute":"mandatory", "value": "true","operator": "=", "unit":""},
          {"attribute":"score", "value": "4", "operator":"=", "unit": ""},
          {"attribute": "realtimePolicy", "value": "<REALTIMEPOLICY>", "operator": "=", "unit": ""},
          {"attribute": "realtimeMask", "value": "<REALTIMEMASK>", "operator": "=", "unit": ""},
       ],
        "identity": "RealtimeAttributes_vGMuxInfra",
        "policyScope":["vCPE", "US", "INTERNATIONAL", "ip", "vGMuxInfra"],
        "type": "hpaRealtimePolicy",
        "resourceInstanceType": ["vGMuxInfra"]
    }
}
 Comments and Notes: HPA Realtime Policy Example
REALTIMEPOLICY = true, false
REALTIMEMASK = List of vCPU's that will not have realtime policy for example ["1", "2"]

OOF-CMSO Policies

TBD

Modes for Fetching Policies

OOF can fetch optimzation policies using the getConfig API of the policy system. The policies can be searched and filtered in two different modes; by-name and by-scope from the policy system.

By-name: OOF can send an explicite policy name or a regular expression matching a set of policy names as a part of the getConfig API payload. In return, OOF expects to receive a specific policy or a set of policies with name matching to the regular expression.

By-scope: A scope is the domain to which a policy is applicable. Scope information can be captured as a set of attribute-value pairs, which can be sent as a part of the getConfig API payload. In response, the policy system is expected to return a set of policies with the matching attribute-value pairs. A policy can only be included in the response if all the matching attribute-value pairs exist.

OOF can requerst prioritization by enabling a prioritization flag in the getConfig API call to the policy system, and expects to receive a single policy with the highest priority policy among the set of policies meeting the search criteria.

  • No labels