#!/usr/athena/bin/perl

$|=1;
$hmin = $lmin = 1000000000000000;
$hv = 1000;
$lv = 200;
while(1){
        $n++;
        $size = int(rand(100)+900);
        $usize = $size-8;
        $pout = `ping -s $usize -c 10 $ARGV[0]`;
        $pout =~ m,min/avg/max = ([^ ]+) ms,;
        $stats = $1;
        ($min, $avg, $max) = split(/\//, $stats);
        if($avg < $hmin){
                $hmin = $avg;
                $hv = $size;
        }

        $size = int(rand(100)+100);
        $usize = $size-8;
        $pout = `ping -s $usize -c 10 $ARGV[0]`;
        $pout =~ m,min/avg/max = ([^ ]+) ms,;
        $stats = $1;
        ($min, $avg, $max) = split(/\//, $stats);
        if($avg < $lmin){
                $lmin = $avg;
                $lv = $size;
        }
        $bw = int(10*($hv-$lv)/($hmin-$lmin));
# bw = payload/time
# lv = payload
        $latency = int($lmin - ($lv/$bw));

        print $bw, " kbits/sec, $latency ms latency ($hv, $lv) -> ($hmin, $lmin)
 $n th iteration\n";

}
