Versions Compared

Key

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

...

Restconf Notification 

This is the Route/LinkId sttatus Termination Point (TP) / Route status notification example from SOTN Controller to Restconf data collector, where "eventTime", "tp-id" and "oper-status" will be used in downstream logic.

Code Block
languagetext
titleService Down Alarm
collapsetrue
  
  "ietf-restconf:notification": {
    "eventTime": "2018-07-28T09:15:03.924Z",
    "ietf-yang-push:push-change-update": {
      "subscription-id": 1,
      "datastore-changes": {
        "ietf-yang-patch:yang-patch": {
          "patch-id": "d1d08ce8-b24d-4efb-a0e7-7b835642f2f1",
          "edit": [
            {
              "edit-id": "0",
              "operation": "merge",
              "target": "/network=providerId%2F5555%2FclientId%2F6666%2FtopologyId%2F11/node=example-node/ietf-network-topology:termination-point=14",
              "value": {
                "ietf-network-topology:termination-point": [
                  {
                    "supporting-termination-point": [
                      {
                        "network-ref": "providerId/5555/clientId/6666/topologyId/33",
                        "node-ref": "node-ref-example",
                        "tp-ref": "33488898"
                      }
                    ],
                    "ietf-eth-te-topology:svc": {
                      "client-facing": "true",
                      "supported-classification": {
                        "transparent": "true"
                      }
                    },
                    "ietf-te-topology:te": {
                      "admin-status": "up",
                      "interface-switching-capability": [
                        {
                          "encoding": "lsp-encoding-ethernet",
                          "max-lsp-bandwidth": [
                            {
                              "priority": "7",
                              "te-bandwidth": {
                                "ietf-eth-te-topology:eth-bandwidth": "1000000"
                              }
                            }
                          ],
                          "switching-capability": "switching-l2sc"
                        }
                      ],
                      "oper-status": "updown",
                      "inter-domain-plug-id": "51000"
                    },
                    "ietf-te-topology:te-tp-id": "1",
                    "tp-id": "11234"
                  }
                ]
              }
            }
          ]
        }
      }
    }
  }

Route Alarm Message

This is the message definition at output of Restconf collector to DMAAP with topic of adds one attribute, "notify_oid", to the above JSON data, and publishes it to DMAAP topic RESTCONF_ALARM_TOPIC. This added attribute is used by Universal VES Adapter (Mapper) to identify that this JSON data is from Restconf.

Questions (To be answered): 

  1. Universal VES Adapter reads all data from a single DMaaP topic, which is specified in / UniversalVesAdapter / src / main / resources / application.properties and defined in  / UniversalVesAdapter / src / main / resources / dme2 / consumer.properties. We should publish Restconf data to the general topic, instead of a specific one, RESTCONF_ALARM_TOPIC.
  2. If we do publish the data to a Restconf specific topic, Mapper should be tell that the data is from Restconf, and we do not need to add this "notify_oid" attribute.

Code Block
languagetext
titleRestconf Collector Output (JSON)
collapsetrue
{
  "notify_oid" : "example-mappingfile-id.x.1",
  
  "ietf-restconf:notification": {
    "eventTime": "2018-07-28T09:15:03.924Z",
    "ietf-yang-push:push-change-update": {
      "subscription-id": 1,
      "datastore-changes": {
        "ietf-yang-patch:yang-patch": {
          "patch-id": "d1d08ce8-b24d-4efb-a0e7-7b835642f2f1",
          "edit": [
            {
              "edit-id": "0",
              "operation": "merge",
              "target": "/network=providerId%2F5555%2FclientId%2F6666%2FtopologyId%2F11/node=example-node/ietf-network-topology:termination-point=14",
              "value": {
                "ietf-network-topology:termination-point": [
                  {
                    "supporting-termination-point": [
              
Code Block
languagetext
titleRestconf Collector Output (JSON)
collapsetrue
{
  "notify_oid" : "example-mappingfile-id.x.1",
  
  "ietf-restconf:notification": {
    "eventTime": "2018-07-28T09:15:03.924Z",
    "ietf-yang-push:push-change-update": {
      "subscription-id": 1,
      "datastore-changes": {
        "ietf-yang-patch:yang-patch": {
          "patch-id": "d1d08ce8-b24d-4efb-a0e7-7b835642f2f1",
              "editnetwork-ref": [
  "providerId/5555/clientId/6666/topologyId/33",
          {
              "editnode-idref": "0node-ref-example",
                  "operation      "tp-ref": "merge33488898",
              "target": "/network=providerId%2F5555%2FclientId%2F6666%2FtopologyId%2F11/node=example-node/ietf-network-topology:termination-point=14",
        }
      "value": {
             ],
   "ietf-network-topology:termination-point": [
                 "ietf-eth-te-topology:svc": {
                      "supportingclient-termination-pointfacing": ["true",
                      "supported-classification": {
                        "network-reftransparent": "providerId/5555/clientId/6666/topologyId/33",true"
                        "node-ref": "node-ref-example",
}
                    },
                    "tp-refietf-te-topology:te": "33488898"{
                      }
"admin-status": "up",
                     ], "interface-switching-capability": [
                    "ietf-eth-te-topology:svc":    {
                       "client-facing   "encoding": "truelsp-encoding-ethernet",
                          "supportedmax-lsp-classificationbandwidth": {[
                           "transparent": "true" {
                      }
        "priority": "7",
           },
                    "ietf-te-topology:tebandwidth": {
                                "admin-statusietf-eth-te-topology:eth-bandwidth": "up1000000",
                      "interface-switching-capability": [
        }
                         {
   }
                       "encoding": "lsp-encoding-ethernet"   ],
                          "maxswitching-lsp-bandwidthcapability": [
"switching-l2sc"
                        }
      {
                ],
                      "priorityoper-status": "7down",
                      "inter-domain-plug-id": "51000"
       "te-bandwidth": {
            },
                    "ietf-eth-te-topology:ethte-tp-bandwidthid": "10000001",
                    "tp-id": "1234"
         }
         }
                ]
   }
           }
            }
   ],
       ]
        }
      }
     "switching-capability": "switching-l2sc"
}
  }
}                         }
         

Universal VES Adapter (Mapper)

Mapper reads Restconf data from DMaaP topic RESTCONF_ALARM_TOPIC, and uses Smooks to convert it into a standard VES format.

Mapper uses the Restconf2VES.xml to map the Restconf data to VES data. 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 Restconf2VES.xml


Code Block
languagetext
titleRestconf2VES.xml
collapsetrue
#... for illustration, not a working version
 
           “varbinds:”:   ],[{
                 “name”:     "oper-status": "up"“network-ref”,
                 “value”:     "inter-domain-plug-id": "51000"
 “$network-ref”
                   },
                    "ietf-te-topology:te-tp-id": "1",{
                  “name” : "tp“node-id": "1"ref",
                  }
“value”:  “$node-ref”
              ]
              }
  },
          }
          ]{
        }
      }
    }
“name”: “tp-ref”,
   }
}               “value”:“$tp-ef”,
            

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

...

languagetext
titleRestconf2VES.xml
collapsetrue

UVA subscribes RESTCONF_ALARM_TOPIC on DMAAP.

Route Status Alarm 

Code Block
languagetext
titleRoute Status Alarm (VES/CEDM)
collapsetrue
{
    "event": {
      },
                 "commonEventHeader": {
            "sourceId": "example-target", // 'target' from the restconf notification.
      “name”:  “te-tp-id”,
                  "startEpochMicrosec"“value”: 1413378172000000,
  “$te-tp-id”
                 "eventId": "ab305d54-85b4-a31b-7db2-fb6b977766",
 },                  "sequence": 0,
            "domain": "fault",      {
            "lastEpochMicrosec": 1413378172000033,
     “name”:  “tp-id”,
     "eventName": "Fault_Route_Status",
            "sourceName"“value”:  "example-target", // 'Target' from the restconf notification.
“$tp-id”
                  "priority": "High"},
                 "version": 3.0,
 {
                  "reportingEntityName"“name”: "Domain_Contorller"  “inter-domain-plug-id”,
        },
        "faultFields": {
 “value”:   “$inter-domain-plug-id”
        "eventSeverity": "CRITICAL",
         }
   "alarmCondition": "Route_Down",
       ]
      }


The following is how the resulted VES event data looks like. The event will be published to DMaaP topic unauthenticated.SEC_FAULT_OUTPUT, to be consumed by Holmes.

VES Event 

Code Block
languagetext
titleRoute Status Alarm (VES/CEDM)
collapsetrue
{"faultFieldsVersion": 2.0,
    "event": {
        "specificProblemcommonEventHeader": "Fault_SOTN_Service_Status",{
            "sourceId": "alarmAdditionalInformationexample-target":, [
     // 'target' from the restconf notification.
           {
    "startEpochMicrosec": 1413378172000000,
            "nameeventId": "linkIdab305d54-85b4-a31b-7db2-fb6b977766",
            "sequence": 0,
         
   "domain": "fault",
            "valuelastEpochMicrosec": "example-linkId"1413378172000033,
                }"eventName": "Fault_Route_Status",
            "sourceName": "example-target", // 'Target' {
from the restconf notification.
             "namepriority": "nodeIdHigh",        
              
  "version": 3.0,
              "valuereportingEntityName": "example-nodeIdDomain_Contorller"
        },
        },"faultFields": {
                {"eventSeverity": "CRITICAL",
                "namealarmCondition": "topologyIdRoute_Down",
            "faultFieldsVersion": 2.0,
         
   "specificProblem": "Fault_SOTN_Service_Status",
            "valuealarmAdditionalInformation": "example-topologyId"[
                },
                {
                "name": "tp-id",                    
                "value": "example-tp-id1234"               
                }
            ]
            "eventSourceType": "other",
            "vfStatus": "Active"
        }
    }
}

...


DCAE Blueprints

The initial/default configuration of restconf collector and Holmes are specified in the following micro-service blueprints. 

...