diff --git a/ChangeLog b/ChangeLog index bb95fbef..01b3e3e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,8 @@ version 2.07 () [ENHANCEMENTS] + * Add method to report current transmit power of the radio interface, + dot11_cur_tx_pwr_mw(), in Airespace class * [3085411] Activate L3 properties for Netgear GSM7224v2 (phishphreek) * [3085413] SNMP OIDs for Netgear Serial and OS Ver (phishphreek) * [3286549] Dell LLDP Support (Nico Giefing) @@ -20,6 +22,7 @@ version 2.07 () [BUG FIXES] + * Correct reporting of SSID broadcast status in Airespace class * [2929883] [3413999] LLDP interface mapping issue * [3297786] LLDP TimeMark component defaults to zero (David Baldwin) * [2988163] Detect Juniper SSG firewalls as Layer3::Netscreen (R. Kerr) diff --git a/Info/Airespace.pm b/Info/Airespace.pm index 647ba03e..25389ab1 100644 --- a/Info/Airespace.pm +++ b/Info/Airespace.pm @@ -83,7 +83,8 @@ $VERSION = '2.06'; 'airespace_ess_qos' => 'bsnDot11EssQualityOfService', 'airespace_ess_ifname' => 'bsnDot11EssInterfaceName', 'airespace_ess_aclname' => 'bsnDot11EssAclName', - + 'airespace_ess_bcast' => 'bsnDot11EssBroadcastSsid', + # AIRESPACE-WIRELESS-MIB::bsnAPTable 'airespace_ap_mac' => 'bsnAPDot3MacAddress', 'airespace_ap_name' => 'bsnAPName', @@ -105,6 +106,7 @@ $VERSION = '2.06'; 'airespace_apif' => 'bsnAPIfOperStatus', 'airespace_apif_oride' => 'bsnAPIfWlanOverride', 'airespace_apif_admin' => 'bsnAPIfAdminStatus', + 'airespace_apif_a_pwr' => 'bsnAPIfAbsolutePowerList', # AIRESPACE-WIRELESS-MIB::bsnMobileStationTable 'airespace_sta_mac' => 'bsnMobileStationAPMacAddr', @@ -631,15 +633,27 @@ sub i_ssidbcast { my $airespace = shift; my $partial = shift; - my $ssidlist = $airespace->i_ssidlist($partial) || {}; - my $bc_mode = $airespace->airespace_bssid_mode() || 'enable'; + my $ssidlist = $airespace->i_ssidlist($partial) || {}; + my $bc_mode = $airespace->airespace_bssid_mode() || 'enable'; + my $ess_bc_mode = $airespace->airespace_ess_bcast() || {}; + my $ssids = $airespace->airespace_ess_ssid() || {}; + my %ssid_index = reverse %$ssids; my %bcmap = qw/enable 1 disable 0/; my $broadcast = $bcmap{$bc_mode}; my %i_ssidbcast; foreach my $iid ( keys %$ssidlist ) { - $i_ssidbcast{$iid} = $broadcast; + if (!$broadcast) { + $i_ssidbcast{$iid} = $broadcast; + next; + } + else { + my $ssid = $ssidlist->{$iid}; + my $ssid_idx = $ssid_index{$ssid}; + my $bc = $ess_bc_mode->{$ssid_idx}; + $i_ssidbcast{$iid} = $bcmap{$bc}; + } } return \%i_ssidbcast; @@ -661,6 +675,28 @@ sub i_80211channel { return \%i_80211channel; } +sub dot11_cur_tx_pwr_mw { + my $airespace = shift; + my $partial = shift; + my $cur = $airespace->airespace_apif_power($partial); + my $pwr_abs = $airespace->airespace_apif_a_pwr($partial); + + my $dot11_cur_tx_pwr_mw = {}; + foreach my $idx ( keys %$cur ) { + my $pwr = $cur->{$idx}; + if ( $pwr >= 1 && $pwr <= 8 ) { + + my @pwr_list = split(/,/, $pwr_abs->{$idx} ); + $dot11_cur_tx_pwr_mw->{$idx} = $pwr_list[$pwr-1]; + + } + else { + next; + } + } + return $dot11_cur_tx_pwr_mw; +} + # Pseudo ENTITY-MIB methods sub e_index { @@ -1147,6 +1183,11 @@ Returns reference to hash. Indicates whether the SSID is broadcast. Returns reference to hash. Current operating frequency channel of the radio interface. +=item $dot11->dot11_cur_tx_pwr_mw() + +Returns reference to hash. Current transmit power, in milliwatts, of the +radio interface. + =back =head2 Dot11 Ess Table (C) @@ -1214,6 +1255,12 @@ enabled. (C) +=item $airespace->airespace_ess_bcast() + +This attribute when enabled allows the switch to broadcast this SSID. + +(C) + =back =head2 AP Table (C) @@ -1317,6 +1364,12 @@ However, if this is enabled, then only those WLANs that appear in the (C) +=item $airespace->airespace_apif_a_pwr() + +List of comma separated absolute power levels supported by the radio. + +(C) + =back =head2 Mobile Station Table (C)