Changeset 1fbd938 for lib


Ignore:
Timestamp:
02/16/06 11:56:02 (15 years ago)
Author:
Perry Lorier <perry@…>
Branches:
4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
Children:
880aa58
Parents:
ee5e4c7
Message:

More -pedantic cleanups
Changed the format structure (again) for pause and seek support

Location:
lib
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • lib/format_erf.c

    ree5e4c7 r1fbd938  
    861861        NULL,                           /* config_input */
    862862        NULL,                           /* start_input */
     863        NULL,                           /* pause_input */
    863864        erf_init_output,                /* init_output */
    864865        erf_config_output,              /* config_output */
     
    874875        NULL,                           /* get_timeval */
    875876        NULL,                           /* get_seconds */
     877        NULL,                           /* seek_erf */
     878        NULL,                           /* seek_timeval */
     879        NULL,                           /* seek_seconds */
    876880        erf_get_capture_length,         /* get_capture_length */
    877881        erf_get_wire_length,            /* get_wire_length */
     
    921925        NULL,                           /* config_input */
    922926        NULL,                           /* start_input */
     927        NULL,                           /* pause_input */
    923928        NULL,                           /* init_output */
    924929        NULL,                           /* config_output */
     
    934939        NULL,                           /* get_timeval */
    935940        NULL,                           /* get_seconds */
     941        NULL,                           /* seek_erf */
     942        NULL,                           /* seek_timeval */
     943        NULL,                           /* seek_seconds */
    936944        erf_get_capture_length,         /* get_capture_length */
    937945        erf_get_wire_length,            /* get_wire_length */
  • lib/format_legacy.c

    r6eb91ff r1fbd938  
    279279        NULL,                           /* config_input */
    280280        NULL,                           /* start_input */
     281        NULL,                           /* pause_input */
    281282        NULL,                           /* init_output */
    282283        NULL,                           /* config_output */
     
    292293        NULL,                           /* get_timeval */
    293294        NULL,                           /* get_seconds */
     295        NULL,                           /* seek_erf */
     296        NULL,                           /* seek_timeval */
     297        NULL,                           /* seek_seconds */
    294298        legacy_get_capture_length,      /* get_capture_length */
    295299        legacyatm_get_wire_length,      /* get_wire_length */
     
    308312        NULL,                           /* config_input */
    309313        NULL,                           /* start_input */
     314        NULL,                           /* pause_input */
    310315        NULL,                           /* init_output */
    311316        NULL,                           /* config_output */
     
    321326        NULL,                           /* get_timeval */
    322327        NULL,                           /* get_seconds */
     328        NULL,                           /* seek_erf */
     329        NULL,                           /* seek_timeval */
     330        NULL,                           /* seek_seconds */
    323331        legacy_get_capture_length,      /* get_capture_length */
    324332        legacyeth_get_wire_length,      /* get_wire_length */
     
    337345        NULL,                           /* config_input */
    338346        NULL,                           /* start_input */
     347        NULL,                           /* pause_input */
    339348        NULL,                           /* init_output */
    340349        NULL,                           /* config_output */
     
    350359        NULL,                           /* get_timeval */
    351360        NULL,                           /* get_seconds */
     361        NULL,                           /* seek_erf */
     362        NULL,                           /* seek_timeval */
     363        NULL,                           /* seek_seconds */
    352364        legacy_get_capture_length,      /* get_capture_length */
    353365        legacypos_get_wire_length,      /* get_wire_length */
  • lib/format_pcap.c

    r6eb91ff r1fbd938  
    421421        NULL,                           /* config_input */
    422422        NULL,                           /* start_input */
     423        NULL,                           /* pause_input */
    423424        pcap_init_output,               /* init_output */
    424425        NULL,                           /* config_output */
     
    434435        pcap_get_timeval,               /* get_timeval */
    435436        NULL,                           /* get_seconds */
     437        NULL,                           /* seek_erf */
     438        NULL,                           /* seek_timeval */
     439        NULL,                           /* seek_seconds */
    436440        pcap_get_capture_length,        /* get_capture_length */
    437441        pcap_get_wire_length,           /* get_wire_length */
     
    450454        NULL,                           /* config_input */
    451455        NULL,                           /* start_input */
     456        NULL,                           /* pause_input */
    452457        pcapint_init_output,            /* init_output */
    453458        NULL,                           /* config_output */
     
    463468        pcap_get_timeval,               /* get_timeval */
    464469        NULL,                           /* get_seconds */
     470        NULL,                           /* seek_erf */
     471        NULL,                           /* seek_timeval */
     472        NULL,                           /* seek_seconds */
    465473        pcap_get_capture_length,        /* get_capture_length */
    466474        pcap_get_wire_length,           /* get_wire_length */
  • lib/format_rt.c

    r70b38dc r1fbd938  
    6868#define RT_INFO libtrace->format_data
    6969
     70char *rt_deny_reason(uint8_t reason) {
     71        char *string = 0;
     72
     73        switch(reason) {
     74                case RT_DENY_WRAPPER:
     75                        string = "Rejected by TCP Wrappers";
     76                        break;
     77                case RT_DENY_FULL:
     78                        string = "Max connections reached on server";
     79                        break;
     80                case RT_DENY_AUTH:
     81                        string = "Authentication failed";
     82                        break;
     83                default:
     84                        string = "Unknown reason";
     85        }
     86
     87        return string;
     88}
     89
     90
    7091struct libtrace_format_data_t {
    7192        char *hostname;
     
    107128        }
    108129       
    109         // We are connected, now receive message from server
     130        /* We are connected, now receive message from server */
    110131       
    111132        if (recv(RT_INFO->input_fd, &connect_msg, sizeof(rt_header_t), 0) != sizeof(rt_header_t) ) {
     
    484505        "$Id$",
    485506        "rt",
    486         rt_init_input,            /* init_input */
     507        rt_init_input,                  /* init_input */
    487508        NULL,                           /* config_input */
    488         rt_start_input,           /* start_input */
     509        rt_start_input,                 /* start_input */
    489510        NULL,                           /* init_output */
    490511        NULL,                           /* config_output */
    491512        NULL,                           /* start_output */
    492         rt_fin_input,             /* fin_input */
     513        NULL,                           /* pause_output */
     514        rt_fin_input,                   /* fin_input */
    493515        NULL,                           /* fin_output */
    494         rt_read_packet,           /* read_packet */
     516        rt_read_packet,                 /* read_packet */
    495517        NULL,                           /* write_packet */
    496518        NULL,                           /* get_link_type */
     
    500522        NULL,                           /* get_timeval */
    501523        NULL,                           /* get_seconds */
     524        NULL,                           /* seek_erf */
     525        NULL,                           /* seek_timeval */
     526        NULL,                           /* seek_seconds */
    502527        NULL,                           /* get_capture_length */
    503528        NULL,                           /* get_wire_length */
  • lib/format_wag.c

    r49babe0 r1fbd938  
    306306        }
    307307
    308         buf_ptr = buffer + sizeof (struct frame_t);
     308        buf_ptr = (void*)((char*)buffer + sizeof (struct frame_t));
    309309        to_read = framesize - sizeof(struct frame_t);
    310310       
     
    318318            return -1;
    319319          }
    320 
    321           // assert(ret>0);
    322320
    323321          to_read = to_read - ret;
     
    494492        NULL,                           /* config_input */
    495493        NULL,                           /* start_input */
     494        NULL,                           /* pause_input */
    496495        NULL,                           /* init_output */
    497496        NULL,                           /* config_output */
     
    507506        NULL,                           /* get_timeval */
    508507        NULL,                           /* get_seconds */
     508        NULL,                           /* seek_erf */
     509        NULL,                           /* seek_timeval */
     510        NULL,                           /* seek_seconds */
    509511        wag_get_capture_length,         /* get_capture_length */
    510512        wag_get_wire_length,            /* get_wire_length */
     
    525527        NULL,                           /* config input */
    526528        NULL,                           /* start input */
     529        NULL,                           /* pause_input */
    527530        wtf_init_output,                /* init_output */
    528531        wtf_config_output,              /* config_output */
     
    538541        NULL,                           /* get_timeval */
    539542        NULL,                           /* get_seconds */
     543        NULL,                           /* seek_erf */
     544        NULL,                           /* seek_timeval */
     545        NULL,                           /* seek_seconds */
    540546        wag_get_capture_length,         /* get_capture_length */
    541547        wag_get_wire_length,            /* get_wire_length */
  • lib/libtrace.h

    r49babe0 r1fbd938  
    9595        void *buffer;
    9696        size_t size;
    97         uint8_t type;           // rt protocol type for the packet
     97        uint8_t type;           /* rt protocol type for the packet */
    9898        buf_control_t buf_control;
    9999} libtrace_packet_t;
     
    308308 *
    309309 *  If an error occured when attempting to open the trace file, NULL is returned
    310  *  and trace_errno is set. Use trace_perror() to get more information
     310 *  and trace_errno is set. Use trace_perror() to get more information. 
     311 *  The trace is created in the configuration state, you must call trace_start
     312 *  to start the capture.
    311313 */
    312314struct libtrace_t *trace_create(const char *uri);
     
    347349 */
    348350int trace_start(libtrace_t *libtrace);
     351
     352/** Pause the capture
     353 * @param libtrace      The trace to pause
     354 * @return 0 on success
     355 *
     356 * This stops a capture in progress and returns you to the configuration
     357 * state.  Any packets that arrive after trace_pause() has been called
     358 * will be discarded.  To resume capture, call trace_start().
     359 */
     360int trace_pause(libtrace_t *libtrace);
    349361
    350362/** Start an output trace
     
    413425 */
    414426void trace_destroy_output(libtrace_out_t *trace);
     427
    415428/*@}*/
    416429
     
    681694/** Get the length of the capture framing headers.
    682695 * @param packet        the packet opaque pointer
    683  * @return the size of the framing header.
     696 * @return the size of the packet as it was on the wire.
    684697 * @author Perry Lorier
    685698 * @author Daniel Lawson
     
    698711 */
    699712size_t trace_set_capture_length(libtrace_packet_t *packet, size_t size);
     713
     714/** Seek within a trace
     715 * @param trace         trace to seek
     716 * @param seconds       time to seek to
     717 * @return 0 on success.
     718 * Make the next packet read to be the first packet to occur at or after the
     719 * time searched for.  This must be called in the configuration state (ie,
     720 * before trace_start() or after trace_pause().
     721 * @note This function may be extremely slow.
     722 */
     723int trace_seek_seconds(libtrace_t *trace, double seconds);
     724
     725/** Seek within a trace
     726 * @param trace         trace to seek
     727 * @param tv            time to seek to
     728 * @return 0 on success.
     729 * Make the next packet read to be the first packet to occur at or after the
     730 * time searched for.  This must be called in the configuration state (ie,
     731 * before trace_start() or after trace_pause().
     732 * @note This function may be extremely slow.
     733 */
     734int trace_seek_timeval(libtrace_t *trace, struct timeval tv);
    700735
    701736/*@}*/
  • lib/libtrace_int.h

    r6eb91ff r1fbd938  
    160160        char *version;
    161161        char *type;
    162         int (*init_input)(struct libtrace_t *libtrace);
    163         int (*config_input)(struct libtrace_t *libtrace,trace_option_t option,void *value);
    164         int (*start_input)(struct libtrace_t *libtrace);
    165         int (*init_output)(struct libtrace_out_t *libtrace);
    166         int (*config_output)(struct libtrace_out_t *libtrace, trace_option_output_t, void *);
    167         int (*start_output)(struct libtrace_out_t *libtrace);
    168         int (*fin_input)(struct libtrace_t *libtrace);
    169         int (*fin_output)(struct libtrace_out_t *libtrace);
    170         int (*read_packet)(struct libtrace_t *libtrace, struct libtrace_packet_t *packet);
    171         int (*write_packet)(struct libtrace_out_t *libtrace, const struct libtrace_packet_t *packet);
    172         libtrace_linktype_t (*get_link_type)(const struct libtrace_packet_t *packet);
    173         int8_t (*get_direction)(const struct libtrace_packet_t *packet);
    174         int8_t (*set_direction)(const struct libtrace_packet_t *packet, int8_t direction);
    175         uint64_t (*get_erf_timestamp)(const struct libtrace_packet_t *packet);
    176         struct timeval (*get_timeval)(const struct libtrace_packet_t *packet);
    177         double (*get_seconds)(const struct libtrace_packet_t *packet);
    178         int (*get_capture_length)(const struct libtrace_packet_t *packet);
    179         int (*get_wire_length)(const struct libtrace_packet_t *packet);
    180         int (*get_framing_length)(const struct libtrace_packet_t *packet);
     162        int (*init_input)(libtrace_t *libtrace);
     163        int (*config_input)(libtrace_t *libtrace,trace_option_t option,void *value);
     164        int (*start_input)(libtrace_t *libtrace);
     165        int (*pause_input)(libtrace_t *libtrace);
     166        int (*init_output)(libtrace_out_t *libtrace);
     167        int (*config_output)(libtrace_out_t *libtrace, trace_option_output_t, void *);
     168        int (*start_output)(libtrace_out_t *libtrace);
     169        int (*fin_input)(libtrace_t *libtrace);
     170        int (*fin_output)(libtrace_out_t *libtrace);
     171        int (*read_packet)(libtrace_t *libtrace, struct libtrace_packet_t *packet);
     172        int (*write_packet)(libtrace_out_t *libtrace, const libtrace_packet_t *packet);
     173        libtrace_linktype_t (*get_link_type)(const libtrace_packet_t *packet);
     174        int8_t (*get_direction)(const libtrace_packet_t *packet);
     175        int8_t (*set_direction)(const libtrace_packet_t *packet, int8_t direction);
     176        uint64_t (*get_erf_timestamp)(const libtrace_packet_t *packet);
     177        struct timeval (*get_timeval)(const libtrace_packet_t *packet);
     178        double (*get_seconds)(const libtrace_packet_t *packet);
     179        int (*seek_erf)(libtrace_t *trace, uint64_t timestamp);
     180        int (*seek_timeval)(libtrace_t *trace, struct timeval tv);
     181        int (*seek_seconds)(libtrace_t *trace, double seconds);
     182        int (*get_capture_length)(const libtrace_packet_t *packet);
     183        int (*get_wire_length)(const libtrace_packet_t *packet);
     184        int (*get_framing_length)(const libtrace_packet_t *packet);
    181185        size_t (*set_capture_length)(struct libtrace_packet_t *packet,size_t size);
    182         int (*get_fd)(const struct libtrace_packet_t *packet);
    183         struct libtrace_eventobj_t (*trace_event)(struct libtrace_t *trace, struct libtrace_packet_t *packet); 
     186        int (*get_fd)(const libtrace_packet_t *packet);
     187        struct libtrace_eventobj_t (*trace_event)(libtrace_t *trace, libtrace_packet_t *packet);       
    184188        void (*help)();
    185189};
  • lib/rt_protocol.h

    r20b7e75 r1fbd938  
    77#define COLLECTOR_PORT 3435
    88
    9 // Type field definitions
    10 #define RT_HELLO        0       /* Connection accepted */
    11 #define RT_DATA         1       /* Libtrace data packet */
    12 #define RT_START        2       /* Request for data transmission to begin */
    13 #define RT_ACK          3       /* Data acknowledgement */
    14 #define RT_STATUS       4       /* Fifo status packet */
    15 #define RT_DUCK         5       /* Dag duck info packet */
    16 #define RT_END_DATA     6       /* Server is exiting message */
    17 #define RT_CLOSE        7       /* Client is exiting message */
    18 #define RT_DENY_CONN    8       /* Connection has been denied */
    19 #define RT_PAUSE        9       /* Request server to suspend sending data */
    20 #define RT_PAUSE_ACK    10      /* Server is paused message */
    21 #define RT_OPTION       11      /* Option request */
     9/* Type field definitions */
     10enum rt_field_t {
     11 RT_HELLO       =0,     /* Connection accepted */
     12 RT_DATA        =1,     /* Libtrace data packet */
     13 RT_START       =2,     /* Request for data transmission to begin */
     14 RT_ACK         =3,     /* Data acknowledgement */
     15 RT_STATUS      =4,     /* Fifo status packet */
     16 RT_DUCK        =5,     /* Dag duck info packet */
     17 RT_END_DATA    =6,     /* Server is exiting message */
     18 RT_CLOSE       =7,     /* Client is exiting message */
     19 RT_DENY_CONN   =8,     /* Connection has been denied */
     20 RT_PAUSE       =9,     /* Request server to suspend sending data */
     21 RT_PAUSE_ACK   =10,    /* Server is paused message */
     22 RT_OPTION      =11     /* Option request */
     23};
    2224
    23 // Format field definitions
    24 #define RT_FORMAT_ERF           1
    25 #define RT_FORMAT_PCAP          2
    26 #define RT_FORMAT_WAG           3
     25/* Format field definitions */
     26enum rt_format_t {
     27 RT_FORMAT_ERF          =1,
     28 RT_FORMAT_PCAP         =2,
     29 RT_FORMAT_WAG          =3
     30};
    2731
    2832typedef struct fifo_state {
     
    3438} fifo_state_t;
    3539
    36 // RT packet header
     40/* RT packet header */
    3741typedef struct rt_header {
    38         uint8_t type;
     42        enum rt_field_t type;
    3943        uint16_t length;
    4044} rt_header_t;
     
    6266
    6367typedef struct rt_duck {
    64         //duckinf_t duck;
     68        /*duckinf_t duck; */
    6569} rt_duck_t;
    6670
     
    7478
    7579
    76 // Connection denied reasons
    77 #define RT_DENY_WRAPPER         1
    78 #define RT_DENY_FULL            2
    79 #define RT_DENY_AUTH            3
     80/* Connection denied reasons */
     81enum rt_conn_denied_t {
     82 RT_DENY_WRAPPER        =1,
     83 RT_DENY_FULL           =2,
     84 RT_DENY_AUTH           =3
     85};
    8086
    8187typedef struct rt_deny_conn {
    82         uint8_t reason;
     88        enum rt_conn_denied_t reason;
    8389} rt_deny_conn_t;
    8490
     
    97103
    98104
    99 char *rt_deny_reason(uint8_t reason) {
    100         char *string = 0;
    101 
    102         switch(reason) {
    103                 case RT_DENY_WRAPPER:
    104                         string = "Rejected by TCP Wrappers";
    105                         break;
    106                 case RT_DENY_FULL:
    107                         string = "Max connections reached on server";
    108                         break;
    109                 case RT_DENY_AUTH:
    110                         string = "Authentication failed";
    111                         break;
    112                 default:
    113                         string = "Unknown reason";
    114         }
    115 
    116         return string;
    117 }
    118 
    119105
    120106
  • lib/trace.c

    r49babe0 r1fbd938  
    446446}
    447447
     448int trace_pause(libtrace_t *libtrace)
     449{
     450        assert(libtrace);
     451        assert(libtrace->started && "BUG: Called trace_pause without calling trace_start first");
     452        if (libtrace->format->pause_input)
     453                libtrace->format->pause_input(libtrace);
     454        libtrace->started=false;
     455        return 0;
     456}
     457
    448458/* Parses an output options string and calls the appropriate function to deal with output options.
    449459 *
     
    590600                case TRACE_TYPE_80211_PRISM:
    591601                        {
    592                                 struct ieee_802_11_header *wifi = (char*)trace_get_link(packet)+144;
     602                                struct ieee_802_11_header *wifi =
     603                                        (void*)(
     604                                         (char*)trace_get_link(packet)+144);
    593605                                if (!wifi) {
    594606                                        ipptr = NULL;
     
    605617
    606618                                        if (ntohs(eth->type) == 0x0800) {
    607                                             ipptr=((void*)eth) + sizeof(*eth);
     619                                            ipptr=(void*)
     620                                                    ((char*)eth + sizeof(*eth));
    608621                                        } else if (ntohs(eth->type) == 0x8100) {
    609622                                            struct libtrace_8021q *vlanhdr =
     
    611624                                            if (ntohs(vlanhdr->vlan_ether_type)
    612625                                                            == 0x0800) {
    613                                                 ipptr=((void*)eth) +
    614                                                         sizeof(*vlanhdr);
     626                                                ipptr=(void*)(
     627                                                 (char*)eth+sizeof(*vlanhdr));
    615628                                            }
    616629                                        }
     
    636649
    637650                                        if (ntohs(eth->type) == 0x0800) {
    638                                             ipptr=((void*)eth) + sizeof(*eth);
     651                                            ipptr=(void*)((char*)eth + sizeof(*eth));
    639652                                        } else if (ntohs(eth->type) == 0x8100) {
    640653                                            struct libtrace_8021q *vlanhdr =
     
    642655                                            if (ntohs(vlanhdr->vlan_ether_type)
    643656                                                            == 0x0800) {
    644                                                 ipptr=((void*)eth) +
    645                                                         sizeof(*vlanhdr);
     657                                                ipptr=(void*)((char*)eth +
     658                                                        sizeof(*vlanhdr));
    646659                                            }
    647660                                        }
     
    661674                               
    662675                                if (ntohs(eth->ether_type)==0x0800) {
    663                                         ipptr = ((void *)eth) + sizeof(*eth);
     676                                        ipptr = (void*)((char *)eth + sizeof(*eth));
    664677                                } else if (ntohs(eth->ether_type) == 0x8100) {
    665678                                        struct libtrace_8021q *vlanhdr =
     
    667680                                        if (ntohs(vlanhdr->vlan_ether_type)
    668681                                                        == 0x0800) {
    669                                                 ipptr = ((void *)eth) +
    670                                                         sizeof(*vlanhdr);
     682                                                ipptr = (void*)((char *)eth +
     683                                                        sizeof(*vlanhdr));
    671684                                        }
    672685                                }
     
    689702                                }
    690703                                else {
    691                                         ipptr = ((void*)sll)+sizeof(*sll);
     704                                        ipptr = (void*)((char*)sll+
     705                                                        sizeof(*sll));
    692706                                }
    693707                        }
     
    704718                                        ipptr = NULL;
    705719                                } else {
    706                                         ipptr = ((void*)pflog)+sizeof(*pflog);
     720                                        ipptr = (void*)((char*)pflog+
     721                                                sizeof(*pflog));
    707722                                }
    708723                        }
     
    714729                                        trace_get_link(packet);
    715730                                if (ntohs(pos->ether_type) == 0x0800) {
    716                                         ipptr = ((void *)pos) + sizeof(*pos);
     731                                        ipptr=(void*)((char *)pos+sizeof(*pos));
    717732                                } else {
    718                                         ipptr = NULL;
     733                                        ipptr=NULL;
    719734                                }
    720735                                break;
     
    732747                                 * don't have time!
    733748                                 */
    734                                 llc = (void *)llc + 4;
     749                                llc = (void*)((char *)llc + 4);
    735750                                if (ntohs(llc->type) == 0x0800) {
    736                                         ipptr = ((void *)llc) + sizeof(*llc);
     751                                        ipptr=(void*)((char*)llc+sizeof(*llc));
    737752                                } else {
    738753                                        ipptr = NULL;
  • lib/wag.h

    r49babe0 r1fbd938  
    3232#define _WAG_H
    3333
    34 // This is the WAG magic number - used to delimit frames
     34/* This is the WAG magic number - used to delimit frames */
    3535#define WAG_MAGIC               (0xdaa1)
    3636
    37 // Define frame types
     37/* Define frame types */
    3838#define FRAME_TYPE_DATA         (0x0000)
    3939#define FRAME_TYPE_UNDEFINED    (0xffff)
    4040
    41 // Define frame subtypes
     41/* Define frame subtypes */
    4242#define FRAME_SUBTYPE_DATA_RX   (0x0000)
    4343#define FRAME_SUBTYPE_DATA_TX   (0x0001)
    4444
    45 // This is the common part of the frame header.
    46 // We synchronise by scanning a stream to look for the magic number (WAG_MAGIC).
    47 // We can then tell the size and type of this frame, and pass over it if necessary.
     45/* This is the common part of the frame header.
     46 * We synchronise by scanning a stream to look for the magic number (WAG_MAGIC).
     47 * We can then tell the size and type of this frame, and pass over it if necessary.
     48 */
    4849struct frame_t {
    49   uint16_t magic;                                   // magic number (0xdaa1)
    50   uint16_t size;                                    // total frame size in bytes
    51   uint16_t type;                                    // frame type
    52   uint16_t subtype;                                 // frame subtype
     50  uint16_t magic;                                   /* magic number (0xdaa1) */
     51  uint16_t size;                                    /* total frame size in bytes */
     52  uint16_t type;                                    /* frame type */
     53  uint16_t subtype;                                 /* frame subtype */
    5354};
    5455
    55 ///////////////////////////////////////////////////////////////////////////////////
     56/*/////////////////////////////////////////////////////////////////////////////////
    5657//
    5758// Frames that the radio part of the WAG framework understands
     
    5960///////////////////////////////////////////////////////////////////////////////////
    6061// Common subfields...
     62*/
    6163
    62 // timestamp
     64/* timestamp */
    6365struct timestamp_t {
    64   uint32_t           secs;                          // seconds since start of 01-01-1970
    65   uint32_t           subsecs;                       // (1/(2^32))ths of a second
     66  uint32_t           secs;                          /* seconds since start of 01-01-1970 */
     67  uint32_t           subsecs;                       /* (1/(2^32))ths of a second */
    6668};
    6769
    68 // frame stream information
     70/* frame stream information */
    6971struct strinfo_t {
    7072  uint16_t unused_1;
     
    7476};
    7577
    76 // Type: DATA, Subtype: RX
     78/* Type: DATA, Subtype: RX */
    7779struct frame_data_rx_t {
    78   struct frame_t                 hdr;               // common frame header
    79   struct strinfo_t               strinfo;           // stream status
    80   struct timestamp_t             ts;                // timestamp of reception of this frame
     80  struct frame_t                 hdr;               /* common frame header */
     81  struct strinfo_t               strinfo;           /* stream status */
     82  struct timestamp_t             ts;                /* timestamp of reception of this frame */
    8183  struct {
    82     uint8_t              rssi;                      // receive signal strength of this frame
    83     uint8_t              rxstatus;                  // rx status bits from the modem
    84     uint16_t             length;                    // length in bytes of the frame payload
     84    uint8_t              rssi;                      /* receive signal strength of this frame */
     85    uint8_t              rxstatus;                  /* rx status bits from the modem */
     86    uint16_t             length;                    /* length in bytes of the frame payload */
    8587    struct {
    86       uint8_t  signal;                              // 802.11PLCP signal field
    87       uint8_t  service;                             // 802.11PLCP service field
    88       uint16_t length; } plcp; } rxinfo;            // 802.11PLCP length field (uS)
    89   char                           data[0];           // placeholder to allow payload access
     88      uint8_t  signal;                              /* 802.11PLCP signal field */
     89      uint8_t  service;                             /* 802.11PLCP service field */
     90      uint16_t length; } plcp; } rxinfo;            /* 802.11PLCP length field (uS) */
     91  char                           data[0];           /* placeholder to allow payload access */
    9092};
    9193
    92 // Type: DATA, Subtype: TX
     94/* Type: DATA, Subtype: TX */
    9395struct frame_data_tx_t {
    94   struct frame_t                 hdr;               // common frame header
    95   uint64_t                       unused_1;          //
    96   uint64_t                       unused_2;          //
     96  struct frame_t                 hdr;               /* common frame header */
     97  uint64_t                       unused_1;         
     98  uint64_t                       unused_2;         
    9799  struct {
    98     uint8_t  gain;                                  // tx gain with which to send this packet
    99     uint8_t  mode;                                  // tx mode with which to send this packet
    100     uint16_t length;                                // length in bytes of the frame payload
    101     uint32_t unused_1; }         txinfo;            //
    102   char                           data[0];           // placeholder to allow payload access
     100    uint8_t  gain;                                  /* tx gain with which to send this packet */
     101    uint8_t  mode;                                  /* tx mode with which to send this packet */
     102    uint16_t length;                                /* length in bytes of the frame payload */
     103    uint32_t unused_1; }         txinfo;           
     104  char                           data[0];           /* placeholder to allow payload access */
    103105};
    104106
    105107struct ieee_802_11_header {
    106         uint8_t      protocol:2;
    107         uint8_t      type:2;
    108         uint8_t      subtype:4;
    109         uint8_t      to_ds:1;
    110         uint8_t      from_ds:1;
    111         uint8_t      more_frag:1;
    112         uint8_t      retry:1;
    113         uint8_t      power:1;
    114         uint8_t      more_data:1;
    115         uint8_t      wep:1;
    116         uint8_t      order:1;
    117         uint16_t     duration;
     108        unsigned int      protocol:2;
     109        unsigned int      type:2;
     110        unsigned int      subtype:4;
     111        unsigned int      to_ds:1;
     112        unsigned int      from_ds:1;
     113        unsigned int      more_frag:1;
     114        unsigned int      retry:1;
     115        unsigned int      power:1;
     116        unsigned int      more_data:1;
     117        unsigned int      wep:1;
     118        unsigned int      order:1;
     119        unsigned int     duration;
    118120        uint8_t      mac1[6];
    119121        uint8_t      mac2[6];
Note: See TracChangeset for help on using the changeset viewer.