source: lib/dagformat.h @ e2aebe7

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

Change the API for filters to

trace_create_filter
trace_apply_filter
trace_destroy_filter

Also, cleanup bitfield issues with msvc/gcc

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