Changeset bd4bec9 for tools/tracereport/tcpsegment_report.c
- Timestamp:
- 04/27/07 14:11:34 (15 years ago)
- 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:
- f3576f5
- Parents:
- e991529
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tools/tracereport/tcpsegment_report.c
rb5dc60d rbd4bec9 12 12 { 13 13 struct libtrace_tcp *tcp = trace_get_tcp(packet); 14 libtrace_ip_t *ip = trace_get_ip(packet); 14 15 libtrace_direction_t dir = trace_get_direction(packet); 15 int payload, tcplen, ss; 16 int ss; 17 uint16_t ip_len ; 16 18 17 19 if (!tcp) … … 21 23 dir = TRACE_DIR_OTHER; 22 24 23 payload = trace_get_wire_length(packet) - trace_get_capture_length(packet); 24 tcplen = tcp->doff * 4; 25 ss = payload + tcplen; 25 ip_len = ntohs(ip->ip_len); 26 ss = ip_len - (ip->ip_hl * 4); 26 27 27 28 tcpseg_stat[dir][ss].count++; … … 64 65 { 65 66 int i,j; 66 printf("# TCP Segment Size breakdown:\n"); 67 tcpseg_suppress(); 67 FILE *out = fopen("tcpseg.rpt", "w"); 68 if (!out) { 69 perror("fopen"); 70 return; 71 } 72 fprintf(out, "%-16s\t%10s\t%16s %16s\n", 73 "SEGMENT SIZE", 74 "DIRECTION", 75 "BYTES", 76 "PACKETS"); 77 68 78 for(i=0;i<2048;++i) { 69 79 if (tcpseg_stat[0][i].count==0 && 70 80 tcpseg_stat[1][i].count==0 && tcpseg_stat[2][i].count==0) 71 81 continue; 72 printf("%20i:",i);82 fprintf(out, "%16i:",i); 73 83 for(j=0;j<3;j++){ 74 if (tcpseg_stat[j][i].count==0){ 75 if(!suppress[j]) 76 printf("\t%24s"," "); 77 continue; 84 if (j != 0) { 85 fprintf(out, "%16s", " "); 78 86 } 79 printf("\t%12" PRIu64 "\t%12" PRIu64, 87 switch (j) { 88 case 0: 89 fprintf(out, "\t%10s", "Outbound"); 90 break; 91 case 1: 92 fprintf(out, "\t%10s", "Inbound"); 93 break; 94 case 2: 95 fprintf(out, "\t%10s", "Unknown"); 96 break; 97 } 98 fprintf(out, "\t%16llu %16llu\n", 80 99 tcpseg_stat[j][i].bytes, 81 tcpseg_stat[j][i].count); 100 tcpseg_stat[j][i].count); 82 101 } 83 printf("\n");84 102 } 103 fclose(out); 85 104 }
Note: See TracChangeset
for help on using the changeset viewer.