Latest snapshot of the IPv6 BPG table
$LONGDATE
Route summary
\n";
if (ROUTER =~ /^JUNIPER$/i) {$routesum = 'Active/Total'}
else {$routesum = 'Best/Total'}
print OUT_FILE "
| $routesum routes: |
$$inumtable{best} | \/ |
$$inumtable{valid} |
\n";
if ($$inumtable{suppressed}) {
print OUT_FILE " | Suppressed routes: |
$$inumtable{suppressed} |
\n";
}
if ($$inumtable{damped}) {
print OUT_FILE " | Damped routes: |
$$inumtable{damped} |
\n";
}
if ($$inumtable{history}) {
print OUT_FILE " | History routes: |
$$inumtable{history} |
\n";
}
if ($$inumtable{RIBfailure}) {
print OUT_FILE " | RIB failure routes: |
$$inumtable{RIBfailure} |
\n";
}
print OUT_FILE "
\n";
if ($$inumelab{ASintrees}) {
if ($$inumelab{privAS}) {$privaslink = "private AS numbers"}
else {$privaslink = "private AS numbers"}
if ($$inumelab{reservedAS}) {$resaslink = "reserved AS numbers"}
else {$resaslink = "reserved AS numbers"}
print OUT_FILE " Number of ASs in table: $$inumelab{ASintrees}\/$$inumtable{ASs}
(within active routes\/within total routes)
Among the ASs in active routes
| originating only ASs: |
$$inumelab{origAS} |
| originating/transit ASs: |
$$inumelab{bothAS} |
| transit only ASs: |
$$inumelab{transitAS} |
| $privaslink: |
$$inumelab{privAS} |
| $resaslink: |
$$inumelab{reservedAS} |
\n";
}
if ($$inumelab{ASpaths}) {
print OUT_FILE " Number of active AS paths: $$inumelab{ASpaths}\n";
}
print OUT_FILE "
Number of active peers: $$inumelab{activePEERS}\n";
# Calculate distance stats
my ($sum, $prod, $sumlong) = (0, 0, 0);
foreach $key (sort {$a <=> $b} (keys(%$iasdist))) {
$sum += $$iasdist{$key};
$prod += $key*$$iasdist{$key};
if ($key > 4) {$sumlong += $$iasdist{$key}}
}
if ($sum) {
my @hops = (' 1', ' 2', ' 3', ' 4', '>4');
my @perc = ();
my $tmp;
my ($perclen, $abslen) = (0, 0);
for ($i=0;$i<4;$i++) {
$tmp = $$iasdist{$i+1}/$sum*100;
$perc[$i] = &trunc_number($tmp, 0);;
if ($perclen < length($perc[$i])) {$perclen = length($perc[$i])}
if ($abslen < length($$iasdist{$i+1})) {$abslen = length($$iasdist{$i+1})}
}
$tmp = $sumlong/$sum*100;
$perc[4] = &trunc_number($tmp, 0);;
if ($perclen < length($perc[4])) {$perclen = length($perc[4])}
if ($abslen < length($sumlong)) {$abslen = length($sumlong)}
# cleaning up percentages
$sum = $perc[0]+$perc[1]+$perc[2]+$perc[3]+$perc[4];
if($sum <100) {for ($i=4;$>=0;$i--) {if ($perc[$i] > 0) {$perc[$i] += (100-$sum)};last}}
if($sum >100) {for ($i=4;$>=0;$i--) {if (($perc[$i] - $sum +100) > 0) {$perc[$i] += ($sum-100)};last}}
print OUT_FILE "
AS distance
| \ \ Crossed ASs\ \ | \ \ Prefixes\ \ | \ \ Perc.\ \ |
\n";
my ($absval, $percval);
for ($i=0;$i<5;$i++) {
$percval = (' ' x ($perclen - length($perc[$i]))) . $perc[$i];
$tmp = $$iasdist{$i+1};
if ($i == 4) {$tmp = $sumlong}
$absval = (' ' x ($abslen - length($tmp))) . $tmp;
print OUT_FILE " | $hops[$i] | $absval | $percval\% |
\n";
}
print OUT_FILE "
";
print OUT_FILE " Average: $$inumelab{averageDIST} crossed ASs\n";
}
print OUT_FILE "