CCVPN Close Loop Fow
- SDC/CLAMP Portal design and activate policy.
- SDC/CLAMP config and activate the policy.
- SDC/CLAMP distribute the DCAE config.
- SDC/CLMAP distribute the alarm correlation rules to Holmes.
- 3rd party SOTN controller report link down alarm to DCAE
- DCAE will do data cleaning and filtering for the alarms
- DCAEk keep track the datas.
- Holmes do analysis for the alarms.
- Holmes notify the reroute event.
- Policy matching the reroute rules.
- Policy call SO to delete the old services and create the new services. For the creation flow, a variable route will be recalculated.
CLAMP (TBD)
DCAE Blueprint
DCAE
DCAE Flow
- RestConf Collector (RC)subscribes for remote failure alarm to SOTN Controller (SC)
- RC requests to set up a long term tunnel with the 3rd party SC
- SC responses with OK upon successful tunnel setting
- SC pushes service route status data to the collector
- RC receives alarm data, converts it into JSON format and publishes on DMAAP with topic of ROUTE_ALARM_OUTPUT
- UVA consumes the alarm message
- UVA requests the RestConf2VES mapping
- UVA converts json alarm into VES event
- UVA publishes the VES event on DMAAP for further correlation
APIs to SOTN Controller (Restconf)
Subscribe Notification
Functionality
Collector (Client) and SOTN Controller establishes subscription relationship.
Method
POST
Request-URL
/restconf/operations/ietf-subscribed-notifications:establish-subscription
Request-Body
{
"ietf-subscribed-notifications:input": {
"encoding": "encode-json"
}
}
Response-Body
{
"ietf-subscribed-notifications:output": {
"identifier": "1"
}
}
Establish Long Term Connectivity
Functionality
Collector establishes long term connectivity with SOTN Controller and the controller will continuously Push the subscribed notification over.
Method
GET
Request-URL
/restconf/streams/yang-push-json
Request-Body
(TBD)
Response-Body
{
"ietf-notification:notification": {
"eventTime": {eventTime},
"ietf-yang-push: push-change-update ": {
"subscription-id ": {subscription-id },
" datastore-changes ": {
"ietf-yang-patch:yang-patch": {
"patch-id": {patch-id},
"edit": [
{
"edit-id" : {edit-id },
"operation" : {operation },
"target" : {target },
"value": {value}
}
]
}
}
}
}
}
Restconf Notification
This is the Service Down Alarm message example from SOTN Controller.
"ietf-network-topology:link":{
{
"link-id": "teNodeId/0.5.0.12/telinkId/1",
"external-domain" :
{
"remote-nodeid": "x.x.x.x",
"remote-tp": y
},
"source": {
"source-node" : "0.5.0.12",
"source-tp" : "1"
}
"ietf-te-topology:te" : {
"oper-status": "down",
"te-link-attributes": {
"max-link-bandwidth" : {
"te-bandwidth" : "1000000"
},
"max-resv-link-bandwith" : {
"te-bandwidth" : "1000000"
},
... ...
}
Route Alarm Message
This is the message definition at output of Restconf collector to DMAAP with topic of RESTCONF_ALARM_TOPIC.
{
“service_status”: {
“external_domain”: {
“remote-nodeid” : “ example-remote-nodeid”,
“remote-tpid” : “ example-remote-tpid”
},
“source”? {“source-tpid”: “example-source-tpid”},
“oper-status”? “down”,
“mapping-id” : “restconf2ves-001,
“service-instance-id”: service-instance-01
}
}
VES MAPPER
The Restconf2VES.xml could be uploaded to DCAE at the closed loop deployment from DCAE Designer. For now, it will be manually uploaded to the mapper at the closed loop instantiation.
Mapping XML
UVA subscribes RESTCONF_ALARM_TOPIC on DMAAP.
Route Down Alarm
{
"event": {
"commonEventHeader": {
"sourceId": "example-sotn-controller-id-val-51834", // The value should be the same as what you set to the VM you just mocked.
"startEpochMicrosec": 1413378172000000,
"eventId": "ab305d54-85b4-a31b-7db2-fb6b977766",
"sequence": 0,
"domain": "fault",
"lastEpochMicrosec": 1413378172000033,
"eventName": "Fault_Route_Failure",
"sourceName": "example-SOTN-Controller-name-val-5470", // The value should be the same as what you set to the VM you just mocked.
"priority": "High",
"version": 3.0,
"reportingEntityName": "Domain_Contorller"
},
"faultFields": {
"eventSeverity": "CRITICAL",
"alarmCondition": "Route_Down",
"faultFieldsVersion": 2.0,
"specificProblem": "Fault_SOTN_Service_Failure",
"alarmAdditionalInformation": [{
"name": "service-instancec-id",
"value": "service-instance-01"
},
{
"name": "remote-nodeId", // ... might not be needed
"value": "example-node-id"
}
]
"eventSourceType": "other",
"vfStatus": "Active"
}
}
}
HOLMES
CCVPN Close Loop requires Holmes to correlate route down alarms from SOTN Controllers from different sites. (Refer to this page on Holmes installation,)
In Phase 1, for the minimum, two of the above defined Route_Down_Alarm will be correlated within time window of 15 - 30, for instance, milliseconds.
Rule Creation
Rule Execution
POLICY
Policy Creation
controlLoop:
version: 2.0.0
controlLoopName: ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c55b
trigger_policy: unique-policy-id-16-deleteSOTNService, unique-policy-id-17-createSOTNService
timeout: 3600
abatement: false
policies:
- id: unique-policy-id-16-deleteSOTNService
name: Delete SOTN Service
description:
actor: SO
recipe: DeleteE2EService
target:
type: VM
retry: 3
timeout: 1200
success: final_success
failure: final_failure
failure_timeout: final_failure_timeout
failure_retries: final_failure_retries
failure_exception: final_failure_exception
failure_guard: final_failure_guard
- id: unique-policy-id-17-createSOTNService
name: Create SOTN Service
description:
actor: SO
recipe: CreateE2EService
target:
type: VM
retry: 3
timeout: 1200
success: final_success
failure: final_failure
failure_timeout: final_failure_timeout
failure_retries: final_failure_retries
failure_exception: final_failure_exception
failure_guard: final_failure_guard
{
"closedLoopEventClient": "DCAE.HolmesInstance",
"policyVersion": "1.0.0.5",
"policyName": "CCVPN",
"policyScope": "service=SOTNService,type=SampleType,closedLoopControlName=CL-CCVPN-d925ed73-8231-4d02-9545-db4e101f88f8",
"target_type": "VM",
"AAI": {
"service-instance.service-instance-id" : "TBD
},
"closedLoopAlarmStart": 1484677482204798,
"closedLoopEventStatus": "ONSET",
"closedLoopControlName": "ControlLoop-CCVPN-2179b738-fd36-4843-a71a-a8c24c70c55b",
"version": "1.0.2",
"target": "vserver.vserver-name",
"requestID": "97964e10-686e-4790-8c45-bdfa61df770f",
"from": "DCAE"
}
APIs