Wireshark
4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
wiretap
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
22
wtap_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
66
typedef
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;
75
}
blf_date_t
;
76
77
/* BLF File Header */
78
typedef
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;
95
}
blf_fileheader_t
;
96
97
/* BLF Block Header */
98
typedef
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;
104
}
blf_blockheader_t
;
105
106
typedef
struct
blf_logcontainerheader
{
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;
112
}
blf_logcontainerheader_t
;
113
114
typedef
struct
blf_logobjectheader
{
115
uint32_t flags;
116
uint16_t client_index;
117
uint16_t object_version;
118
uint64_t object_timestamp;
119
}
blf_logobjectheader_t
;
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
125
typedef
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;
132
}
blf_logobjectheader2_t
;
133
134
typedef
struct
blf_logobjectheader3
{
135
uint32_t flags;
136
uint16_t static_size;
137
uint16_t object_version;
138
uint64_t object_timestamp;
139
}
blf_logobjectheader3_t
;
140
141
142
#define BLF_DIR_RX 0
143
#define BLF_DIR_TX 1
144
#define BLF_DIR_TX_RQ 2
145
146
typedef
struct
blf_ethernetframeheader
{
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;
156
}
blf_ethernetframeheader_t
;
157
158
typedef
struct
blf_ethernetframeheader_ex
{
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;
169
}
blf_ethernetframeheader_ex_t
;
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
176
typedef
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;
184
}
blf_ethernet_rxerror_t
;
185
186
typedef
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;
195
}
blf_wlanframeheader_t
;
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*/
206
typedef
struct
blf_canmessage
{
207
uint16_t channel;
208
uint8_t flags;
209
uint8_t dlc;
210
uint32_t id;
211
}
blf_canmessage_t
;
212
213
214
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanMessage2.h */
215
216
typedef
struct
blf_canmessage2_trailer
{
217
uint32_t frameLength_in_ns;
218
uint8_t bitCount;
219
uint8_t reserved1;
220
uint16_t reserved2;
221
}
blf_canmessage2_trailer_t
;
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
231
typedef
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 */
244
}
blf_canfdmessage_t
;
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
263
typedef
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;
279
}
blf_canfdmessage64_t
;
280
281
282
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/CanErrorFrame.h */
283
284
typedef
struct
blf_canerror
{
285
uint16_t channel;
286
uint16_t length;
287
}
blf_canerror_t
;
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
307
typedef
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;
319
}
blf_canerrorext_t
;
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
328
typedef
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;
347
}
blf_canfderror64_t
;
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
355
typedef
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;
364
}
blf_flexraydata_t
;
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
389
typedef
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;
405
}
blf_flexraymessage_t
;
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
428
typedef
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 */
449
}
blf_flexrayrcvmessage_t
;
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
456
typedef
struct
blf_flexrayrcvmessageex
{
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 */
486
}
blf_flexrayrcvmessageex_t
;
487
488
489
/* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/LinMessage.h */
490
491
typedef
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
*/
506
}
blf_linmessage_t
;
507
508
typedef
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;
520
}
blf_linrcverror_t
;
521
522
typedef
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;
530
}
blf_linsenderror_t
;
531
532
typedef
struct
blf_linwakeupevent
{
533
uint16_t channel;
534
uint8_t signal;
535
uint8_t external;
536
}
blf_linwakeupevent_t
;
537
538
typedef
struct
blf_linbusevent
{
539
uint64_t sof;
540
uint32_t eventBaudrate;
541
uint16_t channel;
542
uint8_t res1[2];
543
}
blf_linbusevent_t
;
544
545
typedef
struct
blf_linsynchfieldevent
{
546
blf_linbusevent_t
linBusEvent;
547
uint64_t synchBreakLength;
548
uint64_t synchDelLength;
549
}
blf_linsynchfieldevent_t
;
550
551
typedef
struct
blf_linmessagedescriptor
{
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;
559
}
blf_linmessagedescriptor_t
;
560
561
typedef
struct
blf_lindatabytetimestampevent
{
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 */
564
}
blf_lindatabytetimestampevent_t
;
565
566
typedef
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
*/
584
}
blf_linmessage2_t
;
585
586
typedef
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
*/
602
}
blf_lincrcerror2_t
;
603
604
typedef
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
*/
622
}
blf_linrcverror2_t
;
623
624
typedef
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
*/
636
}
blf_linsenderror2_t
;
637
638
typedef
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;
644
}
blf_linwakeupevent2_t
;
645
646
typedef
struct
blf_linsleepmodeevent
{
647
uint16_t channel;
648
uint8_t reason;
649
uint8_t flags;
650
}
blf_linsleepmodeevent_t
;
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
664
typedef
struct
blf_apptext
{
665
uint32_t source;
666
uint32_t reservedAppText1;
667
uint32_t textLength;
668
uint32_t reservedAppText2;
669
}
blf_apptext_t
;
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 */
693
typedef
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
*/
708
}
blf_ethernet_status_t
;
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
721
typedef
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;
728
}
blf_ethernet_phystate_t
;
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
*/
blf_apptext
Definition
blf.h:664
blf_blockheader
Definition
blf.h:98
blf_canerror
Definition
blf.h:284
blf_canerrorext
Definition
blf.h:307
blf_canfderror64
Definition
blf.h:328
blf_canfdmessage64
Definition
blf.h:263
blf_canfdmessage
Definition
blf.h:231
blf_canmessage2_trailer
Definition
blf.h:216
blf_canmessage
Definition
blf.h:206
blf_date
Definition
blf.h:66
blf_ethernet_phystate
Definition
blf.h:721
blf_ethernet_rxerror
Definition
blf.h:176
blf_ethernet_status
Definition
blf.h:693
blf_ethernetframeheader_ex
Definition
blf.h:158
blf_ethernetframeheader
Definition
blf.h:146
blf_fileheader
Definition
blf.h:78
blf_flexraydata
Definition
blf.h:355
blf_flexraymessage
Definition
blf.h:389
blf_flexrayrcvmessage
Definition
blf.h:428
blf_flexrayrcvmessageex
Definition
blf.h:456
blf_linbusevent
Definition
blf.h:538
blf_lincrcerror2
Definition
blf.h:586
blf_lindatabytetimestampevent
Definition
blf.h:561
blf_linmessage2
Definition
blf.h:566
blf_linmessage
Definition
blf.h:491
blf_linmessagedescriptor
Definition
blf.h:551
blf_linrcverror2
Definition
blf.h:604
blf_linrcverror
Definition
blf.h:508
blf_linsenderror2
Definition
blf.h:624
blf_linsenderror
Definition
blf.h:522
blf_linsleepmodeevent
Definition
blf.h:646
blf_linsynchfieldevent
Definition
blf.h:545
blf_linwakeupevent2
Definition
blf.h:638
blf_linwakeupevent
Definition
blf.h:532
blf_logcontainerheader
Definition
blf.h:106
blf_logobjectheader2
Definition
blf.h:125
blf_logobjectheader3
Definition
blf.h:134
blf_logobjectheader
Definition
blf.h:114
blf_wlanframeheader
Definition
blf.h:186
wtap
Definition
wtap-int.h:37
wtap.h
Generated by
1.9.8