Implement Dot11 Transmission Power Table (dot11PhyTxPowerTable)

and a helper function, dot11_cur_tx_pwr_mw(), which performs the
 necessary dereferencing to get the current tx power level in mw.
This commit is contained in:
Bill Fenner
2006-11-16 17:39:04 +00:00
parent a98e163c7c
commit dc494ff038

View File

@@ -64,6 +64,16 @@ use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
'i_ssidlist' => 'dot11DesiredSSID', 'i_ssidlist' => 'dot11DesiredSSID',
'dot11_pwr_mode' => 'dot11PowerManagementMode', 'dot11_pwr_mode' => 'dot11PowerManagementMode',
'dot11_sta_id' => 'dot11StationID', 'dot11_sta_id' => 'dot11StationID',
# dot11PhyTxPowerTable
'dot11_cur_tx_pwr' => 'dot11CurrentTxPowerLevel',
'dot11_tx_pwr_level_1' => 'dot11TxPowerLevel1',
'dot11_tx_pwr_level_2' => 'dot11TxPowerLevel2',
'dot11_tx_pwr_level_3' => 'dot11TxPowerLevel3',
'dot11_tx_pwr_level_4' => 'dot11TxPowerLevel4',
'dot11_tx_pwr_level_5' => 'dot11TxPowerLevel5',
'dot11_tx_pwr_level_6' => 'dot11TxPowerLevel6',
'dot11_tx_pwr_level_7' => 'dot11TxPowerLevel7',
'dot11_tx_pwr_level_8' => 'dot11TxPowerLevel8',
); );
%MUNGE = ( %MUNGE = (
@@ -145,6 +155,23 @@ sub i_80211channel {
return \%i_80211channel; return \%i_80211channel;
} }
sub dot11_cur_tx_pwr_mw {
my $dot11 = shift;
my $partial = shift;
my $cur = $dot11->dot11_cur_tx_pwr($partial);
my $dot11_cur_tx_pwr_mw = {};
foreach my $idx (keys %$cur) {
my $pwr = $cur->{$idx};
if ($pwr >= 1 && $pwr <= 8) {
my $mw = eval "\$dot11->dot11_tx_pwr_level_$pwr(\$idx)";
$dot11_cur_tx_pwr_mw->{$idx} = $mw->{$idx};
} else {
next;
}
}
return $dot11_cur_tx_pwr_mw;
}
1; 1;
__END__ __END__
@@ -238,6 +265,11 @@ Returns reference to hash. SSID's recognized by the radio interface.
Returns reference to hash. Current operating frequency channel of the radio Returns reference to hash. Current operating frequency channel of the radio
interface. interface.
=item $dot11->dot11_cur_tx_pwr_mw()
Returns reference to hash. Current transmit power, in milliwats, of the radio
interface.
=back =back
=head2 Dot11 Phy OFDM Table (B<dot11PhyOFDMTable>) =head2 Dot11 Phy OFDM Table (B<dot11PhyOFDMTable>)
@@ -318,4 +350,48 @@ interface.
(B<dot11StationID>) (B<dot11StationID>)
=back
=head2 Dot11 Transmission Power Table (B<dot11PhyTxPowerTable>)
=over
=item $dot11->dot11_cur_tx_pwr()
(B<dot11CurrentTxPowerLevel>)
=item $dot11->dot11_tx_pwr_level_1()
(B<dot11TxPowerLevel1>)
=item $dot11->dot11_tx_pwr_level_2()
(B<dot11TxPowerLevel2>)
=item $dot11->dot11_tx_pwr_level_3()
(B<dot11TxPowerLevel3>)
=item $dot11->dot11_tx_pwr_level_4()
(B<dot11TxPowerLevel4>)
=item $dot11->dot11_tx_pwr_level_5()
(B<dot11TxPowerLevel5>)
=item $dot11->dot11_tx_pwr_level_6()
(B<dot11TxPowerLevel6>)
=item $dot11->dot11_tx_pwr_level_7()
(B<dot11TxPowerLevel7>)
=item $dot11->dot11_tx_pwr_level_8()
(B<dot11TxPowerLevel8>)
=back
=cut =cut