TR-369 Training - USP Data Models

The functions of service elements are described in a set of xml documents known as the USP data model. A data model describes how things like network interfaces, device functions, IoT objects, and more are exposed to controllers. You can find the USP data models at:

https://usp-data-models.broadband-forum.org

The current root USP data model is known as “Device:2”, otherwise known as TR-181. The earliest version of Device:2 that supports USP is Device:2.12.

USP vs. CWMP Data Models

USP draws from the same base for its objects and parameters as TR-069. USP has some minor differences in the way it handles commands and events, and includes those objects that are necessary for protocol operation.

We go in-depth on how to understand the raw xml of CWMP/USP data model files in our videos on TR-069 data models.

USP vs. CWMP Data Models

USP draws from the same base for its objects and parameters as TR-069. USP has some minor differences in the way it handles commands and events, and includes those objects that are necessary for protocol operation.

We go in-depth on how to understand the raw xml of CWMP/USP data model files in our videos on TR-069 data models.

On the USP data models web page, you can find several resources for the latest version of the data model.

  • tr-181-2-12-0-usp-full.xml contains all of the USP data model for connected devices, including those parts necessary to the operation of the protocol. Use this xml document when using tools to build code that uses the USP data model.

  • The Full html document contains human-readable version in HTML. Use this when communicating about the data model with your developers or customers.

  • The Diff html document shows the changes that were made to the data model since the last version.

In the full data model, you’ll see a list of the objects that comprise USP service elements. An object may be single instance, meaning that it is a static object of a service element. An object may also be multi-instance, which means that contains a table of objects of the same type. These objects are identified in the Agent’s instantiated data model with an instance identifier. Multi-instance objects may be creatable, or the table may be read-only.

Within each object you’ll find three types of elements: parameters, commands, and events.

  • Parameters represent variables that contain state information about an object. Parameters definitions include their data type, data validation restrictions, and whether or not they are read only.

  • Commands are methods defined in the data model that can be the subject of the Operate message to perform various synchronous and asynchronous functions. Most commands also specify the arguments to be used in the Operate message.

  • Events are object specific elements that can be the subject of a Notify message from the USP Agent to a USP Controller. Events also define what information is passed along with the notification.

The Device:2 data model outlines what Service Elements an agent can support. The set of objects and their elements that an Agent supports is referred to as its Supported Data Model, and can be retrieved via the GetSupportedDM message in USP. The set of objects and elements that are currently represented by the Agent - that is, the Agent’s state - is referred to as its Instantiated Data Model. Information about the Instantiated Data Model can be retrieved via the Get message and GetInstances message in USP.

The USP data model also contains a set of Profiles. Profiles can be used as a guideline for which objects and features to support, or can be used when building implementation requirements.

Build your USP/TR-369 solution

Test against an automated, scriptable USP Controller with thousands of pre-defined test cases.

Learn more

Develop your solution even faster with comprehensive automated test cases and a scriptable USP Controller.