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

BBS CPE Authentication Notification

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

FieldTypeRequired?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

vesEventListenerVersionstringYesVersion of the VES event listener API Spec that this event is compliant with (As "#" or "#.#" or "#.#.#" where # is a digit.
timeZoneOffsetstringNoOffset 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

additionalFieldshashMapNo

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"
}


Apex Configuration

CPE Authentication Policy

A&AI APIs

  • No labels

1 Comment

  1. "swVesion": "version"
    This should be swVersion