Understanding USP Messages: The Building Blocks of TR-369 Communication

USP (User Services Platform) messages form the foundation of communication between USP Management Systems and Customer Premises Equipment (CPE) devices in a TR-369-compliant system. These messages standardize the exchange of information, commands, and responses, ensuring smooth operation and control of connected devices. Each USP message includes two main components: a header and a body, which define the message's type, purpose, and content.
Components of USP Messages
1. USP Message Header
The header contains two essential fields:
msg_id
: A unique identifier for tracking and correlating requests and responses.msg_type
: Specifies the type of message (e.g., GET, SET, NOTIFY, or DELETE), indicating the intended operation.- GET: Retrieve specific information.
- SET: Update or configure parameters.
- NOTIFY: Notify about an event.
- DELETE: Remove data or configurations.
2. USP Message Body
The body holds the actual content of the message and can be one of the following types:
- Request: Initiates an action or requests information from a device.
- Response: Provides the results of a request or the requested information.
- Error: Communicates details about any issues encountered during processing.

Examples of USP Messages
Request Message Example (GET Request)
A GET
request retrieves specific parameter values from a device, such as device information.
- Request: A request message is used to initiate an action or retrieve information from a device. It contains a specific request type, such as GET, SET, or NOTIFY, which determines the intended operation. For example, a GET request is used to retrieve specific parameter values from a device.
{
"header": {
"msg_id": "2023-05-17T21:46:00.723Z-Group_NSLsnBmtH-1V0m6GrO",
"msg_type": "GET"
},
"body": {
"request": {
"get": {
"param_paths": [
"Device.DeviceInfo."
]
}
}
}
}
USP Message Example for a Get Request Type
Response Message Examples
Sent by the target (CPE device or USP Management System) to provide results for a request. It includes the requested data or details of an error if the operation failed.
Example: GET Response
{
"header": {
"msg_id": "2023-05-17T21:46:00.723Z-Group_NSLsnBmtH-1V0m6GrO",
"msg_type": "GET_RESP"
},
"body": {
"response": {
"get_resp": {
"req_path_results": [
{
"requested_path": "Device.DeviceInfo.",
"resolved_path_results": [
{
"resolved_path": "Device.DeviceInfo.",
"result_params": [
{
"key": "SoftwareVersion",
"value": "1.0.0"
},
{
"key": "ProductClass",
"value": "USP Agent"
},
{
"key": "Manufacturer",
"value": "Manufacturer"
},
{
"key": "ModelName",
"value": "USP Agent"
},
{
"key": "HardwareVersion",
"value": "123"
},
{
"key": "UpTime",
"value": "6721518"
},
{
"key": "ManufacturerOUI",
"value": "TR369.org"
},
{
"key": "SerialNumber",
"value": "F0BF97D045E3"
}
]
}
]
}
]
}
}
}
}
USP Message Example for Get Response Type
Error: Used to communicate issues encountered during processing. It includes:
- Error Code: Indicates the type of error.
- Error Message: Describes the problem.
- Parameter-Specific Errors (optional): Details errors related to specific parameters.
Example: Error Message
{
"header": {
"msg_id": "2023-05-01T19:14:51.425Z"
},
"body": {
"error": {
"err_code": 7004,
"err_msg": "PATH_RESOLVER_ResolveDevicePath: Path must end in '.'",
"param_errs": [
{
"param_path": "Device.LocalAgent.Controller.1.MTP.4",
"err_code": 7008,
"err_msg": "PATH_RESOLVER_ResolveDevicePath: Path must end in '.'"
}
]
}
}
}
USP Message Example for Error Type
Key Requirements for USP Messaging
To maintain a robust and interoperable system, the TR-369 specification outlines specific requirements for USP Messages:
- Responding to Requests
Each request must receive a corresponding response or error unless stated otherwise. - Handling Unrecognized Messages
The recipient must either ignore or send an error message for unknown message types. - Graceful Termination
For requests that don't require responses, the communication session should end smoothly, depending on the protocol. - Consistent Addressing
Path names in messages from an Agent should use Instance Number Addressing for clarity. - Avoiding Duplicates
Duplicate message IDs should be ignored unless a response is pending. - Schema Adherence
All messages must follow the structure defined in the usp-msg.proto schema. - Message Integrity
Each message must include exactly one header and one body field, ensuring proper organization and processing. - Accurate Associations
Themsg_id
in response and error messages must match themsg_id
of the original request for reliable tracking. - Informational Role of
msg_type
If a discrepancy exists between themsg_type
in the header and the body, the body’s type takes precedence.
Conclusion: Why USP Messages Matter
USP Messages are the foundation of communication in TR-369 systems, offering a standardized format for exchanging information, managing devices, and resolving errors. By following the structured approach defined in the TR-369 specification, service providers and device manufacturers can ensure efficient, scalable, and interoperable device management in broadband networks.
For a deeper dive into USP Message Types and their ProtoBuf coding, visit:

References:
1- TR-369 User Services Platform (USP) Specification by Broadband-Forum: