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