source: lib/dagformat.h @ 2faa57e

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivegetfragoffhelplibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since 2faa57e was 2faa57e, checked in by Shane Alcock <salcock@…>, 13 years ago
  • Added a separate .h file for the various ERF types as newer ERF types aren't specified in the DAG 2.4 drivers
  • ERF traces should now return a Option Unavailable error for any unsupported cconfig options, rather than Unknown Option
  • Added a bit of extra documentation to the new thread/mutex related code added to format_dag25.c
  • Property mode set to 100644
File size: 2.3 KB
Line 
1#ifndef _DAGFORMAT_H_
2#define _DAGFORMAT_H_
3
4#include "libtrace.h"
5#include "erftypes.h"
6
7
8
9#ifdef WIN32
10#pragma pack(push)
11#pragma pack(1)
12#endif
13
14/** GPP Type 1 */
15typedef struct pos_rec {
16        uint32_t  hdlc;
17        uint8_t   pload[1];             /**< payload */
18}  pos_rec_t;
19
20/** GPP Type 2 */
21typedef struct eth_rec {
22        uint8_t   offset;
23        uint8_t   pad;
24        uint8_t   dst[6];
25        uint8_t   src[6];
26        uint16_t  etype;                /**< ether type (?) */
27        uint8_t   pload[1];             /**< payload */
28}  eth_rec_t;
29
30/** GPP Type 3 */
31typedef struct atm_rec {
32        uint32_t  header; 
33        uint8_t   pload[1];             /**< payload */
34}  atm_rec_t;
35
36/** GPP Type 4 */
37typedef struct aal5_rec {
38        uint32_t  header; 
39        uint8_t   pload[1];             /**< payload */
40}  aal5_rec_t;
41
42/** Flags */
43typedef struct flags {
44        LT_BITFIELD8  iface:2;          /**< Interface (direction) */
45        LT_BITFIELD8  vlen:1;   
46        LT_BITFIELD8  trunc:1;          /**< Trunacted */
47        LT_BITFIELD8  rxerror:1;        /**< RX Error in this packet/before
48                                          * this packet
49                                          */
50        LT_BITFIELD8  dserror:1;        /**< Data stream error */
51        LT_BITFIELD8  pad:2;            /**< Unused */
52} PACKED flags_t;
53
54/** GPP Global type */
55typedef struct dag_record {
56        uint64_t  ts;           /**< erf timestamp */
57        uint8_t   type;         /**< GPP record type */
58        flags_t   flags;        /**< flags */
59        uint16_t  rlen;         /**< record len (capture+framing) */
60        uint16_t  lctr;         /**< loss counter */
61        uint16_t  wlen;         /**< wire length */
62        union {
63                pos_rec_t       pos;   
64                eth_rec_t       eth;
65                atm_rec_t       atm;
66                aal5_rec_t      aal5;
67        } rec;
68} PACKED dag_record_t;
69
70/** Dynamic(?) Universal Clock Kit Information packet */
71typedef struct duck_inf_pkt {
72        uint32_t  command;
73        uint32_t  config;
74        uint32_t  clock_inc;
75        uint32_t  clock_wrap;
76        uint32_t  DDS_rate;
77        uint32_t  crystal_freq;
78        uint32_t  synth_freq;
79        uint32_t  sync_rate;
80        uint64_t  last_ticks;
81        uint32_t  resyncs;
82        uint32_t  bad_diffs, bad_offs, bad_pulses;
83        uint32_t  worst_error, worst_off;
84        uint32_t  off_limit, off_damp;
85        uint32_t  pulses, single_pulses_missing, longest_pulse_missing;
86        uint32_t  health; 
87        uint32_t  sickness;
88        int32_t   error;
89        int32_t   offset;
90        int32_t   stat_start, stat_end; 
91        uint32_t  set_duck_field;
92} duck_inf;
93
94#ifdef WIN32
95#pragma pack(pop)
96#endif
97
98/** sizeof(dag_record_t) without the payload helpers */
99#define dag_record_size         16U
100
101#endif /* _DAGFORMAT_H_ */
Note: See TracBrowser for help on using the repository browser.