Compare commits
70 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e2c6958d6 | ||
|
|
4ba91f9df8 | ||
|
|
3b604723bd | ||
|
|
a2877729ff | ||
|
|
605ae68f6b | ||
|
|
ef8afd8b65 | ||
|
|
9365c67a6b | ||
|
|
8e3f10673e | ||
|
|
cc95604bd9 | ||
|
|
6799312ad0 | ||
|
|
8dee0fcd12 | ||
|
|
dca78048c7 | ||
|
|
014d32cec1 | ||
|
|
477d845c39 | ||
|
|
6e5155ffbf | ||
|
|
39679992f0 | ||
|
|
4dee43a863 | ||
|
|
5c599bd3d2 | ||
|
|
be0dbf6953 | ||
|
|
a59572b392 | ||
|
|
19cdb388e5 | ||
|
|
e68fa13289 | ||
|
|
d938a2c0d6 | ||
|
|
16285ce2eb | ||
|
|
e356189010 | ||
|
|
4230a07c94 | ||
|
|
f2b0f67b5f | ||
|
|
a8766a0b0b | ||
|
|
b78b1b4860 | ||
|
|
6118b0d012 | ||
|
|
ca48defd24 | ||
|
|
93787c4c45 | ||
|
|
5562144209 | ||
|
|
b28f81adbb | ||
|
|
64846ed2de | ||
|
|
d7d747af67 | ||
|
|
41e9332420 | ||
|
|
23613800b2 | ||
|
|
8100461520 | ||
|
|
07afff6ef0 | ||
|
|
400c26a1d7 | ||
|
|
b6f7df332b | ||
|
|
e5eee009b3 | ||
|
|
bb731c6368 | ||
|
|
a418ba0a1e | ||
|
|
cea462662d | ||
|
|
f3a8b1171b | ||
|
|
bb773ccc0a | ||
|
|
61dc499369 | ||
|
|
d806795a86 | ||
|
|
91f92f0fb9 | ||
|
|
bde8da5e6b | ||
|
|
f134368e6d | ||
|
|
a6ff166e4e | ||
|
|
3ea6bd6217 | ||
|
|
6405ebfc3e | ||
|
|
94ab114cd3 | ||
|
|
954f58fdbc | ||
|
|
8232e783fa | ||
|
|
5aa21deb07 | ||
|
|
b7ac11222a | ||
|
|
b24da8c380 | ||
|
|
ab2be759af | ||
|
|
78e5528c0d | ||
|
|
01ce4238dd | ||
|
|
a82e8e32a0 | ||
|
|
770ab9c8ec | ||
|
|
f63a71910c | ||
|
|
8fa27f8844 | ||
|
|
ea59fa2c2d |
10
.github/issue_template.md
vendored
10
.github/issue_template.md
vendored
@@ -25,6 +25,16 @@
|
||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||
|
||||
## Your Device
|
||||
<!--- Some basic info about your device will help out pinpointing the issue more easily -->
|
||||
<!--- also, snmpwalk output of the following oid helps out a lot: .1.3.6.1.2.1.1 -->
|
||||
<!--- this is the system leaf of the snmp mib-2 -->
|
||||
* Vendor:
|
||||
* Device Model:
|
||||
* Operating System Version:
|
||||
* Snmpwalk output of .1.3.6.1.2.1.1:
|
||||
|
||||
|
||||
## Your Environment
|
||||
<!--- Include as many relevant details about the environment you experienced the bug in -->
|
||||
* SNMP::Info version used:
|
||||
|
||||
@@ -12,7 +12,7 @@ before_install:
|
||||
- mkdir ~/netdisco-mibs
|
||||
- cd ~/netdisco-mibs
|
||||
install:
|
||||
- curl -sL https://github.com/netdisco/netdisco-mibs/releases/download/4.010/netdisco-mibs.tar.gz | tar --strip-components=1 -zxf -
|
||||
- curl -sL https://github.com/netdisco/netdisco-mibs/releases/download/4.014/netdisco-mibs.tar.gz | tar --strip-components=1 -zxf -
|
||||
- cpanm --quiet --notest PkgConfig Test::CChecker Alien::zlib::Static Alien::OpenSSL::Static Alien::SNMP::MAXTC
|
||||
before_script:
|
||||
- 'cd ${TRAVIS_BUILD_DIR}'
|
||||
@@ -23,7 +23,12 @@ script:
|
||||
./Build test --test_files t/ --test_files xt/
|
||||
notifications:
|
||||
irc:
|
||||
on_success: change
|
||||
on_success: always
|
||||
on_failure: always
|
||||
channels:
|
||||
- 'chat.freenode.net#netdisco'
|
||||
email:
|
||||
on_success: always
|
||||
on_failure: always
|
||||
recipients:
|
||||
- 'snmp-info-cvs@lists.sourceforge.net'
|
||||
|
||||
2
Build.PL
2
Build.PL
@@ -35,6 +35,8 @@ Module::Build->new(
|
||||
'File::Slurper' => '0',
|
||||
'Test::Exception' => '0.43',
|
||||
'Class::Inspector' => '0',
|
||||
'NetSNMP::default_store' => '0',
|
||||
'Module::Find' => '0',
|
||||
},
|
||||
# script_files => [
|
||||
# ],
|
||||
|
||||
59
Changes
59
Changes
@@ -1,3 +1,56 @@
|
||||
Version 3.65 (2019-02-24)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #296 expand CiscoAgg to also include LACP (inphobia)
|
||||
* #308 update VyOS enterprise OID
|
||||
* #310 bring layer3::oneaccess up to date for oneos6. (inphobia)
|
||||
* Add two more HP 2930F models (JeroenvIS)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #295 make CiscoAgg return ifindex instead of bp_index (inphobia)
|
||||
* more documentation fixes + whitespace cleanup in all files
|
||||
|
||||
Version 3.64 (2018-12-30)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* #283 support for Exinda/GFI traffic shapers (inphobia)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #282 Aerohive base MAC lookup (inphobia)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* many documentation fixes (inphobia)
|
||||
|
||||
Version 3.63 (2018-11-25)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #280 update to retrieve Aerohive serial (inphobia / nick n.)
|
||||
* #271 update os_ver for Alcatel-Lucent (stromsoe)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #273 remove old ADTRAN modules not in netdisco-mibs
|
||||
|
||||
Version 3.62 (2018-10-29)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #278 Support for Cisco Firepower Threat Defense
|
||||
* #275 Document peth_port_ifindex for Junipers
|
||||
* #274 Add peth_port_ifindex override for Junipers
|
||||
* #270 Add support for additional Mikrotik models
|
||||
* Add HP 3810M, 2930M, 2930F and 2540 series switches
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #265 Fix typos in L3::Huawei
|
||||
|
||||
Version 3.61 (2018-05-09)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
@@ -82,7 +135,7 @@ Version 3.56 (2018-04-22)
|
||||
[BUG FIXES]
|
||||
|
||||
* Fix table methods when defined as an OID which will not completely
|
||||
translate to a fully qualified textual leaf
|
||||
translate to a fully qualified textual leaf
|
||||
|
||||
Version 3.55 (2018-04-19)
|
||||
|
||||
@@ -115,7 +168,7 @@ Version 3.55 (2018-04-19)
|
||||
ports() of L3::C3550
|
||||
* Correct validation and IID/key used in mau_set_i_speed_admin() and
|
||||
mau_set_i_duplex_admin() of MAU
|
||||
* Correct typo in MIB leaf names in L3::Aironet
|
||||
* Correct typo in MIB leaf names in L3::Aironet
|
||||
* Don't use MIB leafs that are not-accessible according to MIB
|
||||
NOTE: Fixing this logic now results in methods on MIB leafs specified as
|
||||
not-accessible failing validation in _validate_autoload_method()
|
||||
@@ -178,7 +231,7 @@ version 3.50 (2018-03-14)
|
||||
|
||||
* #226 Avaya VSP devices - no ifAlias
|
||||
* #227 Remove bogus can() check in _set()
|
||||
* Fix SNMP::Info::IEEE802dot3ad when more than 1 LAG
|
||||
* Fix SNMP::Info::IEEE802dot3ad when more than 1 LAG
|
||||
|
||||
version 3.49 (2018-03-03)
|
||||
|
||||
|
||||
16
LICENSE
16
LICENSE
@@ -6,7 +6,7 @@ Original Code
|
||||
Copyright (c) 2002,2003 Regents of the University of California
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
@@ -14,17 +14,17 @@ modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the University of California, Santa Cruz nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
* Neither the name of the University of California, Santa Cruz nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
3
MANIFEST
3
MANIFEST
@@ -54,6 +54,7 @@ lib/SNMP/Info/Layer2/Catalyst.pm
|
||||
lib/SNMP/Info/Layer2/Centillion.pm
|
||||
lib/SNMP/Info/Layer2/Cisco.pm
|
||||
lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
lib/SNMP/Info/Layer2/Exinda.pm
|
||||
lib/SNMP/Info/Layer2/HP.pm
|
||||
lib/SNMP/Info/Layer2/HP4000.pm
|
||||
lib/SNMP/Info/Layer2/HPVC.pm
|
||||
@@ -153,7 +154,7 @@ xt/00_local_prereq.t
|
||||
xt/00_local_spelling.t
|
||||
xt/00_local_versionsync.t
|
||||
xt/10_remote_snmplabs.t
|
||||
xt/20_run.t
|
||||
xt/21_run.t
|
||||
xt/lib/My/Test/Class.pm
|
||||
xt/lib/Test/SNMP/Info.pm
|
||||
xt/lib/Test/SNMP/Info/AdslLine.pm
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
# Avoid Devel::Cover and Devel::CoverX::Covered files.
|
||||
\bcover_db\b
|
||||
\bcovered\b
|
||||
|
||||
|
||||
# Avoid MYMETA files
|
||||
^MYMETA\.
|
||||
|
||||
|
||||
266
META.json
266
META.json
@@ -38,6 +38,8 @@
|
||||
"Class::Inspector" : "0",
|
||||
"File::Find" : "0",
|
||||
"File::Slurper" : "0",
|
||||
"Module::Find" : "0",
|
||||
"NetSNMP::default_store" : "0",
|
||||
"Path::Class" : "0",
|
||||
"Test::Class::Most" : "0",
|
||||
"Test::Distribution" : "0",
|
||||
@@ -50,515 +52,519 @@
|
||||
"provides" : {
|
||||
"SNMP::Info" : {
|
||||
"file" : "lib/SNMP/Info.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::AMAP" : {
|
||||
"file" : "lib/SNMP/Info/AMAP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::AdslLine" : {
|
||||
"file" : "lib/SNMP/Info/AdslLine.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Aggregate" : {
|
||||
"file" : "lib/SNMP/Info/Aggregate.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Airespace.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Bridge" : {
|
||||
"file" : "lib/SNMP/Info/Bridge.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CDP" : {
|
||||
"file" : "lib/SNMP/Info/CDP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoAgg" : {
|
||||
"file" : "lib/SNMP/Info/CiscoAgg.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoConfig" : {
|
||||
"file" : "lib/SNMP/Info/CiscoConfig.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoPortSecurity" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoPower" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPower.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoQOS" : {
|
||||
"file" : "lib/SNMP/Info/CiscoQOS.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoRTT" : {
|
||||
"file" : "lib/SNMP/Info/CiscoRTT.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoStack" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStack.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoStats" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStats.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoStpExtensions" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::CiscoVTP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoVTP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::EDP" : {
|
||||
"file" : "lib/SNMP/Info/EDP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Entity" : {
|
||||
"file" : "lib/SNMP/Info/Entity.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::EtherLike" : {
|
||||
"file" : "lib/SNMP/Info/EtherLike.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::FDP" : {
|
||||
"file" : "lib/SNMP/Info/FDP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot11" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot11.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot3ad" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::IPv6" : {
|
||||
"file" : "lib/SNMP/Info/IPv6.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::LLDP" : {
|
||||
"file" : "lib/SNMP/Info/LLDP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1" : {
|
||||
"file" : "lib/SNMP/Info/Layer1.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Allied.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1::Asante" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Asante.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1::Bayhub" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1::Cyclades" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer1::S3000" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/S3000.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2" : {
|
||||
"file" : "lib/SNMP/Info/Layer2.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::3Com" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/3Com.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Adtran" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Adtran.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aerohive" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aerohive.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Airespace.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aironet.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Allied.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Atmedia" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Atmedia.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Baystack" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Baystack.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::C1900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C1900.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::C2900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C2900.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Catalyst" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Centillion" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Centillion.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Cisco.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::CiscoSB" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Exinda" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Exinda.pm",
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP4000.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::HPVC" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HPVC.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Kentrox" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::N2270" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/N2270.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::NAP222x" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::NWSS2300" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Netgear" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Netgear.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Nexans" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Nexans.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Orinoco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Sixnet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Sixnet.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Trapeze" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::Ubiquiti" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer2::ZyXEL_DSLAM" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3" : {
|
||||
"file" : "lib/SNMP/Info/Layer3.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aironet.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlcatelLucent" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlteonAD" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Altiga" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Altiga.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Arista" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Arista.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aruba" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aruba.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::BayRS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BayRS.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::BlueCoatSG" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::C3550" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C3550.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::C4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C4000.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::C6500" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C6500.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::CheckPoint" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cisco.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoASA" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoFWSM" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoSwitch" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Contivity" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Contivity.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cumulus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cumulus.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::DLink" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/DLink.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Dell" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Dell.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::ERX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ERX.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Enterasys" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Extreme" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Extreme.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::F5" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/F5.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Force10" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Force10.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Fortinet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Foundry" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Foundry.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Genua" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Genua.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::H3C" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/H3C.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::HP9300" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/HP9300.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Huawei" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Huawei.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::IBMGbTor" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Juniper" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Juniper.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lantronix" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Microsoft" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Mikrotik" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::N1600" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/N1600.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::NetSNMP" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Netscreen" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Nexus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Nexus.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::OneAccess" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/OneAccess.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::PacketFront" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::PaloAlto" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Passport" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Passport.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pf" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pf.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pica8" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pica8.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::SonicWALL" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelhead" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Sun" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Sun.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Tasman" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Tasman.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::Timetra" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Timetra.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::VMware" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VMware.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer3::VyOS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VyOS.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7" : {
|
||||
"file" : "lib/SNMP/Info/Layer7.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::APC" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/APC.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::Arbor" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Arbor.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::CiscoIPS" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::Gigamon" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Gigamon.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::Liebert" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Liebert.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::Neoteris" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::Layer7::Netscaler" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::MAU" : {
|
||||
"file" : "lib/SNMP/Info/MAU.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::MRO" : {
|
||||
"file" : "lib/SNMP/Info/MRO.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::NortelStack" : {
|
||||
"file" : "lib/SNMP/Info/NortelStack.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::PowerEthernet" : {
|
||||
"file" : "lib/SNMP/Info/PowerEthernet.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::RapidCity" : {
|
||||
"file" : "lib/SNMP/Info/RapidCity.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
},
|
||||
"SNMP::Info::SONMP" : {
|
||||
"file" : "lib/SNMP/Info/SONMP.pm",
|
||||
"version" : "3.61"
|
||||
"version" : "3.65"
|
||||
}
|
||||
},
|
||||
"release_status" : "stable",
|
||||
@@ -568,7 +574,7 @@
|
||||
},
|
||||
"homepage" : "http://netdisco.org/",
|
||||
"license" : [
|
||||
"http://opensource.org/licenses/bsd-license.php"
|
||||
"http://opensource.org/licenses/BSD-3-Clause"
|
||||
],
|
||||
"repository" : {
|
||||
"url" : "https://github.com/netdisco/snmp-info"
|
||||
@@ -576,6 +582,6 @@
|
||||
"x_IRC" : "irc://irc.freenode.org/#netdisco",
|
||||
"x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
|
||||
},
|
||||
"version" : "3.61",
|
||||
"version" : "3.65",
|
||||
"x_serialization_backend" : "JSON::PP version 2.97001"
|
||||
}
|
||||
|
||||
265
META.yml
265
META.yml
@@ -6,6 +6,8 @@ build_requires:
|
||||
Class::Inspector: '0'
|
||||
File::Find: '0'
|
||||
File::Slurper: '0'
|
||||
Module::Find: '0'
|
||||
NetSNMP::default_store: '0'
|
||||
Path::Class: '0'
|
||||
Test::Class::Most: '0'
|
||||
Test::Distribution: '0'
|
||||
@@ -24,388 +26,391 @@ name: SNMP-Info
|
||||
provides:
|
||||
SNMP::Info:
|
||||
file: lib/SNMP/Info.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::AMAP:
|
||||
file: lib/SNMP/Info/AMAP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::AdslLine:
|
||||
file: lib/SNMP/Info/AdslLine.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Aggregate:
|
||||
file: lib/SNMP/Info/Aggregate.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Airespace:
|
||||
file: lib/SNMP/Info/Airespace.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Bridge:
|
||||
file: lib/SNMP/Info/Bridge.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CDP:
|
||||
file: lib/SNMP/Info/CDP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoAgg:
|
||||
file: lib/SNMP/Info/CiscoAgg.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoConfig:
|
||||
file: lib/SNMP/Info/CiscoConfig.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoPortSecurity:
|
||||
file: lib/SNMP/Info/CiscoPortSecurity.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoPower:
|
||||
file: lib/SNMP/Info/CiscoPower.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoQOS:
|
||||
file: lib/SNMP/Info/CiscoQOS.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoRTT:
|
||||
file: lib/SNMP/Info/CiscoRTT.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoStack:
|
||||
file: lib/SNMP/Info/CiscoStack.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoStats:
|
||||
file: lib/SNMP/Info/CiscoStats.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoStpExtensions:
|
||||
file: lib/SNMP/Info/CiscoStpExtensions.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::CiscoVTP:
|
||||
file: lib/SNMP/Info/CiscoVTP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::EDP:
|
||||
file: lib/SNMP/Info/EDP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Entity:
|
||||
file: lib/SNMP/Info/Entity.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::EtherLike:
|
||||
file: lib/SNMP/Info/EtherLike.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::FDP:
|
||||
file: lib/SNMP/Info/FDP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::IEEE802dot11:
|
||||
file: lib/SNMP/Info/IEEE802dot11.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::IEEE802dot3ad:
|
||||
file: lib/SNMP/Info/IEEE802dot3ad.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::IPv6:
|
||||
file: lib/SNMP/Info/IPv6.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::LLDP:
|
||||
file: lib/SNMP/Info/LLDP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1:
|
||||
file: lib/SNMP/Info/Layer1.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1::Allied:
|
||||
file: lib/SNMP/Info/Layer1/Allied.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1::Asante:
|
||||
file: lib/SNMP/Info/Layer1/Asante.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1::Bayhub:
|
||||
file: lib/SNMP/Info/Layer1/Bayhub.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1::Cyclades:
|
||||
file: lib/SNMP/Info/Layer1/Cyclades.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer1::S3000:
|
||||
file: lib/SNMP/Info/Layer1/S3000.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2:
|
||||
file: lib/SNMP/Info/Layer2.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::3Com:
|
||||
file: lib/SNMP/Info/Layer2/3Com.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Adtran:
|
||||
file: lib/SNMP/Info/Layer2/Adtran.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Aerohive:
|
||||
file: lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Airespace:
|
||||
file: lib/SNMP/Info/Layer2/Airespace.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Aironet:
|
||||
file: lib/SNMP/Info/Layer2/Aironet.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Allied:
|
||||
file: lib/SNMP/Info/Layer2/Allied.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Atmedia:
|
||||
file: lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Baystack:
|
||||
file: lib/SNMP/Info/Layer2/Baystack.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::C1900:
|
||||
file: lib/SNMP/Info/Layer2/C1900.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::C2900:
|
||||
file: lib/SNMP/Info/Layer2/C2900.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Catalyst:
|
||||
file: lib/SNMP/Info/Layer2/Catalyst.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Centillion:
|
||||
file: lib/SNMP/Info/Layer2/Centillion.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Cisco:
|
||||
file: lib/SNMP/Info/Layer2/Cisco.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::CiscoSB:
|
||||
file: lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Exinda:
|
||||
file: lib/SNMP/Info/Layer2/Exinda.pm
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::HP:
|
||||
file: lib/SNMP/Info/Layer2/HP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::HP4000:
|
||||
file: lib/SNMP/Info/Layer2/HP4000.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::HPVC:
|
||||
file: lib/SNMP/Info/Layer2/HPVC.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Kentrox:
|
||||
file: lib/SNMP/Info/Layer2/Kentrox.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::N2270:
|
||||
file: lib/SNMP/Info/Layer2/N2270.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::NAP222x:
|
||||
file: lib/SNMP/Info/Layer2/NAP222x.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::NWSS2300:
|
||||
file: lib/SNMP/Info/Layer2/NWSS2300.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Netgear:
|
||||
file: lib/SNMP/Info/Layer2/Netgear.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Nexans:
|
||||
file: lib/SNMP/Info/Layer2/Nexans.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Orinoco:
|
||||
file: lib/SNMP/Info/Layer2/Orinoco.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Sixnet:
|
||||
file: lib/SNMP/Info/Layer2/Sixnet.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Trapeze:
|
||||
file: lib/SNMP/Info/Layer2/Trapeze.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::Ubiquiti:
|
||||
file: lib/SNMP/Info/Layer2/Ubiquiti.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer2::ZyXEL_DSLAM:
|
||||
file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3:
|
||||
file: lib/SNMP/Info/Layer3.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Aironet:
|
||||
file: lib/SNMP/Info/Layer3/Aironet.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::AlcatelLucent:
|
||||
file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::AlteonAD:
|
||||
file: lib/SNMP/Info/Layer3/AlteonAD.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Altiga:
|
||||
file: lib/SNMP/Info/Layer3/Altiga.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Arista:
|
||||
file: lib/SNMP/Info/Layer3/Arista.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Aruba:
|
||||
file: lib/SNMP/Info/Layer3/Aruba.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::BayRS:
|
||||
file: lib/SNMP/Info/Layer3/BayRS.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::BlueCoatSG:
|
||||
file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::C3550:
|
||||
file: lib/SNMP/Info/Layer3/C3550.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::C4000:
|
||||
file: lib/SNMP/Info/Layer3/C4000.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::C6500:
|
||||
file: lib/SNMP/Info/Layer3/C6500.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::CheckPoint:
|
||||
file: lib/SNMP/Info/Layer3/CheckPoint.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Cisco:
|
||||
file: lib/SNMP/Info/Layer3/Cisco.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::CiscoASA:
|
||||
file: lib/SNMP/Info/Layer3/CiscoASA.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::CiscoFWSM:
|
||||
file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::CiscoSwitch:
|
||||
file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Contivity:
|
||||
file: lib/SNMP/Info/Layer3/Contivity.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Cumulus:
|
||||
file: lib/SNMP/Info/Layer3/Cumulus.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::DLink:
|
||||
file: lib/SNMP/Info/Layer3/DLink.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Dell:
|
||||
file: lib/SNMP/Info/Layer3/Dell.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::ERX:
|
||||
file: lib/SNMP/Info/Layer3/ERX.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Enterasys:
|
||||
file: lib/SNMP/Info/Layer3/Enterasys.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Extreme:
|
||||
file: lib/SNMP/Info/Layer3/Extreme.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::F5:
|
||||
file: lib/SNMP/Info/Layer3/F5.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Force10:
|
||||
file: lib/SNMP/Info/Layer3/Force10.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Fortinet:
|
||||
file: lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Foundry:
|
||||
file: lib/SNMP/Info/Layer3/Foundry.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Genua:
|
||||
file: lib/SNMP/Info/Layer3/Genua.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::H3C:
|
||||
file: lib/SNMP/Info/Layer3/H3C.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::HP9300:
|
||||
file: lib/SNMP/Info/Layer3/HP9300.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Huawei:
|
||||
file: lib/SNMP/Info/Layer3/Huawei.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::IBMGbTor:
|
||||
file: lib/SNMP/Info/Layer3/IBMGbTor.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Juniper:
|
||||
file: lib/SNMP/Info/Layer3/Juniper.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Lantronix:
|
||||
file: lib/SNMP/Info/Layer3/Lantronix.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Microsoft:
|
||||
file: lib/SNMP/Info/Layer3/Microsoft.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Mikrotik:
|
||||
file: lib/SNMP/Info/Layer3/Mikrotik.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::N1600:
|
||||
file: lib/SNMP/Info/Layer3/N1600.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::NetSNMP:
|
||||
file: lib/SNMP/Info/Layer3/NetSNMP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Netscreen:
|
||||
file: lib/SNMP/Info/Layer3/Netscreen.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Nexus:
|
||||
file: lib/SNMP/Info/Layer3/Nexus.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::OneAccess:
|
||||
file: lib/SNMP/Info/Layer3/OneAccess.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::PacketFront:
|
||||
file: lib/SNMP/Info/Layer3/PacketFront.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::PaloAlto:
|
||||
file: lib/SNMP/Info/Layer3/PaloAlto.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Passport:
|
||||
file: lib/SNMP/Info/Layer3/Passport.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Pf:
|
||||
file: lib/SNMP/Info/Layer3/Pf.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Pica8:
|
||||
file: lib/SNMP/Info/Layer3/Pica8.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::SonicWALL:
|
||||
file: lib/SNMP/Info/Layer3/SonicWALL.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Steelhead:
|
||||
file: lib/SNMP/Info/Layer3/Steelhead.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Sun:
|
||||
file: lib/SNMP/Info/Layer3/Sun.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Tasman:
|
||||
file: lib/SNMP/Info/Layer3/Tasman.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::Timetra:
|
||||
file: lib/SNMP/Info/Layer3/Timetra.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::VMware:
|
||||
file: lib/SNMP/Info/Layer3/VMware.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer3::VyOS:
|
||||
file: lib/SNMP/Info/Layer3/VyOS.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7:
|
||||
file: lib/SNMP/Info/Layer7.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::APC:
|
||||
file: lib/SNMP/Info/Layer7/APC.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::Arbor:
|
||||
file: lib/SNMP/Info/Layer7/Arbor.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::CiscoIPS:
|
||||
file: lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::Gigamon:
|
||||
file: lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::Liebert:
|
||||
file: lib/SNMP/Info/Layer7/Liebert.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::Neoteris:
|
||||
file: lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::Layer7::Netscaler:
|
||||
file: lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::MAU:
|
||||
file: lib/SNMP/Info/MAU.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::MRO:
|
||||
file: lib/SNMP/Info/MRO.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::NortelStack:
|
||||
file: lib/SNMP/Info/NortelStack.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::PowerEthernet:
|
||||
file: lib/SNMP/Info/PowerEthernet.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::RapidCity:
|
||||
file: lib/SNMP/Info/RapidCity.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
SNMP::Info::SONMP:
|
||||
file: lib/SNMP/Info/SONMP.pm
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
recommends:
|
||||
Class::ISA: '0'
|
||||
File::Slurp: '0'
|
||||
@@ -421,7 +426,7 @@ resources:
|
||||
MailingList: https://lists.sourceforge.net/lists/listinfo/snmp-info-users
|
||||
bugtracker: https://github.com/netdisco/snmp-info/issues
|
||||
homepage: http://netdisco.org/
|
||||
license: http://opensource.org/licenses/bsd-license.php
|
||||
license: http://opensource.org/licenses/BSD-3-Clause
|
||||
repository: https://github.com/netdisco/snmp-info
|
||||
version: '3.61'
|
||||
version: '3.65'
|
||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
||||
|
||||
139
README
139
README
@@ -2,13 +2,13 @@ NAME
|
||||
SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
VERSION
|
||||
SNMP::Info - Version 3.61
|
||||
SNMP::Info - Version 3.65
|
||||
|
||||
AUTHOR
|
||||
SNMP::Info is maintained by team of Open Source authors headed by Eric
|
||||
Miller, Bill Fenner, Max Baker, Jeroen van Ingen and Oliver Gorwits.
|
||||
|
||||
Please visit <http://sourceforge.net/projects/snmp-info/> for most
|
||||
Please visit <https://github.com/netdisco/snmp-info/> for the most
|
||||
up-to-date list of developers.
|
||||
|
||||
SNMP::Info was originally created at UCSC for the Netdisco project
|
||||
@@ -36,8 +36,8 @@ SYNOPSIS
|
||||
my $err = $info->error();
|
||||
die "SNMP Community or Version probably wrong connecting to device. $err\n" if defined $err;
|
||||
|
||||
$name = $info->name();
|
||||
$class = $info->class();
|
||||
my $name = $info->name();
|
||||
my $class = $info->class();
|
||||
print "SNMP::Info is using this device class : $class\n";
|
||||
|
||||
# Find out the Duplex status for the ports
|
||||
@@ -137,8 +137,7 @@ REQUIREMENTS
|
||||
|
||||
If you are using SNMP::Info separate from Netdisco, download the
|
||||
Netdisco MIB package at
|
||||
<http://sourceforge.net/projects/netdisco/files/netdisco-mibs/latest
|
||||
-snapshot/>
|
||||
<https://github.com/netdisco/netdisco-mibs/releases/latest/>
|
||||
|
||||
Make sure that your snmp.conf is updated to point to your MIB
|
||||
directory and that the MIBs are world-readable.
|
||||
@@ -169,8 +168,8 @@ DESIGN GOALS
|
||||
See the section EXTENDING SNMP::INFO for more details.
|
||||
|
||||
When you make a new subclass for a device, please be sure to send it
|
||||
back to the developers (via Source Forge or the mailing list) for
|
||||
inclusion in the next version.
|
||||
back to the developers (via a github pull request or the mailing
|
||||
list) for inclusion in the next version.
|
||||
|
||||
SUBCLASSES
|
||||
These are the subclasses that implement MIBs and support devices:
|
||||
@@ -209,7 +208,7 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::AMAP for details.
|
||||
|
||||
SNMP::Info::Bridge
|
||||
BRIDGE-MIB (RFC1286). QBRIDGE-MIB. Inherited by devices with Layer2
|
||||
BRIDGE-MIB (RFC1286). Q-BRIDGE-MIB. Inherited by devices with Layer2
|
||||
support.
|
||||
|
||||
See documentation in SNMP::Info::Bridge for details.
|
||||
@@ -323,7 +322,7 @@ SUBCLASSES
|
||||
|
||||
SNMP::Info::MAU
|
||||
MAU-MIB (RFC2668). Some Layer2 devices use this for extended
|
||||
Ethernet (Media Access Unit) interface information.
|
||||
Ethernet (Medium Attachment Unit) interface information.
|
||||
|
||||
See documentation in SNMP::Info::MAU for details.
|
||||
|
||||
@@ -404,7 +403,7 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer2 for details.
|
||||
|
||||
SNMP::Info::Layer2::3Com
|
||||
SNMP::Info::Layer2::3Com - SNMP Interface to L2 3Com Switches
|
||||
Subclass for L2 3Com Switches.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::3Com for details.
|
||||
|
||||
@@ -425,7 +424,8 @@ SUBCLASSES
|
||||
|
||||
SNMP::Info::Layer2::Aironet
|
||||
Class for Cisco Aironet wireless devices that run IOS. See also
|
||||
Layer3::Aironet for Aironet devices that don't run IOS.
|
||||
SNMP::Info::Layer3::Aironet for Aironet devices that don't run
|
||||
IOS.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Aironet for details.
|
||||
|
||||
@@ -448,10 +448,6 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Baystack for details.
|
||||
|
||||
SNMP::Info::Layer2::Kentrox
|
||||
Class for Kentrox DataSMART DSU/CSU. See
|
||||
SNMP::Info::Layer2::Kentrox for details.
|
||||
|
||||
SNMP::Info::Layer2::C1900
|
||||
Subclass for Cisco Catalyst 1900 and 1900c Devices running
|
||||
CatOS.
|
||||
@@ -491,8 +487,13 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer2::CiscoSB for details.
|
||||
|
||||
SNMP::Info::Layer2::Exinda
|
||||
Subclass for Exinda / GFI Network Orchestrator traffic shapers.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Exinda for details.
|
||||
|
||||
SNMP::Info::Layer2::HP
|
||||
Subclass for more recent HP Procurve Switches
|
||||
Subclass for more recent HP Procurve Switches.
|
||||
|
||||
Requires HP-ICF-OID and ENTITY-MIB downloaded from HP.
|
||||
|
||||
@@ -510,6 +511,11 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer2::HPVC for details.
|
||||
|
||||
SNMP::Info::Layer2::Kentrox
|
||||
Class for Kentrox DataSMART DSU/CSU.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Kentrox for details.
|
||||
|
||||
SNMP::Info::Layer2::N2270
|
||||
Subclass for Nortel 2270 wireless switches.
|
||||
|
||||
@@ -573,7 +579,7 @@ SUBCLASSES
|
||||
MIBs for these devices now included in v2.tar.gz available from
|
||||
ftp.cisco.com.
|
||||
|
||||
Note Layer2::Aironet
|
||||
Note SNMP::Info::Layer2::Aironet
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Aironet for details.
|
||||
|
||||
@@ -629,7 +635,7 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer3::C6500 for details.
|
||||
|
||||
SNMP::Info::Layer3::CheckPoint
|
||||
Subclass for CheckPoint devices
|
||||
Subclass for CheckPoint devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::CheckPoint for details.
|
||||
|
||||
@@ -735,17 +741,18 @@ SUBCLASSES
|
||||
|
||||
SNMP::Info::Layer3::IBMGbTor
|
||||
SNMP Interface to IBM Rackswitch (formerly Blade Network
|
||||
Technologies) network devices.
|
||||
Technologies) network devices. Lenovo acquired these from IBM
|
||||
and is now selling them under the Lenovo brand.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::IBMGbTor for details.
|
||||
|
||||
SNMP::Info::Layer3::Juniper
|
||||
Subclass for Juniper devices
|
||||
Subclass for Juniper devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Juniper for details.
|
||||
|
||||
SNMP::Info::Layer3::Lantronix
|
||||
Subclass for Lantronix devices
|
||||
Subclass for Lantronix devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Lantronix for details.
|
||||
|
||||
@@ -776,12 +783,12 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer3::Netscreen for details.
|
||||
|
||||
SNMP::Info::Layer3::Nexus
|
||||
Subclass for Cisco Nexus devices running NX-OS
|
||||
Subclass for Cisco Nexus devices running NX-OS.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Nexus for details.
|
||||
|
||||
SNMP::Info::Layer3::OneAccess
|
||||
Subclass for OneAccess Quidway switches
|
||||
Subclass for OneAccess routers.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::OneAccess for details.
|
||||
|
||||
@@ -813,12 +820,14 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer3::Pica8 for details.
|
||||
|
||||
SNMP::Info::Layer3::SonicWALL
|
||||
Subclass for generic SonicWALL devices. See documentation in
|
||||
SNMP::Info::Layer3::SonicWALL for details.
|
||||
Subclass for generic SonicWALL devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::SonicWALL for details.
|
||||
|
||||
SNMP::Info::Layer3::Steelhead
|
||||
Subclass for Riverbed Steelhead WAN optimization appliances. See
|
||||
documentation in SNMP::Info::Layer3::Steelhead for details.
|
||||
Subclass for Riverbed Steelhead WAN optimization appliances.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Steelhead for details.
|
||||
|
||||
SNMP::Info::Layer3::Sun
|
||||
Subclass for Generic Sun Routers running SunOS.
|
||||
@@ -851,41 +860,40 @@ SUBCLASSES
|
||||
See documentation in SNMP::Info::Layer7 for details.
|
||||
|
||||
SNMP::Info::Layer7::APC
|
||||
Subclass for APC UPS devices
|
||||
Subclass for APC UPS devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::APC for details.
|
||||
|
||||
SNMP::Info::Layer7::Arbor
|
||||
Subclass for Arbor appliances
|
||||
Subclass for Arbor appliances.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Arbor for details.
|
||||
|
||||
SNMP::Info::Layer7::CiscoIPS
|
||||
Subclass for Cisco IPS devices
|
||||
Subclass for Cisco IPS devices.
|
||||
|
||||
See documentation in "SNMP::Info::Layer7::Cisco IPS" for
|
||||
details.
|
||||
See documentation in SNMP::Info::Layer7::CiscoIPS for details.
|
||||
|
||||
SNMP::Info::Layer7::Gigamon
|
||||
Subclass for Gigamon devices
|
||||
Subclass for Gigamon devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Gigamon for details.
|
||||
|
||||
SNMP::Info::Layer7::Liebert
|
||||
Subclass for Liebert devices
|
||||
Subclass for Liebert devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Liebert for details.
|
||||
|
||||
SNMP::Info::Layer7::Netscaler
|
||||
Subclass for Citrix Netscaler appliances
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Netscaler for details.
|
||||
|
||||
SNMP::Info::Layer7::Neoteris
|
||||
Subclass for Juniper SSL VPN appliances
|
||||
Subclass for Juniper SSL VPN appliances.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Neoteris for details.
|
||||
|
||||
SNMP::Info::Layer7::Netscaler
|
||||
Subclass for Citrix Netscaler appliances.
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Netscaler for details.
|
||||
|
||||
Thanks
|
||||
Thanks for testing and coding help (in no particular order) to :
|
||||
Alexander Barthel, Andy Ford, Alexander Hartmaier, Andrew Herrick, Alex
|
||||
@@ -893,8 +901,8 @@ Thanks
|
||||
Carlos Vicente, Dana Watanabe, David Pinkoski, David Sieborger, Douglas
|
||||
McKeown, Greg King, Ivan Auger, Jean-Philippe Luiggi, Jeroen van Ingen,
|
||||
Justin Hunter, Kent Hamilton, Matthew Tuttle, Michael Robbert, Mike
|
||||
Hunter, Nicolai Petri, Ralf Gross, Robert Kerr and people listed on the
|
||||
Netdisco README!
|
||||
Hunter, Nicolai Petri, Ralf Gross, Robert Kerr, Nick Nauwelaerts and
|
||||
people listed on the Netdisco README!
|
||||
|
||||
USAGE
|
||||
Constructor
|
||||
@@ -1691,8 +1699,8 @@ EXTENDING SNMP::INFO
|
||||
to verify the implementation.
|
||||
|
||||
Gathering MIB data for SNMP::Info Developers
|
||||
The preference is to open a feature request in the SourceForge project.
|
||||
This allows all developers to have visibility into the request. Please
|
||||
The preference is to open a pull request in the github project. This
|
||||
allows all developers to have visibility into the request. Please
|
||||
include pointers to the applicable platform MIBs. For development we
|
||||
will need an "snmpwalk" of the device. There is a tool now included in
|
||||
the SNMP::Info distribution to help with this task, although you'll most
|
||||
@@ -1710,10 +1718,9 @@ EXTENDING SNMP::INFO
|
||||
This will print to the file every MIB entry with data in a format that
|
||||
the developers can use to emulate read operations without needing access
|
||||
to the device. Preference would be to mask any sensitive data in the
|
||||
output, zip the file, and upload as an attachment to the Sourceforge
|
||||
tracker. However, if you do not feel comfortable uploading the output to
|
||||
the tracker you could e-mail it to the developer that has claimed the
|
||||
ticket.
|
||||
output, zip the file, and attach it to the github pull request. However,
|
||||
if you do not feel comfortable uploading the output to the tracker you
|
||||
could e-mail it to the developer that has claimed the ticket.
|
||||
|
||||
Data Structures required in new Subclass
|
||||
A class inheriting this class must implement these data structures :
|
||||
@@ -1859,10 +1866,6 @@ EXTENDING SNMP::INFO
|
||||
1; # don't forget this line
|
||||
----------------------- snip --------------------------------
|
||||
|
||||
Be sure and send the debugged version to
|
||||
snmp-info-users@lists.sourceforge.net to be included in the next version
|
||||
of SNMP::Info.
|
||||
|
||||
SNMP::INFO INTERNALS
|
||||
Object Namespace
|
||||
Internal data is stored with bareword keys. For example $info->{debug}
|
||||
@@ -1896,7 +1899,7 @@ SNMP::INFO INTERNALS
|
||||
|
||||
Data Munging Callback Subroutines
|
||||
munge_speed()
|
||||
Makes human friendly speed ratings using %SPEED_MAP
|
||||
Makes human friendly speed ratings using %SPEED_MAP.
|
||||
|
||||
%SPEED_MAP = (
|
||||
'56000' => '56 kbps',
|
||||
@@ -1945,37 +1948,37 @@ SNMP::INFO INTERNALS
|
||||
speeds up to terabit levels this way.
|
||||
|
||||
munge_highspeed()
|
||||
Makes human friendly speed ratings for "ifHighSpeed"
|
||||
Makes human friendly speed ratings for "ifHighSpeed".
|
||||
|
||||
munge_ip()
|
||||
Takes a binary IP and makes it dotted ASCII
|
||||
Takes a binary IP and makes it dotted ASCII.
|
||||
|
||||
munge_mac()
|
||||
Takes an octet stream (HEX-STRING) and returns a colon separated
|
||||
ASCII hex string.
|
||||
|
||||
munge_prio_mac()
|
||||
Takes an 2-byte octet stream (HEX-STRING) and returns a colon
|
||||
separated ASCII hex string.
|
||||
|
||||
munge_prio_port()
|
||||
Takes an 8-byte octet stream (HEX-STRING) and returns a colon
|
||||
separated ASCII hex string.
|
||||
|
||||
munge_prio_port()
|
||||
Takes an 2-byte octet stream (HEX-STRING) and returns a colon
|
||||
separated ASCII hex string.
|
||||
|
||||
munge_octet2hex()
|
||||
Takes a binary octet stream and returns an ASCII hex string
|
||||
Takes a binary octet stream and returns an ASCII hex string.
|
||||
|
||||
munge_dec2bin()
|
||||
Takes a binary char and returns its ASCII binary representation
|
||||
Takes a binary char and returns its ASCII binary representation.
|
||||
|
||||
munge_bits
|
||||
Takes a SNMP2 'BITS' field and returns the ASCII bit string
|
||||
munge_bits()
|
||||
Takes a SNMP2 'BITS' field and returns the ASCII bit string.
|
||||
|
||||
munge_counter64
|
||||
munge_counter64()
|
||||
If $BIGINT is set to true, then a Math::BigInt object is returned.
|
||||
See Math::BigInt for details.
|
||||
|
||||
munge_i_up
|
||||
munge_i_up()
|
||||
Net-SNMP tends to load "RFC1213-MIB" first, and so ignores the
|
||||
updated enumeration for "ifOperStatus" in "IF-MIB". This munge
|
||||
handles the "newer" definitions for the enumeration in IF-MIB.
|
||||
@@ -1983,7 +1986,7 @@ SNMP::INFO INTERNALS
|
||||
TODO: Get the precedence of MIBs and overriding of MIB data in
|
||||
Net-SNMP figured out. Heirarchy/precendence of MIBS in SNMP::Info.
|
||||
|
||||
munge_port_list
|
||||
munge_port_list()
|
||||
Takes an octet string representing a set of ports and returns a
|
||||
reference to an array of binary values each array element
|
||||
representing a port.
|
||||
@@ -1992,7 +1995,7 @@ SNMP::INFO INTERNALS
|
||||
set of ports; the port is not included if it has a value of '0'.
|
||||
|
||||
munge_null()
|
||||
Removes control characters from a string
|
||||
Removes control characters from a string.
|
||||
|
||||
munge_e_type()
|
||||
Takes an OID and return the object name if the right MIB is loaded.
|
||||
|
||||
@@ -6,23 +6,28 @@ Coding Guidelines:
|
||||
- always update ChangeLog before committing
|
||||
- check-in required mibs to netdisco-mibs and release new package if needed
|
||||
|
||||
Release and Testing Instructions:
|
||||
- Please see misc/RELEASE in Netdisco
|
||||
( http://netdisco.cvs.sourceforge.net/viewvc/netdisco/misc/RELEASE?view=markup )
|
||||
and follow all testing and release guidelines
|
||||
Release and Testing Instructions:
|
||||
- for netdisco see:
|
||||
-> https://github.com/netdisco/netdisco/wiki/Developing
|
||||
-> https://metacpan.org/pod/App::Netdisco
|
||||
- for snmp::info see:
|
||||
-> https://github.com/netdisco/snmp-info/wiki/Release-Process
|
||||
-> https://metacpan.org/pod/SNMP::Info#EXTENDING-SNMP::INFO
|
||||
- for netdisco-mibs see:
|
||||
-> https://github.com/netdisco/netdisco-mibs/wiki
|
||||
|
||||
FAQ:
|
||||
- Do I have to update the version number and timestamp in modified files before committing?
|
||||
- Do I have to update the version number and timestamp in modified files before committing?
|
||||
-> No. These are RCS tags that are automatically updated by CVS when you commit
|
||||
|
||||
- Should I add changes at the top of the ChangeLog?
|
||||
-> Yes. The changelog is created one commit at a time. If there isn't a
|
||||
section for the current version, then add one at the top and put your
|
||||
changes after. You can leave the date field for the release empty ().
|
||||
changes after. You can leave the date field for the release empty ().
|
||||
|
||||
- What should I change the $VERSION to?
|
||||
-> If you are the first person to get to a file after a release, update it
|
||||
to either release++ or "release++ dash cvs".
|
||||
to either release++ or "release++ dash cvs".
|
||||
Example: File is marked 2.01, change it to 2.02-cvs with your new changes.
|
||||
Example: File is marked 2.02-cvs, no change until packaging for release when the -cvs is removed.
|
||||
TODO: Is there still an odd/even scheme as introduced by Eric?
|
||||
|
||||
@@ -28,7 +28,7 @@ if ($@) {
|
||||
} else {
|
||||
$graph{$vendor}->{$family}=[];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
my $now = scalar localtime;
|
||||
@@ -83,7 +83,7 @@ foreach my $vendor (sort sort_nocase keys %$matrix){
|
||||
} elsif (defined $vendor_defaults->{$a}){
|
||||
$val = $vendor_defaults->{$a};
|
||||
$class = 'vendor';
|
||||
}
|
||||
}
|
||||
print " <TD CLASS='$class'>",join("<BR>\n",@$val),"</TD>\n";
|
||||
}
|
||||
print "</TR></TABLE>\n";
|
||||
@@ -141,7 +141,7 @@ sub parse_data {
|
||||
|
||||
my ($cmd,$value);
|
||||
if ($line =~ /^([a-z-_]+)\s*:\s*(.*)$/) {
|
||||
$cmd = $1; $value = $2;
|
||||
$cmd = $1; $value = $2;
|
||||
} else {
|
||||
print "What do i do with this line : $line \n";
|
||||
next;
|
||||
@@ -164,18 +164,18 @@ sub parse_data {
|
||||
$family = $value;
|
||||
$model = undef;
|
||||
print "$family has no vendor.\n" unless defined $vendor;
|
||||
$Matrix->{$vendor}->{families}->{$family} = {}
|
||||
$Matrix->{$vendor}->{families}->{$family} = {}
|
||||
unless defined $Matrix->{$vendor}->{families}->{$family};
|
||||
$class = $Matrix->{$vendor}->{families}->{$family};
|
||||
$class->{defaults}->{type}='family';
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
if ($cmd eq 'device') {
|
||||
$model = $value;
|
||||
print "$model has no family.\n" unless defined $family;
|
||||
print "$model has no vendor.\n" unless defined $vendor;
|
||||
$Matrix->{$vendor}->{families}->{$family}->{models}->{$model} = {}
|
||||
$Matrix->{$vendor}->{families}->{$family}->{models}->{$model} = {}
|
||||
unless defined $Matrix->{$vendor}->{families}->{$family}->{models}->{$model};
|
||||
$class = $Matrix->{$vendor}->{families}->{$family}->{models}->{$model};
|
||||
$class->{defaults}->{type}='device';
|
||||
@@ -233,7 +233,7 @@ sub html_head {
|
||||
.vendor { font-size:12pt; color:#777777; }
|
||||
.family { font-size:12pt; color:blue; }
|
||||
.model { font-size:12pt; color:red; }
|
||||
.note { color:red; }
|
||||
.note { color:red; }
|
||||
//-->
|
||||
</STYLE>
|
||||
</HEAD>
|
||||
@@ -304,7 +304,7 @@ be assumed working.
|
||||
Discovery Protocol (LLDP), Cisco Discovery Protocol (CDP),
|
||||
SynOptics/Bay/Nortel/Avaya Network Management Protocol (SONMP),
|
||||
Foundry/Brocade Discovery Protocol (FDP), Extreme Discovery
|
||||
Protocol (EDP), and Alcatel Mapping Adjacency Protocol (AMAP).
|
||||
Protocol (EDP), and Alcatel Mapping Adjacency Protocol (AMAP).
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
@@ -325,7 +325,7 @@ be assumed working.
|
||||
</BODY>
|
||||
</HTML>
|
||||
end_tail
|
||||
|
||||
|
||||
}
|
||||
|
||||
sub print_headers {
|
||||
|
||||
@@ -80,7 +80,7 @@ unless ( defined $sysdescr ) {
|
||||
|
||||
SNMP::loadModules(@ARGV);
|
||||
|
||||
# Create a hash of MIB Modules for which we want results
|
||||
# Create a hash of MIB Modules for which we want results
|
||||
my %mib_hash = map {$_ => 1} @ARGV;
|
||||
# Add the common MIB Modules we always want
|
||||
my @common_mibs = ('SNMPv2-MIB', 'IF-MIB');
|
||||
|
||||
@@ -35,7 +35,7 @@ sub glob_rec {
|
||||
|
||||
foreach my $f (@files) {
|
||||
next if $f eq '\.$';
|
||||
|
||||
|
||||
if (-d $f) {
|
||||
push @pms, glob_rec($f);
|
||||
next;
|
||||
|
||||
@@ -250,11 +250,11 @@ test_class.pl [options]
|
||||
|
||||
Options:
|
||||
|
||||
-c|class SNMP::Info class to use, Layer2::Catalyst
|
||||
-c|class SNMP::Info class to use, Layer2::Catalyst
|
||||
-d|dev Device
|
||||
-s|comm SNMP community
|
||||
-v|ver SNMP version
|
||||
-p|print Print values
|
||||
-p|print Print values
|
||||
-i|ignore Ignore Net-SNMP configuration file
|
||||
-m|mibdir Directory containing MIB Files
|
||||
-n|nobulk Disable bulkwalk
|
||||
@@ -294,7 +294,7 @@ SNMP version. Default 2.
|
||||
=item B<-print>
|
||||
|
||||
Print values of a class method rather than summarizing. May be repeated
|
||||
multiple times.
|
||||
multiple times.
|
||||
|
||||
-print i_description -print i_type
|
||||
|
||||
@@ -308,7 +308,7 @@ provided.
|
||||
=item B<-mibdir>
|
||||
|
||||
Directory containing MIB Files. Multiple directories should be separated by a
|
||||
colon ':'.
|
||||
colon ':'.
|
||||
|
||||
-mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp
|
||||
|
||||
|
||||
@@ -385,9 +385,9 @@ test_class_mocked.pl [options]
|
||||
|
||||
Options:
|
||||
|
||||
-class SNMP::Info class to use, Layer2::Catalyst
|
||||
-class SNMP::Info class to use, Layer2::Catalyst
|
||||
-file File containing data gathered using make_snmpdata.pl
|
||||
-print Print values
|
||||
-print Print values
|
||||
-debug Debugging flag
|
||||
-ignore Ignore Net-SNMP configuration file
|
||||
-mibdir Directory containing MIB Files
|
||||
@@ -414,7 +414,7 @@ mandatory option.
|
||||
=item B<-print>
|
||||
|
||||
Print values of a class method rather than summarizing. May be repeated
|
||||
multiple times.
|
||||
multiple times.
|
||||
|
||||
-print i_description -print i_type
|
||||
|
||||
@@ -434,7 +434,7 @@ provided.
|
||||
=item B<-mibdir>
|
||||
|
||||
Directory containing MIB Files. Multiple directories should be separated by a
|
||||
colon ':'.
|
||||
colon ':'.
|
||||
|
||||
-mibdir /usr/local/share/snmp/mibs/rfc:/usr/local/share/snmp/mibs/net-snmp
|
||||
|
||||
|
||||
181
lib/SNMP/Info.pm
181
lib/SNMP/Info.pm
@@ -25,7 +25,7 @@ use vars
|
||||
qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP
|
||||
$NOSUCH $BIGINT $REPEATERS/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -33,14 +33,14 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
SNMP::Info - Version 3.61
|
||||
SNMP::Info - Version 3.65
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
SNMP::Info is maintained by team of Open Source authors headed by Eric Miller,
|
||||
Bill Fenner, Max Baker, Jeroen van Ingen and Oliver Gorwits.
|
||||
|
||||
Please visit L<http://sourceforge.net/projects/snmp-info/> for most up-to-date
|
||||
Please visit L<https://github.com/netdisco/snmp-info/> for the most up-to-date
|
||||
list of developers.
|
||||
|
||||
SNMP::Info was originally created at UCSC for the Netdisco project L<http://netdisco.org>
|
||||
@@ -69,8 +69,8 @@ list any missing functionality (such as neighbor discovery tables).
|
||||
my $err = $info->error();
|
||||
die "SNMP Community or Version probably wrong connecting to device. $err\n" if defined $err;
|
||||
|
||||
$name = $info->name();
|
||||
$class = $info->class();
|
||||
my $name = $info->name();
|
||||
my $class = $info->class();
|
||||
print "SNMP::Info is using this device class : $class\n";
|
||||
|
||||
# Find out the Duplex status for the ports
|
||||
@@ -171,7 +171,7 @@ install by hand.
|
||||
SNMP::Info operates on textual descriptors found in MIBs.
|
||||
|
||||
If you are using SNMP::Info separate from Netdisco,
|
||||
download the Netdisco MIB package at L<http://sourceforge.net/projects/netdisco/files/netdisco-mibs/latest-snapshot/>
|
||||
download the Netdisco MIB package at L<https://github.com/netdisco/netdisco-mibs/releases/latest/>
|
||||
|
||||
Make sure that your snmp.conf is updated to point to your MIB directory
|
||||
and that the MIBs are world-readable.
|
||||
@@ -209,9 +209,9 @@ subroutine.
|
||||
|
||||
See the section EXTENDING SNMP::INFO for more details.
|
||||
|
||||
When you make a new subclass for a device, please be sure to send it back to
|
||||
the developers (via Source Forge or the mailing list) for inclusion in the
|
||||
next version.
|
||||
When you make a new subclass for a device, please be sure to send it back
|
||||
to the developers (via a github pull request or the mailing list) for inclusion
|
||||
in the next version.
|
||||
|
||||
=back
|
||||
|
||||
@@ -260,7 +260,7 @@ See documentation in L<SNMP::Info::AMAP> for details.
|
||||
|
||||
=item SNMP::Info::Bridge
|
||||
|
||||
F<BRIDGE-MIB> (RFC1286). F<QBRIDGE-MIB>. Inherited by devices with Layer2
|
||||
F<BRIDGE-MIB> (RFC1286). F<Q-BRIDGE-MIB>. Inherited by devices with Layer2
|
||||
support.
|
||||
|
||||
See documentation in L<SNMP::Info::Bridge> for details.
|
||||
@@ -394,7 +394,7 @@ See documentation in L<SNMP::Info::LLDP> for details.
|
||||
=item SNMP::Info::MAU
|
||||
|
||||
F<MAU-MIB> (RFC2668). Some Layer2 devices use this for extended Ethernet
|
||||
(Media Access Unit) interface information.
|
||||
(Medium Attachment Unit) interface information.
|
||||
|
||||
See documentation in L<SNMP::Info::MAU> for details.
|
||||
|
||||
@@ -498,7 +498,7 @@ See documentation in L<SNMP::Info::Layer2> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::3Com
|
||||
|
||||
SNMP::Info::Layer2::3Com - SNMP Interface to L2 3Com Switches
|
||||
Subclass for L2 3Com Switches.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::3Com> for details.
|
||||
|
||||
@@ -523,7 +523,7 @@ See documentation in L<SNMP::Info::Layer2::Airespace> for details.
|
||||
=item SNMP::Info::Layer2::Aironet
|
||||
|
||||
Class for Cisco Aironet wireless devices that run IOS. See also
|
||||
Layer3::Aironet for Aironet devices that don't run IOS.
|
||||
L<SNMP::Info::Layer3::Aironet> for Aironet devices that don't run IOS.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Aironet> for details.
|
||||
|
||||
@@ -548,10 +548,6 @@ Business Policy Switch (BPS), VSP 7000 series, and probably others.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Baystack> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Kentrox
|
||||
|
||||
Class for Kentrox DataSMART DSU/CSU. See L<SNMP::Info::Layer2::Kentrox> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::C1900
|
||||
|
||||
Subclass for Cisco Catalyst 1900 and 1900c Devices running CatOS.
|
||||
@@ -593,9 +589,15 @@ Linksys. This currently comprises the Sx300/500 line of switches.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::CiscoSB> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Exinda
|
||||
|
||||
Subclass for Exinda / GFI Network Orchestrator traffic shapers.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Exinda> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::HP
|
||||
|
||||
Subclass for more recent HP Procurve Switches
|
||||
Subclass for more recent HP Procurve Switches.
|
||||
|
||||
Requires F<HP-ICF-OID> and F<ENTITY-MIB> downloaded from HP.
|
||||
|
||||
@@ -615,6 +617,12 @@ Subclass for HP Virtual Connect Switches
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::HPVC> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Kentrox
|
||||
|
||||
Class for Kentrox DataSMART DSU/CSU.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Kentrox> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::N2270
|
||||
|
||||
Subclass for Nortel 2270 wireless switches.
|
||||
@@ -692,7 +700,7 @@ are usually older devices.
|
||||
|
||||
MIBs for these devices now included in v2.tar.gz available from ftp.cisco.com.
|
||||
|
||||
Note Layer2::Aironet
|
||||
Note L<SNMP::Info::Layer2::Aironet>
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Aironet> for details.
|
||||
|
||||
@@ -757,7 +765,7 @@ See documentation in L<SNMP::Info::Layer3::C6500> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::CheckPoint
|
||||
|
||||
Subclass for CheckPoint devices
|
||||
Subclass for CheckPoint devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::CheckPoint> for details.
|
||||
|
||||
@@ -881,19 +889,20 @@ See documentation in L<SNMP::Info::Layer3::Huawei> for details.
|
||||
=item SNMP::Info::Layer3::IBMGbTor
|
||||
|
||||
SNMP Interface to IBM Rackswitch (formerly Blade Network Technologies)
|
||||
network devices.
|
||||
network devices. Lenovo acquired these from IBM and is now selling
|
||||
them under the Lenovo brand.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::IBMGbTor> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Juniper
|
||||
|
||||
Subclass for Juniper devices
|
||||
Subclass for Juniper devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Juniper> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Lantronix
|
||||
|
||||
Subclass for Lantronix devices
|
||||
Subclass for Lantronix devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Lantronix> for details.
|
||||
|
||||
@@ -929,13 +938,13 @@ See documentation in L<SNMP::Info::Layer3::Netscreen> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Nexus
|
||||
|
||||
Subclass for Cisco Nexus devices running NX-OS
|
||||
Subclass for Cisco Nexus devices running NX-OS.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Nexus> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::OneAccess
|
||||
|
||||
Subclass for OneAccess Quidway switches
|
||||
Subclass for OneAccess routers.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::OneAccess> for details.
|
||||
|
||||
@@ -972,13 +981,15 @@ See documentation in L<SNMP::Info::Layer3::Pica8> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::SonicWALL
|
||||
|
||||
Subclass for generic SonicWALL devices. See documentation in
|
||||
L<SNMP::Info::Layer3::SonicWALL> for details.
|
||||
Subclass for generic SonicWALL devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::SonicWALL> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Steelhead
|
||||
|
||||
Subclass for Riverbed Steelhead WAN optimization appliances. See
|
||||
documentation in L<SNMP::Info::Layer3::Steelhead> for details.
|
||||
Subclass for Riverbed Steelhead WAN optimization appliances.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Steelhead> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Sun
|
||||
|
||||
@@ -1026,45 +1037,46 @@ See documentation in L<SNMP::Info::Layer7> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::APC
|
||||
|
||||
Subclass for APC UPS devices
|
||||
Subclass for APC UPS devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::APC> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Arbor
|
||||
|
||||
Subclass for Arbor appliances
|
||||
Subclass for Arbor appliances.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Arbor> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::CiscoIPS
|
||||
|
||||
Subclass for Cisco IPS devices
|
||||
Subclass for Cisco IPS devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Cisco IPS> for details.
|
||||
See documentation in L<SNMP::Info::Layer7::CiscoIPS> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Gigamon
|
||||
|
||||
Subclass for Gigamon devices
|
||||
Subclass for Gigamon devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Gigamon> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Liebert
|
||||
|
||||
Subclass for Liebert devices
|
||||
Subclass for Liebert devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Liebert> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Neoteris
|
||||
|
||||
Subclass for Juniper SSL VPN appliances.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Neoteris> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Netscaler
|
||||
|
||||
Subclass for Citrix Netscaler appliances
|
||||
Subclass for Citrix Netscaler appliances.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Netscaler> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Neoteris
|
||||
|
||||
Subclass for Juniper SSL VPN appliances
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Neoteris> for details.
|
||||
|
||||
=back
|
||||
|
||||
@@ -1078,8 +1090,8 @@ Kramarov, Bernhard Augenstein, Bradley Baetz, Brian Chow, Brian Wilson,
|
||||
Carlos Vicente, Dana Watanabe, David Pinkoski, David Sieborger, Douglas
|
||||
McKeown, Greg King, Ivan Auger, Jean-Philippe Luiggi, Jeroen van Ingen,
|
||||
Justin Hunter, Kent Hamilton, Matthew Tuttle, Michael Robbert, Mike Hunter,
|
||||
Nicolai Petri, Ralf Gross, Robert Kerr and people listed on the Netdisco
|
||||
README!
|
||||
Nicolai Petri, Ralf Gross, Robert Kerr, Nick Nauwelaerts and people listed
|
||||
on the Netdisco README!
|
||||
|
||||
=head1 USAGE
|
||||
|
||||
@@ -1321,7 +1333,7 @@ sub new {
|
||||
$new_obj->{mibdirs} = $args{MibDirs};
|
||||
delete $sess_args{MibDirs};
|
||||
}
|
||||
|
||||
|
||||
# For IPv6 hosts set transport
|
||||
if ( defined $sess_args{DestHost} ) {
|
||||
$sess_args{DestHost} = resolve_desthost($sess_args{DestHost});
|
||||
@@ -1653,6 +1665,7 @@ sub device_type {
|
||||
14823 => 'SNMP::Info::Layer3::Aruba',
|
||||
14988 => 'SNMP::Info::Layer3::Mikrotik',
|
||||
17163 => 'SNMP::Info::Layer3::Steelhead',
|
||||
21091 => 'SNMP::Info::Layer2::Exinda',
|
||||
25506 => 'SNMP::Info::Layer3::H3C',
|
||||
25461 => 'SNMP::Info::Layer3::PaloAlto',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
@@ -1662,6 +1675,7 @@ sub device_type {
|
||||
4413 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
30803 => 'SNMP::Info::Layer3::VyOS',
|
||||
44641 => 'SNMP::Info::Layer3::VyOS',
|
||||
40310 => 'SNMP::Info::Layer3::Cumulus',
|
||||
);
|
||||
|
||||
@@ -1695,6 +1709,7 @@ sub device_type {
|
||||
14823 => 'SNMP::Info::Layer3::Aruba',
|
||||
17163 => 'SNMP::Info::Layer3::Steelhead',
|
||||
20540 => 'SNMP::Info::Layer2::Sixnet',
|
||||
21091 => 'SNMP::Info::Layer2::Exinda',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
);
|
||||
@@ -1811,6 +1826,10 @@ sub device_type {
|
||||
$objtype = 'SNMP::Info::Layer3::CiscoASA'
|
||||
if ( $desc =~ /Cisco Adaptive Security Appliance/i );
|
||||
|
||||
# Cisco FTD includes an ASA running as lina process
|
||||
$objtype = 'SNMP::Info::Layer3::CiscoASA'
|
||||
if ( $desc =~ /Cisco Firepower Threat Defense/i );
|
||||
|
||||
# Cisco FWSM
|
||||
$objtype = 'SNMP::Info::Layer3::CiscoFWSM'
|
||||
if ( $desc =~ /Cisco Firewall Services Module/i );
|
||||
@@ -2578,13 +2597,13 @@ See documentation in L<SNMP::Info::IPv6> for IPv6 Address Table.
|
||||
|
||||
Maps the IPv4 addresses to the interface index
|
||||
|
||||
(C<ipAdEntIfIndex>) or filtered and index modified (C<ipAddressIfIndex>)
|
||||
(C<ipAdEntIfIndex>) or filtered and index modified (C<ipAddressIfIndex>)
|
||||
|
||||
=item $info->ip_table()
|
||||
|
||||
Maps the Table to the IPv4 address
|
||||
|
||||
(C<ipAdEntAddr>) or address extracted from (C<ipAddressIfIndex>)
|
||||
(C<ipAdEntAddr>) or address extracted from (C<ipAddressIfIndex>)
|
||||
|
||||
=item $info->ip_netmask()
|
||||
|
||||
@@ -3157,7 +3176,7 @@ implementation.
|
||||
|
||||
=head2 Gathering MIB data for SNMP::Info Developers
|
||||
|
||||
The preference is to open a feature request in the SourceForge project. This
|
||||
The preference is to open a pull request in the github project. This
|
||||
allows all developers to have visibility into the request. Please include
|
||||
pointers to the applicable platform MIBs. For development we will need an
|
||||
C<snmpwalk> of the device. There is a tool now included in the SNMP::Info
|
||||
@@ -3174,10 +3193,10 @@ The utility is named C<make_snmpdata.pl>. Run it with a command line like:
|
||||
|
||||
This will print to the file every MIB entry with data in a format that the
|
||||
developers can use to emulate read operations without needing access to the
|
||||
device. Preference would be to mask any sensitive data in the output, zip the
|
||||
file, and upload as an attachment to the Sourceforge tracker. However, if you
|
||||
do not feel comfortable uploading the output to the tracker you could e-mail
|
||||
it to the developer that has claimed the ticket.
|
||||
device. Preference would be to mask any sensitive data in the output, zip
|
||||
the file, and attach it to the github pull request. However, if you do not
|
||||
feel comfortable uploading the output to the tracker you could e-mail it
|
||||
to the developer that has claimed the ticket.
|
||||
|
||||
=head2 Data Structures required in new Subclass
|
||||
|
||||
@@ -3464,8 +3483,6 @@ will inherit the Cisco Vlan module as an example.
|
||||
1; # don't forget this line
|
||||
----------------------- snip --------------------------------
|
||||
|
||||
Be sure and send the debugged version to snmp-info-users@lists.sourceforge.net to be
|
||||
included in the next version of SNMP::Info.
|
||||
|
||||
=head1 SNMP::INFO INTERNALS
|
||||
|
||||
@@ -3530,7 +3547,7 @@ $REPEATERS = 20;
|
||||
|
||||
=item munge_speed()
|
||||
|
||||
Makes human friendly speed ratings using %SPEED_MAP
|
||||
Makes human friendly speed ratings using C<%SPEED_MAP>.
|
||||
|
||||
%SPEED_MAP = (
|
||||
'56000' => '56 kbps',
|
||||
@@ -3629,7 +3646,7 @@ sub munge_speed {
|
||||
|
||||
=item munge_highspeed()
|
||||
|
||||
Makes human friendly speed ratings for C<ifHighSpeed>
|
||||
Makes human friendly speed ratings for C<ifHighSpeed>.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3658,7 +3675,7 @@ sub munge_highspeed {
|
||||
|
||||
=item munge_ip()
|
||||
|
||||
Takes a binary IP and makes it dotted ASCII
|
||||
Takes a binary IP and makes it dotted ASCII.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3685,7 +3702,7 @@ sub munge_mac {
|
||||
|
||||
=item munge_prio_mac()
|
||||
|
||||
Takes an 2-byte octet stream (HEX-STRING) and returns a colon separated ASCII
|
||||
Takes an 8-byte octet stream (HEX-STRING) and returns a colon separated ASCII
|
||||
hex string.
|
||||
|
||||
=cut
|
||||
@@ -3701,23 +3718,23 @@ sub munge_prio_mac {
|
||||
|
||||
=item munge_prio_port()
|
||||
|
||||
Takes an 8-byte octet stream (HEX-STRING) and returns a colon separated ASCII
|
||||
Takes an 2-byte octet stream (HEX-STRING) and returns a colon separated ASCII
|
||||
hex string.
|
||||
|
||||
=cut
|
||||
|
||||
sub munge_prio_port {
|
||||
my $mac = shift;
|
||||
return unless defined $mac;
|
||||
return unless length $mac;
|
||||
$mac = join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $mac ) );
|
||||
return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){1}[0-9A-F][0-9A-F]$/i;
|
||||
my $priop = shift;
|
||||
return unless defined $priop;
|
||||
return unless length $priop;
|
||||
$priop = join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $priop ) );
|
||||
return $priop if $priop =~ /^([0-9A-F][0-9A-F]:){1}[0-9A-F][0-9A-F]$/i;
|
||||
return;
|
||||
}
|
||||
|
||||
=item munge_octet2hex()
|
||||
|
||||
Takes a binary octet stream and returns an ASCII hex string
|
||||
Takes a binary octet stream and returns an ASCII hex string.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3728,7 +3745,7 @@ sub munge_octet2hex {
|
||||
|
||||
=item munge_dec2bin()
|
||||
|
||||
Takes a binary char and returns its ASCII binary representation
|
||||
Takes a binary char and returns its ASCII binary representation.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3744,9 +3761,9 @@ sub munge_dec2bin {
|
||||
return $num;
|
||||
}
|
||||
|
||||
=item munge_bits
|
||||
=item munge_bits()
|
||||
|
||||
Takes a SNMP2 'BITS' field and returns the ASCII bit string
|
||||
Takes a SNMP2 'BITS' field and returns the ASCII bit string.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3757,7 +3774,7 @@ sub munge_bits {
|
||||
return unpack( "B*", $bits );
|
||||
}
|
||||
|
||||
=item munge_counter64
|
||||
=item munge_counter64()
|
||||
|
||||
If $BIGINT is set to true, then a Math::BigInt object is returned.
|
||||
See Math::BigInt for details.
|
||||
@@ -3772,7 +3789,7 @@ sub munge_counter64 {
|
||||
return $bigint;
|
||||
}
|
||||
|
||||
=item munge_i_up
|
||||
=item munge_i_up()
|
||||
|
||||
Net-SNMP tends to load C<RFC1213-MIB> first, and so ignores the
|
||||
updated enumeration for C<ifOperStatus> in C<IF-MIB>. This munge
|
||||
@@ -3794,7 +3811,7 @@ sub munge_i_up {
|
||||
return $ifOperStatusMap{$i_up} || $i_up;
|
||||
}
|
||||
|
||||
=item munge_port_list
|
||||
=item munge_port_list()
|
||||
|
||||
Takes an octet string representing a set of ports and returns a reference
|
||||
to an array of binary values each array element representing a port.
|
||||
@@ -3815,7 +3832,7 @@ sub munge_port_list {
|
||||
|
||||
=item munge_null()
|
||||
|
||||
Removes control characters from a string
|
||||
Removes control characters from a string.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -3864,12 +3881,12 @@ sub resolve_desthost {
|
||||
$desthost =~ s/^(?:udp6:|udpv6:|udpipv6:)//x;
|
||||
|
||||
my $ip = NetAddr::IP::Lite->new($desthost);
|
||||
|
||||
|
||||
if ($ip and $ip->bits == 32) {
|
||||
return $ip->addr;
|
||||
}
|
||||
elsif ($ip and $ip->bits == 128) {
|
||||
return 'udp6:' . $ip->addr;
|
||||
return 'udp6:' . $ip->addr;
|
||||
}
|
||||
else {
|
||||
croak "Unable to resolve DestHost: $desthost to an IP\n";
|
||||
@@ -4428,7 +4445,7 @@ sub _load_attr {
|
||||
|
||||
if ( $self->{Offline} ) {
|
||||
$self->error_throw(
|
||||
"SNMP::Info::_load_atrr: Offline but $attr is not in cache\n" );
|
||||
"SNMP::Info::_load_attr: Offline but $attr is not in cache\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4446,7 +4463,7 @@ sub _load_attr {
|
||||
# requests
|
||||
|
||||
my ($leaf) = $qual_leaf =~ /::(.+)$/;
|
||||
|
||||
|
||||
# If we weren't able to translate, we'll only have an OID
|
||||
$leaf = $oid unless defined $leaf;
|
||||
|
||||
@@ -4506,7 +4523,7 @@ sub _load_attr {
|
||||
($vars) = $sess->bulkwalk( 0, $repeaters, $var );
|
||||
if ( $sess->{ErrorNum} ) {
|
||||
$self->error_throw(
|
||||
"SNMP::Info::_load_atrr: BULKWALK " . $sess->{ErrorStr},
|
||||
"SNMP::Info::_load_attr: BULKWALK " . $sess->{ErrorStr},
|
||||
"\n" );
|
||||
return;
|
||||
}
|
||||
@@ -4645,7 +4662,7 @@ sub snmp_connect_ip {
|
||||
my $comm = $self->snmp_comm();
|
||||
|
||||
return if $self->{Offline};
|
||||
|
||||
|
||||
$ip = resolve_desthost($ip);
|
||||
return if ( $ip eq '0.0.0.0' ) or ( $ip =~ /^127\./ );
|
||||
|
||||
@@ -4821,7 +4838,7 @@ sub _validate_autoload_method {
|
||||
|
||||
# Validate that we have proper access for the operation
|
||||
my $access = '';
|
||||
|
||||
|
||||
# Prevent autovivification by checking that MIB leaf exists
|
||||
if (exists $SNMP::MIB{$oid}) {
|
||||
$access = $SNMP::MIB{$oid}{'access'} || '';
|
||||
@@ -4841,23 +4858,23 @@ sub _validate_autoload_method {
|
||||
}
|
||||
|
||||
my $table_leaf = 0;
|
||||
|
||||
|
||||
# This is an expensive check so we assume anything in the funcs and globals
|
||||
# hashes are known. Only for actual MIB leafs should we have to check the
|
||||
# MIB. If the parent of the leaf has indexes it is contained within a table.
|
||||
# MIB. If the parent of the leaf has indexes it is contained within a table.
|
||||
if ($funcs->{$attr}) {
|
||||
$table_leaf = 1;
|
||||
}
|
||||
elsif (!$globals->{$attr}) {
|
||||
|
||||
# Prevent autovivification
|
||||
# Prevent autovivification
|
||||
if (exists $SNMP::MIB{$oid} &&
|
||||
exists $SNMP::MIB{$oid}{'parent'} &&
|
||||
exists $SNMP::MIB{$oid}{'parent'}{'indexes'} &&
|
||||
defined $SNMP::MIB{$oid}{'parent'}{'indexes'} &&
|
||||
scalar( @{$SNMP::MIB{$oid}{'parent'}{'indexes'}} ) > 0)
|
||||
{
|
||||
$table_leaf = 1;
|
||||
$table_leaf = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS
|
||||
= ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', );
|
||||
@@ -240,10 +240,10 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $amap = new SNMP::Info (
|
||||
my $amap = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -269,7 +269,7 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::AMAP is a subclass of SNMP::Info that provides an object oriented
|
||||
SNMP::Info::AMAP is a subclass of SNMP::Info that provides an object oriented
|
||||
interface to Alcatel Mapping Adjacency Protocol (AMAP) information through
|
||||
SNMP.
|
||||
|
||||
@@ -299,7 +299,7 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $amap->hasAMAP()
|
||||
|
||||
Is AMAP is active in this device?
|
||||
Is AMAP is active in this device?
|
||||
|
||||
=back
|
||||
|
||||
@@ -322,7 +322,7 @@ Returns the mapping to the SNMP Interface Table.
|
||||
|
||||
Returns remote IPv4 addresses. Note: AMAP returns all IP addresses associated
|
||||
with the remote device. It would be preferable to include only one address
|
||||
since they should all originate from the same device, but amap_ip() can not
|
||||
since they should all originate from the same device, but amap_ip() can not
|
||||
determine if all addresses are reachable from the network management
|
||||
application therefore all addresses are returned and the calling application
|
||||
must determine which address to use and if they are in fact from the same
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
|
||||
|
||||
@@ -50,7 +50,7 @@ $VERSION = '3.61';
|
||||
'adsl_atuc_curr_tx_rate' => 'adslAtucChanCurrTxRate',
|
||||
'adsl_atuc_prev_tx_rate' => 'adslAtucChanPrevTxRate',
|
||||
'adsl_atuc_crc_block_len' => 'adslAtucChanCrcBlockLength',
|
||||
|
||||
|
||||
# ADSL-LINE-MIB::adslAturChanTable
|
||||
'adsl_atur_interleave_delay' => 'adslAturChanInterleaveDelay',
|
||||
'adsl_atur_curr_tx_rate' => 'adslAturChanCurrTxRate',
|
||||
@@ -73,14 +73,14 @@ Alexander Hartmaier
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $info = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $info->class();
|
||||
@@ -88,7 +88,7 @@ Alexander Hartmaier
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::AdslLine is a subclass of SNMP::Info that provides
|
||||
SNMP::Info::AdslLine is a subclass of SNMP::Info that provides
|
||||
information about the adsl interfaces of a device.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# Load MIB for leafs referenced within class
|
||||
%MIBS = ('IF-MIB' => 'ifIndex',);
|
||||
@@ -84,14 +84,14 @@ SNMP::Info Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $info = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $info->class();
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -84,7 +84,7 @@ $VERSION = '3.61';
|
||||
'airespace_ess_ifname' => 'bsnDot11EssInterfaceName',
|
||||
'airespace_ess_aclname' => 'bsnDot11EssAclName',
|
||||
'airespace_ess_bcast' => 'bsnDot11EssBroadcastSsid',
|
||||
|
||||
|
||||
# AIRESPACE-WIRELESS-MIB::bsnAPTable
|
||||
'airespace_ap_mac' => 'bsnAPDot3MacAddress',
|
||||
'airespace_ap_name' => 'bsnAPName',
|
||||
@@ -764,14 +764,14 @@ sub dot11_cur_tx_pwr_mw {
|
||||
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];
|
||||
my @pwr_list = split(/,/, $pwr_abs->{$idx} );
|
||||
$dot11_cur_tx_pwr_mw->{$idx} = $pwr_list[$pwr-1];
|
||||
|
||||
}
|
||||
else {
|
||||
@@ -1087,7 +1087,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -1204,7 +1204,7 @@ valid only when the Transfer Mode is tftp.
|
||||
=item $airespace->airespace_ul_path()
|
||||
|
||||
Transfer upload tftp path configures the directory path where the file is to
|
||||
be uploaded to. The switch remembers the last file path used.
|
||||
be uploaded to. The switch remembers the last file path used.
|
||||
|
||||
(C<agentTransferUploadPath>)
|
||||
|
||||
@@ -1279,7 +1279,7 @@ radio interface.
|
||||
=item $airespace->i_ssidmac()
|
||||
|
||||
With the same keys as i_ssidlist, returns the Basic service set
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
|
||||
=back
|
||||
|
||||
@@ -1346,7 +1346,7 @@ Name of the interface used by this WLAN.
|
||||
Name of ACL for the WLAN. This is applicable only when Web Authentication is
|
||||
enabled.
|
||||
|
||||
(C<bsnDot11EssAclName>)
|
||||
(C<bsnDot11EssAclName>)
|
||||
|
||||
=item $airespace->airespace_ess_bcast()
|
||||
|
||||
@@ -1672,14 +1672,14 @@ to an empty string.
|
||||
|
||||
=item $airespace->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
|
||||
interfaces.
|
||||
|
||||
=item $airespace->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
interfaces. The thin AP MAC address airespace_ap_mac() and Slot ID
|
||||
airespace_apif_slot() are used as the port identifier. Virtual interfaces
|
||||
use airespace_if_name() as the port identifier.
|
||||
@@ -1717,7 +1717,7 @@ for thin AP interfaces.
|
||||
=item $airespace->i_mac()
|
||||
|
||||
Returns reference to map of IIDs to MAC address of the interface. Returns
|
||||
C<ifPhysAddress> for Ethernet interfaces and airespace_if_mac() for virtual
|
||||
C<ifPhysAddress> for Ethernet interfaces and airespace_if_mac() for virtual
|
||||
interfaces.
|
||||
|
||||
=item $airespace->i_vlan()
|
||||
@@ -1751,7 +1751,7 @@ the interface iid.
|
||||
=item $airespace->fw_port()
|
||||
|
||||
Returns reference to a hash, value being airespace_sta_mac() and
|
||||
airespace_sta_slot() combined to match the interface iid.
|
||||
airespace_sta_slot() combined to match the interface iid.
|
||||
|
||||
=item $airespace->fw_mac()
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
|
||||
@@ -189,7 +189,7 @@ sub qb_fw_vlan {
|
||||
foreach my $idx ( keys %$qb_fw_port ) {
|
||||
my ( $fdb_id, $mac ) = _qb_fdbtable_index($idx);
|
||||
# Many devices do not populate the dot1qVlanCurrentTable, so default
|
||||
# to FDB ID = VID, but if we have a mapping use it.
|
||||
# to FDB ID = VID, but if we have a mapping use it.
|
||||
my $vlan = $fdb_id;
|
||||
# defined as test since some devices have a vlan 0
|
||||
if (defined $qb_fdb_ids->{$fdb_id}) {
|
||||
@@ -237,7 +237,7 @@ sub qb_fdb_index {
|
||||
return $vl_fdb_index;
|
||||
}
|
||||
|
||||
# Most devices now support Q-BRIDGE-MIB, fall back to
|
||||
# Most devices now support Q-BRIDGE-MIB, fall back to
|
||||
# BRIDGE-MIB for those that don't.
|
||||
sub fw_mac {
|
||||
my $bridge = shift;
|
||||
@@ -262,7 +262,7 @@ sub fw_status {
|
||||
|
||||
my $qb = $bridge->qb_fw_status();
|
||||
return $qb if (ref {} eq ref $qb and scalar keys %$qb);
|
||||
|
||||
|
||||
return $bridge->SUPER::fw_status();
|
||||
}
|
||||
|
||||
@@ -555,10 +555,10 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $bridge = new SNMP::Info (
|
||||
my $bridge = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'switch',
|
||||
DestHost => 'switch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -579,7 +579,7 @@ Max Baker
|
||||
my $port = $interfaces->{$iid};
|
||||
|
||||
print "Port:$port forwarding to $mac\n";
|
||||
}
|
||||
}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -588,12 +588,12 @@ MAC Forwarding Table and Spanning Tree Protocol info.
|
||||
|
||||
F<Q-BRIDGE-MIB> holds 802.1q information -- VLANs and Trunking. Cisco tends
|
||||
not to use this MIB, but some proprietary ones. HP and some nicer vendors use
|
||||
this. This is from C<RFC2674_q>.
|
||||
this. This is from C<RFC2674_q>.
|
||||
|
||||
Create or use a subclass of SNMP::Info that inherits this class. Do not use
|
||||
directly.
|
||||
|
||||
For debugging you can call new() directly as you would in SNMP::Info
|
||||
For debugging you can call new() directly as you would in SNMP::Info
|
||||
|
||||
my $bridge = new SNMP::Info::Bridge(...);
|
||||
|
||||
@@ -657,19 +657,19 @@ Returns root of STP.
|
||||
|
||||
(C<dot1dStpDesignatedRoot>)
|
||||
|
||||
=item $bridge->qb_vlans_max()
|
||||
=item $bridge->qb_vlans_max()
|
||||
|
||||
Maximum number of VLANS supported on this device.
|
||||
|
||||
(C<dot1qMaxSupportedVlans>)
|
||||
|
||||
=item $bridge->qb_vlans()
|
||||
=item $bridge->qb_vlans()
|
||||
|
||||
Current number of VLANs that are configured in this device.
|
||||
|
||||
(C<dot1qNumVlans>)
|
||||
|
||||
=item $bridge->qb_next_vlan_index()
|
||||
=item $bridge->qb_next_vlan_index()
|
||||
|
||||
The next available value for C<dot1qVlanIndex> of a local VLAN entry in
|
||||
C<dot1qVlanStaticTable>
|
||||
@@ -701,7 +701,7 @@ IDs. These are the VLANs which are members of the egress list for the port.
|
||||
Example:
|
||||
my $interfaces = $bridge->interfaces();
|
||||
my $vlans = $bridge->i_vlan_membership();
|
||||
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $vlan = join(',', sort(@{$vlans->{$iid}}));
|
||||
@@ -731,7 +731,7 @@ Returns VLAN IDs
|
||||
|
||||
=head2 Forwarding Table (C<dot1dTpFdbEntry>)
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item $bridge->fw_mac()
|
||||
|
||||
@@ -949,7 +949,7 @@ The set of ports which are assigned to the egress list for this VLAN.
|
||||
=item $bridge->qb_cv_untagged()
|
||||
|
||||
The set of ports which should transmit egress packets for this VLAN as
|
||||
untagged.
|
||||
untagged.
|
||||
|
||||
(C<dot1qVlanCurrentUntaggedPorts>)
|
||||
|
||||
@@ -987,7 +987,7 @@ for this VLAN.
|
||||
=item $bridge->qb_v_untagged()
|
||||
|
||||
The set of ports which should transmit egress packets for this VLAN as
|
||||
untagged.
|
||||
untagged.
|
||||
|
||||
(C<dot1qVlanStaticUntaggedPorts>)
|
||||
|
||||
@@ -1027,13 +1027,13 @@ Returns reference to hash of forwarding table entries status
|
||||
(C<dot1qTpFdbStatus>)
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head1 SET METHODS
|
||||
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info;
|
||||
use vars
|
||||
qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# Five data structures required by SNMP::Info
|
||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
|
||||
@@ -245,10 +245,10 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $cdp = new SNMP::Info (
|
||||
my $cdp = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -274,7 +274,7 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented
|
||||
SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented
|
||||
interface to CDP information through SNMP.
|
||||
|
||||
CDP is a Layer 2 protocol that supplies topology information of devices that
|
||||
@@ -284,7 +284,7 @@ some HP devices.
|
||||
Create or use a device subclass that inherits this class. Do not use
|
||||
directly.
|
||||
|
||||
Each device implements a subset of the global and cache entries.
|
||||
Each device implements a subset of the global and cache entries.
|
||||
Check the return value to see if that data is held by the device.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -309,7 +309,7 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $cdp->hasCDP()
|
||||
|
||||
Is CDP is active in this device?
|
||||
Is CDP is active in this device?
|
||||
|
||||
Accounts for SNMP version 1 devices which may have CDP but not cdp_run()
|
||||
|
||||
@@ -328,13 +328,13 @@ Interval in seconds at which CDP messages are generated.
|
||||
|
||||
=item $cdp->cdp_holdtime()
|
||||
|
||||
Time in seconds that CDP messages are kept.
|
||||
Time in seconds that CDP messages are kept.
|
||||
|
||||
(C<cdpGlobalHoldTime>)
|
||||
|
||||
=item $cdp->cdp_gid()
|
||||
=item $cdp->cdp_gid()
|
||||
|
||||
Returns CDP device ID.
|
||||
Returns CDP device ID.
|
||||
|
||||
This is the device id broadcast via CDP to other devices, and is what is
|
||||
retrieved from remote devices with $cdp->id().
|
||||
@@ -355,9 +355,9 @@ to a hash.
|
||||
=item $cdp->cdp_capabilities()
|
||||
|
||||
Returns Device Functional Capabilities. Results are munged into an ascii
|
||||
binary string, MSB. Each digit represents a bit from the table below from
|
||||
binary string, MSB. Each digit represents a bit from the table below from
|
||||
the CDP Capabilities Mapping to Smartport Type table within the
|
||||
Cisco Small Business 200 Series Smart Switch Administration Guide,
|
||||
Cisco Small Business 200 Series Smart Switch Administration Guide,
|
||||
L<http://www.cisco.com/c/en/us/support/switches/small-business-200-series-smart-switches/products-maintenance-guides-list.html>:
|
||||
|
||||
(Bit) - Description
|
||||
@@ -407,7 +407,7 @@ C<CISCO-VTP-MIB::managementDomainName>
|
||||
|
||||
(C<cdpCacheVTPMgmtDomain>)
|
||||
|
||||
=item $cdp->cdp_duplex()
|
||||
=item $cdp->cdp_duplex()
|
||||
|
||||
Returns the port duplex status from remote devices.
|
||||
|
||||
@@ -424,7 +424,7 @@ Returns remote device id string
|
||||
Returns the mapping to the SNMP Interface Table.
|
||||
|
||||
Note that a lot devices don't implement $cdp->cdp_index(), So if it isn't
|
||||
around, we fake it.
|
||||
around, we fake it.
|
||||
|
||||
In order to map the cdp table entry back to the interfaces() entry, we
|
||||
truncate the last number off of it :
|
||||
@@ -435,7 +435,7 @@ truncate the last number off of it :
|
||||
|
||||
# if not, let's fake it
|
||||
my $cdp_ip = $device->cdp_ip();
|
||||
|
||||
|
||||
my %cdp_if
|
||||
foreach my $key (keys %$cdp_ip){
|
||||
$iid = $key;
|
||||
@@ -443,13 +443,13 @@ truncate the last number off of it :
|
||||
$iid =~ s/\.\d+$//;
|
||||
$cdp_if{$key} = $iid;
|
||||
}
|
||||
|
||||
|
||||
return \%cdp_if;
|
||||
|
||||
|
||||
=item $cdp->cdp_index()
|
||||
|
||||
Returns the mapping to the SNMP2 Interface table for CDP Cache Entries.
|
||||
Returns the mapping to the SNMP2 Interface table for CDP Cache Entries.
|
||||
|
||||
Most devices don't implement this, so you probably want to use $cdp->cdp_if()
|
||||
instead.
|
||||
@@ -471,9 +471,9 @@ Returns remote address
|
||||
|
||||
(C<cdpCacheAddress>)
|
||||
|
||||
=item $cdp->cdp_platform()
|
||||
=item $cdp->cdp_platform()
|
||||
|
||||
Returns remote platform id
|
||||
Returns remote platform id
|
||||
|
||||
(C<cdpCachePlatform>)
|
||||
|
||||
@@ -489,7 +489,7 @@ Returns remote address type received. Usually IP.
|
||||
|
||||
(C<cdpCacheAddressType>)
|
||||
|
||||
=item $cdp->cdp_ver()
|
||||
=item $cdp->cdp_ver()
|
||||
|
||||
Returns remote hardware version
|
||||
|
||||
@@ -508,7 +508,7 @@ for decimal placement.
|
||||
|
||||
(C<cdpCachePowerConsumption>)
|
||||
|
||||
=item $cdp->cdp_cap()
|
||||
=item $cdp->cdp_cap()
|
||||
|
||||
Returns hash of arrays with each array containing the system capabilities
|
||||
supported by the remote system. Possible elements in the array are
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SNMP::Info::CiscoAgg
|
||||
#
|
||||
# Copyright (c) 2018 SNMP::Info Developers
|
||||
# Copyright (c) 2019 SNMP::Info Developers
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@@ -30,36 +30,72 @@
|
||||
package SNMP::Info::CiscoAgg;
|
||||
|
||||
use strict;
|
||||
#use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
use SNMP::Info::IEEE802dot3ad;
|
||||
|
||||
@SNMP::Info::CiscoAgg::ISA = qw/
|
||||
SNMP::Info::IEEE802dot3ad
|
||||
Exporter
|
||||
/;
|
||||
|
||||
@SNMP::Info::CiscoAgg::EXPORT_OK = qw/
|
||||
agg_ports
|
||||
agg_ports_cisco
|
||||
agg_ports_lag
|
||||
agg_ports_pagp
|
||||
/;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
use vars qw/$DEBUG $VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
'CISCO-PAGP-MIB' => 'pagpGroupIfIndex',
|
||||
'CISCO-PAGP-MIB' => 'pagpGroupIfIndex',
|
||||
'CISCO-LAG-MIB' => 'clagAggPortListPorts',
|
||||
'CISCO-IF-EXTENSION-MIB' => 'cieIfLastInTime',
|
||||
);
|
||||
|
||||
%GLOBALS = ();
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::IEEE802dot3ad::FUNCS,
|
||||
'lag_ports' => 'clagAggPortListPorts',
|
||||
'lag_members' => 'clagAggPortListInterfaceIndexList',
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
%SNMP::Info::IEEE802dot3ad::MUNGE,
|
||||
'lag_ports' => \&SNMP::Info::munge_port_list,
|
||||
'lag_members' => \&munge_port_ifindex,
|
||||
);
|
||||
|
||||
sub munge_port_ifindex {
|
||||
my $plist = shift;
|
||||
return unless defined $plist;
|
||||
return unless length $plist;
|
||||
|
||||
my $list = [ map {sprintf "%d", hex($_)} unpack( "(A8)*", join( '' , map { sprintf "%02x", $_} unpack( "(C4)*", $plist ) )) ];
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
sub agg_ports_cisco {
|
||||
my $dev = shift;
|
||||
my $group = $dev->lag_members;
|
||||
|
||||
my $mapping = {};
|
||||
for my $master (keys %$group) {
|
||||
my $slaves = $group->{$master};
|
||||
for my $slave (@$slaves) {
|
||||
$mapping->{$slave} = $master;
|
||||
}
|
||||
}
|
||||
|
||||
return $mapping;
|
||||
}
|
||||
|
||||
sub agg_ports_pagp {
|
||||
my $dev = shift;
|
||||
|
||||
@@ -80,9 +116,28 @@ sub agg_ports_pagp {
|
||||
return $mapping;
|
||||
}
|
||||
|
||||
# until we have PAgP data and need to combine with LAG data
|
||||
sub agg_ports_lag {
|
||||
my $dev = shift;
|
||||
|
||||
# same note as for agg_ports_pagp, it will miss mappings if interfaces
|
||||
# are down or lacp is not synced.
|
||||
|
||||
my $mapping = {};
|
||||
my $group = $dev->dot3adAggPortSelectedAggID;
|
||||
for my $slave (keys %$group) {
|
||||
my $master = $group->{$slave};
|
||||
next if($master == 0 || $slave == $master);
|
||||
|
||||
$mapping->{$slave} = $master;
|
||||
}
|
||||
|
||||
return $mapping;
|
||||
}
|
||||
|
||||
|
||||
# combine PAgP, LAG & Cisco proprietary data
|
||||
sub agg_ports {
|
||||
my $ret = {%{agg_ports_pagp(@_)}, %{agg_ports_lag(@_)}};
|
||||
my $ret = {%{agg_ports_pagp(@_)}, %{agg_ports_lag(@_)}, %{agg_ports_cisco(@_)}};
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -100,14 +155,14 @@ SNMP::Info Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $info = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $info->class();
|
||||
@@ -116,7 +171,7 @@ SNMP::Info Developers
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This class provides access to Aggregated Links configuration on Cisco devices.
|
||||
It combines Cisco PAgP and IEEE 802.3ad information.
|
||||
It combines Cisco PAgP, Cisco proprietary info and IEEE 802.3ad information.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
|
||||
@@ -130,6 +185,10 @@ L<SNMP::Info::IEEE802dot3ad>
|
||||
|
||||
=item F<CISCO-PAGP-MIB>
|
||||
|
||||
=item F<CISCO-LAG-MIB>
|
||||
|
||||
=item F<CISCO-IF-EXTENSION-MIB>
|
||||
|
||||
=back
|
||||
|
||||
MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
|
||||
@@ -144,15 +203,52 @@ Returns a HASH reference mapping from slave to master port for each member of
|
||||
a port bundle on the device. Keys are ifIndex of the slave ports, Values are
|
||||
ifIndex of the corresponding master ports.
|
||||
|
||||
=item C<agg_ports_cisco>
|
||||
|
||||
Implements the cisco LAG info retrieval. Merged into C<agg_ports> data
|
||||
automatically. Will fetch all members of C<clagAggPortListInterfaceIndexList>
|
||||
even if they are not running an aggregation protocol.
|
||||
|
||||
=item C<agg_ports_pagp>
|
||||
|
||||
Implements the PAgP LAG info retrieval. Merged into C<agg_ports> data
|
||||
automatically.
|
||||
|
||||
=item C<lag_members>
|
||||
|
||||
Mimics C<ad_lag_ports> from L<SNMP::Info::IEEE802dot3ad> but based on ifindex
|
||||
instead of instead of bp_index.
|
||||
|
||||
=back
|
||||
|
||||
=head2 OVERRIDES
|
||||
|
||||
=over
|
||||
|
||||
=item C<agg_ports_lag>
|
||||
|
||||
This will retrieve LAG ports based on C<dot3adAggPortSelectedAggID> data.
|
||||
It will be merged into C<agg_ports> data.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::IEEE802dot3ad
|
||||
|
||||
=over
|
||||
|
||||
See documentation in L<SNMP::Info::IEEE802dot3ad> for details.
|
||||
|
||||
=back
|
||||
|
||||
=head1 MUNGES
|
||||
|
||||
=over
|
||||
|
||||
=item C<munge_port_ifindex>
|
||||
|
||||
Takes C<clagAggPortListInterfaceIndexList>, uses the index as master port, then
|
||||
returns all members as ifindex. Works with single or multiple slaves to a master.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
|
||||
@@ -279,7 +279,7 @@ Justin Hunter, Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -336,10 +336,6 @@ These are methods that return scalar value from SNMP
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 Config Copy Request Table (C<ccCopyTable>)
|
||||
|
||||
=over
|
||||
@@ -435,7 +431,7 @@ Table of Flash copy operation entries.
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
@@ -452,7 +448,7 @@ older procedure has been depreciated by Cisco and is utilized only to support
|
||||
devices running older code revisions.
|
||||
|
||||
Example:
|
||||
$ciscoconfig->copy_run_tftp('1.2.3.4', 'myconfig')
|
||||
$ciscoconfig->copy_run_tftp('1.2.3.4', 'myconfig')
|
||||
or die "Couldn't save config. ",$ciscoconfig->error(1);
|
||||
|
||||
=item $ciscoconfig->copy_run_start()
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
|
||||
@@ -152,14 +152,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $cps = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $cps->class();
|
||||
@@ -196,10 +196,6 @@ None.
|
||||
|
||||
These are methods that return scalar values from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 F<CISCO-PORT-SECURITY-MIB> globals
|
||||
|
||||
=over
|
||||
|
||||
@@ -39,16 +39,16 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
|
||||
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' );
|
||||
|
||||
%GLOBALS = ();
|
||||
|
||||
%FUNCS = (
|
||||
'cpeth_ent_phy' => 'cpeExtPsePortEntPhyIndex',
|
||||
'peth_port_power' => 'cpeExtPsePortPwrConsumption',
|
||||
%FUNCS = (
|
||||
'cpeth_ent_phy' => 'cpeExtPsePortEntPhyIndex',
|
||||
'peth_port_power' => 'cpeExtPsePortPwrConsumption',
|
||||
);
|
||||
|
||||
%MUNGE = ();
|
||||
@@ -113,14 +113,14 @@ Bill Fenner
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $poe = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $poe->class();
|
||||
@@ -176,7 +176,7 @@ Maps the C<pethPsePortTable> to C<ifIndex> by way of the F<ENTITY-MIB>.
|
||||
|
||||
Power supplied by PoE ports, in milliwatts
|
||||
(C<cpeExtPsePortPwrConsumption>)
|
||||
|
||||
|
||||
=back
|
||||
|
||||
=head2 CDP Port table
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
|
||||
|
||||
@@ -86,14 +86,14 @@ Alexander Hartmaier
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $qos = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $qos->class();
|
||||
@@ -101,7 +101,7 @@ Alexander Hartmaier
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::CiscoQOS is a subclass of SNMP::Info that provides
|
||||
SNMP::Info::CiscoQOS is a subclass of SNMP::Info that provides
|
||||
information about a cisco device's QoS config.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
|
||||
|
||||
@@ -67,14 +67,14 @@ Alexander Hartmaier
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $rtt = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $rtt->class();
|
||||
@@ -82,7 +82,7 @@ Alexander Hartmaier
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::CiscoRTT is a subclass of SNMP::Info that provides
|
||||
SNMP::Info::CiscoRTT is a subclass of SNMP::Info that provides
|
||||
information about a cisco device's RTT values.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
|
||||
@@ -38,7 +38,7 @@ use Exporter;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
|
||||
|
||||
@@ -295,14 +295,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $ciscostats = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $ciscostats->class();
|
||||
@@ -386,7 +386,7 @@ Returns a map to IID for ports that are physical ports, not vlans, etc.
|
||||
|
||||
=item $stack->i_type()
|
||||
|
||||
Crosses p_port() with p_type() and returns the results.
|
||||
Crosses p_port() with p_type() and returns the results.
|
||||
|
||||
Overrides with C<ifType> if p_type() isn't available.
|
||||
|
||||
@@ -425,7 +425,7 @@ C<portAdminSpeed>
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$stack->interfaces()};
|
||||
$stack->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$stack->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port speed. ",$stack->error(1);
|
||||
|
||||
=item $stack->set_i_duplex_admin(duplex, ifIndex)
|
||||
@@ -439,7 +439,7 @@ C<portAdminSpeed>
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$stack->interfaces()};
|
||||
$stack->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$stack->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port duplex. ",$stack->error(1);
|
||||
|
||||
=back
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'SNMPv2-MIB' => 'sysDescr',
|
||||
@@ -88,7 +88,7 @@ $VERSION = '3.61';
|
||||
|
||||
# CISCO-FLASH-MIB::ciscoFlashDeviceTable
|
||||
'cisco_flash_size' => 'ciscoFlashDeviceSize',
|
||||
|
||||
|
||||
# CISCO-IMAGE-MIB
|
||||
'ci_images' => 'ciscoImageString',
|
||||
);
|
||||
@@ -334,7 +334,7 @@ Eric Miller, Max Baker, Sam Stickland
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $ciscostats = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -342,7 +342,7 @@ Eric Miller, Max Baker, Sam Stickland
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $ciscostats->class();
|
||||
@@ -351,7 +351,7 @@ Eric Miller, Max Baker, Sam Stickland
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::CiscoStats is a subclass of SNMP::Info that provides cpu, memory,
|
||||
os and version information about Cisco Devices.
|
||||
os and version information about Cisco Devices.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
|
||||
@@ -447,7 +447,7 @@ Tries to parse C<ROMMON> version from rom_id() string
|
||||
|
||||
Current CPU usage in percent.
|
||||
|
||||
C<1.3.6.1.4.1.9.2.1.56.0> =
|
||||
C<1.3.6.1.4.1.9.2.1.56.0> =
|
||||
C<OLD-CISCO-CPU-MIB:avgBusyPer>
|
||||
|
||||
=item $ciscostats->ios_cpu_1min()
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
# SNMP::Info::CiscoStpExtensions
|
||||
#
|
||||
# Copyright (c)2009 Carlos Vicente
|
||||
# All rights reserved.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
# * Neither the name of the author nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# * Neither the name of the author nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::CiscoStpExtensions;
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
|
||||
@@ -106,11 +106,11 @@ sub mst_region_rev {
|
||||
|
||||
sub mst_vlan2instance {
|
||||
my $self = shift;
|
||||
|
||||
|
||||
# Get MST vlan-to-instance mapping
|
||||
my $m1k2k = $self->stpx_smst_vlans_mapped_1k2k;
|
||||
my $m3k4k = $self->stpx_smst_vlans_mapped_3k4k;
|
||||
|
||||
|
||||
# Get list of VLANs
|
||||
my $vlan_membership = $self->i_vlan_membership;
|
||||
my @vlans;
|
||||
@@ -140,7 +140,7 @@ sub mst_vlan2instance {
|
||||
$res{$vlan} = $inst;
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return \%res;
|
||||
@@ -162,7 +162,7 @@ sub i_rootguard_enabled {
|
||||
$res{$iid} = $enabled;
|
||||
}
|
||||
return \%res;
|
||||
}
|
||||
}
|
||||
|
||||
sub i_loopguard_enabled {
|
||||
my $self = shift;
|
||||
@@ -180,7 +180,7 @@ sub i_loopguard_enabled {
|
||||
$res{$iid} = $enabled;
|
||||
}
|
||||
return \%res;
|
||||
}
|
||||
}
|
||||
|
||||
sub i_bpduguard_enabled {
|
||||
my $self = shift;
|
||||
@@ -189,7 +189,7 @@ sub i_bpduguard_enabled {
|
||||
my $bpdugm_default = $self->stpx_bpduguard_enable();
|
||||
my $bp_index = $self->bp_index($partial);
|
||||
my $bpdugm = $self->stpx_port_bpduguard_mode();
|
||||
|
||||
|
||||
my %res;
|
||||
foreach my $index ( keys %$bpdugm ){
|
||||
my $mode = $bpdugm->{$index};
|
||||
@@ -212,7 +212,7 @@ sub i_bpdufilter_enabled {
|
||||
my $bpdufm_default = $self->stpx_bpdufilter_enable();
|
||||
my $bp_index = $self->bp_index($partial);
|
||||
my $bpdufm = $self->stpx_port_bpdufilter_mode();
|
||||
|
||||
|
||||
my %res;
|
||||
foreach my $index ( keys %$bpdufm ){
|
||||
my $mode = $bpdufm->{$index};
|
||||
@@ -277,12 +277,25 @@ Carlos Vicente
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $stpx = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $stpx->class();
|
||||
print " Using device sub class : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Create or use a subclass of SNMP::Info that inherits this class. Do not use
|
||||
directly.
|
||||
|
||||
For debugging you can call new() directly as you would in SNMP::Info
|
||||
For debugging you can call new() directly as you would in SNMP::Info
|
||||
|
||||
my $stpx = new SNMP::Info::CiscoStpExtensions(...);
|
||||
|
||||
@@ -290,9 +303,17 @@ For debugging you can call new() directly as you would in SNMP::Info
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info
|
||||
=item SNMP::Info
|
||||
|
||||
=item SNMP::Info::Bridge
|
||||
=item SNMP::Info::Bridge
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
=item F<CISCO-STP-EXTENSIONS-MIB>
|
||||
|
||||
=back
|
||||
|
||||
@@ -306,7 +327,7 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $stpx->stp_ver()
|
||||
|
||||
Returns the particular STP version running on this device.
|
||||
Returns the particular STP version running on this device.
|
||||
Meant to override SNMP::Info::Brigde::stp_ver()
|
||||
|
||||
Values: C<pvstPlus>, C<mistp>, C<mistpPvstPlus>, C<mst>, C<rapidPvstPlus>
|
||||
@@ -324,25 +345,25 @@ to a hash.
|
||||
|
||||
=item $stpx->mst_config_digest()
|
||||
|
||||
Returns the Multiple Spanning Tree (MST) configuration digest
|
||||
Returns the Multiple Spanning Tree (MST) configuration digest
|
||||
|
||||
(C<stpxSMSTConfigDigest>)
|
||||
|
||||
=item $stpx->mst_region_name()
|
||||
|
||||
Returns the Multiple Spanning Tree (MST) region name
|
||||
Returns the Multiple Spanning Tree (MST) region name
|
||||
|
||||
(C<stpxMSTRegionName>)
|
||||
|
||||
=item $stpx->mst_region_rev()
|
||||
|
||||
Returns the Multiple Spanning Tree (MST) region name
|
||||
Returns the Multiple Spanning Tree (MST) region name
|
||||
|
||||
(C<stpxSMSTRegionRevision>)
|
||||
|
||||
=item $stpx->mst_vlan2instance()
|
||||
|
||||
Returns the mapping of vlan to MST instance in the form of a hash reference
|
||||
Returns the mapping of vlan to MST instance in the form of a hash reference
|
||||
with key = VLAN id, value = STP instance
|
||||
|
||||
=item $stpx->i_rootguard_enabled()
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||
@@ -172,7 +172,7 @@ sub i_vlan {
|
||||
# vtp_trunk_dyn_stat is not useful for down ports
|
||||
# so we use vtp_trunk_dyn to see if trunking is set
|
||||
my $dyn = $trunk_dyn->{$port};
|
||||
|
||||
|
||||
if (($stat and $stat =~ /^trunking/ )
|
||||
or ($dyn and (($dyn eq 'on') or ($dyn eq 'onNoNegotiate'))))
|
||||
{
|
||||
@@ -303,7 +303,7 @@ sub i_vlan_membership_untagged {
|
||||
my $vlan = $vlans->{$port};
|
||||
push( @{ $i_vlan_membership->{$port} }, $vlan );
|
||||
}
|
||||
|
||||
|
||||
return $i_vlan_membership;
|
||||
}
|
||||
|
||||
@@ -529,14 +529,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $vtp = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $vtp->class();
|
||||
@@ -544,7 +544,7 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides
|
||||
SNMP::Info::CiscoVTP is a subclass of SNMP::Info that provides
|
||||
information about a Cisco device's VLAN and VTP Domain membership.
|
||||
|
||||
Use or create in a subclass of SNMP::Info. Do not use directly.
|
||||
@@ -620,7 +620,7 @@ IDs. These are the VLANs which are members of enabled VLAN list for the port.
|
||||
Example:
|
||||
my $interfaces = $vtp->interfaces();
|
||||
my $vlans = $vtp->i_vlan_membership();
|
||||
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $vlan = join(',', sort(@{$vlans->{$iid}}));
|
||||
@@ -722,7 +722,7 @@ for a good treaty of how to connect to the VLANs
|
||||
|
||||
=item $vtp->i_vlan_type()
|
||||
|
||||
Static, Dynamic, or multiVlan.
|
||||
Static, Dynamic, or multiVlan.
|
||||
|
||||
(C<vmVlanType>)
|
||||
|
||||
@@ -769,7 +769,7 @@ Each bit represents a VLAN. This is 3072 through 4095
|
||||
|
||||
=over
|
||||
|
||||
=item $vtp->i_voice_vlan()
|
||||
=item $vtp->i_voice_vlan()
|
||||
|
||||
(C<vmVoiceVlanId>)
|
||||
|
||||
@@ -884,7 +884,7 @@ Each bit represents a VLAN. This is 3072 through 4095
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
@@ -896,7 +896,7 @@ VLAN ID and port C<ifIndex>. This method should only be used on end station
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$vtp->interfaces()};
|
||||
$vtp->set_i_vlan('2', $if_map{'FastEthernet0/1'})
|
||||
$vtp->set_i_vlan('2', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port VLAN. ",$vtp->error(1);
|
||||
|
||||
=item $vtp->set_i_pvid ( pvid, ifIndex )
|
||||
@@ -906,7 +906,7 @@ port C<ifIndex>. This method should only be used on trunk ports.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$vtp->interfaces()};
|
||||
$vtp->set_i_pvid('2', $if_map{'FastEthernet0/1'})
|
||||
$vtp->set_i_pvid('2', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port default VLAN. ",$vtp->error(1);
|
||||
|
||||
=item $vtp->set_i_untagged ( vlan, ifIndex )
|
||||
@@ -922,7 +922,7 @@ numeric VLAN ID and port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$vtp->interfaces()};
|
||||
$vtp->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
|
||||
$vtp->set_add_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't add port to egress list. ",$vtp->error(1);
|
||||
|
||||
=item $vtp->set_remove_i_vlan_tagged ( vlan, ifIndex )
|
||||
@@ -932,7 +932,7 @@ with the numeric VLAN ID and port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$vtp->interfaces()};
|
||||
$vtp->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
|
||||
$vtp->set_remove_i_vlan_tagged('2', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't add port to egress list. ",$vtp->error(1);
|
||||
|
||||
=back
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',
|
||||
@@ -64,7 +64,7 @@ sub hasEDP {
|
||||
my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {};
|
||||
|
||||
return 1 if ( scalar( keys %$edp_ip ) );
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ sub _edp_index {
|
||||
my $edp = shift;
|
||||
|
||||
my $edp_ip = $edp->extremeEdpNeighborVlanIpAddress() || {};
|
||||
|
||||
|
||||
my %edp_index;
|
||||
foreach my $key ( keys %$edp_ip ) {
|
||||
my $ip = $edp_ip->{$key};
|
||||
@@ -103,7 +103,7 @@ sub edp_if {
|
||||
$iid = $1 if $iid =~ /^(\d+)\./;
|
||||
$edp_if{$key} = $iid;
|
||||
}
|
||||
|
||||
|
||||
return \%edp_if;
|
||||
}
|
||||
|
||||
@@ -193,10 +193,10 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $edp = new SNMP::Info (
|
||||
my $edp = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -222,7 +222,7 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::EDP is a subclass of SNMP::Info that provides an object oriented
|
||||
SNMP::Info::EDP is a subclass of SNMP::Info that provides an object oriented
|
||||
interface to EDP information through SNMP.
|
||||
|
||||
EDP is a Layer 2 protocol that allows a network device to advertise its
|
||||
@@ -251,7 +251,7 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $edp->hasEDP()
|
||||
|
||||
Is EDP is active in this device?
|
||||
Is EDP is active in this device?
|
||||
|
||||
=back
|
||||
|
||||
@@ -285,7 +285,7 @@ Returns remote port ID
|
||||
|
||||
Returns the operating system version of the remote system.
|
||||
|
||||
Nulls are removed before the value is returned.
|
||||
Nulls are removed before the value is returned.
|
||||
|
||||
(C<extremeEdpNeighborSoftwareVersion>)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
|
||||
|
||||
@@ -174,14 +174,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $entity = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $entity->class();
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
|
||||
|
||||
@@ -95,14 +95,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $el = new SNMP::Info (
|
||||
my $el = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
|
||||
|
||||
my $class = $cdp->class();
|
||||
print " Using device sub class : $class\n";
|
||||
|
||||
@@ -110,7 +110,7 @@ Max Baker
|
||||
# ETHERLIKE-MIB
|
||||
my $interfaces = $el->interfaces();
|
||||
my $el_index = $el->el_index();
|
||||
my $el_duplex = $el->el_duplex();
|
||||
my $el_duplex = $el->el_duplex();
|
||||
|
||||
foreach my $el_port (keys %$el_duplex){
|
||||
my $duplex = $el_duplex->{$el_port};
|
||||
@@ -122,7 +122,7 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::EtherLike is a subclass of SNMP::Info that supplies
|
||||
SNMP::Info::EtherLike is a subclass of SNMP::Info that supplies
|
||||
access to the F<ETHERLIKE-MIB> used by some Layer 3 Devices such as
|
||||
Cisco routers.
|
||||
|
||||
@@ -133,7 +133,7 @@ directly.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
None.
|
||||
None.
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||
|
||||
@@ -132,10 +132,10 @@ Bruce Rodger, Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $fdp = new SNMP::Info (
|
||||
my $fdp = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -161,7 +161,7 @@ Bruce Rodger, Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::FDP is a subclass of SNMP::Info that provides an object oriented
|
||||
SNMP::Info::FDP is a subclass of SNMP::Info that provides an object oriented
|
||||
interface to FDP information through SNMP.
|
||||
|
||||
FDP is a Layer 2 protocol that supplies topology information of
|
||||
@@ -172,7 +172,7 @@ virtually identical. FDP is implemented in Brocade (Foundry) devices.
|
||||
Create or use a device subclass that inherits this class. Do not use
|
||||
directly.
|
||||
|
||||
Each device implements a subset of the global and cache entries.
|
||||
Each device implements a subset of the global and cache entries.
|
||||
Check the return value to see if that data is held by the device.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -186,7 +186,7 @@ None.
|
||||
=item F<FOUNDRY-SN-SWITCH-GROUP-MIB>
|
||||
|
||||
Needs a reasonably recent MIB. Works OK with B2R07604A.mib, but doesn't
|
||||
work with B2R07600C.
|
||||
work with B2R07600C.
|
||||
|
||||
=back
|
||||
|
||||
@@ -198,13 +198,13 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $fdp->hasFDP()
|
||||
|
||||
Is FDP is active in this device?
|
||||
Is FDP is active in this device?
|
||||
|
||||
Accounts for SNMP version 1 devices which may have FDP but not fdp_run()
|
||||
|
||||
=item $fdp->fdp_run()
|
||||
|
||||
Is FDP enabled on this device?
|
||||
Is FDP enabled on this device?
|
||||
|
||||
(C<fdpGlobalRun>)
|
||||
|
||||
@@ -216,7 +216,7 @@ Interval in seconds at which FDP messages are generated.
|
||||
|
||||
=item $fdp->fdp_holdtime()
|
||||
|
||||
Time in seconds that FDP messages are kept.
|
||||
Time in seconds that FDP messages are kept.
|
||||
|
||||
(C<fdpGlobalHoldTime>)
|
||||
|
||||
@@ -236,13 +236,13 @@ Interval in seconds at which FDP messages are generated.
|
||||
|
||||
=item $fdp->fdp_holdtime()
|
||||
|
||||
Time in seconds that FDP messages are kept.
|
||||
Time in seconds that FDP messages are kept.
|
||||
|
||||
(C<fdpGlobalHoldTime>)
|
||||
|
||||
=item $fdp->fdp_id()
|
||||
=item $fdp->fdp_id()
|
||||
|
||||
Returns FDP device ID.
|
||||
Returns FDP device ID.
|
||||
|
||||
This is the device id broadcast via FDP to other devices, and is what is
|
||||
retrieved from remote devices with $fdp->id().
|
||||
@@ -334,9 +334,9 @@ Returns remote IP address
|
||||
|
||||
(C<fdpCacheAddress>)
|
||||
|
||||
=item $fdp->fdp_platform()
|
||||
=item $fdp->fdp_platform()
|
||||
|
||||
Returns remote platform id
|
||||
Returns remote platform id
|
||||
|
||||
(C<fdpCachePlatform>)
|
||||
|
||||
@@ -352,13 +352,13 @@ Returns remote address type received. Usually IP.
|
||||
|
||||
(C<fdpCacheAddressType>)
|
||||
|
||||
=item $fdp->fdp_ver()
|
||||
=item $fdp->fdp_ver()
|
||||
|
||||
Returns remote hardware version
|
||||
|
||||
(C<fdpCacheVersion>)
|
||||
|
||||
=item $fdp->fdp_cache_type()
|
||||
=item $fdp->fdp_cache_type()
|
||||
|
||||
Returns type of entry received, either FDP or CDP.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
|
||||
|
||||
@@ -203,7 +203,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Aggregate;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Aggregate::MIBS,
|
||||
@@ -82,10 +82,10 @@ sub agg_ports_lag {
|
||||
for ( my $i = 0; $i <= scalar(@$portlist); $i++ ) {
|
||||
my $ifindex = $i+1;
|
||||
if ( exists($index->{$i+1}) and defined($index->{$i+1}) ) {
|
||||
$ifindex = $index->{$i+1};
|
||||
$ifindex = $index->{$i+1};
|
||||
}
|
||||
$ret->{$ifindex} = $idx if ( @$portlist[$i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
@@ -105,14 +105,14 @@ SNMP::Info Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $info = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $info->class();
|
||||
|
||||
@@ -44,19 +44,19 @@ use constant {
|
||||
IPV6MIB => 3,
|
||||
};
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
|
||||
|
||||
%MIBS = (
|
||||
%MIBS = (
|
||||
'IP-MIB' => 'ipv6InterfaceTableLastChange',
|
||||
'IPV6-MIB' => 'ipv6IfTableLastChange',
|
||||
'CISCO-IETF-IP-MIB' => 'cInetNetToMediaNetAddress',
|
||||
'CISCO-IETF-IP-MIB' => 'cInetNetToMediaNetAddress',
|
||||
);
|
||||
|
||||
%GLOBALS = ();
|
||||
|
||||
%FUNCS = (
|
||||
%FUNCS = (
|
||||
'ip_n2p_phys_addr' => 'ipNetToPhysicalPhysAddress', # IP-MIB
|
||||
'c_inet_phys_addr' => 'cInetNetToMediaPhysAddress', # CISCO-IETF-IP-MIB
|
||||
'i6_n2p_phys_addr' => 'ipv6NetToMediaPhysAddress', # IPV6-MIB
|
||||
@@ -70,10 +70,10 @@ $VERSION = '3.61';
|
||||
'i6_n2p_phys_state' => 'ipv6IfNetToMediaState', # IPV6-MIB
|
||||
|
||||
'ip_pfx_origin' => 'ipAddressPrefixOrigin', # IP-MIB
|
||||
'c_pfx_origin' => 'cIpAddressPfxOrigin', # CISCO-IETF-IP-MIB
|
||||
'c_pfx_origin' => 'cIpAddressPfxOrigin', # CISCO-IETF-IP-MIB
|
||||
|
||||
'ip_addr6_pfx' => 'ipAddressPrefix', # IP-MIB
|
||||
'c_addr6_pfx' => 'cIpAddressPrefix', # CISCO-IETF-IP-MIB
|
||||
'c_addr6_pfx' => 'cIpAddressPrefix', # CISCO-IETF-IP-MIB
|
||||
|
||||
# Commented out are not-accessible according to MIB
|
||||
#'ip_addr6_pfxlen' => 'ipAddressPrefixLength', # IP-MIB
|
||||
@@ -81,7 +81,7 @@ $VERSION = '3.61';
|
||||
'i6_addr_pfxlen' => 'ipv6AddrPfxLength', # IPV6-MIB
|
||||
|
||||
'ip_addr6_index' => 'ipAddressIfIndex', # IP-MIB
|
||||
'c_addr6_index' => 'cIpAddressIfIndex', # CISCO-IETF-IP-MIB
|
||||
'c_addr6_index' => 'cIpAddressIfIndex', # CISCO-IETF-IP-MIB
|
||||
|
||||
'ip_addr6_type' => 'ipAddressType', # IP-MIB
|
||||
'c_addr6_type' => 'cIpAddressType', # CISCO-IETF-IP-MIB
|
||||
@@ -106,8 +106,8 @@ sub ipv6_n2p_mac {
|
||||
foreach my $row (keys %$phys_addr) {
|
||||
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
|
||||
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
|
||||
$v6addr = join('.', $addrtype, $addrsize, $v6addr);
|
||||
$addrtype = 2;
|
||||
@@ -133,8 +133,8 @@ sub ipv6_n2p_addr {
|
||||
foreach my $row (keys %$net_addr) {
|
||||
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
|
||||
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
|
||||
$v6addr = join('.', $addrtype, $addrsize, $v6addr);
|
||||
$addrtype = 2;
|
||||
@@ -142,7 +142,7 @@ sub ipv6_n2p_addr {
|
||||
if ($addrtype == 2) { # IPv6
|
||||
my $v6_packed = pack("C*", split(/\./, $v6addr));
|
||||
if (length($v6_packed) == 15) {
|
||||
# Workaround for some some IP-MIB implementations, eg on Cisco Nexus: no explicit addrsize,
|
||||
# Workaround for some some IP-MIB implementations, eg on Cisco Nexus: no explicit addrsize,
|
||||
# so what we've collected in that variable is actually the first byte of the address.
|
||||
$v6_packed = pack('C', $addrsize) . $v6_packed;
|
||||
}
|
||||
@@ -177,8 +177,8 @@ sub ipv6_n2p_if {
|
||||
foreach my $row (keys %$phys_addr) {
|
||||
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
|
||||
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
|
||||
$v6addr = join('.', $addrtype, $addrsize, $v6addr);
|
||||
$addrtype = 2;
|
||||
@@ -204,8 +204,8 @@ sub ipv6_n2p_type {
|
||||
foreach my $row (keys %$phys_type) {
|
||||
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
|
||||
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
|
||||
$v6addr = join('.', $addrtype, $addrsize, $v6addr);
|
||||
$addrtype = 2;
|
||||
@@ -231,8 +231,8 @@ sub ipv6_n2p_state {
|
||||
foreach my $row (keys %$phys_state) {
|
||||
if ($row =~ /^(\d+)\.(\d+)\.(\d+)\.([\d\.]+)$/) {
|
||||
my $ifindex = $1; my $addrtype = $2; my $addrsize = $3; my $v6addr = $4;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
if ($info::METHOD == IPV6MIB) {
|
||||
# IPV6-MIB doesn't include the addrtype in the index;
|
||||
# also, address syntax is IPv6Address (fixed 16 bytes) and not InetAddress (length field followed by address bytes)
|
||||
$v6addr = join('.', $addrtype, $addrsize, $v6addr);
|
||||
$addrtype = 2;
|
||||
@@ -442,14 +442,14 @@ Jeroen van Ingen and Carlos Vicente
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $info = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $info->class();
|
||||
@@ -457,12 +457,12 @@ Jeroen van Ingen and Carlos Vicente
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The SNMP::Info::IPv6 class implements functions to for mapping IPv6 addresses
|
||||
The SNMP::Info::IPv6 class implements functions to for mapping IPv6 addresses
|
||||
to MAC addresses, interfaces and more. It will use data from the F<IP-MIB>,
|
||||
F<IPV6-MIB>, or the F<CISCO-IETF-IP-MIB>, whichever is supported by the
|
||||
device.
|
||||
|
||||
This class is inherited by Info::Layer3 to provide IPv6 node tracking across
|
||||
This class is inherited by Info::Layer3 to provide IPv6 node tracking across
|
||||
device classes.
|
||||
|
||||
For debugging purposes you can call this class directly as you would
|
||||
@@ -519,7 +519,7 @@ Maps an IPv6 address to its type (unicast, anycast, etc.)
|
||||
|
||||
Maps an IPv6 prefix with its origin (manual, well-known, dhcp, etc.)
|
||||
|
||||
=item $info->ipv6_addr_prefix()
|
||||
=item $info->ipv6_addr_prefix()
|
||||
|
||||
Maps IPv6 addresses with their prefixes
|
||||
|
||||
@@ -545,7 +545,7 @@ Maps an address of type C<cInetNetToMediaNetAddressType> on interface C<ifIndex>
|
||||
|
||||
=head1 MUNGES
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item munge_physaddr()
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
'LLDP-MIB' => 'lldpLocSysCapEnabled',
|
||||
@@ -141,7 +141,7 @@ sub lldp_if {
|
||||
next unless $port;
|
||||
|
||||
# Local LLDP port may not equate to ifIndex, see LldpPortNumber
|
||||
# TEXTUAL-CONVENTION in LLDP-MIB. Cross reference lldpLocPortDesc
|
||||
# TEXTUAL-CONVENTION in LLDP-MIB. Cross reference lldpLocPortDesc
|
||||
# with ifDescr and ifAlias to get ifIndex, prefer ifDescr over
|
||||
# ifAlias because using cross ref with description is correct
|
||||
# behavior according to the LLDP-MIB. Some devices (eg H3C gear)
|
||||
@@ -455,10 +455,10 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
my $lldp = new SNMP::Info (
|
||||
my $lldp = new SNMP::Info (
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'router',
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
);
|
||||
@@ -484,7 +484,7 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SNMP::Info::LLDP is a subclass of SNMP::Info that provides an object oriented
|
||||
SNMP::Info::LLDP is a subclass of SNMP::Info that provides an object oriented
|
||||
interface to LLDP information through SNMP.
|
||||
|
||||
LLDP is a Layer 2 protocol that allows a network device to advertise its
|
||||
@@ -520,7 +520,7 @@ These are methods that return scalar values from SNMP
|
||||
|
||||
=item $lldp->hasLLDP()
|
||||
|
||||
Is LLDP is active in this device?
|
||||
Is LLDP is active in this device?
|
||||
|
||||
Note: LLDP may be active, but nothing in C<lldpRemoteSystemsData> Tables so
|
||||
the device would not return any useful topology information.
|
||||
@@ -531,7 +531,7 @@ The string value used to identify the system name of the local system. If the
|
||||
local agent supports IETF RFC 3418, C<lldpLocSysName> object should have the
|
||||
same value of C<sysName> object.
|
||||
|
||||
Nulls are removed before the value is returned.
|
||||
Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpLocSysName>)
|
||||
|
||||
@@ -545,7 +545,7 @@ Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpLocSysDesc>)
|
||||
|
||||
=item $lldp->lldp_sys_cap()
|
||||
=item $lldp->lldp_sys_cap()
|
||||
|
||||
Returns which system capabilities are enabled on the local system. Results
|
||||
are munged into an ascii binary string, LSB. Each digit represents a bit
|
||||
@@ -595,8 +595,8 @@ with the remote system.
|
||||
|
||||
=item $lldp->lldp_if()
|
||||
|
||||
Returns the mapping to the SNMP Interface Table. Tries to cross reference
|
||||
(C<lldpLocPortDesc>) with (C<ifDescr>) and (C<ifAlias>) to get (C<ifIndex>),
|
||||
Returns the mapping to the SNMP Interface Table. Tries to cross reference
|
||||
(C<lldpLocPortDesc>) with (C<ifDescr>) and (C<ifAlias>) to get (C<ifIndex>),
|
||||
if unable defaults to (C<lldpRemLocalPortNum>).
|
||||
|
||||
=item $lldp->lldp_ip()
|
||||
@@ -611,7 +611,7 @@ use lldp_addr if you don't care about return address type.
|
||||
|
||||
=item $lldp->lldp_mac()
|
||||
|
||||
Returns remote (management) MAC address, if known. Returns for all other
|
||||
Returns remote (management) MAC address, if known. Returns for all other
|
||||
address types, use lldp_addr if you don't care about return address type.
|
||||
|
||||
=item $lldp->lldp_addr()
|
||||
@@ -632,13 +632,13 @@ Returns remote port ID
|
||||
Tries to return something useful from C<lldp_rem_sysdesc()> or
|
||||
C<lldp_rem_sysname()>.
|
||||
|
||||
=item $lldp->lldp_cap()
|
||||
=item $lldp->lldp_cap()
|
||||
|
||||
Returns hash of arrays with each array containing the system capabilities
|
||||
supported by the remote system. Possible elements in the array are
|
||||
enumerated from C<LldpSystemCapabilitiesMap>.
|
||||
|
||||
=item $lldp->lldp_media_cap()
|
||||
=item $lldp->lldp_media_cap()
|
||||
|
||||
Returns hash of arrays with each array containing the media capabilities
|
||||
supported by the remote system. Possible elements in the array are
|
||||
@@ -683,7 +683,7 @@ the remote system.
|
||||
Returns the string value used to identify the description of the given port
|
||||
associated with the remote system.
|
||||
|
||||
Nulls are removed before the value is returned.
|
||||
Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpRemPortDesc>)
|
||||
|
||||
@@ -692,7 +692,7 @@ Nulls are removed before the value is returned.
|
||||
Returns the string value used to identify the system name of the remote
|
||||
system.
|
||||
|
||||
Nulls are removed before the value is returned.
|
||||
Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpRemSysName>)
|
||||
|
||||
@@ -701,70 +701,70 @@ Nulls are removed before the value is returned.
|
||||
Returns the string value used to identify the system description of the
|
||||
remote system.
|
||||
|
||||
Nulls are removed before the value is returned.
|
||||
Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpRemSysDesc>)
|
||||
|
||||
=item $lldp->lldp_rem_hw_rev()
|
||||
|
||||
Returns the string value used to identify the hardware revision of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemHardwareRev>)
|
||||
|
||||
=item $lldp->lldp_rem_fw_rev()
|
||||
|
||||
Returns the string value used to identify the firmware revision of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemHardwareRev>)
|
||||
|
||||
=item $lldp->lldp_rem_sw_rev()
|
||||
|
||||
Returns the string value used to identify the software revision of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemSoftwareRev>)
|
||||
|
||||
=item $lldp->lldp_rem_serial()
|
||||
|
||||
Returns the string value used to identify the serial number of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemSerialNum>)
|
||||
|
||||
=item $lldp->lldp_rem_vendor()
|
||||
|
||||
Returns the string value used to identify the manufacturer of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemMfgName>)
|
||||
|
||||
=item $lldp->lldp_rem_asset()
|
||||
|
||||
Returns the string value used to identify the asset number of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemAssetID>)
|
||||
|
||||
=item $lldp->lldp_rem_model()
|
||||
|
||||
Returns the string value used to identify the model of the
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
remote system. Nulls are removed before the value is returned.
|
||||
|
||||
(C<lldpXMedRemModelName>)
|
||||
|
||||
=item $lldp->lldp_rem_media_cap_spt()
|
||||
=item $lldp->lldp_rem_media_cap_spt()
|
||||
|
||||
Returns which media capabilities are supported on the remote system. Results
|
||||
are munged into an ascii binary string, LSB.
|
||||
|
||||
=item $lldp->lldp_rem_media_cap()
|
||||
=item $lldp->lldp_rem_media_cap()
|
||||
|
||||
Returns which media capabilities are enabled on the remote system. Results
|
||||
are munged into an ascii binary string, LSB.
|
||||
|
||||
=item $lldp->lldp_rem_sys_cap()
|
||||
=item $lldp->lldp_rem_sys_cap()
|
||||
|
||||
Returns which system capabilities are enabled on the remote system. Results
|
||||
are munged into an ascii binary string, LSB. Each digit represents a bit
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
|
||||
|
||||
@@ -172,14 +172,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $l1 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $l1->class();
|
||||
@@ -203,15 +203,15 @@ This class is usually used as a superclass for more specific device classes
|
||||
listed under SNMP::Info::Layer1::* Please read all docs under SNMP::Info
|
||||
first.
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Layer1 device through SNMP. Information is stored in a number of MIBs.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $l1 = new SNMP::Info::Layer1(...);
|
||||
|
||||
=head2 Inherited Classes
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
@@ -219,7 +219,7 @@ after determining a more specific class using the method above.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
@@ -242,7 +242,7 @@ These are methods that return scalar value from SNMP
|
||||
|
||||
=item $l1->ports_managed()
|
||||
|
||||
Gets the number of ports under the interface mib
|
||||
Gets the number of ports under the interface mib
|
||||
|
||||
(C<ifNumber>)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
|
||||
@@ -128,14 +128,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $allied = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $allied->class();
|
||||
@@ -143,8 +143,8 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Allied device through SNMP. See inherited classes' documentation for
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Allied device through SNMP. See inherited classes' documentation for
|
||||
inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -181,7 +181,7 @@ Returns 'allied' :)
|
||||
|
||||
=item $allied->os()
|
||||
|
||||
Returns 'allied'
|
||||
Returns 'allied'
|
||||
|
||||
=item $allied->os_ver()
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
|
||||
@@ -173,14 +173,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $asante = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $asante->class();
|
||||
@@ -188,7 +188,7 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Asante device through SNMP.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -250,7 +250,7 @@ See L<SNMP::Info::Layer1/"GLOBALS"> for details.
|
||||
|
||||
Returns reference to the map between IID and physical Port.
|
||||
|
||||
=item $asante->i_description()
|
||||
=item $asante->i_description()
|
||||
|
||||
Description of the interface.
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -492,7 +492,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -501,12 +501,12 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Bay hub device through SNMP. Also provides device MAC to port mapping through
|
||||
the proprietary MIB.
|
||||
the proprietary MIB.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $bayhub = new SNMP::Info::Layer1::Bayhub(...);
|
||||
|
||||
@@ -607,18 +607,18 @@ to a hash.
|
||||
|
||||
=item $bayhub->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Since hubs do not support C<ifIndex>, the interface index is created using the
|
||||
formula (board * 256 + port).
|
||||
|
||||
=item $bayhub->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
|
||||
=item $bayhub->i_duplex()
|
||||
|
||||
Returns half, hubs do not support full duplex.
|
||||
Returns half, hubs do not support full duplex.
|
||||
|
||||
=item $bayhub->i_duplex_admin()
|
||||
|
||||
@@ -644,7 +644,7 @@ State choices are 'up' or 'down'
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$bayhub->interfaces()};
|
||||
$bayhub->set_i_up_admin('down', $if_map{'1.1'})
|
||||
$bayhub->set_i_up_admin('down', $if_map{'1.1'})
|
||||
or die "Couldn't change port state. ",$bayhub->error(1);
|
||||
|
||||
=item $bayhub->bp_index()
|
||||
@@ -671,51 +671,51 @@ L<SNMP::Info::NortelStack/"TABLE METHODS"> for details.
|
||||
|
||||
=over
|
||||
|
||||
=item $bayhub->e_index()
|
||||
=item $bayhub->e_index()
|
||||
|
||||
Returns ns_e_index().
|
||||
|
||||
=item $bayhub->e_class()
|
||||
=item $bayhub->e_class()
|
||||
|
||||
Returns ns_e_class().
|
||||
|
||||
=item $bayhub->e_descr()
|
||||
=item $bayhub->e_descr()
|
||||
|
||||
Returns ns_e_descr().
|
||||
|
||||
=item $bayhub->e_name()
|
||||
=item $bayhub->e_name()
|
||||
|
||||
Returns ns_e_name().
|
||||
|
||||
=item $bayhub->e_fwver()
|
||||
=item $bayhub->e_fwver()
|
||||
|
||||
Returns ns_e_fwver().
|
||||
|
||||
=item $bayhub->e_hwver()
|
||||
=item $bayhub->e_hwver()
|
||||
|
||||
Returns ns_e_hwver().
|
||||
|
||||
=item $bayhub->e_parent()
|
||||
=item $bayhub->e_parent()
|
||||
|
||||
Returns ns_e_parent().
|
||||
|
||||
=item $bayhub->e_pos()
|
||||
=item $bayhub->e_pos()
|
||||
|
||||
Returns ns_e_pos().
|
||||
|
||||
=item $bayhub->e_serial()
|
||||
=item $bayhub->e_serial()
|
||||
|
||||
Returns ns_e_serial().
|
||||
|
||||
=item $bayhub->e_swver()
|
||||
=item $bayhub->e_swver()
|
||||
|
||||
Returns ns_e_swver().
|
||||
|
||||
=item $bayhub->e_type()
|
||||
=item $bayhub->e_type()
|
||||
|
||||
Returns ns_e_type().
|
||||
|
||||
=item $bayhub->e_vendor()
|
||||
=item $bayhub->e_vendor()
|
||||
|
||||
Returns ns_e_vendor().
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer1::MIBS,
|
||||
@@ -486,7 +486,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -495,11 +495,11 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Cyclades/Avocent device through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $cyclades = new SNMP::Info::Layer1::Cyclades(...);
|
||||
|
||||
@@ -602,12 +602,12 @@ to a hash.
|
||||
|
||||
=item $cyclades->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Extended to include serial ports. Serial ports are indexed with the
|
||||
alternative labeling system for the serial port, either the listening socket
|
||||
port C<cySPortSocketPort> or C<acsSerialPortTableDeviceName> name to avoid
|
||||
conflicts with C<ifIndex>.
|
||||
conflicts with C<ifIndex>.
|
||||
|
||||
=item $cyclades->interfaces()
|
||||
|
||||
@@ -617,7 +617,7 @@ serial ports, C<acsSerialPortTableDeviceName> or C<cyISPortTty>.
|
||||
=item $cyclades->i_speed()
|
||||
|
||||
Returns interface speed. Extended to include serial ports,
|
||||
C<acsSerialPortTableComSpeed> or C<cyISPortSpeed>.
|
||||
C<acsSerialPortTableComSpeed> or C<cyISPortSpeed>.
|
||||
|
||||
=item $cyclades->i_up()
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -373,7 +373,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -382,12 +382,12 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Bay hub device through SNMP. Also provides device MAC to port mapping through
|
||||
the proprietary MIB.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $s3000 = new SNMP::Info::Layer1::S3000(...);
|
||||
|
||||
@@ -447,7 +447,7 @@ Returns the firmware version. (C<s3AgentFwVer>)
|
||||
|
||||
=item $s3000->mac()
|
||||
|
||||
Returns MAC of the advertised IP address of the device.
|
||||
Returns MAC of the advertised IP address of the device.
|
||||
|
||||
=back
|
||||
|
||||
@@ -477,7 +477,7 @@ to a hash.
|
||||
|
||||
=item $s3000->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Since hubs do not support C<ifIndex>, the interface index is created using the
|
||||
formula (board * 256 + port). This is required to support devices with more
|
||||
@@ -485,11 +485,11 @@ than one module.
|
||||
|
||||
=item $s3000->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
|
||||
=item $s3000->i_duplex()
|
||||
|
||||
Returns half, hubs do not support full duplex.
|
||||
Returns half, hubs do not support full duplex.
|
||||
|
||||
=item $s3000->i_duplex_admin()
|
||||
|
||||
@@ -516,7 +516,7 @@ State choices are 'up' or 'down'
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$s3000->interfaces()};
|
||||
$s3000->set_i_up_admin('down', $if_map{'1.1'})
|
||||
$s3000->set_i_up_admin('down', $if_map{'1.1'})
|
||||
or die "Couldn't change port state. ",$s3000->error(1);
|
||||
|
||||
=item $s3000->bp_index()
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
@@ -169,14 +169,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $l2 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $l2->class();
|
||||
@@ -199,11 +199,11 @@ This class is usually used as a superclass for more specific device classes
|
||||
listed under SNMP::Info::Layer2::* Please read all docs under SNMP::Info
|
||||
first.
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Layer2 device through SNMP. Information is stored in a number of MIBs.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $l2 = new SNMP::Info::Layer2(...);
|
||||
|
||||
@@ -243,7 +243,7 @@ These are methods that return scalar value from SNMP
|
||||
|
||||
=item $l2->model()
|
||||
|
||||
Cross references $l2->id() with product IDs in the
|
||||
Cross references $l2->id() with product IDs in the
|
||||
Cisco MIBs.
|
||||
|
||||
For HP devices, removes C<'hpswitch'> from the name
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
# SNMP::Info::Layer2::3Com - SNMP Interface to 3Com Devices
|
||||
#
|
||||
# Copyright (c) 2019 by The Netdisco Developer Team.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::3Com;
|
||||
|
||||
use strict;
|
||||
@@ -11,7 +39,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::LLDP::MIBS,
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
# SNMP::Info::Layer2::Adtran - SNMP Interface to Adtran Devices
|
||||
#
|
||||
# Copyright (c) 2019 by The Netdisco Developer Team.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::Adtran;
|
||||
|
||||
use strict;
|
||||
@@ -11,25 +39,25 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
our $index = undef;
|
||||
|
||||
%MIBS = (
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
'ADTRAN-GENEVC-MIB' => 'adGenEVCMIB',
|
||||
'ADTRAN-GENMEF-MIB' => 'adGenMEFMIB',
|
||||
'ADTRAN-GENPORT-MIB' => 'adGenPort',
|
||||
# 'ADTRAN-GENEVC-MIB' => 'adGenEVCMIB',
|
||||
# 'ADTRAN-GENMEF-MIB' => 'adGenMEFMIB',
|
||||
# 'ADTRAN-GENPORT-MIB' => 'adGenPort',
|
||||
'ADTRAN-MIB' => 'adtran',
|
||||
'ADTRAN-AOSUNIT' => 'adGenAOSUnitMib',
|
||||
);
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
%SNMP::Info::LLDP::GLOBALS,
|
||||
'serial' => 'adProdSerialNumber',
|
||||
'ad_mgmtevcvid' => 'adGenEVCSysMgmtEVCSTagVID',
|
||||
@@ -37,7 +65,7 @@ our $index = undef;
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS,
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS,
|
||||
'ad_evcstag' => 'adGenEVCLookupName',
|
||||
'ad_menport' => 'adGenMenPortRowStatus',
|
||||
'ad_evcnamevid' => 'adGenEVCSTagVID',
|
||||
@@ -58,11 +86,11 @@ sub os {
|
||||
|
||||
sub layers {
|
||||
my $adtran = shift;
|
||||
|
||||
|
||||
my $layers = $adtran->SUPER::layers();
|
||||
# Some netvantas don't report L2 properly
|
||||
# Some netvantas don't report L2 properly
|
||||
my $macs = $adtran->fw_mac();
|
||||
|
||||
|
||||
if (keys %$macs) {
|
||||
my $l = substr $layers, 6, 1, "1";
|
||||
}
|
||||
@@ -77,7 +105,7 @@ sub os_ver {
|
||||
my $aos_ver = $adtran->adAOSDeviceVersion();
|
||||
return $aos_ver;
|
||||
}
|
||||
sub model {
|
||||
sub model {
|
||||
my $adtran = shift;
|
||||
my $id = $adtran->id();
|
||||
my $mod = $adtran->adProdName() || undef;
|
||||
@@ -85,7 +113,7 @@ sub model {
|
||||
my $model = $adtran->adAOSDeviceProductName() || undef;
|
||||
return $model;
|
||||
}
|
||||
sub serial {
|
||||
sub serial {
|
||||
my $adtran = shift;
|
||||
my $e_serial = $adtran->e_serial() || {};
|
||||
my $serial2 = $e_serial->{1} || undef;
|
||||
@@ -96,19 +124,19 @@ sub serial {
|
||||
sub i_name {
|
||||
my $adtran = shift;
|
||||
my $partial = shift;
|
||||
my $i_name = $adtran->SUPER::i_alias() || undef;
|
||||
my $i_name = $adtran->SUPER::i_alias() || undef;
|
||||
return $i_name if (defined $i_name);
|
||||
$i_name = {};
|
||||
my $adname = $adtran->ad_genportcustuse() || undef;
|
||||
if (defined $adname) {
|
||||
foreach my $port (keys %$adname) {
|
||||
if (defined $adname) {
|
||||
foreach my $port (keys %$adname) {
|
||||
my @split = split(/\./,$port);
|
||||
$i_name->{@split[1]} = $adname->{$port};
|
||||
}
|
||||
}
|
||||
return $i_name;
|
||||
}
|
||||
sub i_vlan {
|
||||
sub i_vlan {
|
||||
my $adtran = shift;
|
||||
my $partial = shift;
|
||||
my $uniports = $adtran->ad_evcmapuniport() || undef;
|
||||
@@ -127,14 +155,14 @@ sub i_vlan {
|
||||
return $i_vlan;
|
||||
}
|
||||
return {};
|
||||
|
||||
|
||||
}
|
||||
|
||||
sub i_vlan_membership {
|
||||
|
||||
sub i_vlan_membership {
|
||||
my $adtran = shift;
|
||||
my $partial = shift;
|
||||
my $i_vlan = $adtran->ad_menport();
|
||||
if (defined $i_vlan) {
|
||||
if (defined $i_vlan) {
|
||||
my $vlans = {};
|
||||
my $v_name = $adtran->v_name();
|
||||
foreach my $vid (keys %$v_name) {
|
||||
@@ -174,14 +202,14 @@ SNMP::Info::Layer2::Adtran - SNMP Interface to Adtran Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $adtran = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $adtran->class();
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -52,6 +52,9 @@ $VERSION = '3.61';
|
||||
# AH-SYSTEM-MIB
|
||||
'serial' => 'ahSystemSerial',
|
||||
'os_bin' => 'ahFirmwareVersion',
|
||||
# not documented in the most recent mib,
|
||||
# but this is the base mac for the device
|
||||
'ah_mac' => '.1.3.6.1.4.1.26928.1.3.2.0',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -92,6 +95,13 @@ sub os {
|
||||
return 'hiveos';
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $aerohive = shift;
|
||||
|
||||
return $aerohive->ahSystemSerial()
|
||||
|| $aerohive->SUPER::serial();
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $aerohive = shift;
|
||||
my $descr = $aerohive->description();
|
||||
@@ -102,6 +112,31 @@ sub os_ver {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
sub mac {
|
||||
my $aerohive = shift;
|
||||
my $ahmac = $aerohive->ah_mac();
|
||||
|
||||
# newer hiveos version just return the mac address
|
||||
if (defined $ahmac) {
|
||||
# aerohive has a 0000:0000:0000 mac format by default,
|
||||
# change to 00:00:00:00:00:00
|
||||
$ahmac =~ s/(..)(..:?)/$1:$2/g;
|
||||
return $ahmac;
|
||||
}
|
||||
|
||||
my @macs;
|
||||
my $macs = $aerohive->i_mac();
|
||||
foreach my $iid (keys %$macs) {
|
||||
if (defined $macs->{$iid}) {
|
||||
push( @macs, $macs->{$iid} );
|
||||
}
|
||||
@macs = sort(@macs);
|
||||
}
|
||||
return $macs[0];
|
||||
}
|
||||
|
||||
|
||||
sub model {
|
||||
my $aerohive = shift;
|
||||
my $descr = $aerohive->description();
|
||||
@@ -288,14 +323,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $aerohive = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $aerohive->class();
|
||||
@@ -304,10 +339,10 @@ Eric Miller
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Aerohive wireless Access Point through SNMP.
|
||||
Aerohive wireless Access Point through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $aerohive = new SNMP::Info::Layer2::Aerohive(...);
|
||||
|
||||
@@ -335,7 +370,7 @@ See L<SNMP::Info::Layer2/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
These are methods that return scalar value from SNMP.
|
||||
|
||||
=over
|
||||
|
||||
@@ -345,24 +380,30 @@ Returns 'aerohive'.
|
||||
|
||||
=item $aerohive->os()
|
||||
|
||||
Returns 'hive_os'.
|
||||
Returns 'hiveos'.
|
||||
|
||||
=item $aerohive->serial()
|
||||
|
||||
Returns the serial number extracted from C<ahSystemSerial>.
|
||||
|
||||
=item $aerohive->os_ver()
|
||||
|
||||
Returns the OS versionl extracted from C<sysDescr>.
|
||||
Returns the OS version extracted from C<sysDescr>.
|
||||
|
||||
=item $aerohive->os_bin()
|
||||
|
||||
Returns the firmware version extracted from C<ahFirmwareVersion>.
|
||||
|
||||
=item $aerohive->mac()
|
||||
|
||||
Returns the base mac address of the aerohive unit from an undocumented
|
||||
snmp oid. if this oid is not available it will walk all interfaces and
|
||||
return the lowest numbered mac address.
|
||||
|
||||
=item $aerohive->model()
|
||||
|
||||
Returns the model extracted from C<sysDescr>.
|
||||
|
||||
=item $aerohive->serial()
|
||||
|
||||
Returns the serial number extracted from C<ahSystemSerial>.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
@@ -388,7 +429,7 @@ to a hash.
|
||||
|
||||
=item $aerohive->i_ssidlist()
|
||||
|
||||
Returns reference to hash. SSID's recognized by the radio interface.
|
||||
Returns reference to hash. SSID's recognized by the radio interface.
|
||||
|
||||
=item $aerohive->i_ssidmac()
|
||||
|
||||
@@ -431,17 +472,17 @@ the interface iid.
|
||||
=item $aerohive->qb_fw_port()
|
||||
|
||||
Returns reference to hash of forwarding table entries port interface
|
||||
identifier (iid)
|
||||
identifier (iid).
|
||||
|
||||
=item $aerohive->qb_fw_mac()
|
||||
|
||||
Returns reference to hash of forwarding table MAC Addresses
|
||||
Returns reference to hash of forwarding table MAC Addresses.
|
||||
|
||||
C<ahClientMac>
|
||||
|
||||
=item $aerohive->qb_fw_vlan()
|
||||
|
||||
Returns reference to hash of forwarding table entries VLAN ID
|
||||
Returns reference to hash of forwarding table entries VLAN ID.
|
||||
|
||||
C<ahClientVLAN>
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
@@ -166,11 +166,11 @@ sub cd11_mac {
|
||||
|
||||
sub cd11_txrate {
|
||||
my $airespace = shift;
|
||||
|
||||
|
||||
my $rates = $airespace->client_txrate() || {};
|
||||
my $protos = $airespace->cd11_proto() || {};
|
||||
my $bws = $airespace->cd11n_ch_bw() || {};
|
||||
|
||||
|
||||
my $cd11_txrate = {};
|
||||
foreach my $idx ( keys %$rates ) {
|
||||
my $rate = $rates->{$idx} || '0.0';
|
||||
@@ -193,7 +193,7 @@ sub cd11_txrate {
|
||||
|
||||
sub munge_cd11n_ch_bw {
|
||||
my $bw = shift;
|
||||
|
||||
|
||||
if ( $bw =~ /forty/ ) {
|
||||
return 40;
|
||||
}
|
||||
@@ -202,7 +202,7 @@ sub munge_cd11n_ch_bw {
|
||||
|
||||
sub munge_cd11_proto {
|
||||
my $bw = shift;
|
||||
|
||||
|
||||
return 2 if ( $bw eq 'dot11n5' );
|
||||
|
||||
return 1;
|
||||
@@ -260,7 +260,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -269,11 +269,11 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Cisco (Airespace) Wireless Controllers through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $airespace = new SNMP::Info::Layer2::Airespace(...);
|
||||
|
||||
@@ -346,7 +346,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item cd11_mac()
|
||||
|
||||
@@ -356,7 +356,7 @@ Returns client radio interface MAC addresses.
|
||||
|
||||
Returns client transmission speed in Mbs.
|
||||
|
||||
=back
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::IEEE802dot11;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::IEEE802dot11::GLOBALS,
|
||||
@@ -443,7 +443,7 @@ sub i_ssidmac {
|
||||
my $partial = shift;
|
||||
my $mbss_mac_addr = $aironet->mbss_mac_addr();
|
||||
|
||||
# Same logic as i_ssidbcast to return same indexes as i_ssidlist
|
||||
# Same logic as i_ssidbcast to return same indexes as i_ssidlist
|
||||
my $map = {};
|
||||
foreach my $key ( keys %$mbss_mac_addr ) {
|
||||
my ( $interface, @idx ) = split( /\./, $key );
|
||||
@@ -484,14 +484,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $aironet = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $aironet->class();
|
||||
@@ -517,7 +517,7 @@ This class is for devices running Cisco IOS software (newer)
|
||||
=back
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $aironet = new SNMP::Info::Layer2::Aironet(...);
|
||||
|
||||
@@ -655,11 +655,11 @@ being broadcast.
|
||||
=item $aironet->i_ssidmac()
|
||||
|
||||
With the same keys as i_ssidlist, returns the Basic service set
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
|
||||
=item $aironet ps1_status()
|
||||
|
||||
Returns the PoE injector status based on C<cpoePdSupportedPower> and
|
||||
Returns the PoE injector status based on C<cpoePdSupportedPower> and
|
||||
C<cpoePdSupportedPowerMode>.
|
||||
|
||||
=back
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
@@ -138,14 +138,14 @@ Max Baker, Dmitry Sergienko <dmitry@trifle.net>
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $allied = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $allied->class();
|
||||
@@ -153,8 +153,8 @@ Max Baker, Dmitry Sergienko <dmitry@trifle.net>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Allied device through SNMP. See inherited classes' documentation for
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Allied device through SNMP. See inherited classes' documentation for
|
||||
inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -195,7 +195,7 @@ Returns 'allied' :)
|
||||
|
||||
=item $allied->os()
|
||||
|
||||
Returns 'allied'
|
||||
Returns 'allied'
|
||||
|
||||
=item $allied->os_ver()
|
||||
|
||||
@@ -213,7 +213,7 @@ Tries to cull out C<AT-nnnnX> out of the description field.
|
||||
|
||||
=item $allied->mac()
|
||||
|
||||
Returns device MAC.
|
||||
Returns device MAC.
|
||||
|
||||
=back
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
@@ -92,14 +92,14 @@ Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $atmedia = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $atmedia->class();
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::LLDP::MIBS,
|
||||
@@ -136,7 +136,7 @@ sub model {
|
||||
return '303' if ( defined $descr and $descr =~ /\D303\D/ );
|
||||
return '304' if ( defined $descr and $descr =~ /\D304\D/ );
|
||||
return 'BPS' if ( $model =~ /BPS2000/i );
|
||||
|
||||
|
||||
# Pull sreg- from all
|
||||
$model =~ s/^sreg-//;
|
||||
# Strip ES/ERS/BayStack etc. from those families
|
||||
@@ -341,7 +341,7 @@ sub peth_port_ifindex {
|
||||
return \%peth_port_ifindex;
|
||||
}
|
||||
|
||||
# Currently only ERS 4800 v5.8+ support the rcBridgeSpbmMacTable
|
||||
# Currently only ERS 4800 v5.8+ support the rcBridgeSpbmMacTable
|
||||
# which holds the FDB for a SPBM edge deployment.
|
||||
#
|
||||
# Q-BRIDGE still holds some entries when the rcBridgeSpbmMacTable is in use
|
||||
@@ -353,7 +353,7 @@ sub fw_mac {
|
||||
my $qb = $rapidcity->SUPER::fw_mac() || {};
|
||||
my $spbm = $rapidcity->rc_spbm_fw_mac() || {};
|
||||
my $fw_mac = { %$qb, %$spbm };
|
||||
|
||||
|
||||
return $fw_mac;
|
||||
}
|
||||
|
||||
@@ -363,17 +363,17 @@ sub fw_port {
|
||||
my $qb = $rapidcity->SUPER::fw_port() || {};
|
||||
my $spbm = $rapidcity->rc_spbm_fw_port() || {};
|
||||
my $fw_port = { %$qb, %$spbm };
|
||||
|
||||
|
||||
return $fw_port;
|
||||
}
|
||||
|
||||
sub fw_status {
|
||||
my $rapidcity = shift;
|
||||
|
||||
my $qb = $rapidcity->SUPER::fw_status() || {};
|
||||
my $qb = $rapidcity->SUPER::fw_status() || {};
|
||||
my $spbm = $rapidcity->rc_spbm_fw_status() || {};
|
||||
my $fw_status = { %$qb, %$spbm };
|
||||
|
||||
|
||||
return $fw_status;
|
||||
}
|
||||
|
||||
@@ -383,7 +383,7 @@ sub qb_fw_vlan {
|
||||
my $qb = $rapidcity->SUPER::qb_fw_vlan() || {};
|
||||
my $spbm = $rapidcity->rc_spbm_fw_vlan() || {};
|
||||
my $qb_fw_vlan = { %$qb, %$spbm };
|
||||
|
||||
|
||||
return $qb_fw_vlan;
|
||||
}
|
||||
|
||||
@@ -417,7 +417,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $baystack->class();
|
||||
@@ -427,10 +427,10 @@ Eric Miller
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Avaya Ethernet Switch (formerly Nortel/Bay Baystack) and VSP 7000 series
|
||||
through SNMP.
|
||||
through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $baystack = new SNMP::Info::Layer2::Baystack(...);
|
||||
|
||||
@@ -500,7 +500,7 @@ Returns the firmware version extracted from C<sysDescr>.
|
||||
|
||||
=item $baystack->stp_ver()
|
||||
|
||||
Returns the particular STP version running on this device.
|
||||
Returns the particular STP version running on this device.
|
||||
|
||||
Values: C<nortelStpg>, C<pvst>, C<rstp>, C<mstp>, C<ieee8021d>
|
||||
|
||||
@@ -560,10 +560,10 @@ Returns reference to the map between IID and physical Port.
|
||||
|
||||
Slot and port numbers on the Baystack switches are determined by the
|
||||
formula:
|
||||
|
||||
|
||||
port = (Interface index % Index factor)
|
||||
slot = (int(Interface index / Index factor)) + Slot offset
|
||||
|
||||
|
||||
The physical port name is returned as slot.port.
|
||||
|
||||
=item $baystack->i_ignore()
|
||||
@@ -572,9 +572,9 @@ Returns reference to hash of IIDs to ignore.
|
||||
|
||||
=item $baystack->i_mac()
|
||||
|
||||
Returns the C<ifPhysAddress> table entries.
|
||||
Returns the C<ifPhysAddress> table entries.
|
||||
|
||||
Removes all entries matching '00:00:00:00:00:00' -- Certain
|
||||
Removes all entries matching '00:00:00:00:00:00' -- Certain
|
||||
revisions of Baystack firmware report all zeros for each port mac.
|
||||
|
||||
=item $baystack->i_name()
|
||||
@@ -602,60 +602,60 @@ L<SNMP::Info::NortelStack/"TABLE METHODS"> for details on ns_e_* methods.
|
||||
|
||||
=over
|
||||
|
||||
=item $baystack->e_index()
|
||||
=item $baystack->e_index()
|
||||
|
||||
If the device doesn't support C<entPhysicalDescr>, this will try ns_e_index().
|
||||
Note that this is based on C<entPhysicalDescr> due to implementation
|
||||
details of SNMP::Info::Entity::e_index().
|
||||
|
||||
=item $baystack->e_class()
|
||||
=item $baystack->e_class()
|
||||
|
||||
If the device doesn't support C<entPhysicalClass>, this will try ns_e_class().
|
||||
|
||||
=item $baystack->e_descr()
|
||||
=item $baystack->e_descr()
|
||||
|
||||
If the device doesn't support C<entPhysicalDescr>, this will try ns_e_descr().
|
||||
|
||||
=item $baystack->e_name()
|
||||
=item $baystack->e_name()
|
||||
|
||||
If the device doesn't support C<entPhysicalName>, this will try ns_e_name().
|
||||
|
||||
=item $baystack->e_fwver()
|
||||
=item $baystack->e_fwver()
|
||||
|
||||
If the device doesn't support C<entPhysicalFirmwareRev>, this will try
|
||||
ns_e_fwver().
|
||||
|
||||
=item $baystack->e_hwver()
|
||||
=item $baystack->e_hwver()
|
||||
|
||||
If the device doesn't support C<entPhysicalHardwareRev>, this will try
|
||||
ns_e_hwver().
|
||||
|
||||
=item $baystack->e_parent()
|
||||
=item $baystack->e_parent()
|
||||
|
||||
If the device doesn't support C<entPhysicalContainedIn>, this will try
|
||||
ns_e_parent().
|
||||
|
||||
=item $baystack->e_pos()
|
||||
=item $baystack->e_pos()
|
||||
|
||||
If the device doesn't support C<entPhysicalParentRelPos>, this will try
|
||||
ns_e_pos().
|
||||
|
||||
=item $baystack->e_serial()
|
||||
=item $baystack->e_serial()
|
||||
|
||||
If the device doesn't support C<entPhysicalSerialNum>, this will try
|
||||
ns_e_serial().
|
||||
|
||||
=item $baystack->e_swver()
|
||||
=item $baystack->e_swver()
|
||||
|
||||
If the device doesn't support C<entPhysicalSoftwareRev>, this will try
|
||||
ns_e_swver().
|
||||
|
||||
=item $baystack->e_type()
|
||||
=item $baystack->e_type()
|
||||
|
||||
If the device doesn't support C<entPhysicalVendorType>, this will try
|
||||
ns_e_type().
|
||||
|
||||
=item $baystack->e_vendor()
|
||||
=item $baystack->e_vendor()
|
||||
|
||||
If the device doesn't support C<entPhysicalMfgName>, this will try
|
||||
ns_e_vendor().
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
@@ -291,14 +291,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $c1900 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $c1900->class();
|
||||
@@ -312,7 +312,7 @@ Catalyst 1900 device through SNMP. See SNMP::Info for full documentation
|
||||
Note that most of these devices only talk SNMP version 1, but not all.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $c1900 = new SNMP::Info::Layer2::C1900(...);
|
||||
|
||||
@@ -379,8 +379,8 @@ Returns 'catalyst'
|
||||
|
||||
=item $c1900->os_ver()
|
||||
|
||||
Returns CatOS version if obtainable. First tries to use
|
||||
SNMP::Info::CiscoStats->os_ver() . If that fails then it
|
||||
Returns CatOS version if obtainable. First tries to use
|
||||
SNMP::Info::CiscoStats->os_ver() . If that fails then it
|
||||
checks for the presence of $c1900->c1900_flash_status() and culls
|
||||
the version from there.
|
||||
|
||||
@@ -467,7 +467,7 @@ bridge group IDs.
|
||||
Example:
|
||||
my $interfaces = $c1900->interfaces();
|
||||
my $vlans = $c1900->i_vlan_membership();
|
||||
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $vlan = join(',', sort(@{$vlans->{$iid}}));
|
||||
@@ -510,7 +510,7 @@ Gives admin setting for Duplex Info
|
||||
|
||||
=item $c1900->c1900_p_name()
|
||||
|
||||
Gives human set name for port
|
||||
Gives human set name for port
|
||||
|
||||
(C<swPortName>)
|
||||
|
||||
@@ -563,7 +563,7 @@ See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
@@ -574,7 +574,7 @@ choices are 'auto', 'half', 'full'.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$c1900->interfaces()};
|
||||
$c1900->set_i_duplex_admin('auto', $if_map{'1'})
|
||||
$c1900->set_i_duplex_admin('auto', $if_map{'1'})
|
||||
or die "Couldn't change port duplex. ",$c1900->error(1);
|
||||
|
||||
=back
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::Cisco::GLOBALS,
|
||||
@@ -225,7 +225,7 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $c2900 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -233,7 +233,7 @@ Max Baker
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $c2900->class();
|
||||
@@ -241,11 +241,11 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
C2900 device through SNMP.
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
C2900 device through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $c2900 = new SNMP::Info::Layer2::C2900(...);
|
||||
|
||||
@@ -309,8 +309,8 @@ Returns reference to the map between IID and physical Port.
|
||||
On the 2900 devices i_name isn't reliable, so we override to just the
|
||||
description.
|
||||
|
||||
Next all dots are changed for forward slashes so that the physical port name
|
||||
is the same as the broad-casted CDP port name.
|
||||
Next all dots are changed for forward slashes so that the physical port name
|
||||
is the same as the broad-casted CDP port name.
|
||||
(Ethernet0.1 -> Ethernet0/1)
|
||||
|
||||
Also, any weird characters are removed, as I saw a few pop up.
|
||||
@@ -333,7 +333,7 @@ Returns reference to hash of IIDs to admin speed setting.
|
||||
|
||||
=back
|
||||
|
||||
=head2 F<C2900-MIB> Port Entry Table
|
||||
=head2 F<C2900-MIB> Port Entry Table
|
||||
|
||||
=over
|
||||
|
||||
@@ -357,7 +357,7 @@ Gives admin setting for Duplex Info
|
||||
|
||||
=item $c2900->c2900_p_speed_admin()
|
||||
|
||||
Gives Admin speed of port
|
||||
Gives Admin speed of port
|
||||
|
||||
(C<c2900PortAdminSpeed>)
|
||||
|
||||
@@ -372,7 +372,7 @@ See L<SNMP::Info::Layer2::Cisco/"TABLE METHODS"> for details.
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
@@ -387,7 +387,7 @@ port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$c2900->interfaces()};
|
||||
$c2900->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$c2900->set_i_speed_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port speed. ",$c2900->error(1);
|
||||
|
||||
=item $c2900->set_i_duplex_admin(duplex, ifIndex)
|
||||
@@ -401,7 +401,7 @@ port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$c2900->interfaces()};
|
||||
$c2900->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$c2900->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port duplex. ",$c2900->error(1);
|
||||
|
||||
=back
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::Cisco::MIBS,
|
||||
@@ -173,14 +173,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $cat = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $cat->class();
|
||||
@@ -206,7 +206,7 @@ Note: Some older Catalyst switches will only talk SNMP version 1. Some
|
||||
newer ones will not return all their data if connected via Version 1.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $cat = new SNMP::Info::Layer2::Catalyst(...);
|
||||
|
||||
@@ -246,7 +246,7 @@ Returns 'catalyst'
|
||||
|
||||
=item $cat->os_ver()
|
||||
|
||||
Tries to use the value from SNMP::Info::CiscoStats->os_ver() and if it fails
|
||||
Tries to use the value from SNMP::Info::CiscoStats->os_ver() and if it fails
|
||||
it grabs $cat->m_swver()->{1} and uses that.
|
||||
|
||||
=item $cat->vendor()
|
||||
@@ -279,11 +279,11 @@ to a hash.
|
||||
=item $cat->interfaces()
|
||||
|
||||
Returns the map between SNMP Interface Identifier (iid) and physical port
|
||||
name.
|
||||
name.
|
||||
|
||||
=item $cat->i_name()
|
||||
|
||||
Returns reference to hash of iid to human set name.
|
||||
Returns reference to hash of iid to human set name.
|
||||
|
||||
C<portName>
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::SONMP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -274,14 +274,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $centillion = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $centillion->class();
|
||||
@@ -289,14 +289,14 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Centillion device through SNMP.
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Centillion device through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $centillion = new SNMP::Info::Layer2::centillion(...);
|
||||
|
||||
|
||||
Note: This class supports version 4.X and 5.X which are VLAN based rather
|
||||
than bridge group based.
|
||||
|
||||
@@ -430,7 +430,7 @@ to a hash.
|
||||
formula:
|
||||
port = index % 256
|
||||
slot = int(index / 256)
|
||||
|
||||
|
||||
The physical port name is returned as slot.port.
|
||||
|
||||
=item $centillion->i_duplex()
|
||||
@@ -469,13 +469,13 @@ Returns a mapping between C<ifIndex> and the VLAN.
|
||||
|
||||
=item $centillion->centillion_p_index()
|
||||
|
||||
Returns reference to hash. Maps table IIDs to Interface IIDs
|
||||
Returns reference to hash. Maps table IIDs to Interface IIDs
|
||||
|
||||
(C<cnDot3ExtnIfIndex>)
|
||||
|
||||
=item $centillion->centillion_p_duplex()
|
||||
|
||||
Returns reference to hash. Maps port operational duplexes to IIDs
|
||||
Returns reference to hash. Maps port operational duplexes to IIDs
|
||||
|
||||
(C<cnDot3ExtnIfOperConnectionType>)
|
||||
|
||||
@@ -493,19 +493,19 @@ Returns reference to hash. Maps port admin duplexes to IIDs
|
||||
|
||||
=item $centillion->centillion_i_vlan_index()
|
||||
|
||||
Returns reference to hash. Key: Table entry, Value: Index
|
||||
Returns reference to hash. Key: Table entry, Value: Index
|
||||
|
||||
(C<cnVlanPortMemberIfIndex>)
|
||||
|
||||
=item $centillion->centillion_i_vlan()
|
||||
|
||||
Returns reference to hash. Key: Table entry, Value: VLAN ID
|
||||
Returns reference to hash. Key: Table entry, Value: VLAN ID
|
||||
|
||||
(C<cnVlanPortMemberVID>)
|
||||
|
||||
=item $centillion->centillion_i_vlan_type()
|
||||
|
||||
Returns reference to hash. Key: Table entry, Value: VLAN Type
|
||||
Returns reference to hash. Key: Table entry, Value: VLAN Type
|
||||
|
||||
(C<cnVlanPortMemberIngressType>)
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -117,7 +117,7 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $cisco = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -125,7 +125,7 @@ Max Baker
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $cisco->class();
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# SNMP::Info::Layer2::CiscoSB
|
||||
# $Id$
|
||||
#
|
||||
# Copyright (c) 2013 Nic Bernstein
|
||||
#
|
||||
@@ -50,7 +49,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
@@ -149,7 +148,6 @@ sub interfaces {
|
||||
return $interfaces;
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
@@ -185,15 +183,17 @@ managed switches. [i.e. those matching enterprises(1).cisco(9).otherEnterprises(
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
=item SNMP::Info::CDP
|
||||
|
||||
=item SNMP::Info::CiscoConfig
|
||||
|
||||
=item SNMP::Info::CiscoStats
|
||||
|
||||
=item SNMP::Info::Entity
|
||||
|
||||
=item SNMP::Info::EtherLike
|
||||
|
||||
=item SNMP::Info::CiscoStats
|
||||
|
||||
=item SNMP::Info::CiscoConfig
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
@@ -209,18 +209,10 @@ MIBs required by the inherited classes listed above.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
These are methods that return scalar value from SNMP.
|
||||
|
||||
=over
|
||||
|
||||
=item $ciscosb->vendor()
|
||||
|
||||
Returns 'cisco'
|
||||
|
||||
=item $ciscosb->os()
|
||||
|
||||
Returns 'ros'
|
||||
|
||||
=item $ciscosb->os_ver()
|
||||
|
||||
Returns software version (C<entPhysicalSoftwareRev>)
|
||||
@@ -236,6 +228,20 @@ Returns model and hardware revision of unit
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $ciscosb->vendor()
|
||||
|
||||
Returns 'cisco'.
|
||||
|
||||
=item $ciscosb->os()
|
||||
|
||||
Returns 'ros'.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer2
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
|
||||
204
lib/SNMP/Info/Layer2/Exinda.pm
Normal file
204
lib/SNMP/Info/Layer2/Exinda.pm
Normal file
@@ -0,0 +1,204 @@
|
||||
# SNMP::Info::Layer2::Exinda
|
||||
#
|
||||
# Copyright (c) 2018 nick nauwelaerts
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::Exinda;
|
||||
|
||||
use strict;
|
||||
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Exinda::ISA = qw/
|
||||
SNMP::Info::Layer2
|
||||
Exporter
|
||||
/;
|
||||
@SNMP::Info::Layer2::Exinda::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
'EXINDA-MIB' => 'systemVersion',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
# EXINDA-MIB
|
||||
'uptime' => 'systemUptime',
|
||||
'os_ver' => 'systemVersion',
|
||||
'serial1' => 'systemHostId',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer2::FUNCS,
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
%SNMP::Info::Layer2::MUNGE,
|
||||
);
|
||||
|
||||
sub layers {
|
||||
# layer 2: bridged shaping and failopen interfaces
|
||||
# layer 3/4: ip and layer 4 protocol fiddling and accell
|
||||
# layer 7: wccp supprt
|
||||
return '01001110';
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'exinda';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $exinda = shift;
|
||||
|
||||
return $exinda->hardwareSeries();
|
||||
}
|
||||
|
||||
sub mac {
|
||||
# systemHostId is actually also a mac address
|
||||
my $exinda = shift;
|
||||
my $exinda_mac = $exinda->systemHostId();
|
||||
|
||||
$exinda_mac =~ s/(..)/$1:/g;
|
||||
chop $exinda_mac;
|
||||
|
||||
return $exinda_mac;
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'exos';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Exinda - SNMP Interface to exinda / gfi traffic shapers.
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
nick nauwelaerts
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $exinda = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $exinda->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for exinda / gfi network orchestrator traffic shapers.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
=item F<EXINDA-MIB>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP.
|
||||
|
||||
=over
|
||||
|
||||
=item $exinda->layers()
|
||||
|
||||
Returns '01001110'.
|
||||
|
||||
=item $exinda->mac()
|
||||
|
||||
Returns a mac address extracted from C<systemHostId>.
|
||||
|
||||
=item $exinda->model()
|
||||
|
||||
Returns the model extracted from C<hardwareSeries>.
|
||||
|
||||
=item $exinda->os()
|
||||
|
||||
Returns 'exos'.
|
||||
|
||||
=item $exinda->os_ver()
|
||||
|
||||
Returns the os version extracted from C<systemVersion>.
|
||||
|
||||
=item $exinda->serial1()
|
||||
|
||||
Returns the serial extracted from C<systemHostId>.
|
||||
|
||||
=item $exinda->uptime()
|
||||
|
||||
Returns the uptime extracted from C<systemUptime>.
|
||||
|
||||
=item $exinda->vendor()
|
||||
|
||||
Returns 'exinda'.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Global Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE ENTRIES
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
@@ -41,16 +41,16 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
@SNMP::Info::Layer2::HP::ISA = qw/
|
||||
SNMP::Info::Aggregate
|
||||
SNMP::Info::Layer3
|
||||
SNMP::Info::MAU
|
||||
SNMP::Info::CDP
|
||||
SNMP::Info::Layer3
|
||||
SNMP::Info::MAU
|
||||
SNMP::Info::CDP
|
||||
Exporter
|
||||
/;
|
||||
@SNMP::Info::Layer2::HP::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -107,7 +107,7 @@ $VERSION = '3.61';
|
||||
'hp_s_oid' => 'hpicfSensorObjectId',
|
||||
'hp_s_name' => 'hpicfSensorDescr',
|
||||
'hp_s_status' => 'hpicfSensorStatus',
|
||||
|
||||
|
||||
# HP-ICF-POE-MIB
|
||||
'peth_port_power' => 'hpicfPoePethPsePortPower',
|
||||
);
|
||||
@@ -123,7 +123,7 @@ $VERSION = '3.61';
|
||||
|
||||
|
||||
# Model map, reverse sorted by common model name (sort -k2 -r)
|
||||
# Potential sources for model information: http://www.hp.com/rnd/software/switches.htm or HP-ICF-OID MIB
|
||||
# Potential sources for model information: http://www.hp.com/rnd/software/switches.htm or HP-ICF-OID MIB
|
||||
%MODEL_MAP = (
|
||||
'J8131A' => 'WAP-420-WW',
|
||||
'J8130A' => 'WAP-420-NA',
|
||||
@@ -158,6 +158,12 @@ $VERSION = '3.61';
|
||||
'J8771A' => '4202vl-48G',
|
||||
'J4865A' => '4108GL',
|
||||
'J4887A' => '4104GL',
|
||||
'JL074A' => '3810M-48G-PoE+',
|
||||
'JL072A' => '3810M-48G',
|
||||
'JL076A' => '3810M-40G-8SR-PoE+',
|
||||
'JL073A' => '3810M-24G-PoE+',
|
||||
'JL071A' => '3810M-24G',
|
||||
'JL075A' => '3810M-16SFP+',
|
||||
'J9588A' => '3800-48G-PoE+-4XG',
|
||||
'J9574A' => '3800-48G-PoE+-4SFP+',
|
||||
'J9586A' => '3800-48G-4XG',
|
||||
@@ -177,6 +183,23 @@ $VERSION = '3.61';
|
||||
'J4905A' => '3400cl-24G',
|
||||
'J4815A' => '3324XL',
|
||||
'J4851A' => '3124',
|
||||
'JL322A' => '2930M-48G-PoE+',
|
||||
'JL321A' => '2930M-48G',
|
||||
'JL323A' => '2930M-40G-8SR-PoE+',
|
||||
'JL320A' => '2930M-24G-PoE+',
|
||||
'JL324A' => '2930M-24G-8SR-PoE+',
|
||||
'JL319A' => '2930M-24G',
|
||||
'JL258A' => '2930F-8G-PoE+-2SFP+',
|
||||
'JL558A' => '2930F-48G-PoE+-4SFP+-740W',
|
||||
'JL557A' => '2930F-48G-PoE+-4SFP-740W',
|
||||
'JL256A' => '2930F-48G-PoE+-4SFP+',
|
||||
'JL262A' => '2930F-48G-PoE+-4SFP',
|
||||
'JL254A' => '2930F-48G-4SFP+',
|
||||
'JL260A' => '2930F-48G-4SFP',
|
||||
'JL255A' => '2930F-24G-PoE+-4SFP+',
|
||||
'JL261A' => '2930F-24G-PoE+-4SFP',
|
||||
'JL253A' => '2930F-24G-4SFP+',
|
||||
'JL259A' => '2930F-24G-4SFP',
|
||||
'J9729A' => '2920-48G-PoE+',
|
||||
'J9729A' => '2920-48G-PoE+',
|
||||
'J9728A' => '2920-48G',
|
||||
@@ -216,6 +239,11 @@ $VERSION = '3.61';
|
||||
'J9086A' => '2610-24/12PWR',
|
||||
'J9085A' => '2610-24',
|
||||
'J8762A' => '2600-8-PWR',
|
||||
'JL357A' => '2540-48G-PoE+-4SFP+',
|
||||
'JL355A' => '2540-48G-4SFP+',
|
||||
'JL356A' => '2540-24G-PoE+-4SFP+',
|
||||
'JL354A' => '2540-24G-4SFP+',
|
||||
'JL070A' => '2530-8-PoE+ Internal PS',
|
||||
'J9780A' => '2530-8-PoE+',
|
||||
'J9774A' => '2530-8G-PoEP',
|
||||
'J9777A' => '2530-8G',
|
||||
@@ -287,7 +315,7 @@ sub os_ver {
|
||||
return;
|
||||
}
|
||||
|
||||
# Regular managed ProCurve switches have the serial num in entity mib,
|
||||
# Regular managed ProCurve switches have the serial num in entity mib,
|
||||
# the web-managed models in the semi mib (hphttpmanageable).
|
||||
sub serial {
|
||||
my $hp = shift;
|
||||
@@ -305,7 +333,7 @@ sub model {
|
||||
my $model = &SNMP::translateObj($id);
|
||||
return $id unless defined $model;
|
||||
|
||||
$model =~ s/^hpswitch//i;
|
||||
$model =~ s/^(hp|aruba)switch//i;
|
||||
|
||||
return defined $MODEL_MAP{$model} ? $MODEL_MAP{$model} : $model;
|
||||
}
|
||||
@@ -567,14 +595,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $hp = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $hp->class();
|
||||
@@ -582,15 +610,15 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP ProCurve Switch via SNMP.
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP ProCurve Switch via SNMP.
|
||||
|
||||
Note: Some HP Switches will connect via SNMP version 1, but a lot of config
|
||||
data will not be available. Make sure you try and connect with Version 2
|
||||
first, and then fail back to version 1.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $hp = new SNMP::Info::Layer2::HP(...);
|
||||
|
||||
@@ -846,7 +874,7 @@ to a hash.
|
||||
|
||||
=over 4
|
||||
|
||||
=item $hp->interfaces()
|
||||
=item $hp->interfaces()
|
||||
|
||||
Uses $hp->i_description()
|
||||
|
||||
@@ -903,7 +931,7 @@ Munge for c_id which handles CDP and LLDP.
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -386,7 +386,7 @@ sub i_vlan_membership_untagged {
|
||||
my $vlan = $vlans->{$port};
|
||||
push( @{ $i_vlan_membership->{$port} }, $vlan );
|
||||
}
|
||||
|
||||
|
||||
return $i_vlan_membership;
|
||||
}
|
||||
|
||||
@@ -482,14 +482,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $hp = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $hp->class();
|
||||
@@ -497,15 +497,15 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP ProCurve Switch via SNMP.
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP ProCurve Switch via SNMP.
|
||||
|
||||
Note: Some HP Switches will connect via SNMP version 1, but a lot of config
|
||||
data will not be available. Make sure you try and connect with Version 2
|
||||
first, and then fail back to version 1.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $hp = new SNMP::Info::Layer2::HP4000(...);
|
||||
|
||||
@@ -583,7 +583,7 @@ Returns bytes of used memory
|
||||
Returns the model number of the HP Switch. Will translate between the HP Part
|
||||
number and the common model number with this map :
|
||||
|
||||
%MODEL_MAP = (
|
||||
%MODEL_MAP = (
|
||||
'J4093A' => '2424M',
|
||||
'J4110A' => '8000M',
|
||||
'J4120A' => '1600M',
|
||||
@@ -652,7 +652,7 @@ to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $hp->interfaces()
|
||||
=item $hp->interfaces()
|
||||
|
||||
Uses $hp->i_description()
|
||||
|
||||
@@ -687,7 +687,7 @@ It is the union of tagged, untagged, and auto ports.
|
||||
Example:
|
||||
my $interfaces = $hp->interfaces();
|
||||
my $vlans = $hp->i_vlan_membership();
|
||||
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $vlan = join(',', sort(@{$vlans->{$iid}}));
|
||||
@@ -731,7 +731,7 @@ See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details.
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=over
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -63,7 +63,7 @@ $VERSION = '3.61';
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer2::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS,
|
||||
|
||||
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
@@ -102,14 +102,14 @@ Jeroen van Ingen
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $hp = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $hp->class();
|
||||
@@ -117,11 +117,11 @@ Jeroen van Ingen
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP Virtual Connect Switch via SNMP.
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
HP Virtual Connect Switch via SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $hp = new SNMP::Info::Layer2::HPVC(...);
|
||||
|
||||
@@ -188,27 +188,15 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=head1 MUNGES
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head1 SET METHODS
|
||||
|
||||
These are methods that provide SNMP set functionality for overridden methods
|
||||
or provide a simpler interface to complex set operations. See
|
||||
L<SNMP::Info/"SETTING DATA VIA SNMP"> for general information on set
|
||||
operations.
|
||||
operations.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -168,12 +168,6 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
@@ -114,7 +114,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -123,11 +123,11 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Nortel 2270 Series Wireless Switch through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $n2270 = new SNMP::Info::Layer2::N2270(...);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
|
||||
@@ -375,14 +375,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $nap222x = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $nap222x->class();
|
||||
@@ -391,10 +391,10 @@ Eric Miller
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a Nortel
|
||||
2220 series wireless Access Points through SNMP.
|
||||
2220 series wireless Access Points through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $nap222x = new SNMP::Info::Layer2::NAP222x(...);
|
||||
|
||||
@@ -526,7 +526,7 @@ to a hash.
|
||||
|
||||
=item $nap222x->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
|
||||
=item $nap222x->i_duplex()
|
||||
|
||||
@@ -548,7 +548,7 @@ Returns a human name based upon port description.
|
||||
|
||||
Returns a mapping between C<ifIndex> and the Bridge Table. This does not
|
||||
exist in the MIB and bridge port index is not the same as C<ifIndex> so it is
|
||||
created.
|
||||
created.
|
||||
|
||||
=item $nap222x->i_ssidlist()
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -159,7 +159,7 @@ sub model {
|
||||
return $id unless defined $model;
|
||||
|
||||
$model =~ s/^ntwsSwitch//i;
|
||||
return $model;
|
||||
return $model;
|
||||
}
|
||||
|
||||
sub _ap_serial {
|
||||
@@ -389,7 +389,7 @@ sub bp_index {
|
||||
sub fw_mac {
|
||||
my $nwss2300 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
|
||||
my $serials = $nwss2300->nwss2300_sta_serial($partial) || {};
|
||||
|
||||
my %fw_mac;
|
||||
@@ -401,7 +401,7 @@ sub fw_mac {
|
||||
|
||||
$fw_mac{$iid} = $mac;
|
||||
}
|
||||
return \%fw_mac;
|
||||
return \%fw_mac;
|
||||
}
|
||||
|
||||
sub fw_port {
|
||||
@@ -494,7 +494,7 @@ sub dot11_cur_tx_pwr_mw {
|
||||
my $partial = shift;
|
||||
|
||||
my $cur = $nwss2300->nwss2300_apif_power($partial);
|
||||
|
||||
|
||||
my $dot11_cur_tx_pwr_mw = {};
|
||||
foreach my $idx ( keys %$cur ) {
|
||||
my $pwr_dbm = $cur->{$idx};
|
||||
@@ -502,7 +502,7 @@ sub dot11_cur_tx_pwr_mw {
|
||||
#Convert to milliWatts = 10(dBm/10)
|
||||
my $pwr = int (10 ** ($pwr_dbm / 10));
|
||||
|
||||
$dot11_cur_tx_pwr_mw->{$idx} = $pwr;
|
||||
$dot11_cur_tx_pwr_mw->{$idx} = $pwr;
|
||||
}
|
||||
return $dot11_cur_tx_pwr_mw;
|
||||
}
|
||||
@@ -514,7 +514,7 @@ sub e_index {
|
||||
|
||||
# Try new first, fall back to depreciated
|
||||
my $ap_num = $nwss2300->nwss2300_ap_num() || $nwss2300->nwss2300_ap_dapnum() || {};
|
||||
|
||||
|
||||
my %e_index;
|
||||
|
||||
# Chassis
|
||||
@@ -797,7 +797,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -806,7 +806,7 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Avaya (Trapeze) Wireless Controllers through SNMP.
|
||||
|
||||
This class emulates bridge functionality for the wireless switch. This enables
|
||||
@@ -814,7 +814,7 @@ end station MAC addresses collection and correlation to the thin access point
|
||||
the end station is using for communication.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $nwss2300 = new SNMP::Info::Layer2::NWSS2300(...);
|
||||
|
||||
@@ -908,7 +908,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item $nwss2300->i_ssidlist()
|
||||
|
||||
@@ -1139,7 +1139,7 @@ These emulate the F<CISCO-DOT11-MIB>
|
||||
|
||||
(C<ntwsClSessClientSessStatsUniPktOut>)
|
||||
|
||||
=back
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info
|
||||
|
||||
@@ -1155,14 +1155,14 @@ See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details.
|
||||
|
||||
=item $nwss2300->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
|
||||
interfaces.
|
||||
|
||||
=item $nwss2300->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
interfaces. The thin AP MAC address and Slot ID nwss2300_apif_slot() are
|
||||
used as the port identifier.
|
||||
|
||||
@@ -1207,7 +1207,7 @@ the interface iid.
|
||||
=item $nwss2300->fw_port()
|
||||
|
||||
Returns reference to a hash, value being mac and
|
||||
nwss2300_sta_slot() combined to match the interface iid.
|
||||
nwss2300_sta_slot() combined to match the interface iid.
|
||||
|
||||
=item $nwss2300->fw_mac()
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
@@ -74,7 +74,7 @@ sub os {
|
||||
sub serial {
|
||||
my $netgear = shift;
|
||||
my $serial = undef;
|
||||
|
||||
|
||||
my $e_serial = $netgear->e_serial();
|
||||
if (defined($e_serial)) { # This unit sports the Entity-MIB
|
||||
# Find entity table entry for this unit
|
||||
@@ -108,7 +108,7 @@ sub model {
|
||||
}
|
||||
|
||||
# ifDescr is the same for all interfaces in a class, but the ifName is
|
||||
# unique, so let's use that for port name. If all else fails,
|
||||
# unique, so let's use that for port name. If all else fails,
|
||||
# concatentate ifDesc and ifIndex.
|
||||
sub interfaces {
|
||||
my $netgear = shift;
|
||||
@@ -162,20 +162,20 @@ SNMP::Info::Layer2::Netgear - SNMP Interface to Netgear switches
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Bill Fenner and Zoltan Erszenyi,
|
||||
Hacked in LLDP support from Baystack.pm by
|
||||
Bill Fenner and Zoltan Erszenyi,
|
||||
Hacked in LLDP support from Baystack.pm by
|
||||
Nic Bernstein <nic@onlight.com>
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $netgear = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $netgear->class();
|
||||
@@ -183,8 +183,8 @@ SNMP::Info::Layer2::Netgear - SNMP Interface to Netgear switches
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Netgear device through SNMP. See inherited classes' documentation for
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
Netgear device through SNMP. See inherited classes' documentation for
|
||||
inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -226,11 +226,11 @@ Returns 'netgear'
|
||||
|
||||
=item $netgear->os()
|
||||
|
||||
Returns 'netgear'
|
||||
Returns 'netgear'
|
||||
|
||||
=item $netgear->model()
|
||||
|
||||
Returns concatenation of $e_model and $e_hwver if Entity MIB present,
|
||||
Returns concatenation of $e_model and $e_hwver if Entity MIB present,
|
||||
otherwise returns description()
|
||||
|
||||
=item $netgear->os_ver()
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -114,7 +114,7 @@ sub i_name {
|
||||
# replace i_name where possible
|
||||
foreach my $iid ( keys %$return ) {
|
||||
next unless $return->{$iid} eq "";
|
||||
$return->{$iid} = $iid;
|
||||
$return->{$iid} = $iid;
|
||||
}
|
||||
return \%$return;
|
||||
}
|
||||
@@ -133,7 +133,7 @@ Christoph Neuhaus
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
|
||||
my $nexans = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
@@ -141,7 +141,7 @@ Christoph Neuhaus
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $nexans->class();
|
||||
@@ -158,7 +158,7 @@ tested devices:
|
||||
gigaSwitchV3d2SfpSfp version 3.68, 4.02, 4.02B, 4.10C, 4,14W
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $nexans = new SNMP::Info::Layer2::Nexans(...);
|
||||
|
||||
@@ -223,7 +223,7 @@ See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item $nexans->i_name()
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -170,14 +170,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $orinoco = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $orinoco->class();
|
||||
@@ -190,7 +190,7 @@ Orinoco Access Point through SNMP. Orinoco devices have been manufactured
|
||||
by Proxim, Agere, and Lucent.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $orinoco = new SNMP::Info::Layer2::Orinoco(...);
|
||||
|
||||
@@ -269,7 +269,7 @@ to a hash.
|
||||
|
||||
=item $orinoco->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
Returns reference to map of IIDs to physical ports.
|
||||
|
||||
=item $orinoco->i_ignore()
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);
|
||||
|
||||
@@ -96,7 +96,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -109,7 +109,7 @@ SNMP::Info::Layer2::Sixnet is a subclass of SNMP::Info that provides an
|
||||
interface to Sixnet industrial switches.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $sixnet = new SNMP::Info::Layer2::Sixnet(...);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -163,7 +163,7 @@ sub model {
|
||||
return $id unless defined $model;
|
||||
|
||||
$model =~ s/^wirelessLANController//i;
|
||||
return $model;
|
||||
return $model;
|
||||
}
|
||||
|
||||
sub _ap_serial {
|
||||
@@ -393,7 +393,7 @@ sub bp_index {
|
||||
sub fw_mac {
|
||||
my $trapeze = shift;
|
||||
my $partial = shift;
|
||||
|
||||
|
||||
my $serials = $trapeze->trapeze_sta_serial($partial) || {};
|
||||
|
||||
my %fw_mac;
|
||||
@@ -405,7 +405,7 @@ sub fw_mac {
|
||||
|
||||
$fw_mac{$iid} = $mac;
|
||||
}
|
||||
return \%fw_mac;
|
||||
return \%fw_mac;
|
||||
}
|
||||
|
||||
sub fw_port {
|
||||
@@ -498,7 +498,7 @@ sub dot11_cur_tx_pwr_mw {
|
||||
my $partial = shift;
|
||||
|
||||
my $cur = $trapeze->trapeze_apif_power($partial);
|
||||
|
||||
|
||||
my $dot11_cur_tx_pwr_mw = {};
|
||||
foreach my $idx ( keys %$cur ) {
|
||||
my $pwr_dbm = $cur->{$idx};
|
||||
@@ -506,7 +506,7 @@ sub dot11_cur_tx_pwr_mw {
|
||||
#Convert to milliWatts = 10(dBm/10)
|
||||
my $pwr = int (10 ** ($pwr_dbm / 10));
|
||||
|
||||
$dot11_cur_tx_pwr_mw->{$idx} = $pwr;
|
||||
$dot11_cur_tx_pwr_mw->{$idx} = $pwr;
|
||||
}
|
||||
return $dot11_cur_tx_pwr_mw;
|
||||
}
|
||||
@@ -518,7 +518,7 @@ sub e_index {
|
||||
|
||||
# Try new first, fall back to depreciated
|
||||
my $ap_num = $trapeze->trapeze_ap_num() || $trapeze->trapeze_ap_dapnum() || {};
|
||||
|
||||
|
||||
my %e_index;
|
||||
|
||||
# Chassis
|
||||
@@ -801,7 +801,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -810,7 +810,7 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Provides abstraction to the configuration information obtainable from
|
||||
Juniper (Trapeze) Wireless Controllers through SNMP.
|
||||
|
||||
This class emulates bridge functionality for the wireless switch. This enables
|
||||
@@ -818,7 +818,7 @@ end station MAC addresses collection and correlation to the thin access point
|
||||
the end station is using for communication.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $trapeze = new SNMP::Info::Layer2::Trapeze(...);
|
||||
|
||||
@@ -912,7 +912,7 @@ See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
=over
|
||||
|
||||
=item $trapeze->i_ssidlist()
|
||||
|
||||
@@ -1143,7 +1143,7 @@ These emulate the F<CISCO-DOT11-MIB>
|
||||
|
||||
(C<trpzClSessClientSessStatsUniPktOut>)
|
||||
|
||||
=back
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info
|
||||
|
||||
@@ -1159,14 +1159,14 @@ See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details.
|
||||
|
||||
=item $trapeze->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Extends C<ifIndex> to support thin APs and WLAN virtual interfaces as device
|
||||
interfaces.
|
||||
|
||||
=item $trapeze->interfaces()
|
||||
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
Returns reference to map of IIDs to ports. Thin APs are implemented as device
|
||||
interfaces. The thin AP MAC address and Slot ID trapeze_apif_slot() are
|
||||
used as the port identifier.
|
||||
|
||||
@@ -1211,7 +1211,7 @@ the interface iid.
|
||||
=item $trapeze->fw_port()
|
||||
|
||||
Returns reference to a hash, value being mac and
|
||||
trapeze_sta_slot() combined to match the interface iid.
|
||||
trapeze_sta_slot() combined to match the interface iid.
|
||||
|
||||
=item $trapeze->fw_mac()
|
||||
|
||||
|
||||
@@ -1,6 +1,30 @@
|
||||
# SNMP::Info::Layer2::Ubiquiti
|
||||
# $Id$
|
||||
# SNMP::Info::Layer2::Ubiquiti - SNMP Interface to Ubiquiti Devices
|
||||
#
|
||||
# Copyright (c) 2019 by The Netdisco Developer Team.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::Ubiquiti;
|
||||
|
||||
@@ -18,7 +42,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
@@ -106,11 +130,11 @@ sub model {
|
||||
next unless defined $prod;
|
||||
return $prod;
|
||||
}
|
||||
|
||||
|
||||
my $desc = $ubnt->description() || '';
|
||||
|
||||
|
||||
## Pull Model from beginning of description, separated by comma (EdgeSwitch)
|
||||
if((lc $desc) =~ /^edgeswitch/){
|
||||
if((lc $desc) =~ /^edgeswitch/){
|
||||
my @mydesc = split(/, /, $desc);
|
||||
return $mydesc[0];
|
||||
}
|
||||
@@ -127,15 +151,15 @@ sub model {
|
||||
my $ethCount = 0;
|
||||
my $switchCount = 0;
|
||||
#my $sfpCount = 0;
|
||||
#my $poeCount = 0;
|
||||
my $memTotalReal = $ubnt->memTotalReal;
|
||||
#my $poeCount = 0;
|
||||
my $memTotalReal = $ubnt->memTotalReal;
|
||||
my $cpuLoad = $ubnt->hrProcessorLoad;
|
||||
my $cpuCount = 0;
|
||||
## My perl is lacking. Not sure if there's a more efficient way to find the cpu count
|
||||
foreach my $iid ( keys %$cpuLoad ) {
|
||||
$cpuCount++;
|
||||
}
|
||||
|
||||
|
||||
my $ifDescs = $ubnt->ifDescr;
|
||||
foreach my $iid ( keys %$ifDescs ) {
|
||||
my $ifDesc = $ifDescs->{$iid};
|
||||
@@ -148,7 +172,7 @@ sub model {
|
||||
}
|
||||
}
|
||||
|
||||
## If people have other models to further fine-tune this logic that would be great.
|
||||
## If people have other models to further fine-tune this logic that would be great.
|
||||
if($ethCount eq 9){
|
||||
## Should be ER Infinity
|
||||
return "EdgeRouter Infinity"
|
||||
@@ -166,7 +190,7 @@ sub model {
|
||||
## failback string
|
||||
return "EdgeRouter eth-$ethCount switch-$switchCount mem-$memTotalReal cpuNum-$cpuCount";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,14 +221,12 @@ sub mac {
|
||||
|
||||
# syntax stolen from sub munge_mac in SNMP::Info
|
||||
$mac = lc join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $mac ) );
|
||||
return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){5}[0-9A-F][0-9A-F]$/i;
|
||||
|
||||
return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){5}[0-9A-F][0-9A-F]$/i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# MAC malformed or missing
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
sub interfaces {
|
||||
@@ -264,14 +286,14 @@ Max Kosmach
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $ubnt = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $ubnt->class();
|
||||
@@ -283,7 +305,7 @@ Provides abstraction to the configuration information obtainable from
|
||||
Ubiquiti Access Point through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $ubnt = new SNMP::Info::Layer2::Ubiquiti(...);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
@@ -103,7 +103,7 @@ sub ip {
|
||||
my $found_ip;
|
||||
|
||||
# Since hashes are random add sort so we get the same address each time
|
||||
# if there happens to be more than one. Will return highest numbered address
|
||||
# if there happens to be more than one. Will return highest numbered address
|
||||
foreach my $ip ( sort keys %{$ip_hash} ) {
|
||||
$found_ip = $ip
|
||||
if ( defined $ip
|
||||
@@ -124,14 +124,14 @@ Dmitry Sergienko (C<dmitry@trifle.net>)
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $zyxel = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $l2->class();
|
||||
@@ -139,8 +139,8 @@ Dmitry Sergienko (C<dmitry@trifle.net>)
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
ZyXEL device through SNMP. See inherited classes' documentation for
|
||||
Provides abstraction to the configuration information obtainable from a
|
||||
ZyXEL device through SNMP. See inherited classes' documentation for
|
||||
inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
@@ -178,7 +178,7 @@ Returns 'ZyXEL' :)
|
||||
|
||||
=item $zyxel->os()
|
||||
|
||||
Returns 'ZyXEL'
|
||||
Returns 'ZyXEL'
|
||||
|
||||
=item $zyxel->os_ver()
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -351,14 +351,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $l3 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $l3->class();
|
||||
@@ -381,11 +381,11 @@ This class is usually used as a superclass for more specific device classes
|
||||
listed under SNMP::Info::Layer3::* Please read all docs under SNMP::Info
|
||||
first.
|
||||
|
||||
Provides generic methods for accessing SNMP data for Layer 3 network devices.
|
||||
Includes support for Layer2+3 devices.
|
||||
Provides generic methods for accessing SNMP data for Layer 3 network devices.
|
||||
Includes support for Layer2+3 devices.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $l3 = new SNMP::Info::Layer3(...);
|
||||
|
||||
@@ -461,7 +461,7 @@ Returns the BGP identifier of the local system
|
||||
|
||||
=item $l3->bgp_local_as()
|
||||
|
||||
Returns the local autonomous system number
|
||||
Returns the local autonomous system number
|
||||
|
||||
(C<bgpLocalAs.0>)
|
||||
|
||||
@@ -533,13 +533,13 @@ to a hash.
|
||||
=item $l3->interfaces()
|
||||
|
||||
Returns the map between SNMP Interface Identifier (iid) and physical port
|
||||
name.
|
||||
name.
|
||||
|
||||
Only returns those iids that have a description listed in $l3->i_description()
|
||||
|
||||
=item $l3->i_name()
|
||||
|
||||
Returns reference to hash of iid to human set name.
|
||||
Returns reference to hash of iid to human set name.
|
||||
|
||||
Defaults to C<ifName>, but checks for an C<ifAlias>
|
||||
|
||||
@@ -547,8 +547,8 @@ Defaults to C<ifName>, but checks for an C<ifAlias>
|
||||
|
||||
Returns reference to hash of iid to current link duplex setting.
|
||||
|
||||
Maps $l3->el_index() to $l3->el_duplex, then culls out
|
||||
full,half, or auto and sets the map to that value.
|
||||
Maps $l3->el_index() to $l3->el_duplex, then culls out
|
||||
full,half, or auto and sets the map to that value.
|
||||
|
||||
See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods.
|
||||
|
||||
@@ -560,7 +560,7 @@ See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods.
|
||||
|
||||
=item $l3->at_index()
|
||||
|
||||
Returns reference to hash. Maps ARP table entries to Interface IIDs
|
||||
Returns reference to hash. Maps ARP table entries to Interface IIDs
|
||||
|
||||
(C<ipNetToMediaIfIndex>)
|
||||
|
||||
@@ -569,7 +569,7 @@ the deprecated C<atIfIndex>.
|
||||
|
||||
=item $l3->at_paddr()
|
||||
|
||||
Returns reference to hash. Maps ARP table entries to MAC addresses.
|
||||
Returns reference to hash. Maps ARP table entries to MAC addresses.
|
||||
|
||||
(C<ipNetToMediaPhysAddress>)
|
||||
|
||||
@@ -578,7 +578,7 @@ the deprecated C<atPhysAddress>.
|
||||
|
||||
=item $l3->at_netaddr()
|
||||
|
||||
Returns reference to hash. Maps ARP table entries to IP addresses.
|
||||
Returns reference to hash. Maps ARP table entries to IP addresses.
|
||||
|
||||
(C<ipNetToMediaNetAddress>)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -224,14 +224,14 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $aironet = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $aironet->class();
|
||||
@@ -257,7 +257,7 @@ This class is for devices running Cisco IOS software (newer)
|
||||
=back
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $aironet = new SNMP::Info::Layer3::Aironet(...);
|
||||
|
||||
@@ -280,7 +280,7 @@ after determining a more specific class using the method above.
|
||||
=back
|
||||
|
||||
These MIBs are now included in the v2.tar.gz archive available from
|
||||
ftp.cisco.com. Make sure you have a current version.
|
||||
ftp.cisco.com. Make sure you have a current version.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
@@ -296,7 +296,7 @@ C<awcEtherDuplex.0>
|
||||
|
||||
=item $aironet->mac()
|
||||
|
||||
Gives the MAC Address of the wireless side
|
||||
Gives the MAC Address of the wireless side
|
||||
|
||||
C<dot11StationID.2>
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -112,15 +112,13 @@ sub vendor {
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $alu = shift;
|
||||
my $alu = shift;
|
||||
|
||||
my $descr = $alu->description();
|
||||
if ( $descr =~ m/^(\S+)/ ) {
|
||||
return $1;
|
||||
}
|
||||
my $descr = $alu->description();
|
||||
return $1 if $descr =~ m/\b(\d[\.\d]+R\d+) (?:GA|Service Release), /;
|
||||
|
||||
# No clue what this will try but hey
|
||||
return $alu->SUPER::os_ver();
|
||||
# No clue what this will try but hey
|
||||
return $alu->SUPER::os_ver();
|
||||
}
|
||||
|
||||
# ps1_type, ps1_status, ps2_type, ps2_status:
|
||||
@@ -308,7 +306,7 @@ Bill Fenner
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $alu = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -316,7 +314,7 @@ Bill Fenner
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $alu->class();
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -163,14 +163,14 @@ sub ps1_status {
|
||||
my $alteon = shift;
|
||||
my $old_ps = $alteon->old_ps1_stat();
|
||||
my $new_ps = $alteon->new_ps_stat();
|
||||
|
||||
|
||||
return $old_ps if $old_ps;
|
||||
|
||||
|
||||
if ($new_ps) {
|
||||
return 'ok' if ($new_ps eq 'singlePowerSupplyOk');
|
||||
return 'failed' if ($new_ps eq 'firstPowerSupplyFailed');
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -178,9 +178,9 @@ sub ps2_status {
|
||||
my $alteon = shift;
|
||||
my $old_ps = $alteon->old_ps2_stat();
|
||||
my $new_ps = $alteon->new_ps_stat();
|
||||
|
||||
|
||||
return $old_ps if $old_ps;
|
||||
|
||||
|
||||
if ($new_ps) {
|
||||
return 'ok' if ($new_ps eq 'doublePowerSupplyOk');
|
||||
return 'failed' if ($new_ps eq 'secondPowerSupplyFailed');
|
||||
@@ -242,19 +242,19 @@ sub i_duplex {
|
||||
sub i_duplex_admin {
|
||||
my $alteon = shift;
|
||||
|
||||
my $ag_pref
|
||||
my $ag_pref
|
||||
= $alteon->new_ag_p_cfg_pref()
|
||||
|| $alteon->old_ag_p_cfg_pref()
|
||||
|| {};
|
||||
my $ag_fe_auto
|
||||
my $ag_fe_auto
|
||||
= $alteon->new_ag_p_cfg_fe_auto()
|
||||
|| $alteon->old_ag_p_cfg_fe_auto()
|
||||
|| {};
|
||||
my $ag_fe_mode
|
||||
my $ag_fe_mode
|
||||
= $alteon->new_ag_p_cfg_fe_mode()
|
||||
|| $alteon->old_ag_p_cfg_fe_mode()
|
||||
|| {};
|
||||
my $ag_ge_auto
|
||||
my $ag_ge_auto
|
||||
= $alteon->new_ag_p_cfg_ge_auto()
|
||||
|| $alteon->old_ag_p_cfg_ge_auto()
|
||||
|| {};
|
||||
@@ -395,7 +395,7 @@ sub i_vlan_membership_untagged {
|
||||
my $vlan = $vlans->{$port};
|
||||
push( @{ $i_vlan_membership->{$port} }, $vlan );
|
||||
}
|
||||
|
||||
|
||||
return $i_vlan_membership;
|
||||
}
|
||||
|
||||
@@ -432,14 +432,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $alteon = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $alteon->class();
|
||||
@@ -451,7 +451,7 @@ Abstraction subclass for Radware Alteon Series ADC switches and
|
||||
Nortel BladeCenter Layer2-3 GbE Switch Modules.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $alteon = new SNMP::Info::Layer3::AlteonAD(...);
|
||||
|
||||
@@ -581,7 +581,7 @@ IDs. These are the VLANs which are members of the egress list for the port.
|
||||
Example:
|
||||
my $interfaces = $alteon->interfaces();
|
||||
my $vlans = $alteon->i_vlan_membership();
|
||||
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $vlan = join(',', sort(@{$vlans->{$iid}}));
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
# Copyright (c) 2008 Jeroen van Ingen Schenau
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
@@ -37,16 +37,16 @@ use SNMP::Info::Layer3;
|
||||
@SNMP::Info::Layer3::Altiga::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::Altiga::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE
|
||||
$int_include_vpn $fake_idx $type_class/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
'ALTIGA-VERSION-STATS-MIB' => 'alVersionString',
|
||||
'ALTIGA-SESSION-STATS-MIB' => 'alActiveSessionCount',
|
||||
'ALTIGA-HARDWARE-STATS-MIB' => 'alHardwarePs1Type',
|
||||
'ALTIGA-HARDWARE-STATS-MIB' => 'alHardwarePs1Type',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
@@ -70,7 +70,7 @@ $VERSION = '3.61';
|
||||
'fan1_alarm' => 'alHardwareFan1RpmAlarm',
|
||||
'fan2_alarm' => 'alHardwareFan2RpmAlarm',
|
||||
'fan3_alarm' => 'alHardwareFan3RpmAlarm',
|
||||
|
||||
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -189,7 +189,7 @@ sub interfaces {
|
||||
if ($int_include_vpn) {
|
||||
my $tun_type = $altiga->vpn_sess_protocol();
|
||||
my $peer = $altiga->vpn_sess_peer_ip();
|
||||
my $remote = $altiga->vpn_sess_rem_ip();
|
||||
my $remote = $altiga->vpn_sess_rem_ip();
|
||||
my $group = $altiga->vpn_sess_gid();
|
||||
foreach my $tunnel (keys %$tun_type) {
|
||||
if ($type_class->{$tun_type->{$tunnel}} eq 1) {
|
||||
@@ -197,7 +197,7 @@ sub interfaces {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return \%interfaces;
|
||||
}
|
||||
|
||||
@@ -275,14 +275,14 @@ Jeroen van Ingen Schenau
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $altiga = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'my_vpn_host',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $altiga->class();
|
||||
@@ -366,7 +366,7 @@ to a hash.
|
||||
=item $altiga->interfaces()
|
||||
|
||||
This method overrides the interfaces() method inherited from SNMP::Info.
|
||||
It provides a mapping between the Interface Table Index (iid) and the physical
|
||||
It provides a mapping between the Interface Table Index (iid) and the physical
|
||||
port name, adding a port number to the port name to prevent duplicate names.
|
||||
|
||||
=item $altiga->i_lastchange()
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -146,7 +146,7 @@ Bill Fenner
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $arista = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -154,7 +154,7 @@ Bill Fenner
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $arista->class();
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -1403,7 +1403,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
@@ -1422,7 +1422,7 @@ end station MAC addresses collection and correlation to the thin access point
|
||||
the end station is using for communication.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $aruba = new SNMP::Info::Layer3::Aruba(...);
|
||||
|
||||
@@ -1466,7 +1466,7 @@ These are methods that return scalar value from SNMP
|
||||
|
||||
=item $aruba->model()
|
||||
|
||||
Returns model type. Cross references $aruba->id() with product IDs in the
|
||||
Returns model type. Cross references $aruba->id() with product IDs in the
|
||||
Aruba MIB.
|
||||
|
||||
=item $aruba->vendor()
|
||||
@@ -1540,7 +1540,7 @@ false.
|
||||
=item $aruba->i_ssidmac()
|
||||
|
||||
With the same keys as i_ssidlist, returns the Basic service set
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
identification (BSSID), MAC address, the AP is using for the SSID.
|
||||
|
||||
=item $aruba->cd11_mac()
|
||||
|
||||
@@ -1578,7 +1578,7 @@ Total packets transmitted by the wireless client.
|
||||
|
||||
=item $aruba->i_index()
|
||||
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
Returns reference to map of IIDs to Interface index.
|
||||
|
||||
Extends C<ifIndex> to support APs as device interfaces.
|
||||
|
||||
@@ -1614,7 +1614,7 @@ interfaces.
|
||||
=item $aruba->i_up_admin()
|
||||
|
||||
Returns reference to map of IIDs to administrative status of the interface.
|
||||
Returns C<ifAdminStatus> for Ethernet interfaces and C<wlanAPStatus>
|
||||
Returns C<ifAdminStatus> for Ethernet interfaces and C<wlanAPStatus>
|
||||
for AP interfaces.
|
||||
|
||||
=item $aruba->i_mac()
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Bridge;
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP
|
||||
%MODID_MAP %PROCID_MAP/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -1389,14 +1389,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $bayrs = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $bayrs->class();
|
||||
@@ -1404,10 +1404,10 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Abstraction subclass for routers running Avaya/Nortel BayRS.
|
||||
Abstraction subclass for routers running Avaya/Nortel BayRS.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $bayrs = new SNMP::Info::Layer3::BayRS(...);
|
||||
|
||||
@@ -1458,7 +1458,7 @@ These are methods that return scalar value from SNMP
|
||||
Returns the model of the BayRS router. Will translate between the MIB model
|
||||
and the common model with this map :
|
||||
|
||||
C<%MODEL_MAP = (
|
||||
C<%MODEL_MAP = (
|
||||
'acefn' => 'FN',
|
||||
'aceln' => 'LN',
|
||||
'acecn' => 'CN',
|
||||
@@ -1529,8 +1529,8 @@ passed but the entire table will be returned.
|
||||
Returns reference to the map between IID and physical Port.
|
||||
|
||||
The physical port name is stripped to letter and numbers to signify
|
||||
port type and slot port (S11) if the default platform naming was
|
||||
maintained. Otherwise the port is the interface description.
|
||||
port type and slot port (S11) if the default platform naming was
|
||||
maintained. Otherwise the port is the interface description.
|
||||
|
||||
=item $bayrs->i_name()
|
||||
|
||||
@@ -1540,7 +1540,7 @@ interfaces.
|
||||
=item $bayrs->i_duplex()
|
||||
|
||||
Returns reference to hash. Maps port operational duplexes to IIDs for
|
||||
Ethernet interfaces.
|
||||
Ethernet interfaces.
|
||||
|
||||
=item $bayrs->i_duplex_admin()
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
|
||||
@@ -154,12 +154,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer3
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
|
||||
|
||||
@@ -47,7 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
@@ -206,7 +206,7 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $c3550 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -214,7 +214,7 @@ Max Baker
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $c3550->class();
|
||||
@@ -222,14 +222,14 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Abstraction subclass for Cisco Catalyst 3550 Layer 2/3 Switches.
|
||||
Abstraction subclass for Cisco Catalyst 3550 Layer 2/3 Switches.
|
||||
|
||||
These devices run IOS but have some of the same characteristics as the
|
||||
Catalyst WS-C family (5xxx,6xxx). For example, forwarding tables are held in
|
||||
VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $c3550 = new SNMP::Info::Layer3::C3550(...);
|
||||
|
||||
@@ -327,7 +327,7 @@ Crosses $c3550->p_port() with $c3550->p_duplex() to utilize port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$c3550->interfaces()};
|
||||
$c3550->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$c3550->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port duplex. ",$c3550->error(1);
|
||||
|
||||
=back
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::MAU;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MAU::MIBS,
|
||||
@@ -111,7 +111,7 @@ Bill Fenner
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $c4000 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -119,7 +119,7 @@ Bill Fenner
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $c4000->class();
|
||||
@@ -127,10 +127,10 @@ Bill Fenner
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Abstraction subclass for Cisco Catalyst 4000 Layer 2/3 Switches.
|
||||
Abstraction subclass for Cisco Catalyst 4000 Layer 2/3 Switches.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $c4000 = new SNMP::Info::Layer3::C4000(...);
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
@@ -179,7 +179,7 @@ sub set_i_duplex_admin {
|
||||
|
||||
my $c6500 = shift;
|
||||
my ( $duplex, $iid ) = @_;
|
||||
|
||||
|
||||
if ( $c6500->is_virtual_switch() ) {
|
||||
|
||||
# VSS -> MAU
|
||||
@@ -252,7 +252,7 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $c6500 = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -260,7 +260,7 @@ Max Baker
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $c6500->class();
|
||||
@@ -268,14 +268,14 @@ Max Baker
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Abstraction subclass for Cisco Catalyst 6500 Layer 2/3 Switches.
|
||||
Abstraction subclass for Cisco Catalyst 6500 Layer 2/3 Switches.
|
||||
|
||||
These devices run IOS but have some of the same characteristics as the
|
||||
Catalyst WS-C family (5xxx). For example, forwarding tables are held in
|
||||
VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $c6500 = new SNMP::Info::Layer3::C6500(...);
|
||||
|
||||
@@ -382,7 +382,7 @@ Crosses $c6500->p_port() with $c6500->p_duplex() to utilize port C<ifIndex>.
|
||||
|
||||
Example:
|
||||
my %if_map = reverse %{$c6500->interfaces()};
|
||||
$c6500->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
$c6500->set_i_duplex_admin('auto', $if_map{'FastEthernet0/1'})
|
||||
or die "Couldn't change port duplex. ",$c6500->error(1);
|
||||
|
||||
=item $c6500->set_i_speed_admin(speed, ifIndex)
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -57,7 +57,7 @@ $VERSION = '3.61';
|
||||
%SNMP::Info::LLDP::GLOBALS,
|
||||
'netsnmp_vers' => 'versionTag',
|
||||
'hrSystemUptime' => 'hrSystemUptime',
|
||||
|
||||
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -109,7 +109,7 @@ sub os_ver {
|
||||
return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/);
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ );
|
||||
if ($vers) {
|
||||
@@ -184,14 +184,14 @@ Ambroise Rosset
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $ckp = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $ckp->class();
|
||||
|
||||
@@ -55,7 +55,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -189,7 +189,7 @@ Max Baker
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $cisco = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -197,7 +197,7 @@ Max Baker
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $cisco->class();
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
@@ -141,7 +141,7 @@ Brian De Wolf
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $fwsm = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -149,7 +149,7 @@ Brian De Wolf
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $fwsm->class();
|
||||
@@ -196,10 +196,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
@@ -50,7 +50,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::Cisco::MIBS,
|
||||
@@ -91,7 +91,7 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $switch = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
@@ -99,7 +99,7 @@ Eric Miller
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $switch->class();
|
||||
@@ -107,14 +107,14 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Base subclass for Cisco Layer 2/3 Switches.
|
||||
Base subclass for Cisco Layer 2/3 Switches.
|
||||
|
||||
These devices have switch specific characteristics beyond those in
|
||||
traditional routers covered by L<SNMP::Info::Layer3::Cisco>. For example,
|
||||
port security interface information from L<SNMP::Info::CiscoPortSecurity>.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $swich = new SNMP::Info::Layer3::CiscoSwitch(...);
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Entity;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS,
|
||||
@@ -171,14 +171,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $contivity = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $contivity->class();
|
||||
@@ -187,10 +187,10 @@ Eric Miller
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Abstraction subclass for Avaya/Nortel VPN Routers (formerly Contivity
|
||||
Extranet Switch).
|
||||
Extranet Switch).
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $contivity = new SNMP::Info::Layer3::Contivity(...);
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -115,7 +115,7 @@ sub uptime {
|
||||
}
|
||||
|
||||
# ifDescr is the same for all interfaces in a class, but the ifName is
|
||||
# unique, so let's use that for port name. If all else fails,
|
||||
# unique, so let's use that for port name. If all else fails,
|
||||
# concatentate ifDesc and ifIndex.
|
||||
# (code from SNMP/Info/Layer2/Netgear.pm)
|
||||
sub interfaces {
|
||||
@@ -179,14 +179,14 @@ Oliver Gorwits - based on Layer3::NetSNMP implementation
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $cumulus = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $cumulus->class();
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
# SNMP::Info::Layer3::DLink - SNMP Interface to DLink Devices
|
||||
#
|
||||
# Copyright (c) 2019 by The Netdisco Developer Team.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer3::DLink;
|
||||
|
||||
use strict;
|
||||
@@ -10,7 +38,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -19,7 +47,7 @@ $VERSION = '3.61';
|
||||
'SWPRIMGMT-DES3200-MIB' => 'dlink-des3200SeriesProd',
|
||||
'SWPRIMGMT-DES30XXP-MIB' => 'dlink-des30xxproductProd',
|
||||
'SWPRIMGMT-DES1228ME-MIB' => 'dlink-des1228MEproductProd',
|
||||
'SWDES3528-52PRIMGMT-MIB' => 'dlink-Des3500Series',
|
||||
'SWDES3528-52PRIMGMT-MIB' => 'dlink-Des3500Series',
|
||||
'DES-1210-28-AX' => 'des-1210-28ax',
|
||||
'DES-1210-10MEbx' => 'des-1210-10mebx',
|
||||
'DES-1210-26MEbx' => 'des-1210-26mebx',
|
||||
@@ -136,14 +164,14 @@ SNMP::Info::Layer3::DLink - SNMP Interface to DLink Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $dlink = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $dlink->class();
|
||||
@@ -151,7 +179,7 @@ SNMP::Info::Layer3::DLink - SNMP Interface to DLink Devices
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Vyatta Devices running dlink.
|
||||
Subclass for DLink devices.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -167,7 +167,7 @@ sub fan {
|
||||
|
||||
my $fan = $dell->dell_fan_desc() || {};
|
||||
my $state = $dell->dell_fan_state() || {};
|
||||
|
||||
|
||||
if (scalar keys %$fan) {
|
||||
my @messages = ();
|
||||
|
||||
@@ -200,8 +200,8 @@ sub ps2_type {
|
||||
my $dell = shift;
|
||||
|
||||
my $src = $dell->dell_pwr_src() || {};
|
||||
|
||||
my $i = 0;
|
||||
|
||||
my $i = 0;
|
||||
foreach my $k (sort keys %$src) {
|
||||
$i++;
|
||||
next unless $src->{$k} and $i == 2;
|
||||
@@ -226,8 +226,8 @@ sub ps2_status {
|
||||
my $dell = shift;
|
||||
|
||||
my $status = $dell->dell_pwr_state() || {};
|
||||
|
||||
my $i = 0;
|
||||
|
||||
my $i = 0;
|
||||
foreach my $k (sort keys %$status) {
|
||||
$i++;
|
||||
next unless $status->{$k} and $i == 2;
|
||||
@@ -330,14 +330,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $dell = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $dell->class();
|
||||
@@ -346,12 +346,12 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Dell Power Connect device through SNMP. D-Link and the IBM BladeCenter
|
||||
Gigabit Ethernet Switch Module also use this module based upon MIB support.
|
||||
Gigabit Ethernet Switch Module also use this module based upon MIB support.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $dell = new SNMP::Info::Layer3::Dell(...);
|
||||
|
||||
@@ -502,7 +502,7 @@ to a hash.
|
||||
=item $dell->interfaces()
|
||||
|
||||
Returns the map between SNMP Interface Identifier (iid) and physical port
|
||||
name. Uses name if available instead of description since descriptions are
|
||||
name. Uses name if available instead of description since descriptions are
|
||||
sometimes not unique.
|
||||
|
||||
=item $dell->i_duplex()
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.61';
|
||||
$VERSION = '3.65';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,
|
||||
@@ -207,7 +207,7 @@ sub lldp_if {
|
||||
my $addr = $lldp->lldp_rem_pid($partial) || {};
|
||||
my $i_descr = $lldp->ifName() || {};
|
||||
my %r_i_descr = reverse %$i_descr;
|
||||
|
||||
|
||||
my %lldp_if;
|
||||
foreach my $key ( keys %$addr ) {
|
||||
my @aOID = split( '\.', $key );
|
||||
@@ -221,7 +221,7 @@ sub lldp_if {
|
||||
if ( exists $r_i_descr{$desc} ) {
|
||||
$port = $r_i_descr{$desc};
|
||||
}
|
||||
|
||||
|
||||
$lldp_if{$key} = $port;
|
||||
}
|
||||
return \%lldp_if;
|
||||
@@ -261,14 +261,14 @@ Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $enterasys = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myswitch',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $enterasys->class();
|
||||
@@ -277,11 +277,11 @@ Eric Miller
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Enterasys device through SNMP.
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
Enterasys device through SNMP.
|
||||
|
||||
For speed or debugging purposes you can call the subclass directly, but not
|
||||
after determining a more specific class using the method above.
|
||||
after determining a more specific class using the method above.
|
||||
|
||||
my $enterasys = new SNMP::Info::Layer3::Enterasys(...);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user