case-bgp92-emile.sh is the main driver, producing data file case-bgp92-data-rel.txt , fields: prbid destid timestamp (start of 15min interval) min minrtt avg avgrtt max maxrtt loss rate dup rate min minrtt relative to the avg min minrtt of that src/dst pair avg avgrtt relative to the avg avg avgrtt of that src/dst pair max maxrtt relative to the avg max maxrtt of that src/dst pair To get fract of probes that has loss: cat case-bgp92-data.txt | perl -lane'$c{$F[2]}++; if ($F[6] < 1) { $l{$F[2]}++ } ; END { for $t (sort keys %c) { printf("%s %.3f\n",scalar $t, $l{$t}/$c{$t} ) } }' > case-bgp92-pkt-loss-fraction.txt All dests: atlas@weir:~/atlas/test/case-bgp92$ cat case-bgp92-data.txt | perl -lane'next unless($F[2] && $F[6]); $c->{_ALL}{$F[2]}++;$c->{$F[1]}{$F[2]}++; if ($F[6] < 1) { $l->{_ALL}{$F[2]}++; $l->{$F[1]}{$F[2]}++ } ; END { for $d (sort keys %$c) { for $t (sort keys %{$c->{$d}} ) { printf("%s %s %.3f\n",$d,$t, $l->{$d}{$t}/$c->{$d}{$t} ) } } }' > loss-all-dests.txt relative RTTs averaged over all dests cat case-bgp92-data-rel.txt | perl -lane'next unless ($F[2]); $c{$F[2]}++; $min{$F[2]}+=$F[8];$avg{$F[2]}+=$F[9];$max{$F[2]}+=$F[10]; END { for $t (sort keys %c) { printf("%s %.3f %.3f %.3f\n", $t, $min{$t}/$c{$t}, $avg{$t}/$c{$t}, $max{$t}/$c{$t}) } }' > all-relative-rtts.txt to produce plots: gnuplot < *.plot