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