Versions Compared

Key

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

This page contains a proposal for the design of the Control Loop Policy Types in order to address the problems not solved in the Dublin release.

Guard Policy Type

description Policy Types for control loops to take a baby step approach from Dublin to Frankfurt retaining a close resemblance to Dublin legacy policy types.

1. Guard Policy Type


1.1 The base schema is defined as below:

Code Block
languageyml
titleBase Policy type definition for onap.policies.controlloop.Guard
linenumberstrue
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
  - onap.policies.controlloop.Guard:
      derived_from: tosca.policies.Root
      version: 1.0.0
      description: Guard Policies for Control Loop Operational Policies

1.2 onap.policies.controlloop.guard.FrequencyLimiter Policy Type

Code Block
languageyml
titlePolicy Typefor Frequency Limiter Guard Policy
linenumberstrue
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
  - onap.policies.controlloop.Guard:
      derived_from: tosca.policies.Root
      version: 1.0.0
      description: Guard Policies for Control Loop Operational Policies
  - onap.policies.controlloop.guard.FrequencyLimiter:
      derived_from: onap.policies.controlloop.Guard
      version: 1.0.0
      description: Supports limiting the frequency of actions being taken by a Actor.
      properties:
        frequency_policy:
          type: map
          description:
          entry_schema:
            type: onap.datatypes.guard.FrequencyLimiter
data_types:
  - onap.datatypes.guard.FrequencyLimiter:
      derived_from: tosca.datatypes.Root
      properties:
        actor:
          type: string
          description: Specifies the Actor
          required: true
        recipe:
          type: string
          description: Specified the Recipe
          required: true
        time_window:
          type: scalar-unit.time
          description: The time window to count the actions against.
          required: true
        limit:
          type: integer
          description: The limit
          required: true
          constraints:
            - greater_than: 0
        time_range:
          type: tosca.datatypes.TimeInterval
          description: An optional range of time during the day the frequency is valid for.
          required: false
        controlLoopName:
          type: string
          description: An optional specific control loop to apply this guard to.
          required: false
        target:
          type: string
          description: An optional specific VNF to apply this guard to.
          required: false

1.3 onap.policies.controlloop.guard.Blacklist Policy Type

Code Block
languageyml
titlePolicy Type for Blacklist Guard Policies
linenumberstrue
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
 - onap.policies.controlloop.Guard:
     derived_from: tosca.policies.Root
     version: 1.0.0
     description: Guard Policies for Control Loop Operational Policies
  - onap.policies.controlloop.guard.Blacklist:
      derived_from: onap.policies.controlloop.Guard
      version: 1.0.0
      description: Supports blacklist of VNF's from performing control loop actions on.
      properties:
        blacklist_policy:
          type: map
          description:
          entry_schema:
            type: onap.datatypes.guard.Blacklist
data_types:
  - onap.datatypes.guard.Blacklist:
      derived_from: tosca.datatypes.Root
      properties:
        actor:
          type: string
          description: Specifies the Actor
          required: true
        recipe:
          type: string
          description: Specified the Recipe
          required: true
        time_range:
          type: tosca.datatypes.TimeInterval
          description: An optional range of time during the day the blacklist is valid for.
          required: false
        controlLoopName:
          type: string
          description: An optional specific control loop to apply this guard to.
          required: false
        blacklist:
          type: list
          description: List of VNF's
          required: true

1.4 onap.policies.controlloop.guard.MinMax Policy Type


Code Block
languageyml
titlePolicy Type for Min/Max VF Module Policies
linenumberstrue
collapsetrue
policy_types:
  - onap.policies.controlloop.Guard:
      derived_from: tosca.policies.Root
      version: 1.0.0
      description: Guard Policies for Control Loop Operational Policies
  - onap.policies.controlloop.guard.MinMax:
      derived_from: onap.policies.controlloop.Guard
      version: 1.0.0
      description: Supports Min/Max number of VF Modules
      properties:
        minmax_policy:
          type: map
          description:
          entry_schema:
            type: onap.datatypes.guard.MinMax
data_types:
  - onap.datatypes.guard.MinMax:
      derived_from: tosca.datatypes.Root
      properties:
        actor:
          type: string
          description: Specifies the Actor
          required: true
        recipe:
          type: string
          description: Specified the Recipe
          required: true
        time_range:
          type: tosca.datatypes.TimeInterval
          description: An optional range of time during the day the Min/Max limit is valid for.
          required: false
        controlLoopName:
          type: string
          description: An optional specific control loop to apply this guard to.
          required: false
        min_vf_module_instances:
          type: integer
          required: true
          description: The minimum instances of this VF-Module

        max_vf_module_instances:
          type: integer
          required: false
          description: The maximum instances of this VF-Module

...

2.0 Operational Policy Type


Code Block
languageyml
titleBase Policy type definition for onap.policies.controlloop.Operational
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policytopology_typestemplate:
  onap.policies.controlloop.Operational:
 policies:
      -
        operational.scaleout:
       derived_from    type: toscaonap.policies.controlloop.RootOperational
           version: 1.0.0
    description: Operational Policy for Control Loops

Coming soon!!!

Base Policy Type with Common Data Type

Code Block
languagejs
titleExample of Common Datatype
linenumberstrue
tosca_definitions_version: tosca_simple_yaml_1_0_0
policy_types:
    -
        onap.policies.controlloop.Root:
            derived_from: tosca.policies.Root
            version: 1.0.0
            description: Root policy type for all Control Loop Policies
            properties:
                common:
       metadata:
              typepolicy-id: mapoperational.scaleout
           properties:
         required: true
     controlLoop:
               descriptionversion: Common Header2.0.0
                    entry_schema:controlLoopName: ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
               trigger_policy: unique-policy-id-1-scale-up
        type: onap.datatypes.controlloop.Common
data_types:
    -
    timeout: 1200
   onap.datatypes.controlloop.Common:
            derived_fromabatement: tosca.datatypes.Rootfalse
             version: 1.0.0policies:
            description: |
  - id: unique-policy-id-1-scale-up
            This common data type captures commonname: dataCreate thata is
new VF Module
              shared between all thedescription:
 policies for a Control Loop
            propertiesactor: SO
                controlLoopName recipe:
 VF Module Create
                 typetarget: string
                    requiredtype: trueVNF
                 payload:
   description: The unique ID identifying the control loop
         requestParameters: '{"usePreload":true,"userParams":[]}'
      filters:
                    type: mapconfigurationParameters: '[{"ip-addr":"$.vf-module-topology.vf-module-parameters.param[9]","oam-ip-addr":"$.vf-module-topology.vf-module-parameters.param[16]","enabled":"$.vf-module-topology.vf-module-parameters.param[23]"}]'
                    requiredretry: false
            0
        description: A map of service, vnf, pnf filters for thetimeout: policy1200
                 success:   entry_schema:final_success
                 failure: final_failure
      type: onap.datatypes.controlloop.Filter
    -
        onap.datatypes.controlloop.Filter:failure_timeout: final_failure_timeout
            derived_from: tosca.datatypes.Root
      failure_retries: final_failure_retries
      version: 1.0.0
            properties:
failure_exception: final_failure_exception
                 # TODO
failure_guard: final_failure_guard