Provision Separation SDD

This document describes the design of the Provision ACS component of Friendly Technologies Device Management System, enabling separation of provisioning and management workloads across dedicated ACS instances.

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 Friendly Technologies Device Management System.

2. Software Architecture overview

CPE has 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:

Provision and Management ACS infrastructure flow diagram

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 and Profile but perform GPV/GPN/GPA to get full tree data and manage CPE as registered device.

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

Alternative

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.

  4. ACS-Management deletes Provisioning tasks.

Alternative

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 different from "0 BOOTSTRAP" event code and NO pending tasks on ACS-Provision.

Alternative

Alternative flow

Item Details

Use Case 4

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

Description

User resets device to fix 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

Provision status is Failed.

Alternative flow

  1. Device stays on ACS-Provision.

  2. API-1 supports method to get 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 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 method to get list of Devices on ACS-Provision.

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

Alternative

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

Software requirements

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

    cpe
    cpe_provission
    cpe_provsion_attribute
    cpe_provision_object
    cpe_provision_object_instance
    cpe_provision_object_parameter
    cpe_parameter_name (only parameters that exists in cpe_provision,
    cpe_provsion_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). Set the corresponding value on each ACS instance. In PROV mode, ACS on 0 bootstrap will send provision and profile and NOT request GetRPCMethods and 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: hazelcast cluster needs to be isolated from management ACS hazelcast and topics need to be in the same cluster as ACS management. This requires 2 new hazelcast clusters configuration (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. ACS-Management deletes Provisioning tasks.

  5. New parameter in acs_configuration.xml redirectAcsURL

3.2.3. Workflow

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 different from "0 BOOTSTRAP" event code and NO pending tasks on ACS-Provision. ACS-Management server sends new Provision settings to ACS-Provision server only after completed SPV task.

3.3.3. Workflow

Software requirements

New parameter in acs_configuration.xml redirectAcsURL

3.4. Device after Factory Reset

3.4.1. Description

User resets device to fix 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.

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

  4. If Provision status is Failed, Device stays on ACS Provision

  5. Provision ACS has method with all CPEs on it

3.4.3. Software requirements

New API method getCpeListOnProv needs to be added to /ACSWebServiceAdditional