Configuration and Distribution of Control Loop

CLAMP Control Loop Flow for ONAP vVoLTE
Use Case, Release 1
Ron Shacham [email protected]
Gervais-Martial Ngueko [email protected]
Introduction
This document is a description of how CLAMP (Control Loop Automation Management Platform)
capabilities will be applied to the vVoLTE Use Case in ONAP. That Use Case describes control
automation as one of the essential functions of supporting the vVoLTE service in ONAP. Specifically, the
project proposal mentions the following control loop requirements:




Auto-scaling, both vertical and horizontal
Fault detection
Correlation
Auto-healing

Open loop to create tickets
We provide here a detailed description of the control loop use case for the vVoLTE service, based on
current capabilities of CLAMP.
The intention is to define a set of flows that can be implemented in ONAP Release 1, while also
suggesting longer-term goals for broadening the control loop part of the use case.
Runtime Flow of Control Loop
Assumptions





The VES Collector may be shared across VNFs. A single instance will be installed in an edge
location.
The flow will support multiple instances of the VNF
A String matcher will be instantiated once for a given service/VNF pair. For example, there will
be an instance to support vVoLTE/vSBC.
The VNF used in the use-case will be capable of emitting fault events natively in VES format.
There will likely be one VNF component that will be used for the use-case implementation
initially, in Release 1 of ONAP. Other components or other VNFs will follow.





The VNF owner will identify a single VES fault event, by its alarm identifier and severity level,
which indicates a condition that can be remediated with a single automated action on the
troubled VM.
The VNF owner will identify an associated abatement event which will indicate that the fault
event above has been remediated, and no further action is needed, until which time as the fault
is repeated.
No correlation will be done between multiple fault events. Only a single onset event and a
single abatement event will indicate the onset and abatement of the condition, respectively.
Messaging between DCAE and Policy will follow the format specified within AT&T and
implemented as part of DCAE and Policy seed code.
An action will be executed on the VM to remediate the condition. This action will only require
Application Controller, and no other ONAP components.
Components





VNF VM component supporting VES fault output: The VNF will natively support VES.
VES Collector: The VES collector receives input from multiple VNFs in native VES format and
outputs the events on a DMaaP topic in DCAE.
String Matching Microservice: A DCAE microservice which matches fields on incoming fault
events and outputs a signature based on specific conditions. This microservice is configured by
a policy.
Policy Drools PDP: The component of the Policy Engine which decides on actions based on
incoming signatures from DCAE. The policies that specify these actions are defined in Drools.
See below for more details.
Application Controller (App-C): ECOMP component responsible for management and control of
VNFs including actions such as restart, rebuild and migrate.
Flow
1. VNF emits VES format for fault
2. VES Collector outputs trap on DMaaP topic A
3. String matcher matches the message, based on specific fields in the VES format, and outputs a
signature based on specified message format over a separate DMaaP topic B. Describe the
association between signature and control loop id
4. Policy matches the signature message to stored operational policies, and invokes App-C
accordingly, over DMaaP topic C
5. App-C takes action on VM which has emitted the fault
6. VNF emits Abate Event in VES format
7. VES Collector outputs trap on DMaaP topic A
8. String matcher matches the message, based on specific fields in the VES format, and outputs an
abatement signature based on specified message format over a separate DMaaP topic B.
Describe the association between signature and control loop id. Policy receives the message,
which indicates that it can terminate its remediation of the fault condition.
Questions
Which VNF should be prioritized?
Ticketing?
We will require supplemental data from A&AI that is not provided in the trap. Who will be responsible
for getting this data?
Future Enhancements
Design of Control Loop
Summary
Design is the process of creating a control loop template. This template provides enough details for
CLAMP to:



Present the control loop to the user so that he can configure it
Allow CLAMP to create a blueprint and upload it to ASDC, for distribution to DCAE. This
blueprint will be used to deploy any necessary DCAE microservices and databus resources.
Allow CLAMP to create a configuration policy for any DCAE microservice that is part of the
control loop.
Initially, the control loop in DCAE will consist of one static component, the VES collector, and a dynamic
component, the stringmatcher microservice.
The template will be created outside of the CLAMP tool, and provided to CLAMP so that the template
can be configured and distributed to ASDC and DCAE.
Configuration and Distribution of Control Loop
Summary
This flow begins with a control loop design, based on a template as discussed above, which defines the
elements involved in the control loop flow. Through this flow, the control loop becomes associated in
the ASDC catalog with a VNF instance within a service. The control loop is also certified and distributed
to DCAE for storage in its inventory and later instantiation (see next section). There are also policies
created for supporting the control loop instances.
Interfaces Used




ASDC Catalog API
ASDC Distribution API
DCAE Inventory API
Policy API
Control Loop Template
The template consists of:



VES Collector
String Match Microservice
Operational Policy
Configuration
The figure above shows the configuration of control loop logic. The configuration is distributed across
DCAE and Policy. This example shows the configuration of two control loops. To achieve this, two
instances of a string matcher microservice are deployed in DCAE. In general, a separate string matcher
is deployed for every Service/VNF pair in a specific location, so that there is a dedicated string matcher
for that Service/VNF.
Every string matcher configuration defines a set of rules, where each rule defines:


A set of fault conditions: Match on a number fields in the incoming fault event
A Control Loop Policy ID: Associated with an Operational Policy
Through this configuration, the DCAE microservice will attempt to match rules on all incoming trap
messages. Once it matches all fault conditions of a particular rule, it will output a signature with the
source of the fault, details of the fault, and the Control Loop Policy ID.
Policy receives this signature on its input topic and executes the Operational policy associated with the
Policy ID.
Step by Step Flow
•
Step 1: User creates new CL, using template created earlier. Currently, the template must be
created manually; in the future this will be available from ASDC.
•
Step 2: CLAMP uses API to query ASDC for services and resources available in the catalog.
•
Step 3: User chooses Service and VNF for which the control loop will apply
•
Step 4: CLAMP downloads alarm CSV file for VNF type that the user has chosen. This file will be
used to configure the signatures of the control loop.
•
Step 5: User goes to Operational Policy box, clicks, and creates a new Operational policy.
Chooses chain of actions to execute. Saves the policy as Signature1_OpsPolicy
•
Step 6: User goes to String matcher box, clicks and creates one or more associated signature
rules. He associates them with the operational policy created earlier, Signature1_OpsPolicy
•
Steps 5 and 6 are repeated, creating a different Operational Policy and associated signature
rules
•
Step 7: CLAMP invokes Policy API to create separate policies
•
Drools policy A: ClosedLoopControlName 11111
•
Drools policy B: ClosedLoopControlName 22222
•
String Matcher Microservice policy referring to ClosedLoopControlName 11111 and
ClosedLoopControlName 22222
•
Step 8: CLAMP generates blueprint, based on template
•
Step 9: CLAMP uploads blueprint to ASDC
•
Step 10: ASDC Service is checked in, tested, certified and distributed
•
Step 11: Distribution event is sent by ASDC over DMaaP and handled by SCH.
•
Step 12: The control loop design is entered into DCAE Inventory
•
Step 13: CLAMP continually queries for distribution information about control loop design.
Once the design is found, the status of control loop is shown as “Distributed”.
Instantiation of Control Loop
Summary
In this flow, the control loop resources are instantiated.
Interfaces Used

DCAE Northbound API
Full Call Flow
Question: Should we leave out the detailed flow south of DCAE NB Interface?
•
Step 15: User chooses to deploy
•
Step 16: CLAMP invokes DCAE Northbound API to request the instantiation of a control loop for
this VM
•
Create unique deployment ID = depid
•
PUT /dcae-deployments/depid
•
Body: {“serviceTypeName” : “dcaeTypeId”}
•
Response contains “status” link. This points to a link exposed by the Dispatcher API:
•
•
•
/dcae-deployments/depid/operation/operid999
CLAMP keep status link and associates it with closed loop model
Step 17: Dispatcher searches Inventory
•
DCAE Service Types for Type with the specified ID for blueprint to deploy
•
DCAE Services with specified ID to determine of there are running instances
•
Step 18: Dispatcher pushes blueprint to Cloudify
•
Step 19: DCAE Dispatcher returns a successful response to CLAMP with Deployment ID
•
•
CLAMP stores deployment ID associated with closed loop model
Step 20: CLAMP begins polling status link
•
“status” is now “processing” (“status” in response can be “processing”, “succeeded” or
“failed”)
•
(At this point, there are several interactions between Cloudify and other DCAE components.
These interactions are specified by the Common Controller Framework for deploying a CDAP
Microservice. We omit them here, and assume that there has been a successful deployment.)
•
Step 21: CLAMP polls again at a later point, after successful deployment, and gets instantiated
status information from DCAE Dispatcher status link
Questions:
•
“status” is set to “succeeded”
•
CLAMP now shows the control loop status as “Active”
Is it instantiated in local dcae or central?
How does user get options about where to instantiate control loop
Management of Control Loop
Summary
Once the control loop is instantiated, CLAMP allows for operations to be performed on the control loop.
Specifically, the following operations:



Stop the control loop from operating
Restart the operation of the control loop
Update any configuration of the control loop
Here we show how these operations are carried out.
Interfaces Used



DCAE Northbound API
Policy API
DCAE/Policy Interface
•
Step 1: An operational user chooses to change configurations settings for the control loop.
CLAMP updates configuration policy of string matcher
•
Step 2: Updated configuration is received by DCAE/Policy Interface
•
Step 3: String matcher receives updated configuration. (This is a dotted line to indicate that the
policy is received by the String matcher, but the details of how this is done and through which
components is not specified here)
•
Step 4: User requests suspending closed loop, and CLAMP executes this through operational
policy
•
Step 5: User requests restarting closed loop, and CLAMP executes this through operational
policy
•
Step 6: User requests undeployment of closed loop
•
CLAMP makes a request to DCAE Northboound interface to delete an existing
deployment
•
Step 7: Northbound Interface sends to Cloudify
•
Step 8: Northbound interface responds and provides a “status” link for the undeployment
•
CLAMP starts polling for undeployment status
•
(At this point, there are several interactions between Cloudify and other DCAE components.
These interactions are specified by the Common Controller Framework for undeploying a CDAP
Microservice. We omit them here, and assume that there has been a successful undeployment.)
•
At a later point, after successful undeployment CLAMP gets “status” :“success” in response to its
polling
Monitoring of Control Loop
Will the CLAMP Cockpit do its own monitoring and visualization? Can the dashboard be put into ONAP?
Monitor such information as:



Where are control loops deployed
What VNFs are supported by these control loops
KPIs related to specific control loops
o Number of actions
o
References
VES