Ignore:
Timestamp:
02/21/07 14:39:26 (14 years ago)
Author:
Shane Alcock <salcock@…>
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:
09be643
Parents:
c14602f
Message:

Updated tracereport to include all the work Josef has done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/tracereport/tracereport.c

    rd5a27e8 rd4336d5  
    22 * This file is part of libtrace
    33 *
    4  * Copyright (c) 2007 The University of Waikato, Hamilton, New Zealand.
     4 * Copyright (c) 2004 The University of Waikato, Hamilton, New Zealand.
    55 * Authors: Daniel Lawson
    66 *          Perry Lorier
     7 *                      Josef Vodanovich
    78 *         
    89 * All rights reserved.
     
    5051#include <getopt.h>
    5152#include <inttypes.h>
    52 #include "lt_inttypes.h"
     53//#include "lt_inttypes.h"
    5354
    5455#include "libtrace.h"
     
    5960
    6061/* Process a trace, counting packets that match filter(s) */
    61 static void run_trace(char *uri, libtrace_filter_t *filter, int count)
     62void run_trace(char *uri, libtrace_filter_t *filter, int count)
    6263{
    6364        struct libtrace_packet_t *packet = trace_create_packet();
    6465
    6566        fprintf(stderr,"%s:\n",uri);
    66 
    67         trace = trace_create(uri);
     67        trace = trace_create(uri);
     68       
    6869        if (trace_is_err(trace)) {
    6970                trace_perror(trace,"trace_create");
     
    8081        }
    8182
    82         for (;;) {
     83        for (;;) {
    8384                int psize;
    8485                if (count--<1)
    8586                        break;
    86                 if ((psize = trace_read_packet(trace, packet)) <1) {
    87                         break;
    88                 }
    89 
     87                if ((psize = trace_read_packet(trace, packet)) <1) {
     88                        break;
     89                }
    9090                error_per_packet(packet);
    9191                port_per_packet(packet);
     
    9494                ttl_per_packet(packet);
    9595                flow_per_packet(packet);
     96                tcpopt_per_packet(packet);
     97                nlp_per_packet(packet);
    9698                dir_per_packet(packet);
    97 
    98         }
    99 
    100         trace_destroy(trace);
     99                //ecn_per_packet(packet);
     100                //tcpseg_per_packet(packet);
     101        }
     102        trace_destroy(trace);
    101103}
    102104
    103 static void usage(char *argv0)
     105void usage(char *argv0)
    104106{
    105107        fprintf(stderr,"Usage:\n"
    106108        "%s flags traceuri [traceuri...]\n"
    107         "-f --filter            Apply BPF filter. Can be specified multiple times\n"
     109        "-f --filter=bpf        Apply BPF filter. Can be specified multiple times\n"
    108110        "-H --libtrace-help     Print libtrace runtime documentation\n"
    109111        ,argv0);
     
    113115int main(int argc, char *argv[]) {
    114116
    115         libtrace_filter_t *filter = NULL;
     117        int i;
    116118
    117         if (argc<2)
    118                 usage(argv[0]);
     119        /*char *filterstring="host 130.197.127.210"; */
    119120
    120         while(1) {
    121                 int option_index;
    122                 struct option long_options[] = {
    123                                 { "filter",             1, 0, 'f' },
    124                                 { "libtrace-help",      0, 0, 'H' },
    125                                 {NULL,                  0, 0, 0   },
    126                         };
    127                 int c = getopt_long(argc, argv, "f:H",
    128                                 long_options, &option_index);
    129                 if (c == -1)
    130                         break;
    131                 switch(c) {
    132                         case 'f':
    133                                 if (filter != NULL) {
    134                                         fprintf(stderr,"You can only have one filter\n");
    135                                         usage(argv[0]);
    136                                 }
    137                                 filter=trace_create_filter(optarg);
    138                                 break;
    139                         case 'H':
    140                                 trace_help();
    141                                 exit(1);
    142                                 break;
    143                         default:
    144                                 printf("Unknown option: %c\n", c);
    145                                 usage(argv[0]);
    146                 }
    147         }
     121        libtrace_filter_t *filter = NULL;/*trace_bpf_setfilter(filterstring); */
    148122
    149         while(optind < argc) {
    150                 run_trace(argv[optind++],filter,(1<<30));
     123        for(i=1;i<argc;++i) {
     124                run_trace(argv[i],filter,(1<<30));
    151125        }
    152126
     
    157131        port_report();
    158132        ttl_report();
     133        tcpopt_report();
     134        nlp_report();
    159135        dir_report();
    160 
    161         return 0;
     136        //ecn_report();
     137        //tcpseg_report();
     138    return 0;
    162139}
Note: See TracChangeset for help on using the changeset viewer.