Provision Separation SDD (Phase 1)

CONFIDENTIAL: Confidential Information

1. Introduction

Big service providers can have millions of devices in the network. Every device should be managed and stored, leading to a huge load on the server itself. This load may influence system performance, which can result in service delivery failure. In this case, new devices will struggle to be configured for paid services; service providers may lose new clients due to not handling the first initial setup.

1.1. Document overview

This document describes the design of the Provision ACS component of the Friendly Technologies Device Management System.

2. Software Architecture overview

CPE has the Provision ACS URL (acs.host:8103) in its base firmware and connects to it on each bootstrap session (first power on, firmware upgrade, etc.). After initial provisioning, CPE is moved to the Management ACS (acs.host:8107). Both Management and Provision ACSs have separate, independent DBs; the synchronization is the ACS part.

Here is the basic infrastructure flow:

Basic infrastructure flow

3. Software design description

Item Details

Use Case 1

Configuration of new device (initial installation)

Description

During the first installation the Technician installs CPE in the customer’s environment and provides automated configuration (provisioning) for CPE. The technician ensures successful configuration and confirms working services.

Basic flow

  1. CPE comes to Provision server by hard-coded ACS-Provision URL.

  2. Technician enters all necessary provision data through APP (API-1).

  3. ACS-Provision server sends all provision data + profile data to CPE.

  4. Technician confirms successful setup of services by APP (API-1). End of Provisioning.

  5. ACS-Provision sets new ACS URL of Management server.

  6. ACS-Management server ignores "0 Bootstrap" message of CPE (due to URL change) for Provision but performs GPV/GPN/GPA to get full tree data and manage CPE as a registered device.

  7. Update Account info on ACS-Management (API-1) (sync from DB-prov).

Alternative flow

Item Details

Use Case 2

Change CPE Provision data - Add to provision

Description

Users add/delete service or change related to service settings (e.g., password for internet connection).

Basic flow

  1. ACS-Management server performs SPV to CPE. (Example: User changes Wi-Fi settings through API-2)

  2. ACS-Management server sends new Provision settings to ACS-Provision server only after completed SPV task.

  3. ACS-Provision server overwrites Provision data for CPE in its DB.

Alternative flow

Item Details

Use Case 3

Existing devices come without 0 BOOTSTRAP and NO pending tasks on ACS-Prov.

Description

The existing devices will come to ACS-Provision server due to hard-coded ACS URL by Periodic Inform or Reboot event. This case is only applicable on first redirect of ACS URL from existing MGMT ACS to Prov ACS; on the next device connection the ACS URL will be for MGMT ACS.

Basic flow

  1. ACS-Provision sets new ACS-Management URL to all devices that came with an event code different from "0 BOOTSTRAP" and NO pending tasks on ACS-Provision.

Alternative flow

Item Details

Use Case 4

Device after Factory Reset → Provision data exists in DB-Prov.

Description

User resets device to fix an issue or by mistake; CPE comes to ACS-Provision by hard-coded ACS URL with "0 BOOTSTRAP" event code. No technician to confirm working services.

Basic flow

  1. ACS-Provision server sends all provision data + profile data to CPE.

  2. Device is Online and Provision status is Completed.

  3. ACS-Provision server sets new ACS URL for ACS-Management connection.

Alternative flow

Provision status is Failed.

  1. Device stays on ACS-Provision.

  2. API-1 supports a method to get the list of Devices on ACS-Provision.

  3. CSR sends Re-Provisioning task OR moves Device to ACS-Management manually by API-1 (end of provisioning, change ACS URL).

Item Details

Use Case 5

*Device after Factory Reset → NO Provision data in DB-Prov. (old 

 new 

 deleted)*

Description

User resets device to fix an issue or by mistake; CPE comes to ACS-Provision by hard-coded ACS URL with "0 BOOTSTRAP" event code.

Basic flow

  1. Device stays on ACS-Provision.

  2. API-1 supports a method to get the list of Devices on ACS-Provision.

  3. CSR moves Device to ACS-Management manually by API-1 (end of provisioning, change ACS URL).

Alternative flow

3.1. Configuration of new device (initial installation)

3.1.1. Description

During the first installation the Technician installs CPE in the customer’s environment and provides automated configuration (provisioning) for CPE. The technician ensures successful configuration and confirms working services.

3.1.2. Design description

  1. Handle bootstrap session on Provision ACS.

  2. Send Provision and Profile to CPE.

  3. Send notification of the provision status to the event handling system.

  4. Wait for ACS URL change API call from the engineer.

  5. Change CPE URL to the Management ACS URL.

  6. Handle CPE on Management ACS.

3.1.3. Workflow

Workflow: configuration of new device

3.1.4. Software requirements

  1. Some DB data from management needs to be copied to provision DB. Tables that need to be copied:

    cpe
    cpe_provision
    cpe_provision_attribute
    cpe_provision_object
    cpe_provision_object_instance
    cpe_provision_object_parameter
    cpe_parameter_name (only parameters that exist in cpe_provision, cpe_provision_attribute, cpe_provision_object)
    cpe_file
    custom_rpc
    file_type
    cpe_serial
    ftacs_parameter
    product_class
    product_class_group
    manufacturer
    cpe_login
    cpe_login_license
    cust_device1
    event_hardcoded
    event_hardcoded_url
    event_receiver_url
  2. A new ACS start parameter needs to be added: -Dftacs.mode=PROV/MGMNT/ALL (default ALL), and the corresponding value needs to be set on the ACSes. In PROV mode, on 0 bootstrap the ACS will send provision and profile and will NOT request GetRPCMethods and the CPE tree. In MGMNT mode, provision will not be sent.

  3. A new API method moveCpeToManagement needs to be added to /ACSWebServiceAdditional.

  4. Hazelcast isolation: the Hazelcast cluster needs to be isolated from the management ACS Hazelcast, and topics need to be in the same cluster as the ACS management. Two new Hazelcast cluster configurations are needed (changes in hazelcast.xml).

3.2. Change CPE Provision data - Add to provision

3.2.1. Description

Users add/delete service or change related to service settings (e.g. password for internet connection).

3.2.2. Design description

  1. ACS-Management server performs SPV to CPE. (Example: User changes Wi-Fi settings through API-2)

  2. ACS-Management server sends new Provision settings to ACS-Provision server only after completed SPV task.

  3. ACS-Provision server overwrites Provision data for CPE in its DB.

  4. New parameter in acs_configuration.xml: redirectAcsURL.

3.2.3. Workflow

Workflow: add to provision

3.2.4. Software requirements

New Hazelcast topic. Make sure that this topic is executed on one (not on all) PROV node.

3.3. Existing devices come without 0 BOOTSTRAP and NO pending tasks on ACS-Prov

3.3.1. Description

The existing devices will come to ACS-Provision server due to hard-coded ACS URL by Periodic Inform or Reboot event. This case is only applicable on first redirect of ACS URL from existing MGMT ACS to Prov ACS; on the next device connection the ACS URL will be for MGMT ACS.

3.3.2. Design description

ACS-Provision sets new ACS-Management URL to all devices that came with an event code different from "0 BOOTSTRAP" and NO pending tasks on ACS-Provision.

3.3.3. Workflow

Workflow: existing devices without 0 BOOTSTRAP

3.3.4. Software requirements

New parameter in acs_configuration.xml: redirectAcsURL.

3.4. Device after Factory Reset

3.4.1. Description

User resets device to fix an issue or by mistake; CPE comes to ACS-Provision by hard-coded ACS URL with "0 BOOTSTRAP" event code. No technician to confirm working services.

3.4.2. Design description

  1. ACS-Provision server sends all provision data + profile data to CPE.

  2. If Provision status is Completed, ACS-Provision server sets new ACS URL for ACS-Management connection.

  3. If Provision status is Failed, Device stays on ACS-Provision.

  4. Provision ACS has a method that lists all CPEs on it.

3.4.3. Workflow

Workflow: device after factory reset

3.4.4. Software requirements

New API method getCpeListOnProv needs to be added to /ACSWebServiceAdditional.