source: lib/dagformat.h @ 7fc01569

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivegetfragoffhelplibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since 7fc01569 was bf66333, checked in by Perry Lorier <perry@…>, 15 years ago

Undo some of the ISO Cification due to the way VS deals with packed bitfield
types.

  • 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
6/* GPP record type defines */
7#define TYPE_LEGACY       0
8#define TYPE_HDLC_POS     1
9#define TYPE_ETH          2
10#define TYPE_ATM          3
11#define TYPE_AAL5         4
12
13#ifdef WIN32
14#pragma pack(push)
15#pragma pack(1)
16#endif
17
18/** GPP Type 1 */
19typedef struct pos_rec {
20        uint32_t  hdlc;
21        uint8_t   pload[1];             /**< payload */
22}  pos_rec_t;
23
24/** GPP Type 2 */
25typedef struct eth_rec {
26        uint8_t   offset;
27        uint8_t   pad;
28        uint8_t   dst[6];
29        uint8_t   src[6];
30        uint16_t  etype;                /**< ether type (?) */
31        uint8_t   pload[1];             /**< payload */
32}  eth_rec_t;
33
34/** GPP Type 3 */
35typedef struct atm_rec {
36        uint32_t  header; 
37        uint8_t   pload[1];             /**< payload */
38}  atm_rec_t;
39
40/** GPP Type 4 */
41typedef struct aal5_rec {
42        uint32_t  header; 
43        uint8_t   pload[1];             /**< payload */
44}  aal5_rec_t;
45
46/** Flags */
47typedef struct flags {
48        uint8_t   iface:2;
49        uint8_t   vlen:1;
50        uint8_t   trunc:1;
51        uint8_t   rxerror:1;
52        uint8_t   dserror:1;
53        uint8_t  pad:2;
54} PACKED flags_t;
55
56/** GPP Global type */
57typedef struct dag_record {
58        uint64_t  ts;           /**< erf timestamp */
59        uint8_t   type;         /**< GPP record type */
60        flags_t   flags;        /**< flags */
61        uint16_t  rlen;         /**< record len (capture+framing) */
62        uint16_t  lctr;         /**< loss counter */
63        uint16_t  wlen;         /**< wire length */
64        union {
65                pos_rec_t       pos;   
66                eth_rec_t       eth;
67                atm_rec_t       atm;
68                aal5_rec_t      aal5;
69        } rec;
70} PACKED dag_record_t;
71
72/** Dynamic(?) Universal Clock Kit Information packet */
73typedef struct duck_inf_pkt {
74        uint32_t  command;
75        uint32_t  config;
76        uint32_t  clock_inc;
77        uint32_t  clock_wrap;
78        uint32_t  DDS_rate;
79        uint32_t  crystal_freq;
80        uint32_t  synth_freq;
81        uint32_t  sync_rate;
82        uint64_t  last_ticks;
83        uint32_t  resyncs;
84        uint32_t  bad_diffs, bad_offs, bad_pulses;
85        uint32_t  worst_error, worst_off;
86        uint32_t  off_limit, off_damp;
87        uint32_t  pulses, single_pulses_missing, longest_pulse_missing;
88        uint32_t  health; 
89        uint32_t  sickness;
90        int32_t   error;
91        int32_t   offset;
92        int32_t   stat_start, stat_end; 
93        uint32_t  set_duck_field;
94} duck_inf;
95
96#ifdef WIN32
97#pragma pack(pop)
98#endif
99
100/** sizeof(dag_record_t) without the payload helpers */
101#define dag_record_size         16
102
103#endif /* _DAGFORMAT_H_ */
Note: See TracBrowser for help on using the repository browser.