Ignore:
Timestamp:
02/26/07 13:48:28 (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:
634089d
Parents:
051618c
Message:

Some tweaks and changes to the SYN option counters and output
Fixed tracesummary which I had broken by adding a line of comments!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/tracereport/synopt_report.c

    r051618c r3bfeb7d  
    1313        bool ts;
    1414        bool ttcp;
     15        bool other;
    1516};
    1617
     
    2223        uint64_t mw;
    2324        uint64_t msw;
     25        uint64_t mt;
    2426        uint64_t all_four;
    2527        uint64_t ts_and_another;
    2628        uint64_t ttcp;
     29        uint64_t other;
    2730};
    2831
    29 struct opt_counter counts = {0,0,0,0,0,0,0,0,0};
     32struct opt_counter counts = {0,0,0,0,0,0,0,0,0,0,0};
    3033uint64_t total_syns = 0;
    3134
    3235void classify_packet(struct tcp_opts opts) {
    33         if (!opts.mss && !opts.sack && !opts.winscale && !opts.ts && !opts.ttcp)
     36        if (!opts.mss && !opts.sack && !opts.winscale && !opts.ts && !opts.ttcp && !opts.other)
    3437        {
    3538                counts.no_options ++;
     
    3740        }
    3841
    39         if (opts.mss && !opts.sack && !opts.winscale && !opts.ts && !opts.ttcp)
     42        if (opts.mss && !opts.sack && !opts.winscale && !opts.ts && !opts.ttcp && !opts.other)
    4043        {
    4144                counts.mss_only ++;
     
    4346        }
    4447
    45         if (!opts.mss && !opts.sack && !opts.winscale && opts.ts && !opts.ttcp)
     48        if (!opts.mss && !opts.sack && !opts.winscale && opts.ts && !opts.ttcp && !opts.other)
    4649        {
    4750                counts.ts_only ++;
     
    5861                counts.msw ++;
    5962       
     63        if (opts.mss && opts.ts && !opts.winscale && !opts.sack)
     64                counts.mt ++;
    6065        if (opts.mss && opts.sack && opts.winscale && opts.ts) {
    6166                counts.all_four ++;
     
    6873        if (opts.ttcp)
    6974                counts.ttcp ++;
    70        
     75        if (opts.other)
     76                counts.other ++;       
    7177}
    7278
     
    7884        int tcp_payload, len;
    7985        unsigned char type, optlen, *data;
    80         struct tcp_opts opts_seen = {false, false, false, false, false};
     86        struct tcp_opts opts_seen = {false, false, false, false, false, false};
    8187       
    8288        if(!tcp)
     
    109115                                opts_seen.winscale = true;
    110116                                break;
     117                        case 4:
     118                                opts_seen.sack = true;
     119                                break;
    111120                        case 5:
    112121                                opts_seen.sack = true;
     
    120129                                opts_seen.ttcp = true;
    121130                                break;
     131                        default:
     132                                opts_seen.other = true;
    122133                }
    123134        }
     
    156167                        (double)(counts.msw) / total_syns * 100.0);
    157168        fprintf(out, "%-20s\t%.2f%%\n",
     169                        "M, T",
     170                        (double)(counts.mt) / total_syns * 100.0);
     171        fprintf(out, "%-20s\t%.2f%%\n",
    158172                        "M, S, W and T",
    159173                        (double)(counts.all_four) / total_syns * 100.0);
    160         fprintf(out, "%-20s\t%.2f%%\n",
    161                         "T and (M or S or W)",
    162                         (double)(counts.ts_and_another) / total_syns * 100.0);
     174        //fprintf(out, "%-20s\t%.2f%%\n",
     175        //              "T and (M or S or W)",
     176        //              (double)(counts.ts_and_another) / total_syns * 100.0);
    163177        fprintf(out, "%-20s\t%.2f%%\n",
    164178                        "T/TCP",
    165179                        (double)(counts.ttcp) / total_syns * 100.0);
     180        fprintf(out, "%-20s\t%.2f%%\n",
     181                        "Other options",
     182                        (double)(counts.other) / total_syns * 100.0);
    166183       
    167184       
Note: See TracChangeset for help on using the changeset viewer.