Software Design Description: Save and Show Inform Retry Count

This document describes the implementation of a feature to track and display the number of Inform retries sent by TR-069 devices, helping you troubleshoot device connectivity issues via the Management Portal.

1. Introduction

This document describes the implementation of a feature to track and display the number of Inform retries sent by TR-069 devices. This enhancement assists administrators in troubleshooting device connectivity issues by surfacing retry counts in the Management Portal.

2. Functional Overview

Every time a TR-069 device sends a Periodic Inform message containing a <RetryCount>, the backend updates the corresponding record in the database. If the value is greater than zero, it is displayed in the Device Info section of the Management Portal.

3. Database Changes

Table: cpe

A new column has been added:

Column Name Type Constraints Default

retry_count

integer

NOT NULL

0

This column stores the last received Retry Count from the device.

4. Liquibase Migration

A Liquibase changeset was added to support the schema update:

<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.11.xsd
    http://www.liquibase.org/xml/ns/dbchangelog-ext
    http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

  <property name="clob.type" value="clob" dbms="oracle"/>
  <property name="clob.type" value="longtext" dbms="mysql"/>
  <property name="blob.type" value="blob" dbms="oracle"/>
  <property name="blob.type" value="mediumblob" dbms="mysql"/>
  <property name="now" value="sysdate" dbms="oracle"/>
  <property name="now" value="now()" dbms="mysql"/>
  <property name="number" value="int(11) unsigned" dbms="mysql"/>
  <property name="number" value="number(11)" dbms="oracle"/>
  <property name="big_number" value="bigint(20) unsigned" dbms="mysql"/>
  <property name="big_number" value="number(20)" dbms="oracle"/>
  <property name="tiny_number" value="tinyint(1)" dbms="mysql"/>
  <property name="tiny_number" value="number(1)" dbms="oracle"/>
  <property name="date" value="datetime" dbms="mysql"/>
  <property name="date" value="date" dbms="oracle"/>

  <changeSet id="6.4.11.35456" author="vadim">
    <addColumn schemaName="ftacs" tableName="cpe">
      <column name="retry_count" type="${number}" defaultValueNumeric="0">
        <constraints nullable="false"/>
      </column>
    </addColumn>
  </changeSet>

</databaseChangeLog>
  • This change ensures the column is present and initialized to 0 for all existing rows.

  • You must apply this migration as part of the deployment for this feature.

5. Data Flow and Processing

  • The backend service parses the <RetryCount> from the incoming TR-069 Inform XML.

  • The cpe.retry_count value is updated in the database each time a new Inform is received.

  • Retry Count is shown in the UI only if retry_count > 0.

6. User Interface Changes

  • Location: Management Portal → Device Update → Device Info

  • Change: Append "(X retries)" to the "Last connect" label only when retry_count > 0