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