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

Understanding USP Messages: The Building Blocks of TR-369 Communication
"Connected Devices in a complex system" by DALL-E

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.

An example request flow from Controller to Agent and retrieval of response

Examples of USP Messages

Request Message Example (GET Request)

A GET request retrieves specific parameter values from a device, such as device information.

  1. 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:

  1. Responding to Requests
    Each request must receive a corresponding response or error unless stated otherwise.
  2. Handling Unrecognized Messages
    The recipient must either ignore or send an error message for unknown message types.
  3. Graceful Termination
    For requests that don't require responses, the communication session should end smoothly, depending on the protocol.
  4. Consistent Addressing
    Path names in messages from an Agent should use Instance Number Addressing for clarity.
  5. Avoiding Duplicates
    Duplicate message IDs should be ignored unless a response is pending.
  6. Schema Adherence
    All messages must follow the structure defined in the usp-msg.proto schema.
  7. Message Integrity
    Each message must include exactly one header and one body field, ensuring proper organization and processing.
  8. Accurate Associations
    The msg_id in response and error messages must match the msg_id of the original request for reliable tracking.
  9. Informational Role of msg_type
    If a discrepancy exists between the msg_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:

TR-369 USP Message Types with Protobuff Coding
TR-369 USP Message Types and Protobuff Message Types Section Details

References:

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

https://www.broadband-forum.org/download/TR-369.pdf