Changeset 4423dc7


Ignore:
Timestamp:
12/03/07 23:11:00 (13 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:
fdc7502
Parents:
25024fd
Message:

Add support to various tools for outputting the number of dropped packets
they've seen

Location:
tools
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • tools/tracereport/Makefile.am

    rc20af2a r4423dc7  
    2626        ecn_report.c\
    2727        tcpsegment_report.c\
     28        drops_report.c\
    2829        contain.h\
    2930        report.h\
  • tools/tracereport/report.h

    r7be3cc4 r4423dc7  
    1616void tcpseg_per_packet(struct libtrace_packet_t *packet);
    1717
     18void drops_per_trace(libtrace_t *trace);
     19
    1820void dir_report(void);
    1921void error_report(void);
     
    2931void ecn_report(void);
    3032void tcpseg_report(void);
     33void drops_report(void);
    3134
    3235#endif
  • tools/tracereport/tracereport.c

    r2cf30f6 r4423dc7  
    120120                        tcpseg_per_packet(packet);
    121121        }
     122        if (reports_required & REPORT_TYPE_DROPS)
     123                drops_per_trace(trace);
    122124        trace_destroy(trace);
    123125}
     
    158160                int option_index;
    159161                struct option long_options[] = {
     162                        { "ecn",                0, 0, 'C' },
     163                        { "direction",          0, 0, 'd' },
     164                        { "drops",              0, 0, 'D' },
     165                        { "error",              0, 0, 'e' },
     166                        { "flow",               0, 0, 'F' },
    160167                        { "filter",             1, 0, 'f' },
    161168                        { "help",               0, 0, 'H' },
    162                         { "error",              0, 0, 'e' },
    163                         { "flow",               0, 0, 'F' },
     169                        { "misc",               0, 0, 'm' },
     170                        { "nlp",                0, 0, 'n' },
     171                        { "tcpoptions",         0, 0, 'O' },
     172                        { "synoptions",         0, 0, 'o' },
    164173                        { "protocol",           0, 0, 'P' },
    165174                        { "port",               0, 0, 'p' },
    166                         { "misc",               0, 0, 'm' },
     175                        { "tcpsegment",         0, 0, 's' },
    167176                        { "tos",                0, 0, 'T' },
    168177                        { "ttl",                0, 0, 't' },
    169                         { "tcpoptions",         0, 0, 'O' },
    170                         { "synoptions",         0, 0, 'o' },
    171                         { "nlp",                0, 0, 'n' },
    172                         { "direction",          0, 0, 'd' },
    173                         { "ecn",                0, 0, 'C' },
    174                         { "tcpsegment",         0, 0, 's' },
    175178                        { NULL,                 0, 0, 0 }
    176179                };
    177                 opt = getopt_long(argc, argv, "f:HemFPpTtOondCsl:",
     180                opt = getopt_long(argc, argv, "Df:HemFPpTtOondCsl:",
    178181                                long_options, &option_index);
    179182                if (opt == -1)
     
    186189                        case 'd':
    187190                                reports_required |= REPORT_TYPE_DIR;
     191                                break;
     192                        case 'D':
     193                                reports_required |= REPORT_TYPE_DROPS;
    188194                                break;
    189195                        case 'e':
     
    284290        if (reports_required & REPORT_TYPE_TCPSEG)
    285291                tcpseg_report();
     292        if (reports_required & REPORT_TYPE_DROPS)
     293                drops_report();
    286294        return 0;
    287295}
  • tools/tracereport/tracereport.h

    rc20af2a r4423dc7  
    2121        REPORT_TYPE_SYNOPT = 1 << 11,
    2222        REPORT_TYPE_LOCALITY = 1 << 12, /* No longer used by libtrace */
    23         REPORT_TYPE_MISC = 1 << 13
     23        REPORT_TYPE_MISC = 1 << 13,
     24        REPORT_TYPE_DROPS = 1<< 14
    2425} report_type_t;
    2526
  • tools/tracesplit/tracesplit.c

    rcd1fd75 r4423dc7  
    3939        "-H --libtrace-help     Print libtrace runtime documentation\n"
    4040        "-S --snaplen           Snap packets at the specified length\n"
     41        "-v --verbose           Output statistics\n"
    4142        ,argv0);
    4243        exit(1);
     
    7071        uint64_t filescreated = 0;
    7172        uint16_t snaplen = 0;
     73        int verbose=0;
    7274       
    7375        if (argc<2) {
     
    8991                        { "maxfiles",      1, 0, 'm' },
    9092                        { "snaplen",       1, 0, 'S' },
     93                        { "verbose",       0, 0, 'v' },
    9194                        { NULL,            0, 0, 0   },
    9295                };
    9396
    94                 int c=getopt_long(argc, argv, "f:c:b:s:e:i:m:S:H",
     97                int c=getopt_long(argc, argv, "f:c:b:s:e:i:m:S:Hv",
    9598                                long_options, &option_index);
    9699
     
    118121                                  trace_help();
    119122                                  exit(1);
     123                                  break;
     124                        case 'v':
     125                                  verbose++;
    120126                                  break;
    121127                        default:
     
    250256                trace_perror(input, "Reading packets");
    251257        }
     258
     259        if (verbose) {
     260                uint64_t f;
     261                f=trace_get_received_packets(input);
     262                if (f!=UINT64_MAX)
     263                        fprintf(stderr,"%" PRIu64 " packets on input\n",f);
     264                f=trace_get_filtered_packets(input);
     265                if (f!=UINT64_MAX)
     266                        fprintf(stderr,"%" PRIu64 " packets filtered\n",f);
     267                f=trace_get_dropped_packets(input);
     268                if (f!=UINT64_MAX)
     269                        fprintf(stderr,"%" PRIu64 " packets dropped\n",f);
     270                f=trace_get_accepted_packets(input);
     271                if (f!=UINT64_MAX)
     272                        fprintf(stderr,"%" PRIu64 " packets accepted\n",f);
     273        }
    252274       
    253275        trace_destroy(input);
  • tools/tracestats/tracestats.c

    rfbc4342 r4423dc7  
    8585        uint64_t count = 0;
    8686        uint64_t bytes = 0;
     87        uint64_t packets;
    8788
    8889        fprintf(stderr,"%s:\n",uri);
     
    134135                filters[i].count=0;
    135136        }
     137        packets=trace_get_received_packets(trace);
     138        if (packets!=UINT64_MAX)
     139                fprintf(stderr,"%30s:\t%12" PRIu64"\n",
     140                                "Input packets", packets);
     141        packets=trace_get_filtered_packets(trace);
     142        if (packets!=UINT64_MAX)
     143                fprintf(stderr,"%30s:\t%12" PRIu64"\n",
     144                                "Filtered packets", packets);
     145        packets=trace_get_dropped_packets(trace);
     146        if (packets!=UINT64_MAX)
     147                fprintf(stderr,"%30s:\t%12" PRIu64"\n",
     148                                "Dropped packets",packets);
     149        packets=trace_get_accepted_packets(trace);
     150        if (packets!=UINT64_MAX)
     151                fprintf(stderr,"%30s:\t%12" PRIu64 "\n",
     152                                "Accepted Packets",packets);
    136153        printf("%30s:\t%12"PRIu64"\t%12" PRIu64 "\n","Total",count,bytes);
    137154        totcount+=count;
Note: See TracChangeset for help on using the changeset viewer.