ADS Message Types

There are several types of Analytics Data Stream (ADS) messages that are sent between the MPE device and a connected analytics client. Each ADS and TLV message is preceded by a 2-byte Message Type field and a 32-bit little-endian length field. The length field is for the data portion of the message only, and does not include either the four bytes of the length field or two bytes of the message field.

Each ADS message contains a variable number of TLV records. Certain fields, such as policy IDs and user identifiers, can appear multiple times in an event.

The general structure of an ADS message, containing multiple TLVs is as follows:
     2 Bytes                     4 Bytes                         n Bytes
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Message Type   |           data length              |    TLVs ... 
+------------------------------------------------------------------------------
The general structure of a TLV:
     2 Bytes                     4 Bytes                         n Bytes
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   TLV Type       |         TLV data length            |    TLV data... 
+------------------------------------------------------------------------------

Table 1 shows the messages types and their associated values. For information on the TLV values, refer to TLV Definitions.

ADS Message Types
ADS Message Type Message Description Required TLVs
0x03 Keep Alive Used as a NoOp for TCP connection maintenance. Keep alives are sent when ADS connections are idle. Identified by a TLV Message Type of KEEPALIVE

TLV 1: Version - ADS Interface Version.

0x04 Error Errors are sent from the MPE device in response to various client requests and contain information about why the request was rejected or what caused the error.

TLV 1: Version - ADS Interface Version.

TLV 10: Error Code - Code for type of error.

TLV 9: Error - Error message details.

0x05 Version Request A message sent from an analytics client to the MPE device as part of the version exchange. The version exchange is the first set of messages sent after establishing a connection. The client sends version(s) of ADS it would like to receive from.

TLV 1: Version - ADS Interface Version.

0x06 Version Acknowledgement A response sent by the MPE device to a client Version Request, confirming the version of ADS content it will be sending.

TLV 1: Version - Analytics Data Stream Interface Version to be sent.

0x07 Initiate Request Client initiated request to signal the MPE device that the client is ready to receive data.

TLV 1: Version - ADS Interface Version.

TLV 11: Analytics Client ID - Unique string identifier for that client.

TLV 12: Channel Type - A placeholder in anticipation of future functionality.

TLV 13: Request PRD (optional) - Provides a way for clients to request a copy of the current PRD data.

TLV 14: Keep Alive Interval - Measured in MS. A value of 0 indicates no keep alive is necessary.

0x08 Stop Request Stop receiving data on this client connection. This will flush any data remaining in the buffer to be sent before closing the connection.

TLV 1: Version - ADS Interface Version.

0x09 Stop Acknowledgement Sent after flushing any buffered data to indicate nothing more remains and the connection can be closed.

TLV 1: Version - ADS Interface Version.

0x0A Reference Data Version Request A client request to receive the current version of PRD data from the MPE device.

TLV 1: Version - ADS Interface Version.

0x0B Policy Event Record (PER) Data processed by an analytics client. Contains information related to any executed policies, available subscriber Tier and Entitlements, and associated quota changes.

TLV 1: Version - ADS Interface Version.

TLV 2: Event Type - Identifier for the type of event that triggered this PER.

TLV 3: Reference Data Version - Relevant instance of PRD to de-reference PER data.

TLV 6: Policy Event Serial Number - Unique serial numbers are applied to each message and can be used to reconstruct the original stream of PERs if the stream is load- balanced across multiple analytic client connections.

0x0C Policy Reference Data (PRD) Provides details on the deployed policy library definitions so that data from the PERs can be de-referenced and interpreted in context.

TLV 1: Version - ADS Interface Version.

TLV 2: Event Type - Identifier for the type of event that triggered this message.

TLV 3: Reference Data Version - Relevant instance of PRD to de-reference PER data.

TLV 6: Policy Event Serial Number - Unique serial numbers are applied to each message and can be used to reconstruct the original stream of PERs if it is load balanced across multiple analytic client connections.