Wireshark  4.3.0
The Wireshark network protocol analyzer
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;
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;
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;
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;
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;
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;
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;
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 
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;
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;
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;
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;
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 */
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;
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;
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;
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;
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;
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;
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 */
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 */
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 */
507 
508 typedef struct blf_linsenderror {
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;
517 
518 typedef struct blf_linbusevent {
519  uint64_t sof;
520  uint32_t eventBaudrate;
521  uint16_t channel;
522  uint8_t res1[2];
524 
525 typedef struct blf_linsynchfieldevent {
526  blf_linbusevent_t linBusEvent;
527  uint64_t synchBreakLength;
528  uint64_t synchDelLength;
530 
531 typedef struct blf_linmessagedescriptor {
532  blf_linsynchfieldevent_t linSynchFieldEvent;
533  uint16_t supplierId; /* LIN 2.0 or higher */
534  uint16_t messageId; /* LIN 2.0: message identifier, LIN 2.1: position index as specified in LDF */
535  uint8_t configuredNodeAddress; /* LIN 2.0 or higher */
536  uint8_t id;
537  uint8_t dlc;
538  uint8_t checksumModel;
540 
542  blf_linmessagedescriptor_t linMessageDescriptor;
543  uint64_t databyteTimestamps[9]; /* Byte 0: Timestamp of last header byte, Bytes 1-9: Timestamps of data bytes 1-8 */
545 
546 typedef struct blf_linmessage2 {
547  blf_lindatabytetimestampevent_t linDataByteTimestampEvent;
548  uint8_t data[8];
549  uint16_t crc;
550  uint8_t dir; /* 0 RX, 1 TX Receipt, 2 TX Req */
551  uint8_t simulated; /* 0 Real frame, 1 Simulated frame */
552  uint8_t isEtf; /* 0 Not event triggered frame, 1 Event triggered frame */
553  uint8_t eftAssocIndex;
554  uint8_t eftAssocEftId;
555  uint8_t fsmId; /* Obsolete */
556  uint8_t fsmState; /* Obsolete */
557  uint8_t res1[3];
558 /* These fields are optional and skipping does not hurt us.
559  uint32_t respBaudrate;
560  double exactHeaderBaudrate;
561  uint32_t earlyStopBitOffset;
562  uint32_t earlyStopBitOffsetResponse;
563 */
565 
566 typedef struct blf_lincrcerror2 {
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 fsmId; /* Obsolete */
572  uint8_t fsmState; /* Obsolete */
573  uint8_t simulated; /* 0 Real frame, 1 Simulated frame */
574  uint8_t res1[2];
575 /* These fields are optional and skipping does not hurt us.
576  uint32_t respBaudrate;
577  uint8_t res2[4];
578  double exactHeaderBaudrate;
579  uint32_t earlyStopBitOffset;
580  uint32_t earlyStopBitOffsetResponse;
581 */
583 
584 typedef struct blf_linsenderror2 {
585  blf_linmessagedescriptor_t linMessageDescriptor;
586  uint64_t eoh;
587  uint8_t isEtf;
588  uint8_t fsmId; /* Obsolete */
589  uint8_t fsmState; /* Obsolete */
590  uint8_t res1;
591 /* These fields are optional and skipping does not hurt us.
592  uint8_t res2[4];
593  double exactHeaderBaudrate;
594  uint32_t earlyStopBitOffset;
595 */
597 
598 
599 /* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/AppText.h */
600 
601 typedef struct blf_apptext {
602  uint32_t source;
603  uint32_t reservedAppText1;
604  uint32_t textLength;
605  uint32_t reservedAppText2;
606 } blf_apptext_t;
607 
608 #define BLF_APPTEXT_COMMENT 0x00000000
609 #define BLF_APPTEXT_CHANNEL 0x00000001
610 #define BLF_APPTEXT_METADATA 0x00000002
611 #define BLF_APPTEXT_ATTACHMENT 0x00000003
612 #define BLF_APPTEXT_TRACELINE 0x00000004
613 #define BLF_APPTEXT_CONT 0x000000FE
614 #define BLF_APPTEXT_FAILED 0x000000FF
615 
616 #define BLF_APPTEXT_XML_GENERAL 0x01
617 #define BLF_APPTEXT_XML_CHANNELS 0x02
618 #define BLF_APPTEXT_XML_IDENTITY 0x03
619 
620 #define BLF_BUSTYPE_CAN 1
621 #define BLF_BUSTYPE_LIN 5
622 #define BLF_BUSTYPE_MOST 6
623 #define BLF_BUSTYPE_FLEXRAY 7
624 #define BLF_BUSTYPE_J1708 9
625 #define BLF_BUSTYPE_ETHERNET 11
626 #define BLF_BUSTYPE_WLAN 13
627 #define BLF_BUSTYPE_AFDX 14
628 
629 /* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/EthernetStatus.h */
630 typedef struct blf_ethernet_status {
631  uint16_t channel;
632  uint16_t flags;
633  uint8_t linkStatus;
634  uint8_t ethernetPhy;
635  uint8_t duplex;
636  uint8_t mdi;
637  uint8_t connector;
638  uint8_t clockMode;
639  uint8_t pairs;
640  uint8_t hardwareChannel;
641  uint32_t bitrate;
642 /* Starting from version 1
643  uint64_t linkUpDuration; // In nanoseconds
644 */
646 
647 #define BLF_ETH_STATUS_LINKSTATUS 0x0001
648 #define BLF_ETH_STATUS_BITRATE 0x0002
649 #define BLF_ETH_STATUS_ETHERNETPHY 0x0004
650 #define BLF_ETH_STATUS_DUPLEX 0x0008
651 #define BLF_ETH_STATUS_MDITYPE 0x0010
652 #define BLF_ETH_STATUS_CONNECTOR 0x0020
653 #define BLF_ETH_STATUS_CLOCKMODE 0x0040
654 #define BLF_ETH_STATUS_BRPAIR 0x0080
655 #define BLF_ETH_STATUS_HARDWARECHANNEL 0x0100
656 #define BLF_ETH_STATUS_LINKUPDURATION 0x0200
657 
658 typedef struct blf_ethernet_phystate {
659  uint16_t channel;
660  uint16_t flags;
661  uint8_t phyState;
662  uint8_t phyEvent;
663  uint8_t hardwareChannel;
664  uint8_t res1;
666 
667 #define BLF_PHY_STATE_PHYSTATE 0x0001
668 #define BLF_PHY_STATE_PHYEVENT 0x0002
669 #define BLF_PHY_STATE_HARDWARECHANNEL 0x0004
670 
671 
672 /* see https://bitbucket.org/tobylorenz/vector_blf/src/master/src/Vector/BLF/ObjectHeaderBase.h */
673 
674 #define BLF_OBJTYPE_UNKNOWN 0
675 #define BLF_OBJTYPE_CAN_MESSAGE 1
676 #define BLF_OBJTYPE_CAN_ERROR 2
677 #define BLF_OBJTYPE_CAN_OVERLOAD 3
678 #define BLF_OBJTYPE_CAN_STATISTIC 4
679 #define BLF_OBJTYPE_APP_TRIGGER 5
680 #define BLF_OBJTYPE_ENV_INTEGER 6
681 #define BLF_OBJTYPE_ENV_DOUBLE 7
682 #define BLF_OBJTYPE_ENV_STRING 8
683 #define BLF_OBJTYPE_ENV_DATA 9
684 #define BLF_OBJTYPE_LOG_CONTAINER 10
685 #define BLF_OBJTYPE_LIN_MESSAGE 11
686 #define BLF_OBJTYPE_LIN_CRC_ERROR 12
687 #define BLF_OBJTYPE_LIN_DLC_INFO 13
688 #define BLF_OBJTYPE_LIN_RCV_ERROR 14
689 #define BLF_OBJTYPE_LIN_SND_ERROR 15
690 #define BLF_OBJTYPE_LIN_SLV_TIMEOUT 16
691 #define BLF_OBJTYPE_LIN_SCHED_MODCH 17
692 #define BLF_OBJTYPE_LIN_SYN_ERROR 18
693 #define BLF_OBJTYPE_LIN_BAUDRATE 19
694 #define BLF_OBJTYPE_LIN_SLEEP 20
695 #define BLF_OBJTYPE_LIN_WAKEUP 21
696 #define BLF_OBJTYPE_MOST_SPY 22
697 #define BLF_OBJTYPE_MOST_CTRL 23
698 #define BLF_OBJTYPE_MOST_LIGHTLOCK 24
699 #define BLF_OBJTYPE_MOST_STATISTIC 25
700 #define BLF_OBJTYPE_FLEXRAY_DATA 29
701 #define BLF_OBJTYPE_FLEXRAY_SYNC 30
702 #define BLF_OBJTYPE_CAN_DRIVER_ERROR 31
703 #define BLF_OBJTYPE_MOST_PKT 32
704 #define BLF_OBJTYPE_MOST_PKT2 33
705 #define BLF_OBJTYPE_MOST_HWMODE 34
706 #define BLF_OBJTYPE_MOST_REG 35
707 #define BLF_OBJTYPE_MOST_GENREG 36
708 #define BLF_OBJTYPE_MOST_NETSTATE 37
709 #define BLF_OBJTYPE_MOST_DATALOST 38
710 #define BLF_OBJTYPE_MOST_TRIGGER 39
711 #define BLF_OBJTYPE_FLEXRAY_CYCLE 40
712 #define BLF_OBJTYPE_FLEXRAY_MESSAGE 41
713 #define BLF_OBJTYPE_LIN_CHECKSUM_INFO 42
714 #define BLF_OBJTYPE_LIN_SPIKE_EVENT 43
715 #define BLF_OBJTYPE_CAN_DRIVER_SYNC 44
716 #define BLF_OBJTYPE_FLEXRAY_STATUS 45
717 #define BLF_OBJTYPE_GPS_EVENT 46
718 #define BLF_OBJTYPE_FLEXRAY_ERROR 47
719 #define BLF_OBJTYPE_FLEXRAY_STATUS2 48
720 #define BLF_OBJTYPE_FLEXRAY_STARTCYCLE 49
721 #define BLF_OBJTYPE_FLEXRAY_RCVMESSAGE 50
722 #define BLF_OBJTYPE_REALTIMECLOCK 51
723 #define BLF_OBJTYPE_LIN_STATISTIC 54
724 #define BLF_OBJTYPE_J1708_MESSAGE 55
725 #define BLF_OBJTYPE_J1708_VIRTUAL_MSG 56
726 #define BLF_OBJTYPE_LIN_MESSAGE2 57
727 #define BLF_OBJTYPE_LIN_SND_ERROR2 58
728 #define BLF_OBJTYPE_LIN_SYN_ERROR2 59
729 #define BLF_OBJTYPE_LIN_CRC_ERROR2 60
730 #define BLF_OBJTYPE_LIN_RCV_ERROR2 61
731 #define BLF_OBJTYPE_LIN_WAKEUP2 62
732 #define BLF_OBJTYPE_LIN_SPIKE_EVENT2 63
733 #define BLF_OBJTYPE_LIN_LONG_DOM_SIG 64
734 #define BLF_OBJTYPE_APP_TEXT 65
735 #define BLF_OBJTYPE_FLEXRAY_RCVMESSAGE_EX 66
736 #define BLF_OBJTYPE_MOST_STATISTICEX 67
737 #define BLF_OBJTYPE_MOST_TXLIGHT 68
738 #define BLF_OBJTYPE_MOST_ALLOCTAB 69
739 #define BLF_OBJTYPE_MOST_STRESS 70
740 #define BLF_OBJTYPE_ETHERNET_FRAME 71
741 #define BLF_OBJTYPE_SYS_VARIABLE 72
742 #define BLF_OBJTYPE_CAN_ERROR_EXT 73
743 #define BLF_OBJTYPE_CAN_DRIVER_ERROR_EXT 74
744 #define BLF_OBJTYPE_LIN_LONG_DOM_SIG2 75
745 #define BLF_OBJTYPE_MOST_150_MESSAGE 76
746 #define BLF_OBJTYPE_MOST_150_PKT 77
747 #define BLF_OBJTYPE_MOST_ETHERNET_PKT 78
748 #define BLF_OBJTYPE_MOST_150_MESSAGE_FRAGMENT 79
749 #define BLF_OBJTYPE_MOST_150_PKT_FRAGMENT 80
750 #define BLF_OBJTYPE_MOST_ETHERNET_PKT_FRAGMENT 81
751 #define BLF_OBJTYPE_MOST_SYSTEM_EVENT 82
752 #define BLF_OBJTYPE_MOST_150_ALLOCTAB 83
753 #define BLF_OBJTYPE_MOST_50_MESSAGE 84
754 #define BLF_OBJTYPE_MOST_50_PKT 85
755 #define BLF_OBJTYPE_CAN_MESSAGE2 86
756 #define BLF_OBJTYPE_LIN_UNEXPECTED_WAKEUP 87
757 #define BLF_OBJTYPE_LIN_SHORT_OR_SLOW_RESPONSE 88
758 #define BLF_OBJTYPE_LIN_DISTURBANCE_EVENT 89
759 #define BLF_OBJTYPE_SERIAL_EVENT 90
760 #define BLF_OBJTYPE_OVERRUN_ERROR 91
761 #define BLF_OBJTYPE_EVENT_COMMENT 92
762 #define BLF_OBJTYPE_WLAN_FRAME 93
763 #define BLF_OBJTYPE_WLAN_STATISTIC 94
764 #define BLF_OBJTYPE_MOST_ECL 95
765 #define BLF_OBJTYPE_GLOBAL_MARKER 96
766 #define BLF_OBJTYPE_AFDX_FRAME 97
767 #define BLF_OBJTYPE_AFDX_STATISTIC 98
768 #define BLF_OBJTYPE_KLINE_STATUSEVENT 99
769 #define BLF_OBJTYPE_CAN_FD_MESSAGE 100
770 #define BLF_OBJTYPE_CAN_FD_MESSAGE_64 101
771 #define BLF_OBJTYPE_ETHERNET_RX_ERROR 102
772 #define BLF_OBJTYPE_ETHERNET_STATUS 103
773 #define BLF_OBJTYPE_CAN_FD_ERROR_64 104
774 #define BLF_OBJTYPE_AFDX_STATUS 106
775 #define BLF_OBJTYPE_AFDX_BUS_STATISTIC 107
776 #define BLF_OBJTYPE_AFDX_ERROR_EVENT 109
777 #define BLF_OBJTYPE_A429_ERROR 110
778 #define BLF_OBJTYPE_A429_STATUS 111
779 #define BLF_OBJTYPE_A429_BUS_STATISTIC 112
780 #define BLF_OBJTYPE_A429_MESSAGE 113
781 #define BLF_OBJTYPE_ETHERNET_STATISTIC 114
782 #define BLF_OBJTYPE_RESERVED5 115
783 #define BLF_OBJTYPE_RESERVED6 116
784 #define BLF_OBJTYPE_RESERVED7 117
785 #define BLF_OBJTYPE_TEST_STRUCTURE 118
786 #define BLF_OBJTYPE_DIAG_REQUEST_INTERPRETATION 119
787 #define BLF_OBJTYPE_ETHERNET_FRAME_EX 120
788 #define BLF_OBJTYPE_ETHERNET_FRAME_FORWARDED 121
789 #define BLF_OBJTYPE_ETHERNET_ERROR_EX 122
790 #define BLF_OBJTYPE_ETHERNET_ERROR_FORWARDED 123
791 #define BLF_OBJTYPE_FUNCTION_BUS 124
792 #define BLF_OBJTYPE_DATA_LOST_BEGIN 125
793 #define BLF_OBJTYPE_DATA_LOST_END 126
794 #define BLF_OBJTYPE_WATER_MARK_EVENT 127
795 #define BLF_OBJTYPE_TRIGGER_CONDITION 128
796 #define BLF_OBJTYPE_CAN_SETTING_CHANGED 129
797 #define BLF_OBJTYPE_DISTRIBUTED_OBJECT_MEMBER 130
798 #define BLF_OBJTYPE_ATTRIBUTE_EVENT 131
799 #define BLF_OBJTYPE_DISTRIBUTED_OBJECT_CHANGE 132
800 #define BLF_OBJTYPE_ETHERNET_PHY_STATE 133
801 
802 #endif
803 
804 /*
805  * Editor modelines - https://www.wireshark.org/tools/modelines.html
806  *
807  * Local variables:
808  * c-basic-offset: 4
809  * tab-width: 8
810  * indent-tabs-mode: nil
811  * End:
812  *
813  * vi: set shiftwidth=4 tabstop=8 expandtab:
814  * :indentSize=4:tabSize=8:noTabs=true:
815  */
Definition: blf.h:601
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:658
Definition: blf.h:176
Definition: blf.h:630
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:518
Definition: blf.h:566
Definition: blf.h:541
Definition: blf.h:546
Definition: blf.h:491
Definition: blf.h:531
Definition: blf.h:584
Definition: blf.h:508
Definition: blf.h:525
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