Home | History | Annotate | Download | only in tools
      1 #!/usr/bin/awk -f
      2 
      3 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 # This script computes the intervals between the time instants of
      8 # contiguous SYN_REPORT packets, and count the number of packets
      9 # with time intervals greater than 1/60 seconds.
     10 # Note: this script is larged borrowed from adlr@'s timing test in shell.
     11 
     12 # Usage: DISPLAY=:0 mtplot tools/awk_process_syn
     13 #  Note: You need to press 'q' instead of ctrl-c to exit mtplot
     14 #        in order to print the count of large intervals.
     15 
     16 
     17 BEGIN {
     18   previous = 0;
     19   count_packets = 0;
     20   count_large = 0;
     21 }
     22 
     23 /SYN_REPORT/ {
     24   if (previous == 0) {
     25     previous = $3;
     26   } else {
     27     current = $3;
     28     interval = current - previous;
     29     previous = current;
     30     count_packets++;
     31     if (interval > 1.0 / 60) {
     32       mark = "*****";
     33       count_large++;
     34     } else {
     35       mark = "     ";
     36     }
     37     template = "  %s interval: %.6f   (%s)\n";
     38     printf(template, mark, interval, $0);
     39   }
     40 }
     41 
     42 END {
     43   msg = "\nthe count of large intervals: %d out of %d packets\n\n"
     44   printf(msg, count_large, count_packets);
     45 }
     46 
     47