mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 19:28:00 +00:00
wifi-diag: Don't open per-tid stats files.
We were not using them, and opening more than 1024 crashed the script due to ulimit issues.
This commit is contained in:
136
wifi_diag/Tid.pm
136
wifi_diag/Tid.pm
@@ -43,20 +43,24 @@ sub new {
|
|||||||
|
|
||||||
bless($self, $class);
|
bless($self, $class);
|
||||||
|
|
||||||
my $rpt_fname = $self->{report_prefix} .
|
if (0) { # Skip per-tid reporting files for now.
|
||||||
"tid-" . $self->tidno() . "-" .
|
# I am seeing failure due to > 1024 files being opened, and we don't
|
||||||
$self->{addr_a} . "." .
|
# use these anyway...
|
||||||
$self->{addr_b} . "-rpt.txt";
|
my $rpt_fname = $self->{report_prefix} .
|
||||||
open(my $MCS, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
"tid-" . $self->tidno() . "-" .
|
||||||
$self->{mcs_fh} = $MCS;
|
$self->{addr_a} . "." .
|
||||||
|
$self->{addr_b} . "-rpt.txt";
|
||||||
|
open(my $MCS, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
||||||
|
$self->{mcs_fh} = $MCS;
|
||||||
|
|
||||||
$rpt_fname = $self->{report_prefix} . "tid-" . $self->tidno() . "-" . $self->{addr_a} . "." . $self->{addr_b} . "-ps-rpt.txt";
|
$rpt_fname = $self->{report_prefix} . "tid-" . $self->tidno() . "-" . $self->{addr_a} . "." . $self->{addr_b} . "-ps-rpt.txt";
|
||||||
open(my $MCS_PS, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
open(my $MCS_PS, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
||||||
$self->{mcs_fh_ps} = $MCS_PS;
|
$self->{mcs_fh_ps} = $MCS_PS;
|
||||||
|
|
||||||
$rpt_fname = $self->{report_prefix} . "tid-" . $self->tidno() . "-" . $self->{addr_a} . "." . $self->{addr_b} . "-ba-rpt.txt";
|
$rpt_fname = $self->{report_prefix} . "tid-" . $self->tidno() . "-" . $self->{addr_a} . "." . $self->{addr_b} . "-ba-rpt.txt";
|
||||||
open(my $BA, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
open(my $BA, ">", $rpt_fname) or die("Can't open $rpt_fname for writing: $!\n");
|
||||||
$self->{fh_ba} = $BA;
|
$self->{fh_ba} = $BA;
|
||||||
|
}
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
@@ -202,7 +206,7 @@ sub add_pkt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $new_ba = $ba_tot - $ba_dup;
|
my $new_ba = $ba_tot - $ba_dup;
|
||||||
my $fh_ba = $self->{fh_ba};
|
#my $fh_ba = $self->{fh_ba};
|
||||||
my $ts_diff;
|
my $ts_diff;
|
||||||
if ($last_timestamp == 0) {
|
if ($last_timestamp == 0) {
|
||||||
$ts_diff = "0.0";
|
$ts_diff = "0.0";
|
||||||
@@ -212,7 +216,7 @@ sub add_pkt {
|
|||||||
}
|
}
|
||||||
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t$ba_tot\t$ba_dup\t$new_ba\t$ts_diff\n";
|
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t$ba_tot\t$ba_dup\t$new_ba\t$ts_diff\n";
|
||||||
|
|
||||||
print $fh_ba $ln; # Tid specific data file
|
#print $fh_ba $ln; # Tid specific data file
|
||||||
print $glb $ln; # Global data file
|
print $glb $ln; # Global data file
|
||||||
}# if block-ack frame
|
}# if block-ack frame
|
||||||
|
|
||||||
@@ -234,63 +238,65 @@ sub add_pkt {
|
|||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $tsp1 = $self->{last_ps_timestamp} + 1.0;
|
if (0) { # Skip per-tid reporting files for now...global info seems enough
|
||||||
my $gen_ps = $tsp1 < $pkt->{timestamp};
|
my $tsp1 = $self->{last_ps_timestamp} + 1.0;
|
||||||
#print STDERR "last-ps-timestamp: " . $self->{last_ps_timestamp} . " tsp1: $tsp1 gen-ps: $gen_ps "
|
my $gen_ps = $tsp1 < $pkt->{timestamp};
|
||||||
# . $self->{last_ps_timestamp} . " pkt-ts: " . $pkt->{timestamp} . "\n";
|
#print STDERR "last-ps-timestamp: " . $self->{last_ps_timestamp} . " tsp1: $tsp1 gen-ps: $gen_ps "
|
||||||
if ($gen_ps) {
|
# . $self->{last_ps_timestamp} . " pkt-ts: " . $pkt->{timestamp} . "\n";
|
||||||
my $diff = $pkt->{timestamp} - $self->{last_ps_timestamp};
|
if ($gen_ps) {
|
||||||
my $period_tot_pkts = $self->{tot_pkts} - $self->{last_tot_pkts};
|
my $diff = $pkt->{timestamp} - $self->{last_ps_timestamp};
|
||||||
my $period_rx_pkts = $self->{rx_pkts} - $self->{last_rx_pkts};
|
my $period_tot_pkts = $self->{tot_pkts} - $self->{last_tot_pkts};
|
||||||
my $period_rx_amsdu_pkts = $self->{rx_amsdu_pkts} - $self->{last_rx_amsdu_pkts};
|
my $period_rx_pkts = $self->{rx_pkts} - $self->{last_rx_pkts};
|
||||||
my $period_rx_retrans_pkts = $self->{rx_retrans_pkts} - $self->{last_rx_retrans_pkts};
|
my $period_rx_amsdu_pkts = $self->{rx_amsdu_pkts} - $self->{last_rx_amsdu_pkts};
|
||||||
my $period_rx_retrans_amsdu_pkts = $self->{rx_amsdu_retrans_pkts} - $self->{last_rx_amsdu_retrans_pkts};
|
my $period_rx_retrans_pkts = $self->{rx_retrans_pkts} - $self->{last_rx_retrans_pkts};
|
||||||
my $period_tx_pkts = $self->{tx_pkts} - $self->{last_tx_pkts};
|
my $period_rx_retrans_amsdu_pkts = $self->{rx_amsdu_retrans_pkts} - $self->{last_rx_amsdu_retrans_pkts};
|
||||||
my $period_tx_amsdu_pkts = $self->{tx_amsdu_pkts} - $self->{last_tx_amsdu_pkts};
|
my $period_tx_pkts = $self->{tx_pkts} - $self->{last_tx_pkts};
|
||||||
my $period_tx_retrans_pkts = $self->{tx_retrans_pkts} - $self->{last_tx_retrans_pkts};
|
my $period_tx_amsdu_pkts = $self->{tx_amsdu_pkts} - $self->{last_tx_amsdu_pkts};
|
||||||
my $period_tx_retrans_amsdu_pkts = $self->{tx_amsdu_retrans_pkts} - $self->{last_tx_amsdu_retrans_pkts};
|
my $period_tx_retrans_pkts = $self->{tx_retrans_pkts} - $self->{last_tx_retrans_pkts};
|
||||||
my $period_dummy_rx_pkts = $self->{dummy_rx_pkts} - $self->{last_dummy_rx_pkts};
|
my $period_tx_retrans_amsdu_pkts = $self->{tx_amsdu_retrans_pkts} - $self->{last_tx_amsdu_retrans_pkts};
|
||||||
my $period_dummy_tx_pkts = $self->{dummy_tx_pkts} - $self->{last_dummy_tx_pkts};
|
my $period_dummy_rx_pkts = $self->{dummy_rx_pkts} - $self->{last_dummy_rx_pkts};
|
||||||
|
my $period_dummy_tx_pkts = $self->{dummy_tx_pkts} - $self->{last_dummy_tx_pkts};
|
||||||
|
|
||||||
my $period_tot_pkts_ps = $period_tot_pkts / $diff;
|
my $period_tot_pkts_ps = $period_tot_pkts / $diff;
|
||||||
my $period_rx_pkts_ps = $period_rx_pkts / $diff;
|
my $period_rx_pkts_ps = $period_rx_pkts / $diff;
|
||||||
my $period_rx_amsdu_pkts_ps = $period_rx_amsdu_pkts / $diff;
|
my $period_rx_amsdu_pkts_ps = $period_rx_amsdu_pkts / $diff;
|
||||||
my $period_rx_retrans_pkts_ps = $period_rx_retrans_pkts / $diff;
|
my $period_rx_retrans_pkts_ps = $period_rx_retrans_pkts / $diff;
|
||||||
my $period_rx_retrans_amsdu_pkts_ps = $period_rx_retrans_amsdu_pkts / $diff;
|
my $period_rx_retrans_amsdu_pkts_ps = $period_rx_retrans_amsdu_pkts / $diff;
|
||||||
my $period_tx_pkts_ps = $period_tx_pkts / $diff;
|
my $period_tx_pkts_ps = $period_tx_pkts / $diff;
|
||||||
my $period_tx_amsdu_pkts_ps = $period_tx_amsdu_pkts / $diff;
|
my $period_tx_amsdu_pkts_ps = $period_tx_amsdu_pkts / $diff;
|
||||||
my $period_tx_retrans_pkts_ps = $period_tx_retrans_pkts / $diff;
|
my $period_tx_retrans_pkts_ps = $period_tx_retrans_pkts / $diff;
|
||||||
my $period_tx_retrans_amsdu_pkts_ps = $period_tx_retrans_amsdu_pkts / $diff;
|
my $period_tx_retrans_amsdu_pkts_ps = $period_tx_retrans_amsdu_pkts / $diff;
|
||||||
my $period_dummy_rx_pkts_ps = $period_dummy_rx_pkts / $diff;
|
my $period_dummy_rx_pkts_ps = $period_dummy_rx_pkts / $diff;
|
||||||
my $period_dummy_tx_pkts_ps = $period_dummy_tx_pkts / $diff;
|
my $period_dummy_tx_pkts_ps = $period_dummy_tx_pkts / $diff;
|
||||||
|
|
||||||
$self->{last_ps_timestamp} = $pkt->timestamp();
|
$self->{last_ps_timestamp} = $pkt->timestamp();
|
||||||
$self->{last_tot_pkts} = $self->{tot_pkts};
|
$self->{last_tot_pkts} = $self->{tot_pkts};
|
||||||
$self->{last_rx_pkts} = $self->{rx_pkts};
|
$self->{last_rx_pkts} = $self->{rx_pkts};
|
||||||
$self->{last_rx_amsdu_pkts} = $self->{rx_amsdu_pkts};
|
$self->{last_rx_amsdu_pkts} = $self->{rx_amsdu_pkts};
|
||||||
$self->{last_rx_retrans_pkts} = $self->{rx_retrans_pkts};
|
$self->{last_rx_retrans_pkts} = $self->{rx_retrans_pkts};
|
||||||
$self->{last_rx_amsdu_retrans_pkts} = $self->{rx_amsdu_retrans_pkts};
|
$self->{last_rx_amsdu_retrans_pkts} = $self->{rx_amsdu_retrans_pkts};
|
||||||
$self->{last_tx_pkts} = $self->{tx_pkts};
|
$self->{last_tx_pkts} = $self->{tx_pkts};
|
||||||
$self->{last_tx_amsdu_pkts} = $self->{tx_amsdu_pkts};
|
$self->{last_tx_amsdu_pkts} = $self->{tx_amsdu_pkts};
|
||||||
$self->{last_tx_retrans_pkts} = $self->{tx_retrans_pkts};
|
$self->{last_tx_retrans_pkts} = $self->{tx_retrans_pkts};
|
||||||
$self->{last_tx_amsdu_retrans_pkts} = $self->{tx_amsdu_retrans_pkts};
|
$self->{last_tx_amsdu_retrans_pkts} = $self->{tx_amsdu_retrans_pkts};
|
||||||
$self->{last_dummy_rx_pkts} = $self->{dummy_rx_pkts};
|
$self->{last_dummy_rx_pkts} = $self->{dummy_rx_pkts};
|
||||||
$self->{last_dummy_tx_pkts} = $self->{dummy_tx_pkts};
|
$self->{last_dummy_tx_pkts} = $self->{dummy_tx_pkts};
|
||||||
|
|
||||||
my $fh_ps = $self->{mcs_fh_ps};
|
my $fh_ps = $self->{mcs_fh_ps};
|
||||||
|
|
||||||
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t$diff\t$period_tot_pkts_ps\t" .
|
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t$diff\t$period_tot_pkts_ps\t" .
|
||||||
"$period_rx_pkts_ps\t$period_rx_retrans_pkts_ps\t$period_rx_amsdu_pkts_ps\t$period_rx_retrans_amsdu_pkts_ps\t$period_dummy_rx_pkts_ps\t" .
|
"$period_rx_pkts_ps\t$period_rx_retrans_pkts_ps\t$period_rx_amsdu_pkts_ps\t$period_rx_retrans_amsdu_pkts_ps\t$period_dummy_rx_pkts_ps\t" .
|
||||||
"$period_tx_pkts_ps\t$period_tx_retrans_pkts_ps\t$period_tx_amsdu_pkts_ps\t$period_tx_retrans_amsdu_pkts_ps\t$period_dummy_tx_pkts_ps\n";
|
"$period_tx_pkts_ps\t$period_tx_retrans_pkts_ps\t$period_tx_amsdu_pkts_ps\t$period_tx_retrans_amsdu_pkts_ps\t$period_dummy_tx_pkts_ps\n";
|
||||||
print $fh_ps $ln;
|
print $fh_ps $ln;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generate reporting data for this pkt
|
||||||
|
my $fh = $self->{mcs_fh};
|
||||||
|
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t" . $pkt->datarate() . "\t" . $pkt->retrans() . "\n";
|
||||||
|
|
||||||
|
print $fh $ln;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generate reporting data for this pkt
|
|
||||||
my $fh = $self->{mcs_fh};
|
|
||||||
my $ln = "" . $pkt->timestamp() . "\t" . $self->tidno() . "\t" . $pkt->datarate() . "\t" . $pkt->retrans() . "\n";
|
|
||||||
|
|
||||||
print $fh $ln;
|
|
||||||
|
|
||||||
push(@{$self->{pkts}}, $pkt);
|
push(@{$self->{pkts}}, $pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user