--- recepies/netpipe-tcp/np2graphviz.pl 2009/05/25 21:15:25 99 +++ recepies/netpipe-tcp/np2graphviz.pl 2009/05/25 22:11:20 100 @@ -3,6 +3,10 @@ use warnings; use strict; +my $graph; + +my ($max,$min); + foreach my $file ( glob '*/*.np' ) { my $direction = $file; @@ -15,7 +19,40 @@ my ( $size, $speed, $rtt ) = split(/\s+/, $line); warn "$from -> $to | $size | $speed | $rtt\n"; + + my $len = int($speed / 100); + + $graph->{ qq|"$from" -> "$to"| } = { + size => $size, + speed => $speed, + rtt => $rtt, + }; + + $min ||= $speed; + $min = $speed if $speed < $min; + + $max ||= $speed; + $max = $speed if $speed > $max; + } +warn "# speed $min ... $max\n"; +print qq| +digraph "netpipe" { +|, +join("\n", map { + my $node = $_; + my $speed = $graph->{$_}->{speed}; + my $c = 'ff0000'; + $c = '00ff00' if ( $speed / 100 ) > 1; + $c = '0000ff' if ( $speed / 1000 ) > 1; + $c = '8888ff' if ( $speed / 1000 ) > 2; + my $label = $speed; + $label =~ s/\.\d+//; + qq|$node [ label="$label",color="#$c",len=$speed ]|; +} keys %$graph), +qq| +} +|;