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 17BEGIN { 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 42END { 43 msg = "\nthe count of large intervals: %d out of %d packets\n\n" 44 printf(msg, count_large, count_packets); 45} 46 47