RDK Documentation (Open Sourced RDK Components)
TR-069

Description

Terminology
Code Description
ACS Auto-Configuration Server
CPE Customer Premises Equipment
CWMP CPE WAN Management Protocol
NAT Network Address Translation
STUN Simple Traversal of UDP through NATs
B-NT Broadband-Network Termination
DT Schema Device Type Schema
RPC Remote Procedure Call
DT Instance Device Type Schema instance document
ACL Access control list
ADSL Asymmetric Digital Subscriber Line
AES Advanced Encryption Standard
ASCII American Standard Code for Information Interchange
ATA Analog terminal adapter
ATM Asynchronous Transfer Mode
BOOTP Boot Strap Protocol
CGI Common Gateway Interface
CN Common Name
CSRF Cross-site request forgery
DHCP Dynamic Host Configuration Protocol
DNS Domain Name System
DSL Digital Subscriber Line
Introduction to TR-069
TR-069 is a technical specification that defines an application layer protocol for remote management of end-user devices. It was published by the Broadband Forum and was entitled CPE WAN Management Protocol(CWMP). The CWMP, published by The Broadband Forum as TR-069, specifies a standard communication mechanism for the remote management of end-user devices. It defines a protocol for the secure auto-configuration of a TR-069 device and incorporates other management functions into a common framework. This protocol simplifies device management by specifying the use of an auto configuration server (ACS) to perform remote, centralized management of customer premises equipment (CPE).
TR-069 supports a variety of functionalities to manage CPEs and has the following primary capabilities:
  • Auto-configuration and dynamic service provisioning
  • Software/firmware management
  • Status and performance monitoring
  • Diagnostics
RDK TR-069 Feature Summary
  • Service Activation
  • Firmware upgrade management
  • Register device to Auto-Configuration Server (ACS) using Inform notification
  • Periodically send device information to ACS using Inform notification
  • Forced Inform for required parameters
  • Allow ACS to configure periodic Inform interval.
  • Allow ACS to reach devices that are connected behind NAT using STUN + UDP NAT traversal
  • (future) Allow ACS to reach devices that are connected behind NAT using XMPP
  • Retrieve device diagnostics/parameters using GetParameterValues() method
  • Set device parameters using SetParameterValues() method
  • Factory reset using FactoryReset method
  • Device reboot using Reboot method
  • SSL/TLS 1.2 (Transport Layer Security) per RFC5246 to encrypt communications with ACS
What is an ACS and why is it necessary?
  • TR-069 specifies communication between customer-premises equipment (CPE) and an auto configuration server.
  • The auto configuration server acts as a management server for TR-069-enabled CPE.
  • It is essentially the link between the subscriber's devices in the home and the service provider's customer service representative (CSR), support staff, operational support systems and business support systems (OSS/BSS).
  • An auto configuration server enables you to automate provisioning and many management tasks for TR-069 devices, facilitating remote management.
How does TR-069 work?
TR-069 is a SOAP(Simple Object Access Protocol)/HTTP-based protocol. Orders are sent between the device (CPE) and an auto configuration server over HTTP or HTTPS in the form of remote procedure calls (RPCs) and responses, with SOAP acting as the encoding syntax to transport RPCs. The CPE acts as the HTTP client and the ACS acts as the HTTP server.
The basic network elements required include:
  • An auto configuration server (ACS): The management server on the network.
  • Customer premises equipment (CPE): The device that is managed on the network
  • DNS server: Used to resolve the URL that is required for the ACS and CPE to interact
  • DHCP server: Can be used to assign an IP address to a device on the network. Well-known DHCP options can configure important parameters on the CPE, such as the ACS URL.
  • TR-069 provides the communication interface between CPE and Auto Configuration Server (ACS)
  • An ACS can manage a device, trouble shoot, configure and upgrade. the information.
    TR-069 closely monitor and control the Customer Premises Equipment (CPE). In RDK it would be Settop box or Gateway.
  • The Auto Configuration Server (ACS) is located in the cloud which control the Customer Premises Equipment.
  • ACS server is controlled by Operation/Support team.
  • There are different kinds of data model used in customer premises, such as TR-135 data model is used in STB, TR-104 data model is used in VoIP, TR-140 data module is used in storage, and so on.
What is a remote procedure call (RPC)?
A remote procedure call (RPC) is an operation between an ACS and the CPE. It is used for bidirectional communication between CPE and an ACS. Some common RPCs include:
  • GetParameterValue: The ACS uses this RPC to get the value of one or more parameters of a CPE
  • SetParameterValue: The ACS sets the value of one or more parameters of a CPE
  • Inform: A CPE sends this message to an ACS to initiate a session and to periodically send local information
  • Download: When the ACS requires a CPE to download a specified file to upgrade hardware and download a configuration file
  • Upload: When the ACS requires a CPE to upload a specified file to a specified location
  • Reboot: An ACS reboots a CPE remotely when the CPE encounters a failure or needs a software upgrade
  • Add Object: Allows the ACS to create instances of objects available on the CPE, for example, port mapping entries. The ACS also creates the associated parameters and sub-objects.
  • Delete Object: Enables the ACS to delete existing instances of objects available on the CPE. It also deletes the associated parameters and sub-objects.
Why RDK use TR-069?
There are many benefits associated with using TR-069 to provision and manage end-user devices. TR-069 and its extensions allow you to:
  • Enable remote provisioning of CPE devices such as Xi3, XG1v3, etc.
  • Better manage broadband networks with increased visibility and control of CPE.
  • Collect data for analytics on network usage and activity, home network characteristics, and service utilization.
  • Deliver new managed data services such as WiFi, content filtering and other parental controls, online backup, and home surveillance.
  • Offer subscribers a degree of self-service through web portals.
  • Expand service offerings and manage the connected home.
  • Improve your customer service with improved diagnostics, monitoring, and firmware management.
  • Reduce support calls and remove the burden of CPE configuration from subscribers and roll-out services with an automated process.
TR-069 Setup
TR-069 Message Flow:
Features implemented in RDK IP Clients,
These are the following features implemented in RDK IP Clients.

Modules

 TR-069 Device Management
 
 TR-069 Diagnostics
 When the diagnostic initiated by the ACS is completed successfully or not, the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code "8 DIAGNOSTICS COMPLETE" in the Inform message.

After the diagnostic is complete, the value of all result parameters MUST be retained by the CPE until either this diagnostic runs again, or the CPE reboots. After a reboot, if the CPE has not retained the resultant parameters from the most recent test, it MUST set the value of this parameter to “None”.

Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to “None”.

While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to “None”.

While the test is in progress, setting this parameter to Requested MUST result in the test being terminated and then restarted using the current values of the test parameters.
 
 TR-069 Firmware Download
 
 TR-069 Gathering Periodic Information
 
 TR-069 Host Interface