ACS Event Flow

1. Overview

The ACS Event Flow applies the stored provisioning data after the ACS reports an event for a CPE. The data comes from the provision database (provision DB).

The flow has two uses:

  • delivery of the data for a CPE without an ACS registration

  • a new application of the stored data to a known CPE

The Input Flow stores the data of an unregistered CPE with status 196 or 261.

The ACS calls the Provision Portal with DeviceEventMonitor over SOAP or with POST /device-event over REST. The request contains the serial number (SN), the MAC addresses and the event code of the CPE. The Business Process Model and Notation (BPMN) process is deviceEventMonitorProcess in acsEventFlowV3.bpmn.

If the event code does not start with 1011, the flow returns at once. In this case, the flow writes no status.

The ACS Event Flow has no request data of its own. All data comes from the provision DB. The flow matches this data with Objects.xml and Params.xml. The reprovision flag and the Reboot option also come from the stored records. See Common Options.

2. Flow Diagram

The numbers in the circles are status codes. For their meaning, see Status Codes Reference.

ACS Event Flow page 1
Figure 1. ACS Event Flow, page 1: CPE search and stored data
ACS Event Flow page 2
Figure 2. ACS Event Flow, page 2: new and existing objects, sub-objects
ACS Event Flow page 3
Figure 3. ACS Event Flow, page 3: non-object parameters, task results and reboot

3. Steps

3.1. Find the CPE in the Provision DB

  1. The flow searches the provision DB for the SN.

  2. If the SN is not there, the flow searches for the reported MAC addresses.

  3. If the flow finds a MAC address, the flow adds the SN to the records of this MAC address.

This is how data stored under a MAC address gets its SN. If the flow finds neither the SN nor a MAC address, the flow has nothing to provision. The flow ends with status 1460.

For a CPE with stored data, the flow then does these steps:

  1. FTGetDeviceInfo gets the OUI and the Product Class.

  2. If the provision DB has device info, FTUpdateDeviceInfo sends the device info.

  3. If the provision DB has a domain, FTSetCpeDomain sets the domain.

Code Meaning

341

New device event received

162, 167

SN in the provision DB: yes, no

141, 136

Reported MAC address in the provision DB: yes, no

143, 5002

SN added to the records of the MAC address: success, failure

1460

Nothing to provision for this CPE. Final status.

111, 1110

OUI and Product Class: received, FTGetDeviceInfo failure

105, 106

Device info in the provision DB: yes, no

107, 1070

FTUpdateDeviceInfo: success, failure

602, 603, 6030

No domain, FTSetCpeDomain success, FTSetCpeDomain failure

3.2. Collect Objects and Standalone Services

This step is the same as in the Input Flow. The only source is the provision DB. The flow matches the standalone services, objects and object related parameters with Objects.xml. If the flow finds no object name, the flow writes status 129 and continues with Set Non-Object Parameters, Reboot and Finish.

Code Meaning

120, 121

Standalone services in the provision DB: yes, no

207, 208

Standalone service in Objects.xml: yes, no

122, 1220

Object names for the standalone services: received, failure

123, 124

Objects in the provision DB: yes, no

125, 1250

Objects matched with Objects.xml: success, mismatch

127, 128

Object related parameters in the provision DB: yes, no

130, 1300

Object related parameters matched with Objects.xml: success, mismatch

133, 1330

Default parameters of the objects from Objects.xml: received, mismatch

129

No Objects.xml data. No objects to process.

3.3. Create and Update Objects

The flow processes the objects one by one, as in the Input Flow:

  • Instance 0: the flow creates a new object with FTAddObject.

  • Instance 1 to 9: the flow checks the instance, then sets the instance parameters or creates the object.

The flow creates the sub-objects under the new parent object.

The ACS Event Flow does not check the online status of the CPE. The CPE is online at this moment. The event comes from the current session of the CPE with the ACS.

Code Meaning

134, 1340

First object selection: success, failure

135

Instance 0

137, 1370

FTAddObject with parameters: success, failure

308

FTAddObject with reprovision flag 2. The flow does not wait.

1380, 5003

Task still pending after the timeout, task status unknown

139, 1390

Object created, task failed or rejected

140

Instance 1 to 9

3090

Specific instance with reprovision flag 2. The flow ends.

142, 1420, 1440, 5004

Check of the instance with FTSetDeviceParameters, and its task

145, 147

Instance exists, instance may not exist

300, 3000, 3010, 5013, 302, 3020

Parameters of an existing instance

148, 1480, 1490, 5005, 152, 1520

New instance with FTAddObject

900 to 908, 9040, 9050, 9070

Sub-objects

156, 101

Next object selected, no objects left

3.4. Set Non-Object Parameters, Reboot and Finish

The flow collects two groups of parameters:

  • the default parameters of the standalone services, from Params.xml

  • the non-object parameters of the provision DB, matched with Params.xml

One FTSetDeviceParameters call sends all these parameters.

Reprovision flag Action

0 or 1

The flow waits for the task result. If the stored records have Reboot, the flow reboots the CPE with FTRPCInvoke. The flow ends with status 246.

2

The flow does not wait. If the stored records have Reboot, the flow reboots the CPE. The flow ends with status 246.

Code Meaning

102, 103

Standalone services: yes, no

224, 225

Standalone service in Params.xml: yes, no

104, 1040

Default parameters of the standalone services: received, failure

109, 218

Non-object parameters in the provision DB: yes, no

115, 1150

Parameters matched with Params.xml: success, mismatch

118, 1180

Services and default parameters matched: success, failure

116, 1160, 119, 1190

FTSetDeviceParameters: success, failure

117

No parameter data for the CPE

323, 324

Objects handled: at least one, none

2370, 2380, 238

Parameter task: timeout, failed or rejected, parameters set

239, 2390, 316, 3160

Reboot with FTRPCInvoke: success, failure

246

Provisioning complete. Final status.