source: lib/dagformat.h @ 088533a

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

Don't segfault if you ask for a port on something which has no transport
header

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