Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7c93b7abd | ||
|
|
20b655c7a2 | ||
|
|
9fca5b1e42 | ||
|
|
1c581f8e8f | ||
|
|
8d35e15624 | ||
|
|
cf42fe1496 | ||
|
|
1af11bd088 | ||
|
|
073ec319e7 | ||
|
|
5852c3548b | ||
|
|
2344a1eacf | ||
|
|
d0887fbea7 | ||
|
|
e5ebda1b1e | ||
|
|
8d1681dbfc | ||
|
|
7221797826 | ||
|
|
f2fdbb077c | ||
|
|
a6fdb107b4 | ||
|
|
7f31038462 | ||
|
|
5fb7c78619 | ||
|
|
603345205a |
18
.perltidyrc
Normal file
18
.perltidyrc
Normal file
@@ -0,0 +1,18 @@
|
||||
# .perltidyrc - PBP perltidy configuration file for SNMP::Info
|
||||
# $Id$
|
||||
|
||||
-l=78 # Max line width is 78 cols
|
||||
-i=4 # Indent level is 4 cols
|
||||
-ci=4 # Continuation indent is 4 cols
|
||||
-nst # Output to STDOUT
|
||||
-se # Errors to STDERR
|
||||
-vt=2 # Maximal vertical tightness
|
||||
-cti=0 # No extra indentation for closing brackets
|
||||
-pt=1 # Medium parenthesis tightness
|
||||
-bt=1 # Medium brace tightness
|
||||
-sbt=1 # Medium square bracket tightness
|
||||
-bbt=1 # Medium block brace tightness
|
||||
-nsfs # No space before semicolons
|
||||
-nolq # Don't outdent long quoted strings
|
||||
-wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= && += -= /= |= >>= ||= .= %= ^= x=" # Break before all operators
|
||||
|
||||
@@ -12,7 +12,7 @@ before_install:
|
||||
- mkdir ~/netdisco-mibs
|
||||
- cd ~/netdisco-mibs
|
||||
install:
|
||||
- curl -sL https://github.com/netdisco/netdisco-mibs/releases/download/4.008/netdisco-mibs.tar.gz | tar --strip-components=1 -zxf -
|
||||
- curl -sL https://github.com/netdisco/netdisco-mibs/releases/download/4.010/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}'
|
||||
|
||||
57
Changes
57
Changes
@@ -1,3 +1,60 @@
|
||||
Version 3.59 (2018-05-01)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* #214 SNMP::Info Device models Genua, ATMedia, Liebert
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* Capture base MAC in L3::Huawei
|
||||
* Change _lldp_addr_index to a method so it can be properly overridden in
|
||||
subclasses
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* Capture fan ans power supply status in L3::Huawei when description is
|
||||
not available
|
||||
|
||||
Version 3.58 (2018-04-29)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* #202 Support for Aerohive access points
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #220 Alcatel-Lucent / Nokia SR 7750 missing port information. Add duplex,
|
||||
fan, and power supply status, as well as, module inventory to L3::Timetra
|
||||
* Add fan and power supply status to L3::Huawei
|
||||
* Override ifMTU with max frame size when applicable in L3::Huawei
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* Correct POE power module to port mapping in L3::Huawei
|
||||
|
||||
Version 3.57 (2018-04-26)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #145 Patch for Huawei (robwwd)
|
||||
* #228 Huawei aggregate link support
|
||||
* POE and duplex admin support added to L3::Huawei
|
||||
* Significant performance improvement validating AUTOLOAD methods
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* IEEE802dot3ad portlist is indexed with a dot1dBasePort, cross reference
|
||||
with dot1dBasePortIfIndex
|
||||
* Fix for macsuck in Cisco classes introduced in 3.55 caused by inheritance
|
||||
issue in CiscoStack
|
||||
|
||||
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
|
||||
|
||||
Version 3.55 (2018-04-19)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
10
MANIFEST
10
MANIFEST
@@ -1,3 +1,4 @@
|
||||
.perltidyrc
|
||||
Build.PL
|
||||
Changes
|
||||
contrib/DEVELOP
|
||||
@@ -41,9 +42,11 @@ lib/SNMP/Info/Layer1/S3000.pm
|
||||
lib/SNMP/Info/Layer2.pm
|
||||
lib/SNMP/Info/Layer2/3Com.pm
|
||||
lib/SNMP/Info/Layer2/Adtran.pm
|
||||
lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
lib/SNMP/Info/Layer2/Airespace.pm
|
||||
lib/SNMP/Info/Layer2/Aironet.pm
|
||||
lib/SNMP/Info/Layer2/Allied.pm
|
||||
lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
lib/SNMP/Info/Layer2/Baystack.pm
|
||||
lib/SNMP/Info/Layer2/C1900.pm
|
||||
lib/SNMP/Info/Layer2/C2900.pm
|
||||
@@ -93,6 +96,7 @@ lib/SNMP/Info/Layer3/F5.pm
|
||||
lib/SNMP/Info/Layer3/Force10.pm
|
||||
lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
lib/SNMP/Info/Layer3/Foundry.pm
|
||||
lib/SNMP/Info/Layer3/Genua.pm
|
||||
lib/SNMP/Info/Layer3/H3C.pm
|
||||
lib/SNMP/Info/Layer3/HP9300.pm
|
||||
lib/SNMP/Info/Layer3/Huawei.pm
|
||||
@@ -123,6 +127,7 @@ lib/SNMP/Info/Layer7/APC.pm
|
||||
lib/SNMP/Info/Layer7/Arbor.pm
|
||||
lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
lib/SNMP/Info/Layer7/Liebert.pm
|
||||
lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
lib/SNMP/Info/LLDP.pm
|
||||
@@ -163,7 +168,6 @@ xt/lib/Test/SNMP/Info/CiscoPortSecurity.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoPower.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoQOS.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoRTT.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoStack.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoStats.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoStpExtensions.pm
|
||||
xt/lib/Test/SNMP/Info/CiscoVTP.pm
|
||||
@@ -182,9 +186,11 @@ xt/lib/Test/SNMP/Info/Layer1/Cyclades.pm
|
||||
xt/lib/Test/SNMP/Info/Layer1/S3000.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/3Com.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Aerohive.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Airespace.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Aironet.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Allied.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Atmedia.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Baystack.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/C1900.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/C2900.pm
|
||||
@@ -234,6 +240,7 @@ xt/lib/Test/SNMP/Info/Layer3/F5.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Force10.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Fortinet.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Foundry.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Genua.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/H3C.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/HP9300.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Huawei.pm
|
||||
@@ -264,6 +271,7 @@ xt/lib/Test/SNMP/Info/Layer7/APC.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Arbor.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Gigamon.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Liebert.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Neoteris.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Netscaler.pm
|
||||
xt/lib/Test/SNMP/Info/LLDP.pm
|
||||
|
||||
266
META.json
266
META.json
@@ -49,499 +49,515 @@
|
||||
"provides" : {
|
||||
"SNMP::Info" : {
|
||||
"file" : "lib/SNMP/Info.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::AMAP" : {
|
||||
"file" : "lib/SNMP/Info/AMAP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::AdslLine" : {
|
||||
"file" : "lib/SNMP/Info/AdslLine.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Aggregate" : {
|
||||
"file" : "lib/SNMP/Info/Aggregate.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Airespace.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Bridge" : {
|
||||
"file" : "lib/SNMP/Info/Bridge.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CDP" : {
|
||||
"file" : "lib/SNMP/Info/CDP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoAgg" : {
|
||||
"file" : "lib/SNMP/Info/CiscoAgg.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoConfig" : {
|
||||
"file" : "lib/SNMP/Info/CiscoConfig.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoPortSecurity" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoPower" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPower.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoQOS" : {
|
||||
"file" : "lib/SNMP/Info/CiscoQOS.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoRTT" : {
|
||||
"file" : "lib/SNMP/Info/CiscoRTT.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoStack" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStack.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoStats" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStats.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoStpExtensions" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::CiscoVTP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoVTP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::EDP" : {
|
||||
"file" : "lib/SNMP/Info/EDP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Entity" : {
|
||||
"file" : "lib/SNMP/Info/Entity.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::EtherLike" : {
|
||||
"file" : "lib/SNMP/Info/EtherLike.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::FDP" : {
|
||||
"file" : "lib/SNMP/Info/FDP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot11" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot11.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot3ad" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::IPv6" : {
|
||||
"file" : "lib/SNMP/Info/IPv6.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::LLDP" : {
|
||||
"file" : "lib/SNMP/Info/LLDP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1" : {
|
||||
"file" : "lib/SNMP/Info/Layer1.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Allied.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1::Asante" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Asante.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1::Bayhub" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1::Cyclades" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer1::S3000" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/S3000.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2" : {
|
||||
"file" : "lib/SNMP/Info/Layer2.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::3Com" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/3Com.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Adtran" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Adtran.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aerohive" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aerohive.pm",
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Airespace.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aironet.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Allied.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Atmedia" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Atmedia.pm",
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Baystack" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Baystack.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::C1900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C1900.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::C2900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C2900.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Catalyst" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Centillion" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Centillion.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Cisco.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::CiscoSB" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP4000.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::HPVC" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HPVC.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Kentrox" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::N2270" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/N2270.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::NAP222x" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::NWSS2300" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Netgear" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Netgear.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Nexans" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Nexans.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Orinoco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Sixnet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Sixnet.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Trapeze" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::Ubiquiti" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer2::ZyXEL_DSLAM" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3" : {
|
||||
"file" : "lib/SNMP/Info/Layer3.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aironet.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlcatelLucent" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlteonAD" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Altiga" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Altiga.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Arista" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Arista.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aruba" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aruba.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::BayRS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BayRS.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::BlueCoatSG" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::C3550" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C3550.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::C4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C4000.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::C6500" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C6500.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::CheckPoint" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cisco.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoASA" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoFWSM" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoSwitch" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Contivity" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Contivity.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cumulus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cumulus.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::DLink" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/DLink.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Dell" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Dell.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::ERX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ERX.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Enterasys" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Extreme" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Extreme.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::F5" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/F5.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Force10" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Force10.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Fortinet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Foundry" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Foundry.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Genua" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Genua.pm",
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::H3C" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/H3C.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::HP9300" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/HP9300.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Huawei" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Huawei.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::IBMGbTor" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Juniper" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Juniper.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lantronix" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Microsoft" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Mikrotik" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::N1600" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/N1600.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::NetSNMP" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Netscreen" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Nexus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Nexus.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::OneAccess" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/OneAccess.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::PacketFront" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::PaloAlto" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Passport" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Passport.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pf" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pf.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pica8" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pica8.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::SonicWALL" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelhead" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Sun" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Sun.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Tasman" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Tasman.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::Timetra" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Timetra.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::VMware" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VMware.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer3::VyOS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VyOS.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7" : {
|
||||
"file" : "lib/SNMP/Info/Layer7.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::APC" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/APC.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::Arbor" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Arbor.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::CiscoIPS" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::Gigamon" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Gigamon.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::Liebert" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Liebert.pm",
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::Neoteris" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::Layer7::Netscaler" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::MAU" : {
|
||||
"file" : "lib/SNMP/Info/MAU.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::MRO" : {
|
||||
"file" : "lib/SNMP/Info/MRO.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::NortelStack" : {
|
||||
"file" : "lib/SNMP/Info/NortelStack.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::PowerEthernet" : {
|
||||
"file" : "lib/SNMP/Info/PowerEthernet.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::RapidCity" : {
|
||||
"file" : "lib/SNMP/Info/RapidCity.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
},
|
||||
"SNMP::Info::SONMP" : {
|
||||
"file" : "lib/SNMP/Info/SONMP.pm",
|
||||
"version" : "3.55"
|
||||
"version" : "3.59"
|
||||
}
|
||||
},
|
||||
"release_status" : "stable",
|
||||
@@ -559,6 +575,6 @@
|
||||
"x_IRC" : "irc://irc.freenode.org/#netdisco",
|
||||
"x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
|
||||
},
|
||||
"version" : "3.55",
|
||||
"version" : "3.59",
|
||||
"x_serialization_backend" : "JSON::PP version 2.97001"
|
||||
}
|
||||
|
||||
262
META.yml
262
META.yml
@@ -24,376 +24,388 @@ name: SNMP-Info
|
||||
provides:
|
||||
SNMP::Info:
|
||||
file: lib/SNMP/Info.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::AMAP:
|
||||
file: lib/SNMP/Info/AMAP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::AdslLine:
|
||||
file: lib/SNMP/Info/AdslLine.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Aggregate:
|
||||
file: lib/SNMP/Info/Aggregate.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Airespace:
|
||||
file: lib/SNMP/Info/Airespace.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Bridge:
|
||||
file: lib/SNMP/Info/Bridge.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CDP:
|
||||
file: lib/SNMP/Info/CDP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoAgg:
|
||||
file: lib/SNMP/Info/CiscoAgg.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoConfig:
|
||||
file: lib/SNMP/Info/CiscoConfig.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoPortSecurity:
|
||||
file: lib/SNMP/Info/CiscoPortSecurity.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoPower:
|
||||
file: lib/SNMP/Info/CiscoPower.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoQOS:
|
||||
file: lib/SNMP/Info/CiscoQOS.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoRTT:
|
||||
file: lib/SNMP/Info/CiscoRTT.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoStack:
|
||||
file: lib/SNMP/Info/CiscoStack.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoStats:
|
||||
file: lib/SNMP/Info/CiscoStats.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoStpExtensions:
|
||||
file: lib/SNMP/Info/CiscoStpExtensions.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::CiscoVTP:
|
||||
file: lib/SNMP/Info/CiscoVTP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::EDP:
|
||||
file: lib/SNMP/Info/EDP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Entity:
|
||||
file: lib/SNMP/Info/Entity.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::EtherLike:
|
||||
file: lib/SNMP/Info/EtherLike.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::FDP:
|
||||
file: lib/SNMP/Info/FDP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::IEEE802dot11:
|
||||
file: lib/SNMP/Info/IEEE802dot11.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::IEEE802dot3ad:
|
||||
file: lib/SNMP/Info/IEEE802dot3ad.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::IPv6:
|
||||
file: lib/SNMP/Info/IPv6.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::LLDP:
|
||||
file: lib/SNMP/Info/LLDP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1:
|
||||
file: lib/SNMP/Info/Layer1.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1::Allied:
|
||||
file: lib/SNMP/Info/Layer1/Allied.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1::Asante:
|
||||
file: lib/SNMP/Info/Layer1/Asante.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1::Bayhub:
|
||||
file: lib/SNMP/Info/Layer1/Bayhub.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1::Cyclades:
|
||||
file: lib/SNMP/Info/Layer1/Cyclades.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer1::S3000:
|
||||
file: lib/SNMP/Info/Layer1/S3000.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2:
|
||||
file: lib/SNMP/Info/Layer2.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::3Com:
|
||||
file: lib/SNMP/Info/Layer2/3Com.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Adtran:
|
||||
file: lib/SNMP/Info/Layer2/Adtran.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Aerohive:
|
||||
file: lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Airespace:
|
||||
file: lib/SNMP/Info/Layer2/Airespace.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Aironet:
|
||||
file: lib/SNMP/Info/Layer2/Aironet.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Allied:
|
||||
file: lib/SNMP/Info/Layer2/Allied.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Atmedia:
|
||||
file: lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Baystack:
|
||||
file: lib/SNMP/Info/Layer2/Baystack.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::C1900:
|
||||
file: lib/SNMP/Info/Layer2/C1900.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::C2900:
|
||||
file: lib/SNMP/Info/Layer2/C2900.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Catalyst:
|
||||
file: lib/SNMP/Info/Layer2/Catalyst.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Centillion:
|
||||
file: lib/SNMP/Info/Layer2/Centillion.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Cisco:
|
||||
file: lib/SNMP/Info/Layer2/Cisco.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::CiscoSB:
|
||||
file: lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::HP:
|
||||
file: lib/SNMP/Info/Layer2/HP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::HP4000:
|
||||
file: lib/SNMP/Info/Layer2/HP4000.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::HPVC:
|
||||
file: lib/SNMP/Info/Layer2/HPVC.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Kentrox:
|
||||
file: lib/SNMP/Info/Layer2/Kentrox.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::N2270:
|
||||
file: lib/SNMP/Info/Layer2/N2270.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::NAP222x:
|
||||
file: lib/SNMP/Info/Layer2/NAP222x.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::NWSS2300:
|
||||
file: lib/SNMP/Info/Layer2/NWSS2300.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Netgear:
|
||||
file: lib/SNMP/Info/Layer2/Netgear.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Nexans:
|
||||
file: lib/SNMP/Info/Layer2/Nexans.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Orinoco:
|
||||
file: lib/SNMP/Info/Layer2/Orinoco.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Sixnet:
|
||||
file: lib/SNMP/Info/Layer2/Sixnet.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Trapeze:
|
||||
file: lib/SNMP/Info/Layer2/Trapeze.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::Ubiquiti:
|
||||
file: lib/SNMP/Info/Layer2/Ubiquiti.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer2::ZyXEL_DSLAM:
|
||||
file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3:
|
||||
file: lib/SNMP/Info/Layer3.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Aironet:
|
||||
file: lib/SNMP/Info/Layer3/Aironet.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::AlcatelLucent:
|
||||
file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::AlteonAD:
|
||||
file: lib/SNMP/Info/Layer3/AlteonAD.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Altiga:
|
||||
file: lib/SNMP/Info/Layer3/Altiga.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Arista:
|
||||
file: lib/SNMP/Info/Layer3/Arista.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Aruba:
|
||||
file: lib/SNMP/Info/Layer3/Aruba.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::BayRS:
|
||||
file: lib/SNMP/Info/Layer3/BayRS.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::BlueCoatSG:
|
||||
file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::C3550:
|
||||
file: lib/SNMP/Info/Layer3/C3550.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::C4000:
|
||||
file: lib/SNMP/Info/Layer3/C4000.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::C6500:
|
||||
file: lib/SNMP/Info/Layer3/C6500.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::CheckPoint:
|
||||
file: lib/SNMP/Info/Layer3/CheckPoint.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Cisco:
|
||||
file: lib/SNMP/Info/Layer3/Cisco.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::CiscoASA:
|
||||
file: lib/SNMP/Info/Layer3/CiscoASA.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::CiscoFWSM:
|
||||
file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::CiscoSwitch:
|
||||
file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Contivity:
|
||||
file: lib/SNMP/Info/Layer3/Contivity.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Cumulus:
|
||||
file: lib/SNMP/Info/Layer3/Cumulus.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::DLink:
|
||||
file: lib/SNMP/Info/Layer3/DLink.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Dell:
|
||||
file: lib/SNMP/Info/Layer3/Dell.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::ERX:
|
||||
file: lib/SNMP/Info/Layer3/ERX.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Enterasys:
|
||||
file: lib/SNMP/Info/Layer3/Enterasys.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Extreme:
|
||||
file: lib/SNMP/Info/Layer3/Extreme.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::F5:
|
||||
file: lib/SNMP/Info/Layer3/F5.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Force10:
|
||||
file: lib/SNMP/Info/Layer3/Force10.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Fortinet:
|
||||
file: lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Foundry:
|
||||
file: lib/SNMP/Info/Layer3/Foundry.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Genua:
|
||||
file: lib/SNMP/Info/Layer3/Genua.pm
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::H3C:
|
||||
file: lib/SNMP/Info/Layer3/H3C.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::HP9300:
|
||||
file: lib/SNMP/Info/Layer3/HP9300.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Huawei:
|
||||
file: lib/SNMP/Info/Layer3/Huawei.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::IBMGbTor:
|
||||
file: lib/SNMP/Info/Layer3/IBMGbTor.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Juniper:
|
||||
file: lib/SNMP/Info/Layer3/Juniper.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Lantronix:
|
||||
file: lib/SNMP/Info/Layer3/Lantronix.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Microsoft:
|
||||
file: lib/SNMP/Info/Layer3/Microsoft.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Mikrotik:
|
||||
file: lib/SNMP/Info/Layer3/Mikrotik.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::N1600:
|
||||
file: lib/SNMP/Info/Layer3/N1600.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::NetSNMP:
|
||||
file: lib/SNMP/Info/Layer3/NetSNMP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Netscreen:
|
||||
file: lib/SNMP/Info/Layer3/Netscreen.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Nexus:
|
||||
file: lib/SNMP/Info/Layer3/Nexus.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::OneAccess:
|
||||
file: lib/SNMP/Info/Layer3/OneAccess.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::PacketFront:
|
||||
file: lib/SNMP/Info/Layer3/PacketFront.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::PaloAlto:
|
||||
file: lib/SNMP/Info/Layer3/PaloAlto.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Passport:
|
||||
file: lib/SNMP/Info/Layer3/Passport.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Pf:
|
||||
file: lib/SNMP/Info/Layer3/Pf.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Pica8:
|
||||
file: lib/SNMP/Info/Layer3/Pica8.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::SonicWALL:
|
||||
file: lib/SNMP/Info/Layer3/SonicWALL.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Steelhead:
|
||||
file: lib/SNMP/Info/Layer3/Steelhead.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Sun:
|
||||
file: lib/SNMP/Info/Layer3/Sun.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Tasman:
|
||||
file: lib/SNMP/Info/Layer3/Tasman.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::Timetra:
|
||||
file: lib/SNMP/Info/Layer3/Timetra.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::VMware:
|
||||
file: lib/SNMP/Info/Layer3/VMware.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer3::VyOS:
|
||||
file: lib/SNMP/Info/Layer3/VyOS.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7:
|
||||
file: lib/SNMP/Info/Layer7.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::APC:
|
||||
file: lib/SNMP/Info/Layer7/APC.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::Arbor:
|
||||
file: lib/SNMP/Info/Layer7/Arbor.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::CiscoIPS:
|
||||
file: lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::Gigamon:
|
||||
file: lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::Liebert:
|
||||
file: lib/SNMP/Info/Layer7/Liebert.pm
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::Neoteris:
|
||||
file: lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::Layer7::Netscaler:
|
||||
file: lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::MAU:
|
||||
file: lib/SNMP/Info/MAU.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::MRO:
|
||||
file: lib/SNMP/Info/MRO.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::NortelStack:
|
||||
file: lib/SNMP/Info/NortelStack.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::PowerEthernet:
|
||||
file: lib/SNMP/Info/PowerEthernet.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::RapidCity:
|
||||
file: lib/SNMP/Info/RapidCity.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
SNMP::Info::SONMP:
|
||||
file: lib/SNMP/Info/SONMP.pm
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
recommends:
|
||||
Class::ISA: '0'
|
||||
File::Slurp: '0'
|
||||
@@ -410,5 +422,5 @@ resources:
|
||||
homepage: http://netdisco.org/
|
||||
license: http://opensource.org/licenses/bsd-license.php
|
||||
repository: https://github.com/netdisco/snmp-info
|
||||
version: '3.55'
|
||||
version: '3.59'
|
||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
||||
|
||||
22
README
22
README
@@ -2,7 +2,7 @@ NAME
|
||||
SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
VERSION
|
||||
SNMP::Info - Version 3.55
|
||||
SNMP::Info - Version 3.59
|
||||
|
||||
AUTHOR
|
||||
SNMP::Info is maintained by team of Open Source authors headed by Eric
|
||||
@@ -413,6 +413,11 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Adtran for details.
|
||||
|
||||
SNMP::Info::Layer2::Aerohive
|
||||
Subclass for Aerohive Access Points.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Aerohive for details.
|
||||
|
||||
SNMP::Info::Layer2::Airespace
|
||||
Subclass for Cisco (Airespace) wireless controllers.
|
||||
|
||||
@@ -429,6 +434,11 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Allied for details.
|
||||
|
||||
SNMP::Info::Layer2::Atmedia
|
||||
Subclass for atmedia encryptors.
|
||||
|
||||
See documentation in SNMP::Info::Layer2::Atmedia for details.
|
||||
|
||||
SNMP::Info::Layer2::Baystack
|
||||
Subclass for Avaya/Nortel/Bay Ethernet Switch/Baystack switches.
|
||||
This includes 303, 304, 350, 380, 410, 420, 425, 450, 460, 470
|
||||
@@ -701,6 +711,11 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Foundry for details.
|
||||
|
||||
SNMP::Info::Layer3::Genua
|
||||
Subclass for Genua security devices.
|
||||
|
||||
See documentation in SNMP::Info::Layer3::Genua for details.
|
||||
|
||||
SNMP::Info::Layer3::H3C
|
||||
SNMP Interface to Layer 3 Devices, H3C & HP A-series.
|
||||
|
||||
@@ -856,6 +871,11 @@ SUBCLASSES
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Gigamon for details.
|
||||
|
||||
SNMP::Info::Layer7::Liebert
|
||||
Subclass for Liebert devices
|
||||
|
||||
See documentation in SNMP::Info::Layer7::Liebert for details.
|
||||
|
||||
SNMP::Info::Layer7::Netscaler
|
||||
Subclass for Citrix Netscaler appliances
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ use vars
|
||||
qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP
|
||||
$NOSUCH $BIGINT $REPEATERS/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -32,7 +32,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
SNMP::Info - Version 3.55
|
||||
SNMP::Info - Version 3.59
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -507,6 +507,12 @@ Subclass for Adtran devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Adtran> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Aerohive
|
||||
|
||||
Subclass for Aerohive Access Points.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Aerohive> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Airespace
|
||||
|
||||
Subclass for Cisco (Airespace) wireless controllers.
|
||||
@@ -526,6 +532,12 @@ Allied Telesis switches.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Allied> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Atmedia
|
||||
|
||||
Subclass for atmedia encryptors.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Atmedia> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Baystack
|
||||
|
||||
Subclass for Avaya/Nortel/Bay Ethernet Switch/Baystack switches. This
|
||||
@@ -840,6 +852,12 @@ Subclass for Brocade (Foundry) Network devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Foundry> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Genua
|
||||
|
||||
Subclass for Genua security devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Genua> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::H3C
|
||||
|
||||
SNMP Interface to Layer 3 Devices, H3C & HP A-series.
|
||||
@@ -1029,6 +1047,12 @@ Subclass for Gigamon devices
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Gigamon> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Liebert
|
||||
|
||||
Subclass for Liebert devices
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Liebert> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Netscaler
|
||||
|
||||
Subclass for Citrix Netscaler appliances
|
||||
@@ -1603,6 +1627,7 @@ sub device_type {
|
||||
3224 => 'SNMP::Info::Layer3::Netscreen',
|
||||
3375 => 'SNMP::Info::Layer3::F5',
|
||||
3417 => 'SNMP::Info::Layer3::BlueCoatSG',
|
||||
3717 => 'SNMP::Info::Layer3::Genua',
|
||||
4526 => 'SNMP::Info::Layer2::Netgear',
|
||||
4874 => 'SNMP::Info::Layer3::ERX',
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
@@ -1629,6 +1654,7 @@ sub device_type {
|
||||
35098 => 'SNMP::Info::Layer3::Pica8',
|
||||
41112 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
4413 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
30803 => 'SNMP::Info::Layer3::VyOS',
|
||||
40310 => 'SNMP::Info::Layer3::Cumulus',
|
||||
);
|
||||
@@ -1657,12 +1683,14 @@ sub device_type {
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
11898 => 'SNMP::Info::Layer2::Orinoco',
|
||||
13458 => 'SNMP::Info::Layer2::Atmedia',
|
||||
14179 => 'SNMP::Info::Layer2::Airespace',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
14823 => 'SNMP::Info::Layer3::Aruba',
|
||||
17163 => 'SNMP::Info::Layer3::Steelhead',
|
||||
20540 => 'SNMP::Info::Layer2::Sixnet',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
);
|
||||
|
||||
my %l1sysoidmap = (
|
||||
@@ -1672,6 +1700,7 @@ sub device_type {
|
||||
|
||||
my %l7sysoidmap = (
|
||||
318 => 'SNMP::Info::Layer7::APC',
|
||||
476 => 'SNMP::Info::Layer7::Liebert',
|
||||
5951 => 'SNMP::Info::Layer7::Netscaler',
|
||||
9694 => 'SNMP::Info::Layer7::Arbor',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
@@ -4285,7 +4314,10 @@ sub _load_attr {
|
||||
# the match to make sure we didn't leave the table during getnext
|
||||
# requests
|
||||
|
||||
my ($leaf) = $qual_leaf =~ /::(\w+)$/;
|
||||
my ($leaf) = $qual_leaf =~ /::(.+)$/;
|
||||
|
||||
# If we weren't able to translate, we'll only have an OID
|
||||
$leaf = $oid unless defined $leaf;
|
||||
|
||||
$self->debug()
|
||||
and print "SNMP::Info::_load_attr $method : $qual_leaf",
|
||||
@@ -4656,7 +4688,12 @@ sub _validate_autoload_method {
|
||||
}
|
||||
|
||||
# Validate that we have proper access for the operation
|
||||
my $access = $SNMP::MIB{$oid}{'access'} || '';
|
||||
my $access = '';
|
||||
|
||||
# Prevent autovivification by checking that MIB leaf exists
|
||||
if (exists $SNMP::MIB{$oid}) {
|
||||
$access = $SNMP::MIB{$oid}{'access'} || '';
|
||||
}
|
||||
|
||||
# If we were given a fully qualified OID because we don't have the MIB
|
||||
# file, it will translate above but we won't be able to check access so
|
||||
@@ -4671,16 +4708,26 @@ sub _validate_autoload_method {
|
||||
|
||||
}
|
||||
|
||||
# If the parent of the leaf has indexes it is contained within a table
|
||||
my $indexes = $SNMP::MIB{$oid}{'parent'}{'indexes'};
|
||||
my $table_leaf = 0;
|
||||
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.
|
||||
if ($funcs->{$attr}) {
|
||||
$table_leaf = 1;
|
||||
}
|
||||
elsif (!$globals->{$attr}) {
|
||||
|
||||
if ( !$globals->{$attr}
|
||||
&& ( ( defined $indexes && scalar( @{$indexes} ) > 0 )
|
||||
|| $funcs->{$attr} ))
|
||||
{
|
||||
$table_leaf = 1;
|
||||
}
|
||||
# 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;
|
||||
}
|
||||
}
|
||||
|
||||
# Tag on .0 for %GLOBALS and single instance MIB leafs unless
|
||||
# the leaf ends in a digit or we are going to use for a set operation
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS
|
||||
= ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', );
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# Load MIB for leafs referenced within class
|
||||
%MIBS = ('IF-MIB' => 'ifIndex',);
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info;
|
||||
use vars
|
||||
qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# Five data structures required by SNMP::Info
|
||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
|
||||
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' );
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
|
||||
|
||||
|
||||
@@ -32,14 +32,13 @@ package SNMP::Info::CiscoStack;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info;
|
||||
|
||||
@SNMP::Info::CiscoStack::ISA = qw/SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStack::ISA = qw/Exporter/;
|
||||
@SNMP::Info::CiscoStack::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'SNMPv2-MIB' => 'sysDescr',
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Aggregate;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Aggregate::MIBS,
|
||||
@@ -64,7 +64,8 @@ sub agg_ports_lag {
|
||||
my $dev = shift;
|
||||
|
||||
# TODO: implement partial
|
||||
my $ports = $dev->ad_lag_ports;
|
||||
my $ports = $dev->ad_lag_ports();
|
||||
my $index = $dev->bp_index() || {};
|
||||
|
||||
return {} unless ref {} eq ref $ports and scalar keys %$ports;
|
||||
|
||||
@@ -73,9 +74,18 @@ sub agg_ports_lag {
|
||||
my $idx = $m;
|
||||
my $portlist = $ports->{$m};
|
||||
next unless $portlist;
|
||||
|
||||
# While dot3adAggTable is indexed by ifIndex, the portlist is indexed
|
||||
# with a dot1dBasePort, so we need to use dot1dBasePortIfIndex to map to
|
||||
# the ifIndex. If we don't have dot1dBasePortIfIndex assume
|
||||
# dot1dBasePort = ifIndex
|
||||
for ( my $i = 0; $i <= scalar(@$portlist); $i++ ) {
|
||||
$ret->{$i+1} = $idx if ( @$portlist[$i] );
|
||||
}
|
||||
my $ifindex = $i+1;
|
||||
if ( exists($index->{$i+1}) and defined($index->{$i+1}) ) {
|
||||
$ifindex = $index->{$i+1};
|
||||
}
|
||||
$ret->{$ifindex} = $idx if ( @$portlist[$i] );
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
||||
@@ -44,7 +44,7 @@ use constant {
|
||||
IPV6MIB => 3,
|
||||
};
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
'LLDP-MIB' => 'lldpLocSysCapEnabled',
|
||||
@@ -165,7 +165,7 @@ sub lldp_ip {
|
||||
|
||||
my %lldp_ip;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 1;
|
||||
$lldp_ip{$index} = $addr;
|
||||
@@ -181,7 +181,7 @@ sub lldp_ipv6 {
|
||||
|
||||
my %lldp_ipv6;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 2;
|
||||
$lldp_ipv6{$index} = $addr;
|
||||
@@ -197,7 +197,7 @@ sub lldp_mac {
|
||||
|
||||
my %lldp_ipv6;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
next unless $proto == 6;
|
||||
$lldp_ipv6{$index} = $addr;
|
||||
@@ -213,7 +213,7 @@ sub lldp_addr {
|
||||
|
||||
my %lldp_ip;
|
||||
foreach my $key ( keys %$rman_addr ) {
|
||||
my ( $index, $proto, $addr ) = _lldp_addr_index($key);
|
||||
my ( $index, $proto, $addr ) = $lldp->_lldp_addr_index($key);
|
||||
next unless defined $index;
|
||||
$lldp_ip{$index} = $addr;
|
||||
}
|
||||
@@ -401,7 +401,9 @@ sub lldp_media_cap {
|
||||
# Break up the lldpRemManAddrTable INDEX into common index, protocol,
|
||||
# and address.
|
||||
sub _lldp_addr_index {
|
||||
my $lldp = shift;
|
||||
my $idx = shift;
|
||||
|
||||
my @oids = split( /\./, $idx );
|
||||
my $index = join( '.', splice( @oids, 0, 3 ) );
|
||||
my $proto = shift(@oids);
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer1::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -11,7 +11,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::LLDP::MIBS,
|
||||
|
||||
@@ -11,7 +11,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
472
lib/SNMP/Info/Layer2/Aerohive.pm
Normal file
472
lib/SNMP/Info/Layer2/Aerohive.pm
Normal file
@@ -0,0 +1,472 @@
|
||||
# SNMP::Info::Layer2::Aerohive
|
||||
#
|
||||
# Copyright (c) 2018 Eric Miller
|
||||
# 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::Aerohive;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Aerohive::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Aerohive::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
'AH-SYSTEM-MIB' => 'ahSystemSerial',
|
||||
'AH-INTERFACE-MIB' => 'ahSSIDName',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
# AH-SYSTEM-MIB
|
||||
'serial' => 'ahSystemSerial',
|
||||
'os_bin' => 'ahFirmwareVersion',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer2::FUNCS,
|
||||
|
||||
# AH-INTERFACE-MIB::ahRadioAttributeTable
|
||||
'i_80211channel' => 'ahRadioChannel',
|
||||
'dot11_cur_tx_pwr_mw' => 'ahRadioTxPower',
|
||||
|
||||
# AH-INTERFACE-MIB::ahXIfTable
|
||||
'ah_i_ssidlist' => 'ahSSIDName',
|
||||
|
||||
# AH-INTERFACE-MIB::ahAssociationTable
|
||||
'cd11_txrate' => 'ahClientLastTxRate',
|
||||
'cd11_uptime' => 'ahClientLinkUptime',
|
||||
'cd11_sigstrength' => 'ahClientRSSI',
|
||||
'cd11_rxpkt' => 'ahClientRxDataFrames',
|
||||
'cd11_txpkt' => 'ahClientTxDataFrames',
|
||||
'cd11_rxbyte' => 'ahClientRxDataOctets',
|
||||
'cd11_txbyte' => 'ahClientTxDataOctets',
|
||||
'cd11_ssid' => 'ahClientSSID',
|
||||
'ah_c_vlan' => 'ahClientVLAN',
|
||||
'ah_c_ip' => 'ahClientIP',
|
||||
);
|
||||
|
||||
%MUNGE
|
||||
= ( %SNMP::Info::Layer2::MUNGE, 'at_paddr' => \&SNMP::Info::munge_mac, );
|
||||
|
||||
sub layers {
|
||||
return '00000111';
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'aerohive';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'hiveos';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $aerohive = shift;
|
||||
my $descr = $aerohive->description();
|
||||
|
||||
if ( $descr =~ m/\bHiveOS\s(\d\.\w+)\b/ix ) {
|
||||
return $1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $aerohive = shift;
|
||||
my $descr = $aerohive->description();
|
||||
|
||||
if ( $descr =~ m/\bHive(AP\d+)\b/ix ) {
|
||||
return $1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub i_ssidlist {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $ssids = $aerohive->ah_i_ssidlist($partial) || {};
|
||||
|
||||
my %i_ssidlist;
|
||||
foreach my $iid ( keys %$ssids ) {
|
||||
my $ssid = $ssids->{$iid};
|
||||
next if $ssid =~ /N\/A/i;
|
||||
|
||||
$i_ssidlist{$iid} = $ssid;
|
||||
}
|
||||
return \%i_ssidlist;
|
||||
}
|
||||
|
||||
sub i_ssidmac {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $ssids = $aerohive->i_ssidlist($partial) || {};
|
||||
my $macs = $aerohive->i_mac($partial) || {};
|
||||
|
||||
my %i_ssidmac;
|
||||
foreach my $iid ( keys %$ssids ) {
|
||||
my $mac = $macs->{$iid};
|
||||
next unless $mac;
|
||||
|
||||
$i_ssidmac{$iid} = $mac;
|
||||
}
|
||||
return \%i_ssidmac;
|
||||
}
|
||||
|
||||
# Break up the ahAssociationEntry INDEX into ifIndex and MAC Address.
|
||||
sub _ah_association_index {
|
||||
my $idx = shift;
|
||||
my @values = split( /\./, $idx );
|
||||
my $ifindex = shift(@values);
|
||||
my $length = shift(@values);
|
||||
return ( $ifindex, join( ':', map { sprintf "%02x", $_ } @values ) );
|
||||
}
|
||||
|
||||
sub cd11_port {
|
||||
my $aerohive = shift;
|
||||
|
||||
my $cd11_txrate = $aerohive->cd11_txrate();
|
||||
my $interfaces = $aerohive->interfaces();
|
||||
|
||||
my %ret;
|
||||
foreach ( keys %$cd11_txrate ) {
|
||||
my ( $ifindex, $mac ) = _ah_association_index($_);
|
||||
$ret{$_} = $interfaces->{$ifindex};
|
||||
}
|
||||
return \%ret;
|
||||
}
|
||||
|
||||
sub cd11_mac {
|
||||
my $aerohive = shift;
|
||||
|
||||
my $cd11_txrate = $aerohive->cd11_txrate();
|
||||
|
||||
my %ret;
|
||||
foreach ( keys %$cd11_txrate ) {
|
||||
my ( $ifindex, $mac ) = _ah_association_index($_);
|
||||
$ret{$_} = $mac;
|
||||
}
|
||||
return \%ret;
|
||||
}
|
||||
|
||||
# Does not support the standard Bridge MIB
|
||||
sub bp_index {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $i_index = $aerohive->i_index($partial) || {};
|
||||
|
||||
my %bp_index;
|
||||
foreach my $iid ( keys %$i_index ) {
|
||||
my $index = $i_index->{$iid};
|
||||
next unless defined $index;
|
||||
|
||||
$bp_index{$index} = $iid;
|
||||
}
|
||||
|
||||
return \%bp_index;
|
||||
}
|
||||
|
||||
sub qb_fw_port {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $txrate = $aerohive->cd11_txrate($partial) || {};
|
||||
|
||||
my $qb_fw_port = {};
|
||||
foreach my $idx ( keys %$txrate ) {
|
||||
my ( $fdb_id, $mac ) = _ah_association_index($idx);
|
||||
$qb_fw_port->{$idx} = $fdb_id;
|
||||
}
|
||||
return $qb_fw_port;
|
||||
}
|
||||
|
||||
sub qb_fw_mac {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $txrate = $aerohive->cd11_txrate($partial) || {};
|
||||
|
||||
my $qb_fw_mac = {};
|
||||
foreach my $idx ( keys %$txrate ) {
|
||||
my ( $fdb_id, $mac ) = _ah_association_index($idx);
|
||||
$qb_fw_mac->{$idx} = $mac;
|
||||
}
|
||||
return $qb_fw_mac;
|
||||
}
|
||||
|
||||
sub qb_fw_vlan {
|
||||
my $aerohive = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $vlans = $aerohive->ah_c_vlan($partial) || {};
|
||||
|
||||
my $qb_fw_vlan = {};
|
||||
foreach my $idx ( keys %$vlans ) {
|
||||
my $vlan = $vlans->{$idx};
|
||||
next unless defined $vlan;
|
||||
$qb_fw_vlan->{$idx} = $vlan;
|
||||
}
|
||||
return $qb_fw_vlan;
|
||||
}
|
||||
|
||||
# arpnip:
|
||||
#
|
||||
# This is the AP snooping on the MAC->IP mappings.
|
||||
# Pretending this is arpnip data allows us to get MAC->IP
|
||||
# mappings even for stations that only communicate locally.
|
||||
|
||||
sub at_paddr {
|
||||
my $aerohive = shift;
|
||||
|
||||
my $txrate = $aerohive->cd11_txrate() || {};
|
||||
|
||||
my $at_paddr = {};
|
||||
foreach my $idx ( keys %$txrate ) {
|
||||
my ( $fdb_id, $mac ) = _ah_association_index($idx);
|
||||
$at_paddr->{$idx} = $mac;
|
||||
}
|
||||
return $at_paddr;
|
||||
}
|
||||
|
||||
sub at_netaddr {
|
||||
my $aerohive = shift;
|
||||
|
||||
my $ips = $aerohive->ah_c_ip() || {};
|
||||
|
||||
my $ret = {};
|
||||
foreach my $idx ( keys %$ips ) {
|
||||
next if ( $ips->{$idx} eq '0.0.0.0' );
|
||||
$ret->{$idx} = $ips->{$idx};
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Aerohive - SNMP Interface to Aerohive Access Points
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# 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();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to the configuration information obtainable from an
|
||||
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.
|
||||
|
||||
my $aerohive = new SNMP::Info::Layer2::Aerohive(...);
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
=item F<AH-SYSTEM-MIB>
|
||||
|
||||
=item F<AH-INTERFACE-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 $aerohive->vendor()
|
||||
|
||||
Returns 'aerohive'.
|
||||
|
||||
=item $aerohive->os()
|
||||
|
||||
Returns 'hive_os'.
|
||||
|
||||
=item $aerohive->os_ver()
|
||||
|
||||
Returns the OS versionl extracted from C<sysDescr>.
|
||||
|
||||
=item $aerohive->os_bin()
|
||||
|
||||
Returns the firmware version extracted from C<ahFirmwareVersion>.
|
||||
|
||||
=item $aerohive->model()
|
||||
|
||||
Returns the model extracted from C<sysDescr>.
|
||||
|
||||
=item $aerohive->serial()
|
||||
|
||||
Returns the serial number extracted from C<ahSystemSerial>.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $aerohive->layers()
|
||||
|
||||
Returns 00000111. Layer 2 and Layer 3 functionality through proprietary MIBs.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Global Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $aerohive->i_ssidlist()
|
||||
|
||||
Returns reference to hash. SSID's recognized by the radio interface.
|
||||
|
||||
=item $aerohive->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.
|
||||
|
||||
=item $aerohive->i_80211channel()
|
||||
|
||||
Returns reference to hash. Current operating frequency channel of the radio
|
||||
interface.
|
||||
|
||||
C<ahRadioChannel>
|
||||
|
||||
=item $aerohive->dot11_cur_tx_pwr_mw()
|
||||
|
||||
Returns reference to hash. Current transmit power, in milliwatts, of the
|
||||
radio interface.
|
||||
|
||||
C<ahRadioTxPower>
|
||||
|
||||
=item $aironet->cd11_port()
|
||||
|
||||
Returns radio interfaces.
|
||||
|
||||
=item $aironet->cd11_mac()
|
||||
|
||||
Returns client radio interface MAC addresses.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $aerohive->bp_index()
|
||||
|
||||
Simulates bridge MIB by returning reference to a hash mapping i_index() to
|
||||
the interface iid.
|
||||
|
||||
=item $aerohive->qb_fw_port()
|
||||
|
||||
Returns reference to hash of forwarding table entries port interface
|
||||
identifier (iid)
|
||||
|
||||
=item $aerohive->qb_fw_mac()
|
||||
|
||||
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
|
||||
|
||||
C<ahClientVLAN>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Arp Cache Table Augmentation
|
||||
|
||||
The AP has knowledge of MAC->IP mappings for wireless clients.
|
||||
Augmenting the arp cache data with these MAC->IP mappings enables visibility
|
||||
for stations that only communicate locally.
|
||||
|
||||
=over
|
||||
|
||||
=item $aerohive->at_paddr()
|
||||
|
||||
C<ahClientMac>
|
||||
|
||||
=item $aerohive->at_netaddr()
|
||||
|
||||
C<ahClientIP>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::IEEE802dot11;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::IEEE802dot11::GLOBALS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
|
||||
165
lib/SNMP/Info/Layer2/Atmedia.pm
Normal file
165
lib/SNMP/Info/Layer2/Atmedia.pm
Normal file
@@ -0,0 +1,165 @@
|
||||
# SNMP::Info::Layer2::Atmedia
|
||||
#
|
||||
# Copyright (c) 2018 Netdisco Developers
|
||||
# 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::Atmedia;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Atmedia::ISA = qw/SNMP::Info::Layer2/;
|
||||
@SNMP::Info::Layer2::Atmedia::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'os_ver' => '.1.3.6.1.4.1.13458.1.2.1.0',
|
||||
'atm_serial' => '.1.3.6.1.4.1.13458.1.1.2.0',
|
||||
'atm_hardversion' => '.1.3.6.1.4.1.13458.1.3.1.0',
|
||||
'atm_model' => '.1.3.6.1.4.1.13458.1.1.6.0',
|
||||
);
|
||||
|
||||
%FUNCS = (%SNMP::Info::Layer2::FUNCS);
|
||||
|
||||
%MUNGE = (%SNMP::Info::Layer2::MUNGE);
|
||||
|
||||
sub serial {
|
||||
my $atmedia = shift;
|
||||
|
||||
return $atmedia->atm_serial();
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'Atmedia-OS';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $atmedia = shift;
|
||||
|
||||
my $atmedia_model = $atmedia->atm_model();
|
||||
$atmedia_model =~ s/\<|\>//g;
|
||||
$atmedia_model =~ s/\//_/g;
|
||||
|
||||
return $atmedia_model;
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'atmedia';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Atmedia - SNMP Interface to atmedia encryptors
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# 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();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to information obtainable from a atmedia encryptor
|
||||
through SNMP. See inherited classes' documentation for inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=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
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $atmedia->vendor()
|
||||
|
||||
Returns 'atmedia'
|
||||
|
||||
=item $atmedia->os()
|
||||
|
||||
Returns 'Atmedia-OS'
|
||||
|
||||
=item $atmedia->os_ver()
|
||||
|
||||
(C<acSoftVersion>)
|
||||
|
||||
=item $atmedia->model()
|
||||
|
||||
(C<acDescr>)
|
||||
|
||||
=item $atmedia->serial()
|
||||
|
||||
(C<acSerialNumber>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::LLDP::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::Cisco::GLOBALS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::Cisco::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::SONMP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -50,7 +50,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -18,7 +18,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
@@ -53,7 +53,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE
|
||||
$int_include_vpn $fake_idx $type_class/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Bridge;
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP
|
||||
%MODID_MAP %PROCID_MAP/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -47,7 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::MAU;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MAU::MIBS,
|
||||
|
||||
@@ -51,7 +51,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -55,7 +55,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%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.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::Cisco::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Entity;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -10,7 +10,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%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.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::EDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
188
lib/SNMP/Info/Layer3/Genua.pm
Normal file
188
lib/SNMP/Info/Layer3/Genua.pm
Normal file
@@ -0,0 +1,188 @@
|
||||
# SNMP::Info::Layer3::Genua
|
||||
#
|
||||
# Copyright (c) 2018 Netdisco Developers
|
||||
#
|
||||
# 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::Genua;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Genua::ISA = qw/SNMP::Info::Layer3/;
|
||||
@SNMP::Info::Layer3::Genua::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer3::MIBS);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'genua_os' => '.1.3.6.1.4.1.3717.2.3.1.0',
|
||||
'genua_osver_rel' => '.1.3.6.1.4.1.3717.2.3.3.0',
|
||||
'genua_osver_patch' => '.1.3.6.1.4.1.3717.2.3.4.0',
|
||||
'genua_model' => '.1.3.6.1.4.1.3717.2.3.5.0',
|
||||
'genua_serial' => '.1.3.6.1.4.1.3717.2.3.6.0',
|
||||
);
|
||||
|
||||
%FUNCS = (%SNMP::Info::Layer3::FUNCS);
|
||||
|
||||
%MUNGE = (%SNMP::Info::Layer3::MUNGE);
|
||||
|
||||
sub serial {
|
||||
my $genua = shift;
|
||||
|
||||
return $genua->genua_serial();
|
||||
}
|
||||
|
||||
sub os {
|
||||
my $genua = shift;
|
||||
|
||||
return $genua->genua_os();
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $genua = shift;
|
||||
|
||||
my $genua_osver_rel = $genua->genua_osver_rel();
|
||||
my $genua_osver_patch = $genua->genua_osver_patch();
|
||||
|
||||
my $genua_osver;
|
||||
|
||||
if ( defined $genua_osver_rel and defined $genua_osver_patch ) {
|
||||
return $genua_osver_rel . "_PL_" . $genua_osver_patch;
|
||||
}
|
||||
return $genua_osver;
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $genua = shift;
|
||||
|
||||
my $genua_model = $genua->genua_model();
|
||||
|
||||
if ( $genua_model =~ m/GeNUA.+(GS.+?)\s/i ) {
|
||||
$genua_model = $1;
|
||||
}
|
||||
elsif ( $genua_model =~ m/genua\s+(.+?)\s+/i ) {
|
||||
$genua_model = $1;
|
||||
}
|
||||
else {
|
||||
$genua_model = 'unknown';
|
||||
}
|
||||
return $genua_model;
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'genua';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Genua - SNMP Interface to Genua security devices
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $genua = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $genua->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to information obtainable from a Genua security device
|
||||
through SNMP. See inherited classes' documentation for inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $genua->vendor()
|
||||
|
||||
Returns 'genua'
|
||||
|
||||
=item $genua->os()
|
||||
|
||||
(C<infoSoftwareversion>)
|
||||
|
||||
=item $genua->os_ver()
|
||||
|
||||
(C<infoRelease>) and (C<infoPatchlevel>)
|
||||
|
||||
=item $genua->model()
|
||||
|
||||
(C<infoHardwareversion>)
|
||||
|
||||
=item $genua->serial()
|
||||
|
||||
(C<infoSerialnumber>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer3
|
||||
|
||||
See L<SNMP::Info::Layer3/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer3
|
||||
|
||||
See L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
@@ -47,7 +47,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SNMP::Info::Layer3::Huawei
|
||||
#
|
||||
# Copyright (c) 2018 Jeroen van Ingen
|
||||
# Copyright (c) 2018 Jeroen van Ingen and Eric Miller
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@@ -32,45 +32,82 @@ package SNMP::Info::Layer3::Huawei;
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
use SNMP::Info::LLDP;
|
||||
use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
use SNMP::Info::IEEE802dot3ad;
|
||||
|
||||
@SNMP::Info::Layer3::Huawei::ISA = qw/
|
||||
SNMP::Info::IEEE802dot3ad
|
||||
SNMP::Info::LLDP
|
||||
SNMP::Info::Layer3
|
||||
Exporter
|
||||
/;
|
||||
@SNMP::Info::Layer3::Huawei::EXPORT_OK = qw/
|
||||
agg_ports
|
||||
/;
|
||||
SNMP::Info::IEEE802dot3ad
|
||||
SNMP::Info::Layer3
|
||||
Exporter
|
||||
/;
|
||||
@SNMP::Info::Layer3::Huawei::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
%SNMP::Info::LLDP::MIBS,
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
'HUAWEI-MIB' => 'quidway',
|
||||
'HUAWEI-MIB' => 'quidway',
|
||||
'HUAWEI-PORT-MIB' => 'hwEthernetDuplex',
|
||||
'HUAWEI-IF-EXT-MIB' => 'hwTrunkIfIndex',
|
||||
'HUAWEI-L2IF-MIB' => 'hwL2IfPortIfIndex',
|
||||
'HUAWEI-POE-MIB' => 'hwPoePower',
|
||||
'HUAWEI-ENTITY-EXTENT-MIB' => 'hwEntityFanState',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
%SNMP::Info::LLDP::GLOBALS,
|
||||
);
|
||||
%GLOBALS = ( %SNMP::Info::Layer3::GLOBALS, );
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS,
|
||||
%SNMP::Info::IEEE802dot3ad::FUNCS,
|
||||
|
||||
# HUAWEI-PORT-MIB::hwEthernetTable
|
||||
'hw_eth_speed_admin' => 'hwEthernetSpeedSet',
|
||||
'hw_eth_duplex' => 'hwEthernetDuplex',
|
||||
'hw_eth_auto' => 'hwEthernetNegotiation',
|
||||
'hw_eth_frame_len' => 'hwEthernetJumboframeMaxLength',
|
||||
|
||||
# HUAWEI-PORT-MIB::hwPhysicalPortTable
|
||||
'hw_phy_port_slot' => 'hwPhysicalPortInSlot',
|
||||
|
||||
# HUAWEI-IF-EXT-MIB::hwTrunkIfTable
|
||||
'hw_trunk_if_idx' => 'hwTrunkIfIndex',
|
||||
'hw_trunk_entry' => 'hwTrunkValidEntry',
|
||||
|
||||
# HUAWEI-L2IF-MIB::hwL2IfTable
|
||||
'hw_l2if_port_idx' => 'hwL2IfPortIfIndex',
|
||||
|
||||
# HUAWEI-POE-MIB::hwPoePortTable
|
||||
'hw_peth_port_admin' => 'hwPoePortEnable',
|
||||
'hw_peth_port_status' => 'hwPoePortPowerStatus',
|
||||
'hw_peth_port_class' => 'hwPoePortPdClass',
|
||||
'hw_peth_port_power' => 'hwPoePortConsumingPower',
|
||||
|
||||
# HUAWEI-POE-MIB::hwPoeSlotTable
|
||||
'peth_power_watts' => 'hwPoeSlotMaximumPower',
|
||||
'peth_power_consumption' => 'hwPoeSlotConsumingPower',
|
||||
'peth_power_threshold' => 'hwPoeSlotPowerUtilizationThreshold',
|
||||
|
||||
# HUAWEI-ENTITY-EXTENT-MIB::hwFanStatusTable
|
||||
'hw_fan_state' => 'hwEntityFanState',
|
||||
'hw_fan_descr' => 'hwEntityFanDesc',
|
||||
|
||||
# HUAWEI-ENTITY-EXTENT-MIB::hwPwrStatusTable
|
||||
'hw_pwr_state' => 'hwEntityPwrState',
|
||||
'hw_pwr_descr' => 'hwEntityPwrDesc',
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
%SNMP::Info::Layer3::MUNGE,
|
||||
%SNMP::Info::LLDP::MUNGE,
|
||||
%SNMP::Info::IEEE802dot3ad::MUNGE,
|
||||
'hw_peth_port_admin' => \&SNMP::Info::Layer3::Huawei::munge_hw_peth_admin,
|
||||
'peth_power_watts' => \&SNMP::Info::Layer3::Huawei::munge_hw_peth_power,
|
||||
'peth_power_consumption' =>
|
||||
\&SNMP::Info::Layer3::Huawei::munge_hw_peth_power,
|
||||
'hw_peth_port_status' =>
|
||||
\&SNMP::Info::Layer3::Huawei::munge_hw_peth_status,
|
||||
'hw_peth_port_class' => \&SNMP::Info::Layer3::Huawei::munge_hw_peth_class,
|
||||
);
|
||||
|
||||
sub vendor {
|
||||
@@ -81,49 +118,396 @@ sub os {
|
||||
my $huawei = shift;
|
||||
my $descr = $huawei->description();
|
||||
|
||||
return $1 if ( $descr =~ /\b(VRP)\b/ );
|
||||
if ( $descr =~ /\b(VRP)\b/ ) {
|
||||
return $1;
|
||||
}
|
||||
return "huawei";
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $huawei = shift;
|
||||
|
||||
my $entity_os = $huawei->entity_derived_os_ver();
|
||||
if ( defined $entity_os and $entity_os !~ /^\s*$/ ) {
|
||||
return $entity_os;
|
||||
}
|
||||
|
||||
my $descr = $huawei->description();
|
||||
my $os_ver = undef;
|
||||
|
||||
$os_ver = "$1" if ( $descr =~ /\bVersion ([0-9.]+)/i );
|
||||
if ($descr =~ /Version\s # Start match on Version string
|
||||
([\d\.]+) # Capture the primary version in 1
|
||||
,? # There may be a comma
|
||||
\s # Always a space
|
||||
(?:Release|Feature)? # Don't capture stanza if present
|
||||
(?:\(\w+)? # If paren & model don't capture
|
||||
\s # Always a space
|
||||
(\w+) # If 2nd part of version capture in 2
|
||||
/xi
|
||||
)
|
||||
{
|
||||
$os_ver = $2 ? "$1 $2" : $1;
|
||||
}
|
||||
|
||||
return $os_ver;
|
||||
}
|
||||
|
||||
sub mac {
|
||||
my $huawei = shift;
|
||||
|
||||
return $huawei->b_mac();
|
||||
}
|
||||
|
||||
sub i_ignore {
|
||||
my $l3 = shift;
|
||||
my $huawei = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $interfaces = $l3->interfaces($partial) || {};
|
||||
my $interfaces = $huawei->interfaces($partial) || {};
|
||||
|
||||
my %i_ignore;
|
||||
foreach my $if ( keys %$interfaces ) {
|
||||
|
||||
# lo0 etc
|
||||
if ( $interfaces->{$if} =~ /\b(inloopback|console)\d*\b/i ) {
|
||||
if ( $interfaces->{$if} =~ /\b(inloopback|console)\d*\b/ix ) {
|
||||
$i_ignore{$if}++;
|
||||
}
|
||||
}
|
||||
return \%i_ignore;
|
||||
}
|
||||
|
||||
sub agg_ports { return agg_ports_lag(@_) }
|
||||
sub bp_index {
|
||||
my $huawei = shift;
|
||||
|
||||
my $hw_index = $huawei->hw_l2if_port_idx();
|
||||
return $hw_index
|
||||
if ( ref {} eq ref $hw_index and scalar keys %$hw_index );
|
||||
|
||||
return $huawei->SUPER::bp_index();
|
||||
}
|
||||
|
||||
sub i_duplex {
|
||||
my $huawei = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $hw_duplex = $huawei->hw_eth_duplex($partial);
|
||||
return $hw_duplex
|
||||
if ( ref {} eq ref $hw_duplex and scalar keys %$hw_duplex );
|
||||
|
||||
return $huawei->SUPER::i_duplex($partial);
|
||||
}
|
||||
|
||||
sub i_duplex_admin {
|
||||
my $huawei = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $hw_duplex_admin = $huawei->hw_eth_duplex($partial) || {};
|
||||
my $hw_auto = $huawei->hw_eth_auto($partial) || {};
|
||||
|
||||
my %i_duplex_admin;
|
||||
foreach my $if ( keys %$hw_duplex_admin ) {
|
||||
my $duplex = $hw_duplex_admin->{$if};
|
||||
next unless defined $duplex;
|
||||
my $auto = $hw_auto->{$if} || 'disabled';
|
||||
|
||||
my $string = 'other';
|
||||
$string = 'half' if ( $duplex =~ /half/i and $auto =~ /disabled/i );
|
||||
$string = 'full' if ( $duplex =~ /full/i and $auto =~ /disabled/i );
|
||||
$string = 'auto' if $auto =~ /enabled/i;
|
||||
|
||||
$i_duplex_admin{$if} = $string;
|
||||
}
|
||||
return \%i_duplex_admin;
|
||||
}
|
||||
|
||||
sub agg_ports {
|
||||
my $huawei = shift;
|
||||
|
||||
# First use proprietary MIB for broader implementation across
|
||||
# devices type / os and no xref of hwL2IfPortIfIndex
|
||||
my $masters = $huawei->hw_trunk_if_idx();
|
||||
my $slaves = $huawei->hw_trunk_entry();
|
||||
|
||||
my $ret = {};
|
||||
|
||||
if ( ref {} eq ref $masters
|
||||
and scalar keys %$masters
|
||||
and ref {} eq ref $slaves
|
||||
and scalar keys %$slaves )
|
||||
{
|
||||
foreach my $s ( keys %$slaves ) {
|
||||
next if $slaves->{$s} ne 'valid';
|
||||
my ( $trunk, $sl_idx ) = split( /\./, $s );
|
||||
foreach my $m ( keys %$masters ) {
|
||||
next unless $m == $trunk;
|
||||
next unless defined $masters->{$m};
|
||||
$ret->{$sl_idx} = $masters->{$m};
|
||||
last;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
# If for some reason we don't get the info, try IEEE8023-LAG-MIB
|
||||
return $huawei->agg_ports_lag();
|
||||
}
|
||||
|
||||
# The standard IEEE 802.af POWER-ETHERNET-MIB has an index of module.port
|
||||
# The HUAWEI-POE-MIB only indexes by ifIndex, we need to match the standard
|
||||
# for so method calls across classes work the same
|
||||
#
|
||||
sub peth_port_ifindex {
|
||||
my $huawei = shift;
|
||||
|
||||
my $peth_port_status = $huawei->hw_peth_port_status() || {};
|
||||
my $peth_port_slot = $huawei->hw_phy_port_slot() || {};
|
||||
my $i_descr = $huawei->i_description() || {};
|
||||
|
||||
my $peth_port_ifindex = {};
|
||||
|
||||
foreach my $i ( keys %$peth_port_status ) {
|
||||
my $slot = 0;
|
||||
if ( exists $peth_port_slot->{$i}
|
||||
&& defined $peth_port_slot->{$i} )
|
||||
{
|
||||
$slot = $peth_port_slot->{$i};
|
||||
}
|
||||
elsif ( exists $i_descr->{$i}
|
||||
&& $i_descr->{$i} =~ /(\d+)(?:\/\d+){2,3}$/x )
|
||||
{
|
||||
$slot = $1;
|
||||
}
|
||||
$peth_port_ifindex->{"$slot.$i"} = $i;
|
||||
}
|
||||
return $peth_port_ifindex;
|
||||
}
|
||||
|
||||
sub peth_port_admin {
|
||||
my $huawei = shift;
|
||||
|
||||
my $port_admin = $huawei->hw_peth_port_admin() || {};
|
||||
my $port_ifindex = $huawei->peth_port_ifindex() || {};
|
||||
|
||||
my $peth_port_admin = {};
|
||||
|
||||
foreach my $idx ( keys %$port_ifindex ) {
|
||||
my $ifindex = $port_ifindex->{$idx};
|
||||
my $admin = $port_admin->{$ifindex};
|
||||
next unless $admin;
|
||||
|
||||
$peth_port_admin->{$idx} = $admin;
|
||||
}
|
||||
return $peth_port_admin;
|
||||
}
|
||||
|
||||
sub peth_port_status {
|
||||
my $huawei = shift;
|
||||
|
||||
my $port_status = $huawei->hw_peth_port_status() || {};
|
||||
my $port_ifindex = $huawei->peth_port_ifindex() || {};
|
||||
|
||||
my $peth_port_status = {};
|
||||
|
||||
foreach my $idx ( keys %$port_ifindex ) {
|
||||
my $ifindex = $port_ifindex->{$idx};
|
||||
my $status = $port_status->{$ifindex};
|
||||
next unless $status;
|
||||
|
||||
$peth_port_status->{$idx} = $status;
|
||||
}
|
||||
return $peth_port_status;
|
||||
}
|
||||
|
||||
sub peth_port_class {
|
||||
my $huawei = shift;
|
||||
|
||||
my $port_class = $huawei->hw_peth_port_class() || {};
|
||||
my $port_ifindex = $huawei->peth_port_ifindex() || {};
|
||||
|
||||
my $peth_port_class = {};
|
||||
|
||||
foreach my $idx ( keys %$port_ifindex ) {
|
||||
my $ifindex = $port_ifindex->{$idx};
|
||||
my $class = $port_class->{$ifindex};
|
||||
next unless $class;
|
||||
|
||||
$peth_port_class->{$idx} = $class;
|
||||
}
|
||||
return $peth_port_class;
|
||||
}
|
||||
|
||||
sub peth_port_power {
|
||||
my $huawei = shift;
|
||||
|
||||
my $port_power = $huawei->hw_peth_port_power() || {};
|
||||
my $port_ifindex = $huawei->peth_port_ifindex() || {};
|
||||
|
||||
my $peth_port_power = {};
|
||||
|
||||
foreach my $idx ( keys %$port_ifindex ) {
|
||||
my $ifindex = $port_ifindex->{$idx};
|
||||
my $power = $port_power->{$ifindex};
|
||||
next unless defined $power;
|
||||
|
||||
$peth_port_power->{$idx} = $power;
|
||||
}
|
||||
return $peth_port_power;
|
||||
}
|
||||
|
||||
sub peth_port_neg_power {
|
||||
my $huawei = shift;
|
||||
|
||||
my $peth_port_status = $huawei->peth_port_status() || {};
|
||||
my $peth_port_class = $huawei->peth_port_class() || {};
|
||||
my $port_ifindex = $huawei->peth_port_ifindex() || {};
|
||||
|
||||
my $huaweimax = {
|
||||
'class0' => 12950,
|
||||
'class1' => 3840,
|
||||
'class2' => 6490,
|
||||
'class3' => 12950,
|
||||
'class4' => 25500
|
||||
};
|
||||
|
||||
my $peth_port_neg_power = {};
|
||||
|
||||
foreach my $idx ( keys %$port_ifindex ) {
|
||||
if ( $peth_port_status->{$idx} eq 'deliveringPower' ) {
|
||||
$peth_port_neg_power->{$idx}
|
||||
= $huaweimax->{ $peth_port_class->{$idx} };
|
||||
}
|
||||
}
|
||||
return $peth_port_neg_power;
|
||||
}
|
||||
|
||||
sub fan {
|
||||
my $huawei = shift;
|
||||
|
||||
my $fan = $huawei->hw_fan_descr() || {};
|
||||
my $state = $huawei->hw_fan_state() || {};
|
||||
|
||||
if ( scalar keys %$state ) {
|
||||
my @messages = ();
|
||||
|
||||
foreach my $k ( keys %$state ) {
|
||||
next if $state->{$k} and $state->{$k} eq 'normal';
|
||||
my ($slot, $num) = split(/\./, $k);
|
||||
my $descr = "Slot $slot,Fan $num";
|
||||
$descr = $fan->{$k} if ($fan->{$k});
|
||||
|
||||
push @messages, "$descr: $state->{$k}";
|
||||
}
|
||||
|
||||
push @messages, ( ( scalar keys %$state ) . " fans OK" )
|
||||
if scalar @messages == 0;
|
||||
|
||||
return ( join ", ", @messages );
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub ps1_status {
|
||||
my $huawei = shift;
|
||||
|
||||
my $pwr_state = $huawei->hw_pwr_state() || {};
|
||||
my $pwr_descr = $huawei->hw_pwr_descr() || {};
|
||||
|
||||
my $ret = "";
|
||||
my $s = "";
|
||||
foreach my $i ( sort keys %$pwr_state ) {
|
||||
my ( $slot, $num ) = split( /\./, $i );
|
||||
next unless $num == 1;
|
||||
my $descr = "Slot $slot,PS $num";
|
||||
$descr = $pwr_descr->{$i} if ($pwr_descr->{$i});
|
||||
|
||||
$ret .= $s . $descr . ": " . $pwr_state->{$i};
|
||||
$s = ", ";
|
||||
}
|
||||
return if ( $s eq "" );
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub ps2_status {
|
||||
my $huawei = shift;
|
||||
|
||||
my $pwr_state = $huawei->hw_pwr_state() || {};
|
||||
my $pwr_descr = $huawei->hw_pwr_descr() || {};
|
||||
|
||||
my $ret = "";
|
||||
my $s = "";
|
||||
foreach my $i ( sort keys %$pwr_state ) {
|
||||
my ( $slot, $num ) = split( /\./, $i );
|
||||
next unless $num == 2;
|
||||
my $descr = "Slot $slot,PS $num";
|
||||
$descr = $pwr_descr->{$i} if ($pwr_descr->{$i});
|
||||
|
||||
$ret .= $s . $descr . ": " . $pwr_state->{$i};
|
||||
$s = ", ";
|
||||
}
|
||||
return if ( $s eq "" );
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub i_mtu {
|
||||
my $huawei = shift;
|
||||
|
||||
my $mtus = $huawei->SUPER::i_mtu() || {};
|
||||
my $frames = $huawei->hw_eth_frame_len() || {};
|
||||
|
||||
foreach my $idx ( keys %$mtus ) {
|
||||
my $frame_sz = $frames->{$idx};
|
||||
next unless $frame_sz;
|
||||
|
||||
$mtus->{$idx} = $frame_sz;
|
||||
}
|
||||
return $mtus;
|
||||
}
|
||||
|
||||
sub munge_hw_peth_admin {
|
||||
my $admin = shift;
|
||||
|
||||
$admin =~ s/enabled/true/;
|
||||
$admin =~ s/disabled/false/;
|
||||
return $admin;
|
||||
}
|
||||
|
||||
sub munge_hw_peth_power {
|
||||
my $pwr = shift;
|
||||
|
||||
$pwr = $pwr / 1000;
|
||||
return sprintf( "%.0f", $pwr );
|
||||
}
|
||||
|
||||
sub munge_hw_peth_class {
|
||||
my $pwr = shift;
|
||||
|
||||
return "class$pwr";
|
||||
}
|
||||
|
||||
# The values are from the MIB reference guide
|
||||
sub munge_hw_peth_status {
|
||||
my $pwr = shift;
|
||||
|
||||
# The status is an octet string rather than enum
|
||||
# so use regex rather than hash lookup
|
||||
$pwr = 'disabled' if $pwr =~ /Disabled/i;
|
||||
$pwr = 'searching' if $pwr =~ /(Powering|Power-ready|Detecting)/ix;
|
||||
$pwr = 'deliveringPower' if $pwr =~ /Powered/i;
|
||||
$pwr = 'fault' if $pwr =~ /fault/i;
|
||||
|
||||
return $pwr;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Huawei - SNMP Interface to Huawei Layer 3 switches and routers.
|
||||
SNMP::Info::Layer3::Huawei - SNMP Interface to Huawei switches and routers.
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Jeroen van Ingen
|
||||
Jeroen van Ingen and Eric Miller
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
@@ -142,7 +526,7 @@ Jeroen van Ingen
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Huawei Quidway switches
|
||||
Subclass for Huawei switches
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
@@ -150,8 +534,6 @@ Subclass for Huawei Quidway switches
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=item SNMP::Info::LLDP
|
||||
|
||||
=item SNMP::Info::IEEE802dot3ad
|
||||
|
||||
=back
|
||||
@@ -162,12 +544,20 @@ Subclass for Huawei Quidway switches
|
||||
|
||||
=item F<HUAWEI-MIB>
|
||||
|
||||
=item F<HUAWEI-PORT-MIB>
|
||||
|
||||
=item F<HUAWEI-IF-EXT-MIB>
|
||||
|
||||
=item F<HUAWEI-L2IF-MIB>
|
||||
|
||||
=item F<HUAWEI-POE-MIB>
|
||||
|
||||
=item F<HUAWEI-ENTITY-EXTENT-MIB>
|
||||
|
||||
=item Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3> for its own MIB requirements.
|
||||
|
||||
See L<SNMP::Info::LLDP> for its own MIB requirements.
|
||||
|
||||
See L<SNMP::Info::IEEE802dot3ad> for its own MIB requirements.
|
||||
|
||||
=back
|
||||
@@ -188,7 +578,30 @@ Returns 'VRP' if contained in C<sysDescr>, 'huawei' otherwise.
|
||||
|
||||
=item $huawei->os_ver()
|
||||
|
||||
Returns the software version extracted from C<sysDescr>.
|
||||
Returns the software version derived from the C<ENTITY-MIB> or
|
||||
extracted from C<sysDescr>.
|
||||
|
||||
=item $huawei->mac()
|
||||
|
||||
Base MAC of the device.
|
||||
|
||||
(C<dot1dBaseBridgeAddress>)
|
||||
|
||||
=item $huawei->fan()
|
||||
|
||||
Return the status of all fans from the F<HUAWEI-ENTITY-EXTENT-MIB>. Returns
|
||||
a string indicating the number of fans 'OK' or identification of any fan without
|
||||
a 'normal' operating status
|
||||
|
||||
=item $huawei->ps1_status()
|
||||
|
||||
Return the status of the first power supply in each chassis or switch from
|
||||
the F<HUAWEI-ENTITY-EXTENT-MIB>
|
||||
|
||||
=item $huawei->ps2_status()
|
||||
|
||||
Return the status of the second power supply in each chassis or switch from
|
||||
the F<HUAWEI-ENTITY-EXTENT-MIB>
|
||||
|
||||
=back
|
||||
|
||||
@@ -196,15 +609,49 @@ Returns the software version extracted from C<sysDescr>.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3> for details.
|
||||
|
||||
=head2 Globals imported from SNMP::Info::LLDP
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP> for details.
|
||||
|
||||
=head1 TABLE ENTRIES
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $huawei->i_duplex()
|
||||
|
||||
Returns reference to map of IIDs to current link duplex.
|
||||
|
||||
=item $huawei->i_duplex_admin()
|
||||
|
||||
Returns reference to hash of IIDs to admin duplex setting.
|
||||
|
||||
=back
|
||||
|
||||
=head2 POE Slot Table
|
||||
|
||||
=over
|
||||
|
||||
=item $huawei->peth_power_watts()
|
||||
|
||||
The slot's power supply's capacity, in watts.
|
||||
|
||||
C<hwPoeSlotMaximumPower>
|
||||
|
||||
=item $huawei->peth_power_consumption()
|
||||
|
||||
How much power, in watts, this power supply has been committed to
|
||||
deliver.
|
||||
|
||||
C<hwPoeSlotConsumingPower>
|
||||
|
||||
=item $huawei->peth_power_threshold()
|
||||
|
||||
The threshold (in percent) of consumption required to raise an
|
||||
alarm.
|
||||
|
||||
C<hwPoeSlotPowerUtilizationThreshold>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
@@ -215,11 +662,63 @@ Returns reference to hash. Increments value of IID if port is to be ignored.
|
||||
|
||||
Ignores InLoopback and Console interfaces
|
||||
|
||||
=item $huawei->bp_index()
|
||||
|
||||
Returns a mapping between C<ifIndex> and the Bridge Table. Uses
|
||||
C<hwL2IfPortIfIndex> for the most complete mapping and falls back to
|
||||
C<dot1dBasePortIfIndex> if not available.
|
||||
|
||||
=item C<agg_ports>
|
||||
|
||||
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.
|
||||
ifIndex of the corresponding master ports. Attempts to use C<hwTrunkIfTable>
|
||||
first and then C<dot3adAggPortListPorts> if that is unavailable.
|
||||
|
||||
=item C<i_mtu>
|
||||
|
||||
Interface MTU value. Overriden with corresponding frame size entry from
|
||||
C<hwEthernetJumboframeMaxLength> if one exists.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Power Port Table
|
||||
|
||||
The index of these methods have been normalized to slot.port and values
|
||||
munged to provide compatability with the IEEE 802.3af F<POWER-ETHERNET-MIB>
|
||||
and equivalent L<SNMP::Info::PowerEthernet> methods.
|
||||
|
||||
=over
|
||||
|
||||
=item $huawei->peth_port_admin()
|
||||
|
||||
Administrative status: is this port permitted to deliver power?
|
||||
|
||||
=item $huawei->peth_port_status()
|
||||
|
||||
Current status: is this port delivering power, searching, disabled, etc?
|
||||
|
||||
=item $huawei->peth_port_class()
|
||||
|
||||
Device class: if status is delivering power, this represents the 802.3af
|
||||
class of the device being powered.
|
||||
|
||||
=item $huawei->peth_port_power()
|
||||
|
||||
Power supplied the port, in milliwatts
|
||||
|
||||
=item $huawei->peth_port_ifindex()
|
||||
|
||||
Returns an index of slot.port to an C<ifIndex>. Slot defaults to zero
|
||||
meaning chassis or box if there is no C<ifIndex> to slot mapping available in
|
||||
C<hwPhysicalPortInSlot>. Mapping the index to slot.port is a normalization
|
||||
function to provide compatability with the IEEE 802.3af F<POWER-ETHERNET-MIB>.
|
||||
|
||||
=item $huawei->peth_port_neg_power()
|
||||
|
||||
The power, in milliwatts, that has been committed to this port.
|
||||
This value is derived from the 802.3af class of the device being
|
||||
powered.
|
||||
|
||||
=back
|
||||
|
||||
@@ -227,12 +726,31 @@ ifIndex of the corresponding master ports.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3> for details.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::LLDP
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP> for details.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::IEEE802dot3ad
|
||||
|
||||
See documentation in L<SNMP::Info::IEEE802dot3ad> for details.
|
||||
|
||||
=head1 Data Munging Callback Subroutines
|
||||
|
||||
=over
|
||||
|
||||
=item $huawei->munge_hw_peth_admin()
|
||||
|
||||
Normalizes C<hwPoePortEnable> values to 'true' or 'false'.
|
||||
|
||||
=item $huawei->munge_hw_peth_class()
|
||||
|
||||
Normalizes C<hwPoePortPdClass> values by prepending 'class'.
|
||||
|
||||
=item $huawei->munge_hw_peth_power()
|
||||
|
||||
Converts and rounds to a whole number milliwatts to watts.
|
||||
|
||||
=item $huawei->munge_hw_peth_status()
|
||||
|
||||
Normalizes C<hwPoePortPowerStatus> values to those that would be returned by
|
||||
the the IEEE 802.3af F<POWER-ETHERNET-MIB>.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.55';
|
||||
$VERSION = '3.59';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user