mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-10-30 18:27:53 +00:00
wifi-diag: Parse newer tshark output properly, retransmit improvements.
Newer tshark had a different text output, so needed to modify the script to parse that properly. Report big vs all retransmits (big frames are likely Data, small ones may just be null-data frames or similar).
This commit is contained in:
@@ -15,6 +15,7 @@ sub new {
|
|||||||
wmm_info => "",
|
wmm_info => "",
|
||||||
raw_pkt => "",
|
raw_pkt => "",
|
||||||
seqno => -1, # block-ack will not have a seqno
|
seqno => -1, # block-ack will not have a seqno
|
||||||
|
bytes_on_wire => 0,
|
||||||
acked_by => -1,
|
acked_by => -1,
|
||||||
block_acked_by => -1,
|
block_acked_by => -1,
|
||||||
retrans => 0,
|
retrans => 0,
|
||||||
@@ -24,6 +25,7 @@ sub new {
|
|||||||
dummy_rx_pkts => 0,
|
dummy_rx_pkts => 0,
|
||||||
is_last_ampdu => 0,
|
is_last_ampdu => 0,
|
||||||
is_ampdu => 0,
|
is_ampdu => 0,
|
||||||
|
is_msdu => 0,
|
||||||
is_malformed => 0,
|
is_malformed => 0,
|
||||||
type_subtype => "UNKNOWN",
|
type_subtype => "UNKNOWN",
|
||||||
receiver => "UNKNOWN",
|
receiver => "UNKNOWN",
|
||||||
@@ -67,16 +69,21 @@ sub append {
|
|||||||
elsif ($ln =~ /^.* = Payload Type: A-MSDU/) {
|
elsif ($ln =~ /^.* = Payload Type: A-MSDU/) {
|
||||||
$self->{is_ampdu} = 1;
|
$self->{is_ampdu} = 1;
|
||||||
}
|
}
|
||||||
|
elsif ($ln =~ /^.* = Payload Type: MSDU/) {
|
||||||
|
$self->{is_msdu} = 1;
|
||||||
|
}
|
||||||
elsif ($ln =~ /^\s*\[Time delta from previous captured frame:\s+(\S+)/) {
|
elsif ($ln =~ /^\s*\[Time delta from previous captured frame:\s+(\S+)/) {
|
||||||
$self->{timedelta} = $1;
|
$self->{timedelta} = $1;
|
||||||
}
|
}
|
||||||
elsif ($ln =~ /^\s*Receiver address: .*\((\S+)\)/) {
|
elsif ($ln =~ /^\s*Receiver address: .*\((\S+)\)/) {
|
||||||
$self->{receiver} = $1;
|
$self->{receiver} = $1;
|
||||||
}
|
}
|
||||||
elsif ($ln =~ /^\s*Fragment number: (\d+)/) {
|
elsif (($ln =~ /^\s*Fragment number: (\d+)/) ||
|
||||||
|
($ln =~ /^.*\s+=\s+Fragment number: (\d+)/)) {
|
||||||
$self->{fragno} = $1;
|
$self->{fragno} = $1;
|
||||||
}
|
}
|
||||||
elsif ($ln =~ /^\s*Sequence number: (\d+)/) {
|
elsif (($ln =~ /^\s*Sequence number: (\d+)/) ||
|
||||||
|
($ln =~ /^.*\s+=\s+Sequence number: (\d+)/)) {
|
||||||
$self->{seqno} = $1;
|
$self->{seqno} = $1;
|
||||||
}
|
}
|
||||||
elsif ($ln =~ /^\s*Type\/Subtype: (.*)/) {
|
elsif ($ln =~ /^\s*Type\/Subtype: (.*)/) {
|
||||||
@@ -128,7 +135,8 @@ sub append {
|
|||||||
$self->{datarate} = 0;
|
$self->{datarate} = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($ln =~ /^\s*SSI Signal: (.*)/) {
|
elsif (($ln =~ /^\s*SSI Signal: (.*)/) ||
|
||||||
|
($ln =~ /^\s*Antenna signal: (.*)/)) {
|
||||||
if ($self->{ssi_sig_found} == 0) {
|
if ($self->{ssi_sig_found} == 0) {
|
||||||
$self->{ssi_combined} = $1;
|
$self->{ssi_combined} = $1;
|
||||||
$self->{ssi_sig_found}++;
|
$self->{ssi_sig_found}++;
|
||||||
|
|||||||
@@ -81,6 +81,42 @@ sub find_or_create_tid {
|
|||||||
return $tid;
|
return $tid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub tx_no_ack_found {
|
||||||
|
my $self = shift;
|
||||||
|
my $tid_count = @{$self->{tids}};
|
||||||
|
|
||||||
|
my $rv = 0;
|
||||||
|
|
||||||
|
my $i;
|
||||||
|
for ($i = 0; $i < $tid_count; $i++) {
|
||||||
|
#print "Checking tid: $i\n";
|
||||||
|
if (exists $self->{tids}[$i]) {
|
||||||
|
#print "Printing tid: $i\n";
|
||||||
|
$rv += $self->{tids}[$i]->tx_no_ack_found();
|
||||||
|
#print "Done printing tid: $i\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub rx_no_ack_found {
|
||||||
|
my $self = shift;
|
||||||
|
my $tid_count = @{$self->{tids}};
|
||||||
|
|
||||||
|
my $rv = 0;
|
||||||
|
|
||||||
|
my $i;
|
||||||
|
for ($i = 0; $i < $tid_count; $i++) {
|
||||||
|
#print "Checking tid: $i\n";
|
||||||
|
if (exists $self->{tids}[$i]) {
|
||||||
|
#print "Printing tid: $i\n";
|
||||||
|
$rv += $self->{tids}[$i]->rx_no_ack_found();
|
||||||
|
#print "Done printing tid: $i\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $rv;
|
||||||
|
}
|
||||||
|
|
||||||
sub printme {
|
sub printme {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $tid_count = @{$self->{tids}};
|
my $tid_count = @{$self->{tids}};
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ sub new {
|
|||||||
|
|
||||||
my $self = {
|
my $self = {
|
||||||
pkts => [],
|
pkts => [],
|
||||||
|
rx_no_ack_found => 0,
|
||||||
|
tx_no_ack_found => 0,
|
||||||
tx_retrans_pkts => 0,
|
tx_retrans_pkts => 0,
|
||||||
rx_retrans_pkts => 0,
|
rx_retrans_pkts => 0,
|
||||||
tx_amsdu_retrans_pkts => 0,
|
tx_amsdu_retrans_pkts => 0,
|
||||||
@@ -129,7 +131,7 @@ sub add_pkt {
|
|||||||
|
|
||||||
for ($i = 0; $i<$pkt_count; $i++) {
|
for ($i = 0; $i<$pkt_count; $i++) {
|
||||||
my $tmp = $self->{pkts}[$i];
|
my $tmp = $self->{pkts}[$i];
|
||||||
#print "checking tmp-pkt: " . $tmp->seqno();
|
#print "checking tmp-pkt frame: " . $tmp->{frame_num} . " seqno: " . $tmp->seqno();
|
||||||
#print " transmitter: " . $tmp->transmitter();
|
#print " transmitter: " . $tmp->transmitter();
|
||||||
#print " pkt-rcvr: " . $pkt->receiver() . "\n";
|
#print " pkt-rcvr: " . $pkt->receiver() . "\n";
|
||||||
if ($tmp->transmitter() eq $pkt->receiver()) {
|
if ($tmp->transmitter() eq $pkt->receiver()) {
|
||||||
@@ -228,6 +230,12 @@ sub add_pkt {
|
|||||||
if (! $tmp->was_acked()) {
|
if (! $tmp->was_acked()) {
|
||||||
if ($tmp->wants_ack()) {
|
if ($tmp->wants_ack()) {
|
||||||
print "WARNING: did not find ack for frame: " . $tmp->frame_num() . ", removing after processing frame: " . $pkt->frame_num() . "\n";
|
print "WARNING: did not find ack for frame: " . $tmp->frame_num() . ", removing after processing frame: " . $pkt->frame_num() . "\n";
|
||||||
|
if ($tmp->transmitter() eq $self->{addr_a}) {
|
||||||
|
$self->{tx_no_ack_found}++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$self->{rx_no_ack_found}++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$pkt_count--;
|
$pkt_count--;
|
||||||
@@ -305,11 +313,23 @@ sub get_pkts {
|
|||||||
return @{$self->{pkts}};
|
return @{$self->{pkts}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub tx_no_ack_found {
|
||||||
|
my $self = shift;
|
||||||
|
return $self->{tx_no_ack_found};
|
||||||
|
}
|
||||||
|
|
||||||
|
sub rx_no_ack_found {
|
||||||
|
my $self = shift;
|
||||||
|
return $self->{rx_no_ack_found};
|
||||||
|
}
|
||||||
|
|
||||||
sub printme {
|
sub printme {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
print " tidno: " . $self->tidno() . " pkt-count: " . $self->get_pkts()
|
print " tidno: " . $self->tidno() . " pkt-count: " . $self->get_pkts()
|
||||||
. " tx-pkts: " . $self->{tx_pkts} . " tx-retrans: " . $self->{tx_retrans_pkts}
|
. " tx-pkts: " . $self->{tx_pkts} . " tx-retrans: " . $self->{tx_retrans_pkts}
|
||||||
. " rx-pkts: " . $self->{rx_pkts} . " rx-retrans: " . $self->{rx_retrans_pkts} . "\n";
|
. " rx-pkts: " . $self->{rx_pkts} . " rx-retrans: " . $self->{rx_retrans_pkts}
|
||||||
|
. " tx-no-acks: " . $self->{tx_no_ack_found} . " rx-no-acks: " . $self->{rx_no_ack_found}
|
||||||
|
. "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|||||||
@@ -52,6 +52,9 @@ my $glb_fh_mcs_rx;
|
|||||||
my $glb_fh_rtx_tx;
|
my $glb_fh_rtx_tx;
|
||||||
my $glb_fh_rtx_rx;
|
my $glb_fh_rtx_rx;
|
||||||
|
|
||||||
|
my $tx_no_ack_found = 0;
|
||||||
|
my $rx_no_ack_found = 0;
|
||||||
|
|
||||||
my %glb_mcs_tx_hash = ();
|
my %glb_mcs_tx_hash = ();
|
||||||
my %glb_mcs_rx_hash = ();
|
my %glb_mcs_rx_hash = ();
|
||||||
my %glb_pkt_type_tx_hash = ();
|
my %glb_pkt_type_tx_hash = ();
|
||||||
@@ -153,35 +156,38 @@ my $last_ps_timestamp = 0;
|
|||||||
my $tot_pkts = 0;
|
my $tot_pkts = 0;
|
||||||
my $rx_pkts = 0;
|
my $rx_pkts = 0;
|
||||||
my $rx_amsdu_pkts = 0;
|
my $rx_amsdu_pkts = 0;
|
||||||
my $rx_retrans_pkts = 0;
|
my $rx_retrans_pkts_all = 0;
|
||||||
|
my $rx_retrans_pkts_big = 0;
|
||||||
my $rx_amsdu_retrans_pkts = 0;
|
my $rx_amsdu_retrans_pkts = 0;
|
||||||
my $dummy_rx_pkts = 0;
|
my $dummy_rx_pkts = 0;
|
||||||
my $tx_pkts = 0;
|
my $tx_pkts = 0;
|
||||||
my $tx_amsdu_pkts = 0;
|
my $tx_amsdu_pkts = 0;
|
||||||
my $tx_retrans_pkts = 0;
|
my $tx_retrans_pkts_all = 0;
|
||||||
|
my $tx_retrans_pkts_big = 0;
|
||||||
my $tx_amsdu_retrans_pkts = 0;
|
my $tx_amsdu_retrans_pkts = 0;
|
||||||
my $dummy_tx_pkts = 0;
|
my $dummy_tx_pkts = 0;
|
||||||
|
|
||||||
my $last_tot_pkts = 0;
|
my $last_tot_pkts = 0;
|
||||||
my $last_rx_pkts = 0;
|
my $last_rx_pkts = 0;
|
||||||
my $last_rx_amsdu_pkts = 0;
|
my $last_rx_amsdu_pkts = 0;
|
||||||
my $last_rx_retrans_pkts = 0;
|
my $last_rx_retrans_pkts_all = 0;
|
||||||
my $last_rx_amsdu_retrans_pkts = 0;
|
my $last_rx_amsdu_retrans_pkts = 0;
|
||||||
my $last_dummy_rx_pkts = 0;
|
my $last_dummy_rx_pkts = 0;
|
||||||
my $last_tx_pkts = 0;
|
my $last_tx_pkts = 0;
|
||||||
my $last_tx_amsdu_pkts = 0;
|
my $last_tx_amsdu_pkts = 0;
|
||||||
my $last_tx_retrans_pkts = 0;
|
my $last_tx_retrans_pkts_all = 0;
|
||||||
my $last_tx_amsdu_retrans_pkts = 0;
|
my $last_tx_amsdu_retrans_pkts = 0;
|
||||||
my $last_dummy_tx_pkts = 0;
|
my $last_dummy_tx_pkts = 0;
|
||||||
|
|
||||||
while (<>) {
|
while (<>) {
|
||||||
my $ln = $_;
|
my $ln = $_;
|
||||||
$input_line_count++;
|
$input_line_count++;
|
||||||
if ($ln =~ /^Frame (\d+):/) {
|
if ($ln =~ /^Frame (\d+):\s+(\d+) bytes on wire/) {
|
||||||
if ($cur_pkt->raw_pkt() ne "") {
|
if ($cur_pkt->raw_pkt() ne "") {
|
||||||
processPkt($cur_pkt);
|
processPkt($cur_pkt);
|
||||||
}
|
}
|
||||||
$cur_pkt = Packet->new(frame_num => $1,
|
$cur_pkt = Packet->new(frame_num => $1,
|
||||||
|
bytes_on_write => $2,
|
||||||
raw_pkt => $ln);
|
raw_pkt => $ln);
|
||||||
} else {
|
} else {
|
||||||
$cur_pkt->append($ln);
|
$cur_pkt->append($ln);
|
||||||
@@ -194,6 +200,12 @@ if ($cur_pkt->raw_pkt() ne "") {
|
|||||||
|
|
||||||
printProgress();
|
printProgress();
|
||||||
|
|
||||||
|
# Sum up some stats
|
||||||
|
for my $conn (values %peer_conns) {
|
||||||
|
$tx_no_ack_found += $conn->tx_no_ack_found();
|
||||||
|
$rx_no_ack_found += $conn->rx_no_ack_found();
|
||||||
|
}
|
||||||
|
|
||||||
$report_html .= genGlobalReports();
|
$report_html .= genGlobalReports();
|
||||||
|
|
||||||
# Print out all peer-conns we found
|
# Print out all peer-conns we found
|
||||||
@@ -317,15 +329,20 @@ sub htmlMcsHistogram {
|
|||||||
my $html = "";
|
my $html = "";
|
||||||
|
|
||||||
if ($rx_pkts) {
|
if ($rx_pkts) {
|
||||||
$html .= "RX Retransmit percentage: $rx_retrans_pkts/$rx_pkts == " . ($rx_retrans_pkts * 100.0) / $rx_pkts . "<br>\n";
|
$html .= "RX (All) Retransmit percentage: $rx_retrans_pkts_all/$rx_pkts == " . ($rx_retrans_pkts_all * 100.0) / $rx_pkts . "<br>\n";
|
||||||
} else {
|
} else {
|
||||||
$html .= "RX Retransmit percentage: $rx_retrans_pkts/$rx_pkts == 0<br>\n";
|
$html .= "RX (All) Retransmit percentage: $rx_retrans_pkts_all/$rx_pkts == 0<br>\n";
|
||||||
}
|
}
|
||||||
|
$html .= "RX (Big) Retransmit count: $rx_retrans_pkts_big<br>\n";
|
||||||
if ($tx_pkts) {
|
if ($tx_pkts) {
|
||||||
$html .= "TX Retransmit percentage: $tx_retrans_pkts/$tx_pkts == " . ($tx_retrans_pkts * 100.0) / $tx_pkts . "<br>\n";
|
$html .= "TX (All) Retransmit percentage: $tx_retrans_pkts_all/$tx_pkts == " . ($tx_retrans_pkts_all * 100.0) / $tx_pkts . "<br>\n";
|
||||||
} else {
|
} else {
|
||||||
$html .= "TX Retransmit percentage: $tx_retrans_pkts/$tx_pkts == 0<br>\n";
|
$html .= "TX (All) Retransmit percentage: $tx_retrans_pkts_all/$tx_pkts == 0<br>\n";
|
||||||
}
|
}
|
||||||
|
$html .= "TX (Big) Retransmit count: $tx_retrans_pkts_big<br>\n";
|
||||||
|
|
||||||
|
$html .= "RX no-ack-found: $rx_no_ack_found<br>\n";
|
||||||
|
$html .= "TX no-ack-found: $tx_no_ack_found<br>\n";
|
||||||
|
|
||||||
if ($delta_time_tx_count) {
|
if ($delta_time_tx_count) {
|
||||||
$html .= "TX average gap between AMPDU frames (ms): " . (($delta_time_tx * 1000.0) / $delta_time_tx_count) . "<br>\n";
|
$html .= "TX average gap between AMPDU frames (ms): " . (($delta_time_tx * 1000.0) / $delta_time_tx_count) . "<br>\n";
|
||||||
@@ -470,6 +487,9 @@ sub processPkt {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#print "processPkt, frame: " . $pkt->{frame_num} . " seqno: " . $pkt->seqno() . " transmitter: " . $pkt->transmitter()
|
||||||
|
# . " receiver: " . $pkt->receiver() . "\n";
|
||||||
|
|
||||||
$pkts_sofar++;
|
$pkts_sofar++;
|
||||||
if (($pkts_sofar % 10000) == 0) {
|
if (($pkts_sofar % 10000) == 0) {
|
||||||
printProgress();
|
printProgress();
|
||||||
@@ -561,8 +581,8 @@ sub processPkt {
|
|||||||
my $this_ampdu_pkt_count;
|
my $this_ampdu_pkt_count;
|
||||||
my $ampdu_chain_time;
|
my $ampdu_chain_time;
|
||||||
my $is_last_ampdu = 0;
|
my $is_last_ampdu = 0;
|
||||||
if ($pkt->{is_ampdu}) {
|
if ($pkt->{is_ampdu} || $pkt->{is_msdu}) {
|
||||||
if ($last_pkt->frame_num() != -1 && (!$last_pkt->{is_ampdu})) {
|
if ($last_pkt->frame_num() != -1 && (!($last_pkt->{is_ampdu} || $last_pkt->{is_msdu}))) {
|
||||||
# This is first ampdu since a non-ampdu frame. Calculate diff between that and last BA
|
# This is first ampdu since a non-ampdu frame. Calculate diff between that and last BA
|
||||||
if ($pkt->{is_rx} && ($last_ba_tx_pkt->frame_num() != -1)) {
|
if ($pkt->{is_rx} && ($last_ba_tx_pkt->frame_num() != -1)) {
|
||||||
my $diff = $pkt->timestamp() - $last_ba_tx_pkt->timestamp();
|
my $diff = $pkt->timestamp() - $last_ba_tx_pkt->timestamp();
|
||||||
@@ -675,7 +695,15 @@ sub processPkt {
|
|||||||
$rx_pkts++;
|
$rx_pkts++;
|
||||||
$rx_amsdu_pkts += $pkt->{amsdu_frame_count};
|
$rx_amsdu_pkts += $pkt->{amsdu_frame_count};
|
||||||
if ($pkt->retrans()) {
|
if ($pkt->retrans()) {
|
||||||
$rx_retrans_pkts++;
|
$rx_retrans_pkts_all++;
|
||||||
|
if ($pkt->{bytes_on_wire} > 1000) {
|
||||||
|
print "Frame " . $pkt->{frame_num} . " is a BIG RX retransmit frame.\n";
|
||||||
|
$rx_retrans_pkts_big++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print "Frame " . $pkt->{frame_num} . " is an RX retransmit frame.\n";
|
||||||
|
}
|
||||||
|
|
||||||
$rx_amsdu_retrans_pkts += $pkt->{amsdu_frame_count};
|
$rx_amsdu_retrans_pkts += $pkt->{amsdu_frame_count};
|
||||||
}
|
}
|
||||||
my $ln = "" . $pkt->timestamp() . "\t" . $pkt->datarate() . "\n";
|
my $ln = "" . $pkt->timestamp() . "\t" . $pkt->datarate() . "\n";
|
||||||
@@ -716,7 +744,14 @@ sub processPkt {
|
|||||||
$tx_pkts++;
|
$tx_pkts++;
|
||||||
$tx_amsdu_pkts += $pkt->{amsdu_frame_count};
|
$tx_amsdu_pkts += $pkt->{amsdu_frame_count};
|
||||||
if ($pkt->retrans()) {
|
if ($pkt->retrans()) {
|
||||||
$tx_retrans_pkts++;
|
$tx_retrans_pkts_all++;
|
||||||
|
if ($pkt->{bytes_on_wire} > 1000) {
|
||||||
|
print "Frame " . $pkt->{frame_num} . " is a BIG TX retransmit frame.\n";
|
||||||
|
$tx_retrans_pkts_big++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
print "Frame " . $pkt->{frame_num} . " is a TX retransmit frame.\n";
|
||||||
|
}
|
||||||
$tx_amsdu_retrans_pkts += $pkt->{amsdu_frame_count};
|
$tx_amsdu_retrans_pkts += $pkt->{amsdu_frame_count};
|
||||||
}
|
}
|
||||||
my $ln = "" . $pkt->timestamp() . "\t" . $pkt->datarate() . "\n";
|
my $ln = "" . $pkt->timestamp() . "\t" . $pkt->datarate() . "\n";
|
||||||
@@ -736,11 +771,11 @@ sub processPkt {
|
|||||||
my $period_tot_pkts = $tot_pkts - $last_tot_pkts;
|
my $period_tot_pkts = $tot_pkts - $last_tot_pkts;
|
||||||
my $period_rx_pkts = $rx_pkts - $last_rx_pkts;
|
my $period_rx_pkts = $rx_pkts - $last_rx_pkts;
|
||||||
my $period_rx_amsdu_pkts = $rx_amsdu_pkts - $last_rx_amsdu_pkts;
|
my $period_rx_amsdu_pkts = $rx_amsdu_pkts - $last_rx_amsdu_pkts;
|
||||||
my $period_rx_retrans_pkts = $rx_retrans_pkts - $last_rx_retrans_pkts;
|
my $period_rx_retrans_pkts_all = $rx_retrans_pkts_all - $last_rx_retrans_pkts_all;
|
||||||
my $period_rx_retrans_amsdu_pkts = $rx_amsdu_retrans_pkts - $last_rx_amsdu_retrans_pkts;
|
my $period_rx_retrans_amsdu_pkts = $rx_amsdu_retrans_pkts - $last_rx_amsdu_retrans_pkts;
|
||||||
my $period_tx_pkts = $tx_pkts - $last_tx_pkts;
|
my $period_tx_pkts = $tx_pkts - $last_tx_pkts;
|
||||||
my $period_tx_amsdu_pkts = $tx_amsdu_pkts - $last_tx_amsdu_pkts;
|
my $period_tx_amsdu_pkts = $tx_amsdu_pkts - $last_tx_amsdu_pkts;
|
||||||
my $period_tx_retrans_pkts = $tx_retrans_pkts - $last_tx_retrans_pkts;
|
my $period_tx_retrans_pkts_all = $tx_retrans_pkts_all - $last_tx_retrans_pkts_all;
|
||||||
my $period_tx_retrans_amsdu_pkts = $tx_amsdu_retrans_pkts - $last_tx_amsdu_retrans_pkts;
|
my $period_tx_retrans_amsdu_pkts = $tx_amsdu_retrans_pkts - $last_tx_amsdu_retrans_pkts;
|
||||||
my $period_dummy_rx_pkts = $dummy_rx_pkts - $last_dummy_rx_pkts;
|
my $period_dummy_rx_pkts = $dummy_rx_pkts - $last_dummy_rx_pkts;
|
||||||
my $period_dummy_tx_pkts = $dummy_tx_pkts - $last_dummy_tx_pkts;
|
my $period_dummy_tx_pkts = $dummy_tx_pkts - $last_dummy_tx_pkts;
|
||||||
@@ -748,11 +783,11 @@ sub processPkt {
|
|||||||
my $period_tot_pkts_ps = ($period_tot_pkts + $period_dummy_tx_pkts + $period_dummy_rx_pkts) / $diff;
|
my $period_tot_pkts_ps = ($period_tot_pkts + $period_dummy_tx_pkts + $period_dummy_rx_pkts) / $diff;
|
||||||
my $period_rx_pkts_ps = ($period_rx_pkts + $period_dummy_rx_pkts) / $diff;
|
my $period_rx_pkts_ps = ($period_rx_pkts + $period_dummy_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_all / $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 + $period_dummy_tx_pkts) / $diff;
|
my $period_tx_pkts_ps = ($period_tx_pkts + $period_dummy_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_all / $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;
|
||||||
@@ -761,11 +796,11 @@ sub processPkt {
|
|||||||
$last_tot_pkts = $tot_pkts;
|
$last_tot_pkts = $tot_pkts;
|
||||||
$last_rx_pkts = $rx_pkts;
|
$last_rx_pkts = $rx_pkts;
|
||||||
$last_rx_amsdu_pkts = $rx_amsdu_pkts;
|
$last_rx_amsdu_pkts = $rx_amsdu_pkts;
|
||||||
$last_rx_retrans_pkts = $rx_retrans_pkts;
|
$last_rx_retrans_pkts_all = $rx_retrans_pkts_all;
|
||||||
$last_rx_amsdu_retrans_pkts = $rx_amsdu_retrans_pkts;
|
$last_rx_amsdu_retrans_pkts = $rx_amsdu_retrans_pkts;
|
||||||
$last_tx_pkts = $tx_pkts;
|
$last_tx_pkts = $tx_pkts;
|
||||||
$last_tx_amsdu_pkts = $tx_amsdu_pkts;
|
$last_tx_amsdu_pkts = $tx_amsdu_pkts;
|
||||||
$last_tx_retrans_pkts = $tx_retrans_pkts;
|
$last_tx_retrans_pkts_all = $tx_retrans_pkts_all;
|
||||||
$last_tx_amsdu_retrans_pkts = $tx_amsdu_retrans_pkts;
|
$last_tx_amsdu_retrans_pkts = $tx_amsdu_retrans_pkts;
|
||||||
$last_dummy_rx_pkts = $dummy_rx_pkts;
|
$last_dummy_rx_pkts = $dummy_rx_pkts;
|
||||||
$last_dummy_tx_pkts = $dummy_tx_pkts;
|
$last_dummy_tx_pkts = $dummy_tx_pkts;
|
||||||
|
|||||||
Reference in New Issue
Block a user