Changeset 752353b


Ignore:
Timestamp:
03/23/09 17:12:37 (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:
35c5a72
Parents:
2528816
Message:

Allow for bits per second measurements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/tracetop/tracetop.cc

    r2528816 r752353b  
    2222typedef enum { BITS_PER_SEC, BYTES } display_t;
    2323display_t display_as = BYTES;
     24int interval=1;
    2425
    2526int cmp_sockaddr_in6(const struct sockaddr_in6 *a, const struct sockaddr_in6 *b)
     
    181182        getmaxyx(stdscr,row,col);
    182183        attrset(A_REVERSE);
    183         mvprintw(0,0,"%20s/%s\t%20s/%s\tproto\tbytes\tpackets\n",
     184        mvprintw(0,0,"%20s/%s\t%20s/%s\tproto\t%s\tpackets\n",
    184185                "source ip","sport",
    185                 "dest ip","dport"
     186                "dest ip","dport",
     187                (display_as == BYTES ? "bytes" : "bits/sec")
    186188                );
    187189        attrset(A_NORMAL);
     
    189191        char dipstr[1024];
    190192        for(int i=0; i<row-2 && !pq.empty(); ++i) {
    191                 mvprintw(i+1,0,"%20s/%-5d\t%20s/%-5d\t%d\t%"PRIu64"\t%"PRIu64"\n",
     193                mvprintw(i+1,0,"%20s/%-5d\t%20s/%-5d\t%d\t",
    192194                                trace_sockaddr2string((struct sockaddr*)&pq.top().sip,
    193195                                        sizeof(struct sockaddr_storage),
     
    198200                                        dipstr,sizeof(dipstr)),
    199201                                pq.top().dport,
    200                                 pq.top().protocol,
    201                                 pq.top().bytes,
    202                                 pq.top().packets);
     202                                pq.top().protocol);
     203                switch (display_as) {
     204                        case BYTES:
     205                                printw("%"PRIu64"\t%"PRIu64"\n",
     206                                                pq.top().bytes,
     207                                                pq.top().packets);
     208                                break;
     209                        case BITS_PER_SEC:
     210                                printw("%8.03f\t%"PRIu64"\n",
     211                                                8.0*pq.top().bytes/interval,
     212                                                pq.top().packets);
     213                }
    203214                pq.pop();
    204215        }
     
    231242                        { "help",               0, 0, 'h' },
    232243                        { "libtrace-help",      0, 0, 'H' },
     244                        { "bits-per-sec",       0, 0, 'b' },
    233245                        { NULL,                 0, 0, 0 }
    234246                };
     
    253265                                trace_help();
    254266                                return 1;
     267                        case 'b':
     268                                display_as = BITS_PER_SEC;
     269                                break;
    255270                        default:
    256271                                fprintf(stderr,"Unknown option: %c\n",c);
     
    304319
    305320                while (trace_read_packet(trace,packet)>0) {
    306                         if (trace_get_seconds(packet) - last_report > 1) {
     321                        if (trace_get_seconds(packet) - last_report >= interval) {
    307322                                do_report();
    308323                                       
Note: See TracChangeset for help on using the changeset viewer.