Introduction and Approach

In BBS, notifications generated by the domain specific M&C (Access, Edge) into ONAP using the capabilities provided by ONAP's DCAE component and supported collectors that map the notifications into VES events for processing within ONAP.

For this release, BBS uses Restconf Collector to collect the notifications, converting the notification into the requisite VES event by the VES Mapper uS. The VES event placed on the DMaaP bus with a topic that can be consumed by the associated DCAE uS for processing. In many cases the DCAE uS uses ONAP's Policy capabilities to implement the function specific to the notification.  The specific interactions are documented within the corresponding notification as identified below.

Supported Notifications

The primary scenarios for notifications within BBS are to support:

Common Functionality

BBS Notifications have functionality provided by ONAP components that is used by multiple BBS Notifications


DCAE

Restconf Collector

Notifications from domain specific controllers (Access, Edge) can be transmitted to ONAP using ONAP's Restconf collector leveraging the APIs specified in CCVPN Closed Loop

Figure 2.  Domain Controller ↔ Restconf Collector Interfacing Diagram

 

For BBS Notifications, the Restconf collector subscribes to notifications to the requisite domain controller (Access, Edge) for the notifications that ONAP is interested and the domain controller supports. For subscribed notifications, the Restconf Collector establishes a persistent connection with the domain controller through which the notifications are pushed by the domain controller to the Restconf Collector.  The Restconf Collector then adds an OID for the Restconf2VES,xml file which is used to translate the event to the standard VES format by the VES Mapper and is published using the topic associated with the VES Event.

The association happens at design time to build JSON message with different topics of the Restconf_Notification with a certain Restconf2VES XML file indicator. In addition, the domain controller's IP/port, authentication information and produced topic could be assigned at design time at blue print creation through DCAE-DS and configurable at control loop creation time from CLAMP.

VES=VES Collector   RCC=Restconf Collector thread   UVA=Universal VES Adaptor thread  SSE=SSE Connection

ORN=ONT Registration Notification  RN=Restconf Notification topic  PNF_R=PNF Registration Event

CPE_A=CPE Authentication Event  PRH=PNF Registration Handler  BBS MS= BBS Micro-service 

Figure 3. Logic flow of Restconf Collector through the VES Mapper


Example Domain Controller Notifications

The following provides examples of various notifications that are generated by the domain controllers (Access or Edge SDN M&C).

ONT Registration Notification

Following is an example of ONT Registration notification received from Access SDN M&C.

ONT Registration Notification
{
	“notification”:	{
		“event-time”: ”2018-03-15T08:15:32.000Z”,
		“notification-id”:  ”2541256”,
        “message”:	{
			“topic”:“resource”,
            “object-type”:“onu”,               
			“version”: ”v1”,               
			“operation”: “create”,   
			“target”: ”ont/ont=23hk1231231232”,   
			“content”:	{
				“onu”:	{
					"sn":	"48575443FA637D1A",
					"refParentNE":	"550e8400-e29b-41d4-a716-446655440000",
                   	"refParentNeNativeId":	"FDN",
					"refParentLTP":	"8c0db89e-218c-4e18-b0de-7a6788b3dda4",
					"refParentLTPNativeId":	"FDN",
      				"onuId": "213",
                    "accessID":	"HG65875420001"
				}
			}
		}
	}
}


 

The output of Restconf Collector for the ONT Registration is the above JSON message with certain rule_id being published on DMAAP with topic of restConf_Notification.

ONT Registration RCC Output
{
    "rule-id": "12121",
	“notification”:	{
		“event-time”: ”2018-03-15T08:15:32.000Z”,
		“notification-id”:  ”2541256”,
        “message”:	{
			“topic”:“resource”,
            “object-type”:“onu”,               
			“version”: ”v1”,               
			“operation”: “create”,   
			“target”: ”ont/ont=23hk1231231232”,   
			“content”:	{
				“onu”:	{
					"sn":	"48575443FA637D1A",
					"refParentNE":	"550e8400-e29b-41d4-a716-446655440000",
                   	"refParentNeNativeId":	"FDN",
					"refParentLTP":	"8c0db89e-218c-4e18-b0de-7a6788b3dda4",
					"refParentLTPNativeId":	"FDN",
      				"onuId": "213",
                    "accessID":	"HG65875420001"
				}
			}
		}
	}
}
RG Activation Notification

Following is an example of RG Activation notification received from Edge SDN M&C domain controller if the interface between DCAE and the domain controller is RestConf/Yang.  In Dublin release, an Edge SDN M&C simulator is provided by SwissCom development team, which will interfacing with DCAE through VES Rest API and VES CPE Authentication event will be delivered to DCAE directly. 

RG Activation Notification
  [
      {
          “notification”
          {
              “event-time”:  ”2018-04-15T08:15:32.000Z”,
              “notification-id”:  ”2541256”,
              “message”:
              {
                  “topic”:“resource”,
                  “object-type”:“Gateway”,
                  “version”: ”v1”,
                  “operation”: “Create”,
                  “target”: "Gateway/sn=83575443FA637D1A”,
                  “content” :
                  {
                      “Gateway”:
                      {
                          “gatewaySN”:“83575443FA637D1A”,                                   
                          “mac”:“28-6E-D4-89-34-DD”,               
                          “pppoeUserName”: ”587564@163.com”,                
                          “ip”: "10.68.52.158”,
                          “state”:”Online”,
                          “ontSN”:“48575443FA637D1A”                            
                      }                
                  }
              }
          }
      }           
  ]

The output of Restconf Collector for the RG Activation could be the above JSON message with certain rule_id being published on DMAAP with topic of restConf_Notification. 


RG Activation RCC Output
[
	  {
	  "rule_id" : "example id" 

      },
      {
          “notification”
          {
              “event-time”:  ”2018-04-15T08:15:32.000Z”,
              “notification-id”:  ”2541256”,
              “message”:
              {
                  “topic”:“resource”,
                  “object-type”:“Gateway”,
                  “version”: ”v1”,
                  “operation”: “Create”,
                  “target”: "Gateway/sn=83575443FA637D1A”,
                  “content” :
                  {
                      “Gateway”:
                      {
                          “gatewaySN”:“83575443FA637D1A”,                                   
                          “mac”:“28-6E-D4-89-34-DD”,               
                          “pppoeUserName”: ”587564@163.com”,                
                          “ip”: "10.68.52.158”,
                          “state”:”Online”,
                          “ontSN”:“48575443FA637D1A”                            
                      }                
                  }
              }
          }
      }           
  ]

VES Mapper

Restconf2VES Mapping

The Restconf2VES mapping rule (*.xml) is provided by the vendor for certain type of notification for ONT and defined as the following:  

The ONT Registration Notification is mapped to VES PNF Registration Event .

The default mapping artifact (xml file) name is specified at the design time in VES Mapper micro-service blueprint at DCAE-DS and it is configurable through CLAMP at control loop creation time. The pre-condition is that the mapping file with correct naming convention should be available or on-boarded and stored in ONAP at design time. When the Nomadic ONT control loop is deployed, the mapping files retrievable and loaded to VES Mapper working space.


Mapping File for ONT Registration
<?xml version="1.0" encoding="UTF-8"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.4.xsd" xmlns:json="http://www.milyn.org/xsd/smooks/json-1.1.xsd">
   <json:reader rootName="vesevent" keyWhitspaceReplacement="-">
      <json:keyMap>
         <json:key from="date&amp;time" to="date-and-time" />
      </json:keyMap>
   </json:reader>
   <jb:bean class="org.onap.dcaegen2.ves.domain.VesEvent" beanId="vesEvent" createOnElement="vesevent">
      <jb:wiring property="event" beanIdRef="event" />
   </jb:bean>
   <jb:bean class="org.onap.dcaegen2.ves.domain.Event" beanId="event" createOnElement="vesevent">
      <jb:wiring property="commonEventHeader" beanIdRef="commonEventHeader" />
      <jb:wiring property="pnfRegistrationFields" beanIdRef="pnfRegistrationFields" />
   </jb:bean>
   <jb:bean class="org.onap.dcaegen2.ves.domain.CommonEventHeader" beanId="commonEventHeader" createOnElement="vesevent">
      <jb:expression property="version">"3.0"</jb:expression>
      <jb:expression property="eventType">"pnfRegistration"</jb:expression>
      <jb:expression property="vesEventListenerVersion">"7.0"</jb:expression>
      <jb:expression property="eventId" execOnElement="vesevent">"registration_"+commonEventHeader.ts1</jb:expression>
      <jb:expression property="reportingEntityName">"VESMapper"</jb:expression>
      <jb:expression property="domain">"pnfRegistration"</jb:expression>
      <jb:expression property="eventName" execOnElement="vesevent">commonEventHeader.domain</jb:expression>
      <jb:value property="sequence" data="0" default="0" decoder="Long" />
      <jb:expression property="lastEpochMicrosec" execOnElement="vesevent">commonEventHeader.ts1</jb:expression>
      <jb:expression property="startEpochMicrosec" execOnElement="vesevent">commonEventHeader.ts1</jb:expression>
      <jb:expression property="priority">"Normal"</jb:expression>
      <jb:value property="sourceName" data="notification/message/target" />
   </jb:bean>
   <jb:bean class="org.onap.dcaegen2.ves.domain.PnfRegistrationFields" beanId="pnfRegistrationFields" createOnElement="vesevent">
      <jb:expression property="pnfRegistrationFieldsVersion">"2.0"</jb:expression>
      <jb:value property="serialNumber" data="notification/message/content/ont/ontSN" />
   </jb:bean>
</smooks-resource-list>


Below is the VES event for ONT Registration :

VES Event for ONT Registration
{
   "event":{
      "commonEventHeader":{
         "domain":"pnfRegistration",
         "eventId":"registration_1550146312489",
         "eventName":"pnfRegistration",
         "lastEpochMicrosec":1.550146312489E12,
         "priority":"Normal",
         "reportingEntityName":"VESMapper",
         "sequence":0,
         "sourceName":"ont/ont=23hk1231231232",
         "startEpochMicrosec":1.550146312489E12,
         "version":3.0,
         "eventType":"pnfRegistration",
         "vesEventListenerVersion":"7.0"
      },
      "pnfRegistrationFields":{
         "pnfRegistrationFieldsVersion":"2.0",
         "serialNumber":"48575443FA637D1A"
      }
   }
}

Test Cases

High Level Test Cases and Status:

#Sub ModuleTest CasesStatus
1

Restconf Collector

DCAEGEN2-1142 - Getting issue details... STATUS

PTLVijay Venkatesh Kumar

SSE connection per notification typeNOT YET TESTED
2Connection authentication run time configurationNOT YET TESTED
3VES mapping index run time configurationNOT YET TESTED
4ONT Registration notification Receiving/ProcessingNOT YET TESTED
5RCC MS on boarding at design timeNOT YET TESTED
6Instantiation of RCC MS with CL from CLAMPNOT YET TESTED
7Configure RCC parameters at run time through CLAMP GUINOT YET TESTED

VES Mapper

  • No labels