Explain limitations if packet header fields are not present
[ctf.git] / common-trace-format-proposal.txt
index 35c1e71b4c662abdfb509149c2a7ca73ade1ef27..8182ea991f7da92d49b2a35e193ec91213d62762 100644 (file)
@@ -597,6 +597,17 @@ trace {
   packet.header := struct event_packet_header;
 };
 
+If a packet header lacks the "magic" number field, the trace endianness
+needs to be specified in the trace "endian" metadata attribute.
+
+If the trace_uuid is not present, no validation that the metadata
+actually corresponds to the stream is performed.
+
+If the stream_id packet header field is missing, the trace can only
+contain a single stream. Its "id" field can be left out, and its events
+don't need to declare a "stream_id" field.
+
+
 5.2 Event Packet Context Description
 
 Event packet context example. These are declared within the stream declaration
@@ -888,12 +899,17 @@ readable by accessing the upper dynamic scopes.
 
 The grammar representing the TSDL metadata is presented in Appendix C.
 TSDL Grammar. This section presents a rather ligher reading that
-consists in examples of TSDL metadata, with template values:
+consists in examples of TSDL metadata, with template values.
+
+Note that the trace endianness is usually extracted from the packet
+header magic number. The "endian" field is only needed when the magic
+number packet header field is not present.
 
 trace {
   major = value;                               /* Trace format version */
   minor = value;
   uuid = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";       /* Trace UUID */
+  endian = big OR little;                      /* Endianness (optional) */
   packet.header := struct {
     uint32_t magic;
     uint8_t  trace_uuid[16];
This page took 0.022367 seconds and 4 git commands to generate.