CPE Authentication Notification
Introduction
The CPE Authentication Notification is generated whenever the authentication state of gateway functionality associated with a CPE (e.g., ONT) changes from either Authenticated to Unauthenticated and vice-versa.
Upon reception of the notification within ONAP by a DCAE collector, the notification is mapped into a VES event and placed on the DMaaP bus by the DCAE/BBS uS (platform uS) which then processes the event to update the subscribers HSIA CFS. The DCAE and AAI interactions and associated artificat definitions are defined in this document.
BBS Flows Cross Reference
The CPE Authentication notification is used within the following use case scenarios:
CPE Authentication Flow
The above diagram reflects the interactions that updates the HSIA service's operation state with the following steps:
10) Edge SDN M&C reports the CPE Authentication Notification to DCAE VES Collector
The VES Collector receives the CPE Authentication Notification and places a CPE Authentication VES Event onto the DMaaP bus (topic unauthenticated.CPE_AUTHENTICATION).
The domain of the VES Event is defined in this document.
20) The BBS uS will listen for StateChange events for CPE Authentication events
Lookup the PNF (using sourceName) and find associated services
Obtain the CFS service instance(s) for the HSIA Internet Profile with the same RG MAC Address.
Note: Step 20 lookup information needs validated
30) If swVersion is present in the VES message's Additional information "swVersion", the BBS policy updates the PNF instances swVersion field. (Not in Dublin)
40) The BBS policy changes the CFS service instance's orchestration status:
newState: InService → orchestration status: Active
newState: OutofService → orchestration status: Inactive
50) AAI emits a service instance update in the DMaaP's AAI-EVENT topic, which is consumed by ExternalAPI
55) External API emits the service instance state change notification
CPE Authentication VES Event
Ref: VES Architecture
Ref: VES Schema
CPE AUTHENTICATION VES Event in JSON
curl -X POST \
http://172.30.0.123:30235/eventListener/v7 \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"event": {
"commonEventHeader": {
"sourceId": "",
"startEpochMicrosec": 1413378172000000,
"eventId": "ab305d54-85b4-a31b-7db2fb6b9e546015",
"timeZoneOffset": "",
"reportingEntityId": "",
"internalHeaderFields": {},
"eventType": "applicationNf",
"priority": "Normal",
"version": "4.0.1",
"reportingEntityName": "thirdparty-sdnc-idfromesrrequest",
"sequence": 0,
"domain": "stateChange",
"lastEpochMicrosec": 1413378172000000,
"eventName": "StateChange_cpe_authentication",
"vesEventListenerVersion": "7.0.1",
"sourceName": "pnf-1"
},
"stateChangeFields": {
"additionalFields": {
"macAddress": "01:02:03:04:05:06",
"swVersion": "1.2.3"
},
"oldState": "outOfService",
"stateChangeFieldsVersion": "4.0",
"stateInterface": "",
"newState": "inService"
}
}
}'
The CPE Authentication VES event is defined as follows:
Note: Using VES v7.1
Field | Type | Required? | Description |
---|---|---|---|
Version | number | Yes | Version of the event header. See the VES Event Specification for the correct digits to use. |
eventName | string | Yes | The Event name that uniquely identifies the CPE Authentication event across vendor implementations. StateChange_cpe_authentication |
domain | string | Yes | stateChange |
eventId | string | Yes | Event key that is unique to the event source cpe_authentication_yyyyyyyy where yyyyyyyy is an integer starting at 0 and incremented by 1 for every CPE Authentication event sent by this CPE. The key must be unique within notification life cycle similar to EventID from 3GPP. It could be a sequential number, or a composite key formed from the event fields, such as domain_sequence. The eventId should not include whitespace. |
eventType | string | No | applicationNf |
sourceId | string | No | UUID identifying the entity experiencing the event issue (note: the AT&T internal enrichment process shall ensure that this field is populated) Not used |
sourceName | string | Yes | Name of the entity experiencing the event issue From DHCP option 60 we get <Service-Provider-ID>,<Service-ID>,<Device-ID>,<Vendor Name>,<MAC OUI>,<Model>,<running firmware version>,<Serial number> <PNF-name/PNF correlation ID>: Format string: <MAC OUI>_<Model>_<SerialNumber>, e.g. AB-CD-12_ABC1-01-02_2.6G1724F0417413 |
reportingEntityId | string | No | UUID identifying the entity reporting the event, for example an OAM VM (note: the AT&T internal enrichment process shall ensure that this field is populated) Not used |
reportingEntityName | string | Yes | Name of the entity reporting the event, for example, an EMS name. May be the same as the sourceName. For synthetic events generated by DCAE, it is the name of the app generating the event. <thirdparty-sdnc-id> from esr request |
priority | string | Yes | Processing priority enumeration: ‘High’, ‘Medium’, ‘Normal’, ‘Low’ Normal |
startEpochMicrosec | number | Yes | the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds current time |
lastEpochMicrosec | number | Yes | the latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds current time |
sequence | integer | Yes | Ordering of events communicated by an event source instance (or 0 if not needed) 0 |
internalHeader Fields | Internal Header Fields | No | Fields (not supplied by event sources) that the VES Event Listener service can use to enrich the event if needed for efficient internal processing. This is an empty object which is intended to be defined separately by each provider implementing the VES Event Listener. Empty. Not used |
vesEventListenerVersion | string | Yes | Version of the VES event listener API Spec that this event is compliant with (As "#" or "#.#" or "#.#.#" where # is a digit. |
timeZoneOffset | string | No | Offset to GMT to indicate local time zone for device formatted as 'UTC+/-hh.mm'; see https://en.wikipedia.org/wiki/List_of_time_zone_abbreviations for UTC offset examples |
stateChange FieldsVersion | number | Yes | Version of the stateChangeFields block as "#.#", where # is a digit (currently: 1.0). See the VES Event Specification for the correct digits to use. |
newState | string | Yes | New state of the entity: ‘inService’, ‘maintenance’, ‘outOfService’ (Authenticated = inService, Unauthenticated = outOfService) |
oldState | string | Yes | Previous state of the entity: ‘inService’, ‘maintenance’, ‘outOfService’ (Authenticated = inService, Unauthenticated = outOfService) |
stateInterface | string | Yes | Card or port name of the entity that changed state Empty. Not used |
additionalFields | hashMap | No | Additional syslog fields: {“name1”: ”value1”, “name2”: ”value2”} macAddress (MAC Address of the RG for the PNF) swVersion (Sw version from the DHCP option 60) (Optional) |
BBS MS Triggering Apex Policy
DCAE_CL_OUTPUT Event
CPE Authentication Event
{
"closedLoopEventClient":"DCAE.BBS_event_processor_mSInstance",
"policyVersion":"1.0.0.5",
"policyName":"CPE_Authentication",
"policyScope":"policyScopeCpeAuth",
"target_type":"VM",
"AAI":{
"cpe.old-authentication-state":"outOfService",
"cpe.new-authentication-state":"inService",
"cpe.swVersion":"1.2.3",
"service-information.hsia-cfs-service-instance-id":"7c0eceab-7c0b-45a0-b2d3-b8612b9a191a"
},
"closedLoopAlarmStart":1554994913,
"closedLoopEventStatus":"ONSET",
"closedLoopControlName":"clControlNameCpeAuth",
"version":"1.0.2",
"target":"vserver.vserver-name",
"requestID":"41033616-72b2-4798-9c33-2bb1fd3c0b9f",
"from":"DCAE-BBS-ep"
}