source: lib/dagformat.h @ 9de8150

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

A lot more documentation

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