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;
 };
 
   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
 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
 
 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 */
 
 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];
   packet.header := struct {
     uint32_t magic;
     uint8_t  trace_uuid[16];
This page took 0.02213 seconds and 4 git commands to generate.