Overview of a TR-069 Session

TR-069 refers to the Technical Report published by the Broadband Forum that defines the CPE WAN Management Protocol, or CWMP. CWMP was developed to allow providers of broadband services to deploy and manage customer premises equipment in home and business networks.

In the beginning, TR-069 was targeted towards the home router or business gateway. It has evolved to cover all manner of home network devices, including enterprise VoIP products, video set top boxes, network attached storage, femto cells, and an unlimited number of network aware products through TR-069’s proxy function.

CPE management gives providers the ability to cover a wide range of use cases. This includes so-called “zero touch” installation, configuration and activation of new services, CPE firmware maintenance, and diagnostics for customer troubleshooting.

Architecture overview

Fundamentally, TR-069 describes the interaction between an Auto-Configuration Server, or ACS, and one or more CWMP endpoints. These endpoints usually reside on a devices in a broadband user’s home network. This interaction happens with a series of Remote Procedure Calls, or RPCs.

architecture_of_tr-069

All CWMP sessions begin with the CPE making the Inform RPC on the ACS. This is also referred to as “sending an Inform” or “an Inform message”. An Inform RPC, and consequently, a CWMP session, is always made for a specific reason, called an Event. These Events drive CWMP operation.

Before we dive into Events, let’s take a look at an overall session.

A fundamental TR-069 session

tr-069_session_overview

  1. First, the CPE initiates a TCP session with ACS and negotiates a secure connection.
  2. The CPE begins every session by sending an Inform RPC to the ACS, with arguments that include the Event that caused the session. This is done over an HTTP Post.
  3. In the HTTP Response, the the ACS sends an InformResponse. Once processed by the CPE, this means that the Inform RPC is complete.
  4. There’s probably no other RPCs that CPE wishes to make on the ACS, so it sends an empty HTTP Post to indicate that it is finished. This may happen at any time during the session.
  5. The ACS begins to send remote procedure calls to the CPE, such as the GetParamterValues RPC.
  6. The CPE sends its GetParameterResponse in an HTTP Post, with the information the ACS was looking for. This ends the GetParameterValues RPC.
  7. The ACS makes any other RPCs it needs to during this session, such as SetParameterValues to change the state of the CPE, or SetParameterAttributes to set up a notification.
  8. When the ACS has no more RPCs to make, it sends an empty HTTP Response, just like the CPE did earlier. When both the CPE and the ACS have done this, the session is over and it’s time to tear down the connection.

That’s the basics of a TR-069 session. You can test your device’s implementation of TR-069 with the CDRouter TR-069 add-on.

Develop your TR-069 solution even faster with automated, expert testing.