Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
blf.h
Go to the documentation of this file.
1
11 /*
12 * The following was used as a reference for the file format:
13 * https://bitbucket.org/tobylorenz/vector_blf
14 * The repo above includes multiple examples files as well.
15 */
16
17#ifndef __W_BLF_H__
18#define __W_BLF_H__
19
20#include "wtap.h"
21
32wtap_open_return_val blf_open(wtap *wth, int *err, char **err_info);
33
34/*
35 * A BLF file is of the form:
36 *
37 * BLF File Header
38 * Sequence of BLF objects
39 *
40 * A BLF object is of the form:
41 *
42 * BLF Block Header
43 * Object header (object type dependent, may be empty)
44 * Object contents
45 *
46 * As per
47 *
48 * https://gitlab.com/wireshark/wireshark/-/issues/19896#note_1967971057
49 *
50 * the sequence may have one (or more?) metadata objects at the beginning.
51 * After those, if present, there are zero or more LOG_CONTAINER objects,
52 * containing data for all subsequent objects. An object may be split
53 * between LOG_CONTAINER objects, as per
54 *
55 * https://gitlab.com/wireshark/wireshark/-/issues/19377#note_1651998569
56 *
57 * A LOG_CONTAINER object's contents are of the form:
58 *
59 * Log container header
60 * Data for contained objects.
61 *
62 * The data in a LOG_CONTAINER object may be compressed using zlib.
63 */
64
65#define BLF_HEADER_TYPE_DEFAULT 1
66#define BLF_HEADER_TYPE_2 2
67#define BLF_HEADER_TYPE_3 3
68
69
70#define BLF_COMPRESSION_NONE 0
71#define BLF_COMPRESSION_ZLIB 2
72
73#define BLF_TIMESTAMP_RESOLUTION_10US 1
74#define BLF_TIMESTAMP_RESOLUTION_1NS 2
75
76typedef struct blf_date {
77 uint16_t year;
78 uint16_t month;
79 uint16_t dayofweek;
80 uint16_t day;
81 uint16_t hour;
82 uint16_t mins;
83 uint16_t sec;
84 uint16_t ms;
86
87/* BLF File Header */
88typedef struct blf_fileheader {
89 uint8_t magic[4]; /* magic number - "LOGG" */
90 uint32_t header_length; /* length of the file header */
91
92 uint32_t api_version; /* decimal encoded */
93
94 uint8_t application;
95 uint8_t compression_level;
96 uint8_t application_major;
97 uint8_t application_minor;
98
99 uint64_t len_compressed; /* size of the file before uncompressing */
100 uint64_t len_uncompressed;
101
102 uint32_t obj_count; /* number of objects in the file */
103 uint32_t application_build;
104
105 blf_date_t start_date;
106 blf_date_t end_date;
107
108 uint32_t restore_point_offset;
109 uint8_t padding[];
111
112/* BLF Block Header */
113typedef struct blf_blockheader {
114 uint8_t magic[4]; /* magic number = "LOBJ" */
115 uint16_t header_length; /* length of header starting with magic */
116 uint16_t header_type; /* header format ? */
117 uint32_t object_length; /* complete length including header */
118 uint32_t object_type;
120
122 uint16_t compression_method; /* 0 uncompressed, 2 zlib */
123 uint16_t res1;
124 uint32_t res2;
125 uint32_t uncompressed_size;
126 uint32_t res4;
128
129typedef struct blf_logobjectheader {
130 uint32_t flags;
131 uint16_t client_index;
132 uint16_t object_version;
133 uint64_t object_timestamp;
135
136#define BLF_TS_STATUS_ORIG_TS_VALID 0x01
137#define BLF_TS_STATUS_SW_TS 0x02
138#define BLF_TS_STATUS_PROTO_SPECIFIC 0x10
139
140typedef struct blf_logobjectheader2 {
141 uint32_t flags;
142 uint8_t timestamp_status;
143 uint8_t res1;
144 uint16_t object_version;
145 uint64_t object_timestamp;
146 uint64_t original_timestamp;
148
149typedef struct blf_logobjectheader3 {
150 uint32_t flags;
151 uint16_t static_size;
152 uint16_t object_version;
153 uint64_t object_timestamp;
155
156
157#define BLF_DIR_RX 0
158#define BLF_DIR_TX 1
159#define BLF_DIR_TX_RQ 2
160
162 uint8_t src_addr[6];
163 uint16_t channel;
164 uint8_t dst_addr[6];
165 uint16_t direction;
166 uint16_t ethtype;
167 uint16_t tpid;
168 uint16_t tci;
169 uint16_t payloadlength;
170 uint64_t res;
172
174 uint16_t struct_length;
175 uint16_t flags;
176 uint16_t channel;
177 uint16_t hw_channel;
178 uint64_t frame_duration;
179 uint32_t frame_checksum;
180 uint16_t direction;
181 uint16_t frame_length;
182 uint32_t frame_handle;
183 uint32_t error;
185
186#define BLF_ETHERNET_EX_RES 0x0001
187#define BLF_ETHERNET_EX_HARDWARECHANNEL 0x0002
188#define BLF_ETHERNET_EX_FRAMEDURATION 0x0004
189#define BLF_ETHERNET_EX_FRAMEHANDLE 0x0008
190
191typedef struct blf_ethernet_rxerror {
192 uint16_t struct_length;
193 uint16_t channel;
194 uint16_t direction;
195 uint16_t hw_channel;
196 uint32_t frame_checksum;
197 uint16_t frame_length; /* Number of valid raw Ethernet data bytes */
198 uint32_t error;
200
201typedef struct blf_wlanframeheader {
202 uint16_t channel;
203 uint16_t flags;
204 uint8_t direction;
205 uint8_t radio_channel;
206 uint16_t signal_strength;
207 uint16_t signal_quality;
208 uint16_t frame_length;
209 uint32_t res;
211
212/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanMessage.h */
213
214/* shared for CAN message and CAN message2 and CANFD message */
215#define BLF_CANMESSAGE_FLAG_TX 0x01
216#define BLF_CANMESSAGE_FLAG_NERR 0x20
217#define BLF_CANMESSAGE_FLAG_WU 0x40
218#define BLF_CANMESSAGE_FLAG_RTR 0x80
219
220/* shared for CAN message and CAN message2*/
221typedef struct blf_canmessage {
222 uint16_t channel;
223 uint8_t flags;
224 uint8_t dlc;
225 uint32_t id;
227
228
229/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanMessage2.h */
230
232 uint32_t frameLength_in_ns;
233 uint8_t bitCount;
234 uint8_t reserved1;
235 uint16_t reserved2;
237
238
239/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanFdMessage.h */
240
241/* EDL 0: CAN, 1: CAN-FD*/
242#define BLF_CANFDMESSAGE_CANFDFLAG_EDL 0x01
243#define BLF_CANFDMESSAGE_CANFDFLAG_BRS 0x02
244#define BLF_CANFDMESSAGE_CANFDFLAG_ESI 0x04
245
246typedef struct blf_canfdmessage {
247 uint16_t channel;
248 uint8_t flags;
249 uint8_t dlc;
250 uint32_t id;
251 uint32_t frameLength_in_ns;
252 uint8_t arbitration_bit_count;
253 uint8_t canfdflags;
254 uint8_t validDataBytes;
255 uint8_t reservedCanFdMessage1;
256 uint32_t reservedCanFdMessage2;
257 /* DATA */
258 /* uint32_t reservedCanFdMessage3 */
260
261
262/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanFdMessage64.h */
263
264#define BLF_CANFDMESSAGE64_FLAG_NERR 0x000004
265#define BLF_CANFDMESSAGE64_FLAG_HIGH_VOLT_WAKE_UP 0x000008
266#define BLF_CANFDMESSAGE64_FLAG_REMOTE_FRAME 0x000010
267#define BLF_CANFDMESSAGE64_FLAG_TX_ACK 0x000040
268#define BLF_CANFDMESSAGE64_FLAG_TX_REQ 0x000080
269#define BLF_CANFDMESSAGE64_FLAG_SRR 0x000200
270#define BLF_CANFDMESSAGE64_FLAG_R0 0x000400
271#define BLF_CANFDMESSAGE64_FLAG_R1 0x000800
272/* EDL 0: CAN, 1: CAN-FD*/
273#define BLF_CANFDMESSAGE64_FLAG_EDL 0x001000
274#define BLF_CANFDMESSAGE64_FLAG_BRS 0x002000
275#define BLF_CANFDMESSAGE64_FLAG_ESI 0x004000
276#define BLF_CANFDMESSAGE64_FLAG_BURST 0x020000
277
278typedef struct blf_canfdmessage64 {
279 uint8_t channel;
280 uint8_t dlc;
281 uint8_t validDataBytes;
282 uint8_t txCount;
283 uint32_t id;
284 uint32_t frameLength_in_ns;
285 uint32_t flags;
286 uint32_t btrCfgArb;
287 uint32_t btrCfgData;
288 uint32_t timeOffsetBrsNs;
289 uint32_t timeOffsetCrcDelNs;
290 uint16_t bitCount;
291 uint8_t dir;
292 uint8_t extDataOffset;
293 uint32_t crc;
295
296
297/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanErrorFrame.h */
298
299typedef struct blf_canerror {
300 uint16_t channel;
301 uint16_t length;
303
304
305/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanErrorFrameExt.h */
306
307#define BLF_CANERROREXT_FLAG_SJA 0x01
308#define BLF_CANERROREXT_FLAG_CANCORE 0x02
309#define BLF_CANERROREXT_EXTECC_TX 0x1000
310#define BLF_CANERROREXT_EXTECC_NOT_ACK 0x2000
311#define BLF_CANERROREXT_ECC_MEANING_BIT_ERROR 0x0
312#define BLF_CANERROREXT_ECC_MEANING_FORM_ERROR 0x1
313#define BLF_CANERROREXT_ECC_MEANING_STUFF_ERROR 0x2
314#define BLF_CANERROREXT_ECC_MEANING_OTHER_ERROR 0x3
315#define BLF_CANERROREXT_ECC_MEANING_CRC_ERROR 0x4
316#define BLF_CANERROREXT_ECC_MEANING_ACKDEL_ERROR 0x5
317#define BLF_CANERROREXT_ECC_MEANING_OTHER_ERROR2 0x6
318#define BLF_CANERROREXT_ECC_MEANING_NACK_ERROR 0x7
319#define BLF_CANERROREXT_ECC_MEANING_OVERLOAD 0x8
320#define BLF_CANERROREXT_ECC_FDF_BIT_ERROR 0x9
321
322typedef struct blf_canerrorext {
323 uint16_t channel;
324 uint16_t length;
325 uint32_t flags;
326 uint8_t ecc;
327 uint8_t position;
328 uint8_t dlc;
329 uint8_t reserved1;
330 uint32_t frameLength_in_ns;
331 uint32_t id;
332 uint16_t errorCodeExt;
333 uint16_t reserved2;
335
336
337/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanFdErrorFrame64.h */
338
339#define BLF_CANERROR64_FLAG_FDF 0x01
340#define BLF_CANERROR65_FLAG_BRS 0x02
341#define BLF_CANERROR65_FLAG_ESI 0x04
342
343typedef struct blf_canfderror64 {
344 uint8_t channel;
345 uint8_t dlc;
346 uint8_t validDataBytes;
347 uint8_t ecc;
348 uint16_t flags;
349 uint16_t errorCodeExt;
350 uint16_t extFlags;
351 uint8_t extDataOffset;
352 uint8_t reserved1;
353 uint32_t id;
354 uint32_t frameLength_in_ns;
355 uint32_t btrCfgArb;
356 uint32_t btrCfgData;
357 uint32_t timeOffsetBrsNs;
358 uint32_t timeOffsetCrcDelNs;
359 uint32_t crc;
360 uint16_t errorPosition;
361 uint16_t reserved2;
363
364
365/* CAN-XL */
366
367#define BLF_CANXLCHANNELFRAME_FLAG_REMOTE_FRAME 0x10
368#define BLF_CANXLCHANNELFRAME_FLAG_SRR 0x200
369#define BLF_CANXLCHANNELFRAME_FLAG_FDF 0x1000
370#define BLF_CANXLCHANNELFRAME_FLAG_BRS 0x2000
371#define BLF_CANXLCHANNELFRAME_FLAG_ESI 0x4000
372#define BLF_CANXLCHANNELFRAME_FLAG_XLF 0x400000
373#define BLF_CANXLCHANNELFRAME_FLAG_RRS 0x800000
374#define BLF_CANXLCHANNELFRAME_FLAG_SEC 0x1000000
375
376typedef struct blf_canxlchannelframe {
377 uint8_t channel;
378 uint8_t tx_count;
379 uint8_t dir;
380 uint8_t res1;
381 uint32_t frameLength_in_ns;
382
383 uint16_t bitCount;
384 uint16_t res2;
385 uint32_t frameIdentifier;
386
387 uint8_t serviceDataUnitType;
388 uint8_t res3;
389 uint16_t dlc;
390 uint16_t dataLength;
391 uint16_t stuffBitCount;
392
393 uint16_t prefaceCRC;
394 uint8_t virtualControllerAreaNetChannelID;
395 uint8_t res4;
396 uint32_t acceptanceField;
397
398 uint8_t stuffCount;
399 uint8_t res5;
400 uint16_t res6;
401 uint32_t crc;
402
403 uint32_t timeOffsetBrsNs;
404 uint32_t timeOffsetCrcDelNs;
405
406 uint32_t flags;
407 uint32_t reserved;
408
409 uint64_t arbitrationDataBitTimingConfig;
410 uint64_t arbitrationDataHwChannelSettings;
411 uint64_t fdPhaseBitTimingConfig;
412 uint64_t fdPhaseHwChannelSettings;
413 uint64_t xlPhaseBitTimingConfig;
414 uint64_t xlPhaseHwChannelSettings;
416
417/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/FlexRayData.h */
418
419#define BLF_FLEXRAYDATA_FRAME 0x01
420#define BLF_FLEXRAYDATA_CHANNEL_B 0x80
421
422typedef struct blf_flexraydata {
423 uint16_t channel;
424 uint8_t mux;
425 uint8_t len;
426 uint16_t messageId;
427 uint16_t crc;
428 uint8_t dir;
429 uint8_t reservedFlexRayData1;
430 uint16_t reservedFlexRayData2;
432
433
434/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/FlexRayV6Message.h */
435
436#define BLF_FLEXRAYMESSAGE_DIR_RX 0x01
437#define BLF_FLEXRAYMESSAGE_DIR_TX 0x02
438#define BLF_FLEXRAYMESSAGE_DIR_TX_REQ 0x04
439
440#define BLF_FLEXRAYMESSAGE_STATE_PPI 0x01
441#define BLF_FLEXRAYMESSAGE_STATE_SFI 0x02
442#define BLF_FLEXRAYMESSAGE_STATE_RES_BIT2 0x04
443#define BLF_FLEXRAYMESSAGE_STATE_NFI 0x08
444#define BLF_FLEXRAYMESSAGE_STATE_STFI 0x10
445#define BLF_FLEXRAYMESSAGE_STATE_FORMAT 0xe0
446
447#define BLF_FLEXRAYMESSAGE_HEADER_BIT_NM 0x01
448#define BLF_FLEXRAYMESSAGE_HEADER_BIT_SYNC 0x02
449#define BLF_FLEXRAYMESSAGE_HEADER_BIT_RES 0x04
450
451#define BLF_DLT_FLEXRAY_STFI 0x08
452#define BLF_DLT_FLEXRAY_SFI 0x10
453#define BLF_DLT_FLEXRAY_NFI 0x20
454#define BLF_DLT_FLEXRAY_PPI 0x40
455
456typedef struct blf_flexraymessage {
457 uint16_t channel;
458 uint8_t dir; /* Flags: 0 RX, 1 TX, 2 TX Req, 3 internal, 4 internal*/
459 uint8_t lowTime;
460 uint32_t fpgaTick;
461 uint32_t fpgaTickOverflow;
462 uint32_t clientIndexFlexRayV6Message;
463 uint32_t clusterTime;
464 uint16_t frameId;
465 uint16_t headerCrc;
466 uint16_t frameState;
467 uint8_t length;
468 uint8_t cycle;
469 uint8_t headerBitMask;
470 uint8_t reservedFlexRayV6Message1;
471 uint16_t reservedFlexRayV6Message2;
473
474
475/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/FlexRayVFrReceiveMsg.h */
476
477#define BLF_FLEXRAYRCVMSG_DIR_RX 0x01
478#define BLF_FLEXRAYRCVMSG_DIR_TX 0x02
479#define BLF_FLEXRAYRCVMSG_DIR_TX_REQ 0x04
480
481#define BLF_FLEXRAYRCVMSG_CHANNELMASK_RES 0x00
482#define BLF_FLEXRAYRCVMSG_CHANNELMASK_A 0x01
483#define BLF_FLEXRAYRCVMSG_CHANNELMASK_B 0x02
484#define BLF_FLEXRAYRCVMSG_CHANNELMASK_AB 0x03
485
486#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_NULL_FRAME 0x00000001
487#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_VALID_DATA 0x00000002
488#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_SYNC 0x00000004
489#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_STARTUP 0x00000008
490#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_PAYLOAD_PREAM 0x00000010
491#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_20 0x00000020
492#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_ERROR 0x00000040
493#define BLF_FLEXRAYRCVMSG_FRAME_FLAG_RES_80 0x00000080
494
495typedef struct blf_flexrayrcvmessage {
496 uint16_t channel;
497 uint16_t version;
498 uint16_t channelMask; /* 0 res, 1 A, 2 B, 3 A+B */
499 uint16_t dir; /* 0 RX, 1 TX, 2 TX Req, 3 internal, 4 internal*/ /* high byte reserved! */
500 uint32_t clientIndex;
501 uint32_t clusterNo;
502 uint16_t frameId;
503 uint16_t headerCrc1;
504 uint16_t headerCrc2;
505 uint16_t payloadLength;
506 uint16_t payloadLengthValid;
507 uint16_t cycle; /* high byte reserved! */
508 uint32_t tag;
509 uint32_t data;
510 uint32_t frameFlags;
511 uint32_t appParameter;
512 /* if ext, skip 40 bytes */
513 /* payload bytes */
514 /* uint16_t res3 */
515 /* uint32_t res4 */
517
518
519/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/FlexRayVFrReceiveMsgEx.h */
520
521/* defines see above BLF_FLEXRAYRCVMSG_* */
522
524 uint16_t channel;
525 uint16_t version;
526 uint16_t channelMask; /* 0 res, 1 A, 2 B, 3 A+B */
527 uint16_t dir; /* 0 RX, 1 TX, 2 TX Req, 3 internal, 4 internal*/
528 uint32_t clientIndex;
529 uint32_t clusterNo;
530 uint16_t frameId;
531 uint16_t headerCrc1;
532 uint16_t headerCrc2;
533 uint16_t payloadLength;
534 uint16_t payloadLengthValid;
535 uint16_t cycle;
536 uint32_t tag;
537 uint32_t data;
538 uint32_t frameFlags;
539 uint32_t appParameter;
540 uint32_t frameCRC;
541 uint32_t frameLengthInNs;
542 uint16_t frameId1;
543 uint16_t pduOffset;
544 uint16_t blfLogMask;
545 uint16_t res1;
546 uint32_t res2;
547 uint32_t res3;
548 uint32_t res4;
549 uint32_t res5;
550 uint32_t res6;
551 uint32_t res7;
552 /* payload bytes */
554
555
556/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/LinMessage.h */
557
558typedef struct blf_linmessage {
559 uint16_t channel;
560 uint8_t id;
561 uint8_t dlc;
562 uint8_t data[8];
563 uint8_t fsmId;
564 uint8_t fsmState;
565 uint8_t headerTime;
566 uint8_t fullTime;
567 uint16_t crc;
568 uint8_t dir; /* 0 RX, 1 TX Receipt, 2 TX Req */
569 uint8_t res1;
570/* This field is optional and skipping does not hurt us.
571 uint32_t res2;
572*/
574
575typedef struct blf_linrcverror {
576 uint16_t channel;
577 uint8_t id;
578 uint8_t dlc;
579 uint8_t fsmId;
580 uint8_t fsmState;
581 uint8_t headerTime;
582 uint8_t fullTime;
583 uint8_t stateReason;
584 uint8_t offendingByte;
585 uint8_t shortError;
586 uint8_t timeoutDuringDlcDetection;
588
589typedef struct blf_linsenderror {
590 uint16_t channel;
591 uint8_t id;
592 uint8_t dlc;
593 uint8_t fsmId;
594 uint8_t fsmState;
595 uint8_t headerTime;
596 uint8_t fullTime;
598
599typedef struct blf_linwakeupevent {
600 uint16_t channel;
601 uint8_t signal;
602 uint8_t external;
604
605typedef struct blf_linbusevent {
606 uint64_t sof;
607 uint32_t eventBaudrate;
608 uint16_t channel;
609 uint8_t res1[2];
611
613 blf_linbusevent_t linBusEvent;
614 uint64_t synchBreakLength;
615 uint64_t synchDelLength;
617
619 blf_linsynchfieldevent_t linSynchFieldEvent;
620 uint16_t supplierId; /* LIN 2.0 or higher */
621 uint16_t messageId; /* LIN 2.0: message identifier, LIN 2.1: position index as specified in LDF */
622 uint8_t configuredNodeAddress; /* LIN 2.0 or higher */
623 uint8_t id;
624 uint8_t dlc;
625 uint8_t checksumModel;
627
629 blf_linmessagedescriptor_t linMessageDescriptor;
630 uint64_t databyteTimestamps[9]; /* Byte 0: Timestamp of last header byte, Bytes 1-9: Timestamps of data bytes 1-8 */
632
633typedef struct blf_linmessage2 {
634 blf_lindatabytetimestampevent_t linDataByteTimestampEvent;
635 uint8_t data[8];
636 uint16_t crc;
637 uint8_t dir; /* 0 RX, 1 TX Receipt, 2 TX Req */
638 uint8_t simulated; /* 0 Real frame, 1 Simulated frame */
639 uint8_t isEtf; /* 0 Not event triggered frame, 1 Event triggered frame */
640 uint8_t eftAssocIndex;
641 uint8_t eftAssocEftId;
642 uint8_t fsmId; /* Obsolete */
643 uint8_t fsmState; /* Obsolete */
644 uint8_t res1[3];
645/* These fields are optional and skipping does not hurt us.
646 uint32_t respBaudrate;
647 double exactHeaderBaudrate;
648 uint32_t earlyStopBitOffset;
649 uint32_t earlyStopBitOffsetResponse;
650*/
652
653typedef struct blf_lincrcerror2 {
654 blf_lindatabytetimestampevent_t linDataByteTimestampEvent;
655 uint8_t data[8];
656 uint16_t crc;
657 uint8_t dir; /* 0 RX, 1 TX Receipt, 2 TX Req */
658 uint8_t fsmId; /* Obsolete */
659 uint8_t fsmState; /* Obsolete */
660 uint8_t simulated; /* 0 Real frame, 1 Simulated frame */
661 uint8_t res1[2];
662/* These fields are optional and skipping does not hurt us.
663 uint32_t respBaudrate;
664 uint8_t res2[4];
665 double exactHeaderBaudrate;
666 uint32_t earlyStopBitOffset;
667 uint32_t earlyStopBitOffsetResponse;
668*/
670
671typedef struct blf_linrcverror2 {
672 blf_lindatabytetimestampevent_t linDataByteTimestampEvent;
673 uint8_t data[8];
674 uint8_t fsmId; /* Obsolete */
675 uint8_t fsmState; /* Obsolete */
676 uint8_t stateReason;
677 uint8_t offendingByte;
678 uint8_t shortError;
679 uint8_t timeoutDuringDlcDetection;
680 uint8_t isEtf;
681 uint8_t hasDataBytes;
682/* These fields are optional and skipping does not hurt us.
683 uint32_t respBaudrate;
684 uint8_t res[4];
685 double exactHeaderBaudrate;
686 uint32_t earlyStopBitOffset;
687 uint32_t earlyStopBitOffsetResponse;
688*/
690
691typedef struct blf_linsenderror2 {
692 blf_linmessagedescriptor_t linMessageDescriptor;
693 uint64_t eoh;
694 uint8_t isEtf;
695 uint8_t fsmId; /* Obsolete */
696 uint8_t fsmState; /* Obsolete */
697 uint8_t res1;
698/* These fields are optional and skipping does not hurt us.
699 uint8_t res2[4];
700 double exactHeaderBaudrate;
701 uint32_t earlyStopBitOffset;
702*/
704
705typedef struct blf_linwakeupevent2 {
706 blf_linbusevent_t linBusEvent;
707 uint8_t lengthInfo; /* Wake-up length: 0 = OK; 1 = Too short; 2 = Too long. */
708 uint8_t signal;
709 uint8_t external;
710 uint8_t res;
712
713typedef struct blf_linsleepmodeevent {
714 uint16_t channel;
715 uint8_t reason;
716 uint8_t flags;
718
719#define BLF_LIN_WU_SLEEP_REASON_START_STATE 0 /* Initial state of the interface */
720#define BLF_LIN_SLEEP_REASON_GO_TO_SLEEP_FRAME 1
721#define BLF_LIN_SLEEP_REASON_BUS_IDLE_TIMEOUT 2
722#define BLF_LIN_SLEEP_REASON_SILENT_SLEEPMODE_CMD 3 /* Command to shorten bus idle timeout */
723#define BLF_LIN_WU_REASON_EXTERNAL_WAKEUP_SIG 9
724#define BLF_LIN_WU_REASON_INTERNAL_WAKEUP_SIG 10
725#define BLF_LIN_WU_REASON_BUS_TRAFFIC 11
726#define BLF_LIN_NO_SLEEP_REASON_BUS_TRAFFIC 18 /* LIN hardware does not go into Sleep mode in spite of request to do so */
727
728
729/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/AppText.h */
730
731typedef struct blf_apptext {
732 uint32_t source;
733 uint32_t reservedAppText1;
734 uint32_t textLength;
735 uint32_t reservedAppText2;
737
738#define BLF_APPTEXT_COMMENT 0x00000000
739#define BLF_APPTEXT_CHANNEL 0x00000001
740#define BLF_APPTEXT_METADATA 0x00000002
741#define BLF_APPTEXT_ATTACHMENT 0x00000003
742#define BLF_APPTEXT_TRACELINE 0x00000004
743#define BLF_APPTEXT_CONT 0x000000FE
744#define BLF_APPTEXT_FAILED 0x000000FF
745
746#define BLF_APPTEXT_XML_GENERAL 0x01
747#define BLF_APPTEXT_XML_CHANNELS 0x02
748#define BLF_APPTEXT_XML_IDENTITY 0x03
749
750#define BLF_APPTEXT_TAG_DISS_ETHSTATUS "blf-ethernetstatus-obj"
751#define BLF_APPTEXT_TAG_DISS_ETHPHYSTATUS "blf-ethernetphystate-obj"
752#define BLF_APPTEXT_TAG_DISS_DEFAULT "data-text-lines"
753#define BLF_APPTEXT_COL_PROT_TEXT "BLF App text"
754#define BLF_APPTEXT_COL_INFO_TEXT "Metadata"
755#define BLF_APPTEXT_COL_INFO_TEXT_GENERAL "Metadata: General"
756#define BLF_APPTEXT_COL_INFO_TEXT_CHANNELS "Metadata: Channels"
757#define BLF_APPTEXT_COL_INFO_TEXT_IDENTITY "Metadata: Identity"
758
759#define BLF_BUSTYPE_CAN 1
760#define BLF_BUSTYPE_LIN 5
761#define BLF_BUSTYPE_MOST 6
762#define BLF_BUSTYPE_FLEXRAY 7
763#define BLF_BUSTYPE_J1708 9
764#define BLF_BUSTYPE_ETHERNET 11
765#define BLF_BUSTYPE_WLAN 13
766#define BLF_BUSTYPE_AFDX 14
767
768/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/EthernetStatus.h */
769typedef struct blf_ethernet_status {
770 uint16_t channel;
771 uint16_t flags;
772 uint8_t linkStatus;
773 uint8_t ethernetPhy;
774 uint8_t duplex;
775 uint8_t mdi;
776 uint8_t connector;
777 uint8_t clockMode;
778 uint8_t pairs;
779 uint8_t hardwareChannel;
780 uint32_t bitrate;
781/* Starting from version 1
782 uint64_t linkUpDuration; // In nanoseconds
783*/
785
786#define BLF_ETH_STATUS_LINKSTATUS 0x0001
787#define BLF_ETH_STATUS_BITRATE 0x0002
788#define BLF_ETH_STATUS_ETHERNETPHY 0x0004
789#define BLF_ETH_STATUS_DUPLEX 0x0008
790#define BLF_ETH_STATUS_MDITYPE 0x0010
791#define BLF_ETH_STATUS_CONNECTOR 0x0020
792#define BLF_ETH_STATUS_CLOCKMODE 0x0040
793#define BLF_ETH_STATUS_BRPAIR 0x0080
794#define BLF_ETH_STATUS_HARDWARECHANNEL 0x0100
795#define BLF_ETH_STATUS_LINKUPDURATION 0x0200
796
797typedef struct blf_ethernet_phystate {
798 uint16_t channel;
799 uint16_t flags;
800 uint8_t phyState;
801 uint8_t phyEvent;
802 uint8_t hardwareChannel;
803 uint8_t res1;
805
806#define BLF_PHY_STATE_PHYSTATE 0x0001
807#define BLF_PHY_STATE_PHYEVENT 0x0002
808#define BLF_PHY_STATE_HARDWARECHANNEL 0x0004
809
810
811/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/ObjectHeaderBase.h */
812
813#define BLF_OBJTYPE_UNKNOWN 0
814#define BLF_OBJTYPE_CAN_MESSAGE 1
815#define BLF_OBJTYPE_CAN_ERROR 2
816#define BLF_OBJTYPE_CAN_OVERLOAD 3
817#define BLF_OBJTYPE_CAN_STATISTIC 4
818#define BLF_OBJTYPE_APP_TRIGGER 5
819#define BLF_OBJTYPE_ENV_INTEGER 6
820#define BLF_OBJTYPE_ENV_DOUBLE 7
821#define BLF_OBJTYPE_ENV_STRING 8
822#define BLF_OBJTYPE_ENV_DATA 9
823#define BLF_OBJTYPE_LOG_CONTAINER 10
824#define BLF_OBJTYPE_LIN_MESSAGE 11
825#define BLF_OBJTYPE_LIN_CRC_ERROR 12
826#define BLF_OBJTYPE_LIN_DLC_INFO 13
827#define BLF_OBJTYPE_LIN_RCV_ERROR 14
828#define BLF_OBJTYPE_LIN_SND_ERROR 15
829#define BLF_OBJTYPE_LIN_SLV_TIMEOUT 16
830#define BLF_OBJTYPE_LIN_SCHED_MODCH 17
831#define BLF_OBJTYPE_LIN_SYN_ERROR 18
832#define BLF_OBJTYPE_LIN_BAUDRATE 19
833#define BLF_OBJTYPE_LIN_SLEEP 20
834#define BLF_OBJTYPE_LIN_WAKEUP 21
835#define BLF_OBJTYPE_MOST_SPY 22
836#define BLF_OBJTYPE_MOST_CTRL 23
837#define BLF_OBJTYPE_MOST_LIGHTLOCK 24
838#define BLF_OBJTYPE_MOST_STATISTIC 25
839
840#define BLF_OBJTYPE_FLEXRAY_DATA 29
841#define BLF_OBJTYPE_FLEXRAY_SYNC 30
842#define BLF_OBJTYPE_CAN_DRIVER_ERROR 31
843#define BLF_OBJTYPE_MOST_PKT 32
844#define BLF_OBJTYPE_MOST_PKT2 33
845#define BLF_OBJTYPE_MOST_HWMODE 34
846#define BLF_OBJTYPE_MOST_REG 35
847#define BLF_OBJTYPE_MOST_GENREG 36
848#define BLF_OBJTYPE_MOST_NETSTATE 37
849#define BLF_OBJTYPE_MOST_DATALOST 38
850#define BLF_OBJTYPE_MOST_TRIGGER 39
851#define BLF_OBJTYPE_FLEXRAY_CYCLE 40
852#define BLF_OBJTYPE_FLEXRAY_MESSAGE 41
853#define BLF_OBJTYPE_LIN_CHECKSUM_INFO 42
854#define BLF_OBJTYPE_LIN_SPIKE_EVENT 43
855#define BLF_OBJTYPE_CAN_DRIVER_SYNC 44
856#define BLF_OBJTYPE_FLEXRAY_STATUS 45
857#define BLF_OBJTYPE_GPS_EVENT 46
858#define BLF_OBJTYPE_FLEXRAY_ERROR 47
859#define BLF_OBJTYPE_FLEXRAY_STATUS2 48
860#define BLF_OBJTYPE_FLEXRAY_STARTCYCLE 49
861#define BLF_OBJTYPE_FLEXRAY_RCVMESSAGE 50
862#define BLF_OBJTYPE_REALTIMECLOCK 51
863
864#define BLF_OBJTYPE_LIN_STATISTIC 54
865#define BLF_OBJTYPE_J1708_MESSAGE 55
866#define BLF_OBJTYPE_J1708_VIRTUAL_MSG 56
867#define BLF_OBJTYPE_LIN_MESSAGE2 57
868#define BLF_OBJTYPE_LIN_SND_ERROR2 58
869#define BLF_OBJTYPE_LIN_SYN_ERROR2 59
870#define BLF_OBJTYPE_LIN_CRC_ERROR2 60
871#define BLF_OBJTYPE_LIN_RCV_ERROR2 61
872#define BLF_OBJTYPE_LIN_WAKEUP2 62
873#define BLF_OBJTYPE_LIN_SPIKE_EVENT2 63
874#define BLF_OBJTYPE_LIN_LONG_DOM_SIG 64
875#define BLF_OBJTYPE_APP_TEXT 65
876#define BLF_OBJTYPE_FLEXRAY_RCVMESSAGE_EX 66
877#define BLF_OBJTYPE_MOST_STATISTICEX 67
878#define BLF_OBJTYPE_MOST_TXLIGHT 68
879#define BLF_OBJTYPE_MOST_ALLOCTAB 69
880#define BLF_OBJTYPE_MOST_STRESS 70
881#define BLF_OBJTYPE_ETHERNET_FRAME 71
882#define BLF_OBJTYPE_SYS_VARIABLE 72
883#define BLF_OBJTYPE_CAN_ERROR_EXT 73
884#define BLF_OBJTYPE_CAN_DRIVER_ERROR_EXT 74
885#define BLF_OBJTYPE_LIN_LONG_DOM_SIG2 75
886#define BLF_OBJTYPE_MOST_150_MESSAGE 76
887#define BLF_OBJTYPE_MOST_150_PKT 77
888#define BLF_OBJTYPE_MOST_ETHERNET_PKT 78
889#define BLF_OBJTYPE_MOST_150_MESSAGE_FRAGMENT 79
890#define BLF_OBJTYPE_MOST_150_PKT_FRAGMENT 80
891#define BLF_OBJTYPE_MOST_ETHERNET_PKT_FRAGMENT 81
892#define BLF_OBJTYPE_MOST_SYSTEM_EVENT 82
893#define BLF_OBJTYPE_MOST_150_ALLOCTAB 83
894#define BLF_OBJTYPE_MOST_50_MESSAGE 84
895#define BLF_OBJTYPE_MOST_50_PKT 85
896#define BLF_OBJTYPE_CAN_MESSAGE2 86
897#define BLF_OBJTYPE_LIN_UNEXPECTED_WAKEUP 87
898#define BLF_OBJTYPE_LIN_SHORT_OR_SLOW_RESPONSE 88
899#define BLF_OBJTYPE_LIN_DISTURBANCE_EVENT 89
900#define BLF_OBJTYPE_SERIAL_EVENT 90
901#define BLF_OBJTYPE_OVERRUN_ERROR 91
902#define BLF_OBJTYPE_EVENT_COMMENT 92
903#define BLF_OBJTYPE_WLAN_FRAME 93
904#define BLF_OBJTYPE_WLAN_STATISTIC 94
905#define BLF_OBJTYPE_MOST_ECL 95
906#define BLF_OBJTYPE_GLOBAL_MARKER 96
907#define BLF_OBJTYPE_AFDX_FRAME 97
908#define BLF_OBJTYPE_AFDX_STATISTIC 98
909#define BLF_OBJTYPE_KLINE_STATUSEVENT 99
910#define BLF_OBJTYPE_CAN_FD_MESSAGE 100
911#define BLF_OBJTYPE_CAN_FD_MESSAGE_64 101
912#define BLF_OBJTYPE_ETHERNET_RX_ERROR 102
913#define BLF_OBJTYPE_ETHERNET_STATUS 103
914#define BLF_OBJTYPE_CAN_FD_ERROR_64 104
915
916#define BLF_OBJTYPE_AFDX_STATUS 106
917#define BLF_OBJTYPE_AFDX_BUS_STATISTIC 107
918
919#define BLF_OBJTYPE_AFDX_ERROR_EVENT 109
920#define BLF_OBJTYPE_A429_ERROR 110
921#define BLF_OBJTYPE_A429_STATUS 111
922#define BLF_OBJTYPE_A429_BUS_STATISTIC 112
923#define BLF_OBJTYPE_A429_MESSAGE 113
924#define BLF_OBJTYPE_ETHERNET_STATISTIC 114
925#define BLF_OBJTYPE_RESERVED5 115
926#define BLF_OBJTYPE_RESERVED6 116
927#define BLF_OBJTYPE_RESERVED7 117
928#define BLF_OBJTYPE_TEST_STRUCTURE 118
929#define BLF_OBJTYPE_DIAG_REQUEST_INTERPRETATION 119
930#define BLF_OBJTYPE_ETHERNET_FRAME_EX 120
931#define BLF_OBJTYPE_ETHERNET_FRAME_FORWARDED 121
932#define BLF_OBJTYPE_ETHERNET_ERROR_EX 122
933#define BLF_OBJTYPE_ETHERNET_ERROR_FORWARDED 123
934#define BLF_OBJTYPE_FUNCTION_BUS 124
935#define BLF_OBJTYPE_DATA_LOST_BEGIN 125
936#define BLF_OBJTYPE_DATA_LOST_END 126
937#define BLF_OBJTYPE_WATER_MARK_EVENT 127
938#define BLF_OBJTYPE_TRIGGER_CONDITION 128
939#define BLF_OBJTYPE_CAN_SETTING_CHANGED 129
940#define BLF_OBJTYPE_DISTRIBUTED_OBJECT_MEMBER 130
941#define BLF_OBJTYPE_ATTRIBUTE_EVENT 131
942#define BLF_OBJTYPE_DISTRIBUTED_OBJECT_CHANGE 132
943#define BLF_OBJTYPE_ETHERNET_PHY_STATE 133
944#define BLF_OBJTYPE_MACSEC_STATUS 134
945
946#define BLF_OBJTYPE_10BASET1S_STATUS 136
947#define BLF_OBJTYPE_10BASET1S_STATISTIC 137
948#define BLF_OBJTYPE_TUNNEL_PROTO_DECODER_EVENT 138
949#define BLF_OBJTYPE_CAN_XL_CHANNEL_FRAME 139
950#define BLF_OBJTYPE_CAN_XL_CHANNEL_ERRORFRAME 140
951
952
953#endif
954
955/*
956 * Editor modelines - https://www.wireshark.org/tools/modelines.html
957 *
958 * Local variables:
959 * c-basic-offset: 4
960 * tab-width: 8
961 * indent-tabs-mode: nil
962 * End:
963 *
964 * vi: set shiftwidth=4 tabstop=8 expandtab:
965 * :indentSize=4:tabSize=8:noTabs=true:
966 */
wtap_open_return_val blf_open(wtap *wth, int *err, char **err_info)
Opens a BLF file.
Definition blf.c:3866
Definition blf.h:731
Definition blf.h:113
Definition blf.h:299
Definition blf.h:322
Definition blf.h:343
Definition blf.h:278
Definition blf.h:246
Definition blf.h:231
Definition blf.h:221
Definition blf.h:376
Definition blf.h:76
Definition blf.h:797
Definition blf.h:191
Definition blf.h:769
Definition blf.h:173
Definition blf.h:161
Definition blf.h:88
Definition blf.h:422
Definition blf.h:456
Definition blf.h:495
Definition blf.h:523
Definition blf.h:605
Definition blf.h:653
Definition blf.h:628
Definition blf.h:633
Definition blf.h:558
Definition blf.h:618
Definition blf.h:671
Definition blf.h:575
Definition blf.h:691
Definition blf.h:589
Definition blf.h:713
Definition blf.h:612
Definition blf.h:705
Definition blf.h:599
Definition blf.h:121
Definition blf.h:140
Definition blf.h:149
Definition blf.h:129
Definition blf.h:201
Definition wtap_module.h:58
wtap_open_return_val
For registering file types that we can open.
Definition wtap.h:1751