Replace CPE Flow

1. Overview

The Replace CPE Flow moves the provisioning data of one CPE to another CPE. The first CPE is the Source. The second CPE is the Destination. A typical case is a device swap for a subscriber. The flow provisions the Destination through the Input Flow. Then the flow clears the Source.

These requests start the flow:

  • the Replace device tab, see Replace CPE

  • ReplaceCPE over SOAP

  • POST /replace-cpe over REST

The request identifies each CPE by its serial number (SN) or its MAC address. The Business Process Model and Notation (BPMN) process is ReplaceCPEProcess in replaceCPE.bpmn.

The provision database (provision DB) must contain provisioning data for the Source.

2. Flow Diagram

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

Replace CPE Flow
Figure 1. Replace CPE Flow

The diagram also shows status codes 423, 4110 and 4200. The flow does not write these codes.

3. Steps

3.1. Prepare the Destination

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

  2. If the provision DB has records of the Destination, the flow deletes these records.

  3. The flow searches the ACS for the Destination. For a MAC address, the flow uses FTFindCPEByWANMAC.

  4. If the ACS has the Destination, the flow checks the online status of the Destination.

  5. The flow removes the old data of the Destination from the ACS: the provisioning data and the user info.

If the provision DB has no data for the Source, the flow ends with status 4000. An offline Destination stops the flow with status 4050. If the ACS does not have the Destination yet, the flow skips steps 4 and 5.

3.2. Transfer the Data

  1. The flow reads the provisioning data of the Source from the provision DB.

  2. The flow converts the data by the rules of replaceCPE.xml.

  3. The flow builds a ProvisioningForDevice request from the data.

  4. The flow runs the Input Flow for the Destination.

In step 2, the flow uses the <model> section for the OUI and the Product Class of both CPEs. The flow converts the matching parameters, objects and services. If replaceCPE.xml has no such section, the flow moves the data without changes. If no data matches the section, the flow also moves the data without changes.

The Input Flow writes its own status codes for the Destination.

3.3. Clear the Source

  1. The flow deletes the records of the Source from the provision DB.

  2. If the ACS has the Source, the flow removes the Source provisioning data and user info from the ACS.

  3. If the Source is online, FTRPCInvoke resets the Source to factory defaults.

  4. The flow waits for the result of the factory reset task.

4. Status Codes

Code Meaning

400, 4000, 4001

Source in the provision DB: yes, no, provision DB error

401, 402, 4010

Destination in the provision DB: yes, no, search failure

403, 4030

Destination records deleted from the provision DB: success, failure

426, 427, 4260

SN for the Destination MAC address: found, not found, FTFindCPEByWANMAC failure

404, 406, 4040

Destination in the ACS: yes, no, search failure

405, 4050, 4051

Destination online, Destination offline, online status unknown. The flow ends after 4050 and 4051.

407, 4070

Destination provisioning data removed from the ACS: success, failure

431, 4310

Destination user info removed from the ACS: success, failure

408, 4080

Source data read from the provision DB: success, failure

409, 410

Section for the Source and the Destination in replaceCPE.xml: yes, no

411, 412

Data converted, no matching data

413, 4130

ProvisioningForDevice request built: success, failure

415, 4150

Input Flow for the Destination: success, failure

416, 4160

Source records deleted from the provision DB: success, failure

428, 429, 4280

SN for the Source MAC address: found, not found, FTFindCPEByWANMAC failure

417, 430

Source in the ACS: yes, no

418, 4180

Source provisioning data removed from the ACS: success, failure

419, 4190

Source user info removed from the ACS: success, failure

421, 420

Source online, Source offline

422

Factory reset of the Source started

4220

FTRPCInvoke failure, or task status unknown

4231

Factory reset task still pending after the timeout

4230, 4240

Factory reset task failed, rejected or without a result

424

Source reset to factory defaults

Final statuses for a successful replacement:

Code Result

424

The flow reset the Source to factory defaults.

420

The Source was offline.

429

The ACS does not have the Source. The request used a MAC address.

430

The ACS does not have the Source. The request used an SN.