Table of Contents | ||
---|---|---|
|
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:
- Registration and Re-registration of CPE PNFs (e.g., ONT) used to support the Nomadic ONT scenario
- Authentication state change of the gateway (e.g., residential) functionality associated with CPE PNFs that updates the operational state of the HSIA CFS.
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.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
[ { “notification” : "notification": { “event-time”"event-time": ”2018"2018-03-15T08:15:32.000Z”000Z", “notification-id”: ”2541256”"notification-id": "77777777", “message”"message": { { "topic": "resource", “topic”:“resource”"object-type": "ont", “object-type”:“ont”"version": "v1", "operation": "Create", “version”: ”v1”"target": "ont/ont=23hk1231231232", “operation”"content": “Create”,{ “target”"ont": ”ont/ont=23hk1231231232”,{ “content”: "ontSN": "48575443FA637D1A", { “ont”: "neName": "MA5800T-001", "neUNIPort": {"0/1/6", "onuID": "101" } “ontSN”:“48575443FA637D1A”, } } “neName”:“MA5800T-001”, “neUNIPort”:“0/1/6”, “onuID”:“101” } } } } } ] |
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.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
[ { "rule_id" : "example id" }, { “notification” : { “event-time”: ”2018-03-15T08:15:32.000Z”, “notification-id”: ”2541256”, “message”: { “topic”:“resource”, “object-type”:“ont”, “version”: ”v1”, “operation”: “Create”, } } |
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.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "rule-id": "12121", "notification": { “target”: ”ont/ont=23hk1231231232”"notification-id": "77777777", “content”: "event-time": "2018-03-15T08:15:32.000Z", "message": { “ont”: "object-type": "ont", "topic": "resource", { "version": "v1", "operation": "Create", "content": { “ontSN”:“48575443FA637D1A”, "ont": { "neName": "MA5800T-001", “neName”:“MA5800T-001”, "neUNIPort": "0/1/6", “neUNIPort”:“0/1/6”, "onuID": "101", “onuID”:“101” "ontSN": "48575443FA637D1A" } } }, }"target": "ont/ont=23hk1231231232" } } ]} |
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.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
[ { “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.
VES Mapper
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
[ { "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” } } } } } ] |
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.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<?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&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 :
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "event":{ "commonEventHeader":{ "domain":"pnfRegistration", "eventId":"registration_1549974919382", "eventName":"pnfRegistration", "lastEpochMicrosec":1.549974919382E12, "priority":"Normal", "reportingEntityName":"VESMapper", "sequence":0, "sourceName":"ont/ont=23hk1231231232", "startEpochMicrosec":1.549974919382E12, "version":3.0, "eventType":"pnfRegistration", "vesEventListenerVersion":"7.0" }, "pnfRegistrationFields":{ "pnfRegistrationFieldsVersion":"2.0", "serialNumber":"48575443FA637D1A" } } } |
...