Get desktop application:
View/edit binary Protocol Buffers messages
Telemetry message is the outermost payload message used to stream telemetry in a Model Driven Telemetry (MDT) system. MDT provides a mechanism for an external entity to subscribe to a data set defined in a Yang model and receive periodic or event-based updates of the data set from an MDT-capable device.
node_id_str is a string encoded unique node ID of the MDT-capable device producing the message. (node_id_uuid alternative is not currently produced in IOS-XR)
bytes node_id_uuid = 2;
subscription_id_str is the name of the subscription against which this content is being produced. (subscription_id alternative is not currently produced in IOS-XR)
uint32 subscription_id = 4;
sensor_path is not currently produced in IOS-XR string sensor_path = 5; encoding_path is the Yang path leading to the content in this message. The Yang tree encoded in the content section of this message is rooted at the point described by the encoding_path.
model_revision
collection_id identifies messages belonging to a collection round. Multiple message may be generated from a collection round.
collection_start_time is the time when the collection identified by the collection_id begins - encoded as milliseconds since the epoch. If a single collection is spread over multiple Telemetry Messages, collection_start_time may be encoded in the first Telemetry Message for the collection only.
msg_timestamp is the time when the data encoded in the Telemetry message is generated - encoded as milliseconds since the epoch.
data_gpbkv contains the payload data if data is being encoded in the self-describing GPB-KV format.
data_gpb contains the payload data if data is being encoded as serialised GPB messages.
collection_end_time is the timestamp when the last Telemetry message for a collection has been encoded - encoded as milliseconds since the epoch. If a single collection is spread over multiple Telemetry messages, collection_end_time is encoded in the last Telemetry Message for the collection only.
heartbeat_sequence_number is not currently produced in IOS-XR uint64 heartbeat_sequence_number = 14; // not produced
TelemetryField messages are used to export content in the self describing GPB KV form. The TelemetryField message is sufficient to decode telemetry messages for all models. KV-GPB encoding is very similar in concept, to JSON encoding
Used in:
timestamp represents the starting time of the generation of data starting from this key, value pair in this message - encoded as milliseconds since the epoch. It is encoded when different from the msg_timestamp in the containing Telemetry Message. This field can be omitted if the value is the same as a TelemetryField message up the hierarchy within the same Telemetry Message as well.
name: string encoding of the name in the key, value pair. It is the corresponding YANG element name.
value_by_type, if present, for the corresponding YANG element represented by the name field in the same TelemetryField message. The value is encoded to the matching type as defined in the YANG model. YANG models often define new types (derived types) using one or more base types. The types included in the oneof grouping is sufficient to represent such derived types. Derived types represented as a Yang container are encoded using the nesting primitive defined in this encoding proposal.
The Yang model may include nesting (e.g hierarchy of containers). The next level of nesting, if present, is encoded, starting from fields.
set only for delete event
TelemetryGPBTable contains a repeated number of TelemetryRowGPB, each of which represents content from a subtree instance in the the YANG model. For example; a TelemetryGPBTable might contain the interface statistics of a collection of interfaces.
Used in:
TelemetryRowGPB, in conjunction with the Telemetry encoding_path and model_version, unambiguously represents the root of a subtree in the YANG model, and content from that subtree encoded in serialised GPB messages. For example; a TelemetryRowGPB might contain the interface statistics of one interface. Per encoding-path .proto messages are required to decode keys/content pairs below.
Used in:
timestamp at which the data for this instance of the TelemetryRowGPB message was generated by an MDT-capable device - encoded as milliseconds since the epoch. When included, this is typically different from the msg_timestamp in the containing Telemetry message.
keys: if the encoding-path includes one or more list elements, and/or ends in a list element, the keys field is a GPB encoded message that contains the sequence of key values for each such list element in the encoding-path traversed starting from the root. The set of keys unambiguously identifies the instance of data encoded in the TelemetryRowGPB message. Corresponding protobuf message definition will be required to decode the byte stream. The encoding_path field in Telemetry message, together with model_version field should be sufficient to identify the corresponding protobuf message.
content: the content field is a GPB encoded message that contains the data for the corresponding encoding-path. A separate decoding pass would be performed by consumer with the content field as a GPB message and the matching .proto used to decode the message. Corresponding protobuf message definition will be required to decode the byte stream. The encoding_path field in Telemetry message, together with model_version field should be sufficient to identify the corresponding protobuf message. The decoded combination of keys (when present) and content, unambiguously represents an instance of the data set, as defined in the Yang model, identified by the encoding-path in the containing Telemetry message.