#!/usr/bin/perl
#smp enabled 

#@racer = ("tahoe", "sack");
@racer = ("tahoe", "reno", "sack", "mirror");
$prog = "ns dev.tcl";
#@packetSize = ("1420", "1460", "1500", "1540");

for($i = 0; $i < 20; ++$i) {
  $packetSize[$i] = 1400 + $i * 10;
}

for($i = 0; $i < scalar(@racer); ++$i) {
  $j=$i+1;
  while ($j<scalar(@racer)) {
    $arg1 = $racer[$i];
    $arg2 = $racer[$j];
    for( $k = 0; $k < scalar(@packetSize); ++$k) {  
      $arg3 = $packetSize[$k];
      if($pid = fork) {
        open(OUT1, "$prog $arg1 $arg2 $arg3 |"); 
        preparePlotData($arg1, $arg2, $arg3, \*OUT1);
        waitpid($pid, 0);
      } 
      else {
        open(OUT2, "$prog $arg2 $arg1 $arg3 |");
        preparePlotData($arg2, $arg1, $arg3, \*OUT2);
        exit;
      }
    }
    ++$j;
  }
}


sub preparePlotData {
  my($r1, $r2, $r3, $fh) = @_;
 # mkdir("/home/johnny/dd/data/$r3");
  open(OUTF1, ">/home/johnny/dd/data/$r3.$r1.vs.$r2.txt");
  open(OUTF2, ">/home/johnny/dd/data/SKIP$r3.$r1.vs.$r2.txt");  
  print "generating: $r3_ $r1 vs. $r2\n";
  #sleep(3);
  while(<$fh>) {
  #print $_;
    @splits = split(' ', $_); 
    if($splits[1] == '0') {
      print OUTF1 "$splits[0] $splits[6]\n";   
    }
    else {
      print OUTF2 "$splits[0] $splits[6]\n";   
    }
  }
  close(OUTF1);
  close(OUTF2);
  close($fh);
}
