Compare commits
57 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34797b100a | ||
|
|
b15a950d6a | ||
|
|
c6ce0d6e4d | ||
|
|
48b7214840 | ||
|
|
a2ba6aa0ef | ||
|
|
8e8edb48d1 | ||
|
|
e88ce9da2b | ||
|
|
c4488d6236 | ||
|
|
133febf550 | ||
|
|
1ca9abdf8a | ||
|
|
b10ff0f8dd | ||
|
|
f101cb0a23 | ||
|
|
a71be6e4c2 | ||
|
|
ba721cf9fb | ||
|
|
736005b4f6 | ||
|
|
70f19bf988 | ||
|
|
d32b7e42c9 | ||
|
|
b3f96de3e0 | ||
|
|
6ecfb2245f | ||
|
|
1d4cd2d075 | ||
|
|
52f16e0673 | ||
|
|
9042ad7573 | ||
|
|
f9f3dc6490 | ||
|
|
cdafa791d0 | ||
|
|
ef4dfbe870 | ||
|
|
1a42221e58 | ||
|
|
ca1d2104dc | ||
|
|
c6c168733e | ||
|
|
c6a5c68657 | ||
|
|
f7d4a78f41 | ||
|
|
4b15add4ff | ||
|
|
9842bb2dc2 | ||
|
|
a59af743a9 | ||
|
|
f65301f233 | ||
|
|
7fd2e31913 | ||
|
|
c514baa9b2 | ||
|
|
ac18ab7b10 | ||
|
|
3acf12ada3 | ||
|
|
ce60c79008 | ||
|
|
a665fe335b | ||
|
|
ffb28b7e34 | ||
|
|
f09c705e71 | ||
|
|
3de22ad136 | ||
|
|
d36ef515a6 | ||
|
|
75db1771b7 | ||
|
|
4020a430f5 | ||
|
|
d404cbd154 | ||
|
|
d5f68ca4e7 | ||
|
|
dc3d1e0b46 | ||
|
|
e885efa921 | ||
|
|
dcf2c0ee54 | ||
|
|
feaeba8be4 | ||
|
|
b4d19c937c | ||
|
|
7846cbce1a | ||
|
|
74b25e4c88 | ||
|
|
ef2500dcc7 | ||
|
|
70379aaf6e |
8
.github/workflows/test_and_publish.yml
vendored
8
.github/workflows/test_and_publish.yml
vendored
@@ -34,10 +34,12 @@ jobs:
|
||||
- name: Get the Tag or Branch
|
||||
run: echo "GH_REF_SHORT=$(echo ${GITHUB_REF##*/})" >> $GITHUB_ENV
|
||||
|
||||
- name: Install packages
|
||||
run: apk add openssh xz tmux bash curl sudo gcc make musl-dev perl-dev unzip jq
|
||||
- name: Install base packages
|
||||
run: apk add tmux bash curl sudo xz
|
||||
- name: Install other packages
|
||||
run: apk add openssh-client gcc make musl-dev perl-dev unzip jq
|
||||
- name: Install fake apt-get
|
||||
run: echo 'if [ "$1" == "update" ]; then exec apk update; else exec apk add openssh xz; fi' > /usr/local/bin/apt-get && chmod +x /usr/local/bin/apt-get
|
||||
run: echo 'if [ "$1" == "update" ]; then exec apk update; else exec apk add openssh-client xz; fi' > /usr/local/bin/apt-get && chmod +x /usr/local/bin/apt-get
|
||||
|
||||
- name: Check out latest code
|
||||
uses: actions/checkout@v1
|
||||
|
||||
2
Build.PL
2
Build.PL
@@ -17,6 +17,8 @@ Module::Build->new(
|
||||
'SNMP' => '0',
|
||||
'Math::BigInt' => '0',
|
||||
'NetAddr::IP' => '4.068',
|
||||
'Regexp::Common' => '0',
|
||||
'Scalar::Util' => '0',
|
||||
},
|
||||
recommends => {
|
||||
'PPI' => '0',
|
||||
|
||||
92
Changes
92
Changes
@@ -1,3 +1,95 @@
|
||||
Version 3.95 (2023-09-02)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #491 Dell - Take into account OS10
|
||||
* #492 F5 - Update the module to correctly retrieve interfaces
|
||||
* #499 aoscx power over ethernet support
|
||||
* #500 pretty format 2.5gbps speeds
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* partial revert #484 and replace with Cisco specific CiscoAgg::agg_ports_propvirtual
|
||||
|
||||
Version 3.94 (2023-07-25)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* partial revert #484 and replace with Cisco specific CiscoAgg::agg_ports_propvirtual
|
||||
|
||||
Version 3.93 (2023-07-14)
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #484 add Aggregate::agg_ports_ifstack to CiscoAgg::agg_ports
|
||||
|
||||
Version 3.92 (2023-02-20)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* #450 Hirschmann switch support
|
||||
* #463 Netonix switch support
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* new() accepts hashref as well as bare list of arguments
|
||||
# #475 additional recognition of Allied switches
|
||||
* #477 additional recognition of Cisco 9xxx switches
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #460 always return $info instance to allow error() inspection
|
||||
* #464 check in case non numeric key in cache befor inc
|
||||
* #474 workaround for aruba-cx link aggregation
|
||||
|
||||
Version 3.89 (2022-08-18)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* add Regexp::Common to dependencies
|
||||
* fix tests for i_vlan_membership_untagged
|
||||
|
||||
Version 3.88 (2022-08-17)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add i_subinterfaces for VLAN subinterfaces in Layer3::Juniper
|
||||
* Add i_vlan and i_vlan_membership_untagged to Layer3::Juniper based on ifChassisLogicalUnit
|
||||
|
||||
Version 3.87 (2022-08-12)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* PortAccessEntity/IEEE8021-PAE-MIB module support
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* #462 SNMP::Info::Layer3::PaloAlto to include layer 2
|
||||
* #461 Expose lldLocChassisId as $lldp->lldp_loc_id
|
||||
* Update CiscoStats.pm for Amsterdam IOS-XE release
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #470 avoid error if Juniper VLAN not in bp_index
|
||||
|
||||
Version 3.86 (2022-08-10)
|
||||
|
||||
[BUG FIXES]
|
||||
|
||||
* #468 Cisco dotted subinterfaces had incorrect vlan assigned
|
||||
|
||||
Version 3.85 (2022-08-02)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add i_subinterfaces for VLAN subinterfaces in CiscoVTP
|
||||
|
||||
Version 3.84 (2022-07-04)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* Add support for HW Group STE whitespace monitoring devices
|
||||
|
||||
Version 3.82 (2022-03-16)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
4
MANIFEST
4
MANIFEST
@@ -59,6 +59,7 @@ lib/SNMP/Info/Layer2/Centillion.pm
|
||||
lib/SNMP/Info/Layer2/Cisco.pm
|
||||
lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
lib/SNMP/Info/Layer2/Exinda.pm
|
||||
lib/SNMP/Info/Layer2/Hirschmann.pm
|
||||
lib/SNMP/Info/Layer2/HP.pm
|
||||
lib/SNMP/Info/Layer2/HP4000.pm
|
||||
lib/SNMP/Info/Layer2/HPVC.pm
|
||||
@@ -114,6 +115,7 @@ lib/SNMP/Info/Layer3/Lenovo.pm
|
||||
lib/SNMP/Info/Layer3/Microsoft.pm
|
||||
lib/SNMP/Info/Layer3/Mikrotik.pm
|
||||
lib/SNMP/Info/Layer3/N1600.pm
|
||||
lib/SNMP/Info/Layer3/Netonix.pm
|
||||
lib/SNMP/Info/Layer3/Netscreen.pm
|
||||
lib/SNMP/Info/Layer3/NetSNMP.pm
|
||||
lib/SNMP/Info/Layer3/Nexus.pm
|
||||
@@ -141,6 +143,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/HWGroup.pm
|
||||
lib/SNMP/Info/Layer7/Liebert.pm
|
||||
lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
@@ -148,6 +151,7 @@ lib/SNMP/Info/LLDP.pm
|
||||
lib/SNMP/Info/MAU.pm
|
||||
lib/SNMP/Info/MRO.pm
|
||||
lib/SNMP/Info/NortelStack.pm
|
||||
lib/SNMP/Info/PortAccessEntity.pm
|
||||
lib/SNMP/Info/PowerEthernet.pm
|
||||
lib/SNMP/Info/RapidCity.pm
|
||||
lib/SNMP/Info/SONMP.pm
|
||||
|
||||
312
META.json
312
META.json
@@ -4,7 +4,7 @@
|
||||
"Eric A. Miller <emiller@cpan.org>"
|
||||
],
|
||||
"dynamic_config" : 1,
|
||||
"generated_by" : "Module::Build version 0.4231",
|
||||
"generated_by" : "Module::Build version 0.4234",
|
||||
"license" : [
|
||||
"bsd"
|
||||
],
|
||||
@@ -30,7 +30,9 @@
|
||||
"requires" : {
|
||||
"Math::BigInt" : "0",
|
||||
"NetAddr::IP" : "4.068",
|
||||
"SNMP" : "0"
|
||||
"Regexp::Common" : "0",
|
||||
"SNMP" : "0",
|
||||
"Scalar::Util" : "0"
|
||||
}
|
||||
},
|
||||
"test" : {
|
||||
@@ -53,571 +55,587 @@
|
||||
"provides" : {
|
||||
"SNMP::Info" : {
|
||||
"file" : "lib/SNMP/Info.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::AMAP" : {
|
||||
"file" : "lib/SNMP/Info/AMAP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::AdslLine" : {
|
||||
"file" : "lib/SNMP/Info/AdslLine.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Aggregate" : {
|
||||
"file" : "lib/SNMP/Info/Aggregate.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Airespace.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Bridge" : {
|
||||
"file" : "lib/SNMP/Info/Bridge.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CDP" : {
|
||||
"file" : "lib/SNMP/Info/CDP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoAgg" : {
|
||||
"file" : "lib/SNMP/Info/CiscoAgg.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoBGP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoBGP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoConfig" : {
|
||||
"file" : "lib/SNMP/Info/CiscoConfig.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoPortSecurity" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoPower" : {
|
||||
"file" : "lib/SNMP/Info/CiscoPower.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoQOS" : {
|
||||
"file" : "lib/SNMP/Info/CiscoQOS.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoRTT" : {
|
||||
"file" : "lib/SNMP/Info/CiscoRTT.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoStack" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStack.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoStats" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStats.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoStpExtensions" : {
|
||||
"file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::CiscoVTP" : {
|
||||
"file" : "lib/SNMP/Info/CiscoVTP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::DocsisCM" : {
|
||||
"file" : "lib/SNMP/Info/DocsisCM.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::DocsisHE" : {
|
||||
"file" : "lib/SNMP/Info/DocsisHE.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::EDP" : {
|
||||
"file" : "lib/SNMP/Info/EDP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Entity" : {
|
||||
"file" : "lib/SNMP/Info/Entity.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::EtherLike" : {
|
||||
"file" : "lib/SNMP/Info/EtherLike.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::FDP" : {
|
||||
"file" : "lib/SNMP/Info/FDP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::IEEE802_Bridge" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802_Bridge.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot11" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot11.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::IEEE802dot3ad" : {
|
||||
"file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::IPv6" : {
|
||||
"file" : "lib/SNMP/Info/IPv6.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::LLDP" : {
|
||||
"file" : "lib/SNMP/Info/LLDP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1" : {
|
||||
"file" : "lib/SNMP/Info/Layer1.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Allied.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1::Asante" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Asante.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1::Bayhub" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1::Cyclades" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer1::S3000" : {
|
||||
"file" : "lib/SNMP/Info/Layer1/S3000.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2" : {
|
||||
"file" : "lib/SNMP/Info/Layer2.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::3Com" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/3Com.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Adtran" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Adtran.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aerohive" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aerohive.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Airespace" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Airespace.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Aironet.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Allied" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Allied.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Atmedia" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Atmedia.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Baystack" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Baystack.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::C1900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C1900.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::C2900" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/C2900.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Catalyst" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Centillion" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Centillion.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Cisco.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::CiscoSB" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Exinda" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Exinda.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::HP4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HP4000.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::HPVC" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/HPVC.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Hirschmann" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Hirschmann.pm",
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Kentrox" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::N2270" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/N2270.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::NAP222x" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::NWSS2300" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Netgear" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Netgear.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Nexans" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Nexans.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Orinoco" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Sixnet" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Sixnet.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Trapeze" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::Ubiquiti" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer2::ZyXEL_DSLAM" : {
|
||||
"file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3" : {
|
||||
"file" : "lib/SNMP/Info/Layer3.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aironet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aironet.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlcatelLucent" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::AlteonAD" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Altiga" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Altiga.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Arista" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Arista.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Aruba" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Aruba.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::ArubaCX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ArubaCX.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::BayRS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BayRS.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::BlueCoatSG" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::C3550" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C3550.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::C4000" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C4000.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::C6500" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/C6500.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::CheckPoint" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Ciena" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Ciena.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cisco" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cisco.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoASA" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoFWSM" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::CiscoSwitch" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Contivity" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Contivity.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Cumulus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Cumulus.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::DLink" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/DLink.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Dell" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Dell.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::ERX" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/ERX.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Enterasys" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Extreme" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Extreme.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::F5" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/F5.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Force10" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Force10.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Fortinet" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Foundry" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Foundry.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Genua" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Genua.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::H3C" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/H3C.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::HP9300" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/HP9300.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Huawei" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Huawei.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::IBMGbTor" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Juniper" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Juniper.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lantronix" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Lenovo" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Lenovo.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Microsoft" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Mikrotik" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::N1600" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/N1600.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::NetSNMP" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Netonix" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Netonix.pm",
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Netscreen" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Nexus" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Nexus.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::OneAccess" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/OneAccess.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::PacketFront" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::PaloAlto" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Passport" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Passport.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pf" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pf.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Pica8" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Pica8.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Redlion" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Redlion.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Scalance" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Scalance.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::SonicWALL" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelfusion" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelfusion.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Steelhead" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::SteelheadEx" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/SteelheadEx.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Sun" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Sun.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Tasman" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Tasman.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Teltonika" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Teltonika.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Timetra" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Timetra.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::VMware" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VMware.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::VyOS" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/VyOS.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer3::Whiterabbit" : {
|
||||
"file" : "lib/SNMP/Info/Layer3/Whiterabbit.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7" : {
|
||||
"file" : "lib/SNMP/Info/Layer7.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::APC" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/APC.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::Arbor" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Arbor.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::CiscoIPS" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::Gigamon" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Gigamon.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::HWGroup" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/HWGroup.pm",
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::Liebert" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Liebert.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::Neoteris" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::Layer7::Netscaler" : {
|
||||
"file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::MAU" : {
|
||||
"file" : "lib/SNMP/Info/MAU.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::MRO" : {
|
||||
"file" : "lib/SNMP/Info/MRO.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::NortelStack" : {
|
||||
"file" : "lib/SNMP/Info/NortelStack.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::PortAccessEntity" : {
|
||||
"file" : "lib/SNMP/Info/PortAccessEntity.pm",
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::PowerEthernet" : {
|
||||
"file" : "lib/SNMP/Info/PowerEthernet.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::RapidCity" : {
|
||||
"file" : "lib/SNMP/Info/RapidCity.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
},
|
||||
"SNMP::Info::SONMP" : {
|
||||
"file" : "lib/SNMP/Info/SONMP.pm",
|
||||
"version" : "3.82"
|
||||
"version" : "3.95"
|
||||
}
|
||||
},
|
||||
"release_status" : "stable",
|
||||
@@ -627,7 +645,7 @@
|
||||
},
|
||||
"homepage" : "http://netdisco.org/",
|
||||
"license" : [
|
||||
"http://opensource.org/licenses/bsd-license.php"
|
||||
"http://opensource.org/licenses/BSD-3-Clause"
|
||||
],
|
||||
"repository" : {
|
||||
"url" : "https://github.com/netdisco/snmp-info"
|
||||
@@ -635,6 +653,6 @@
|
||||
"x_IRC" : "irc://irc.libera.chat/#netdisco",
|
||||
"x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
|
||||
},
|
||||
"version" : "3.82",
|
||||
"x_serialization_backend" : "JSON::PP version 4.06"
|
||||
"version" : "3.95",
|
||||
"x_serialization_backend" : "JSON::PP version 4.07"
|
||||
}
|
||||
|
||||
304
META.yml
304
META.yml
@@ -18,7 +18,7 @@ build_requires:
|
||||
configure_requires:
|
||||
Module::Build: '0.42'
|
||||
dynamic_config: 1
|
||||
generated_by: 'Module::Build version 0.4231, CPAN::Meta::Converter version 2.150010'
|
||||
generated_by: 'Module::Build version 0.4234, CPAN::Meta::Converter version 2.150010'
|
||||
license: bsd
|
||||
meta-spec:
|
||||
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
||||
@@ -27,430 +27,442 @@ name: SNMP-Info
|
||||
provides:
|
||||
SNMP::Info:
|
||||
file: lib/SNMP/Info.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::AMAP:
|
||||
file: lib/SNMP/Info/AMAP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::AdslLine:
|
||||
file: lib/SNMP/Info/AdslLine.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Aggregate:
|
||||
file: lib/SNMP/Info/Aggregate.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Airespace:
|
||||
file: lib/SNMP/Info/Airespace.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Bridge:
|
||||
file: lib/SNMP/Info/Bridge.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CDP:
|
||||
file: lib/SNMP/Info/CDP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoAgg:
|
||||
file: lib/SNMP/Info/CiscoAgg.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoBGP:
|
||||
file: lib/SNMP/Info/CiscoBGP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoConfig:
|
||||
file: lib/SNMP/Info/CiscoConfig.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoPortSecurity:
|
||||
file: lib/SNMP/Info/CiscoPortSecurity.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoPower:
|
||||
file: lib/SNMP/Info/CiscoPower.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoQOS:
|
||||
file: lib/SNMP/Info/CiscoQOS.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoRTT:
|
||||
file: lib/SNMP/Info/CiscoRTT.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoStack:
|
||||
file: lib/SNMP/Info/CiscoStack.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoStats:
|
||||
file: lib/SNMP/Info/CiscoStats.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoStpExtensions:
|
||||
file: lib/SNMP/Info/CiscoStpExtensions.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::CiscoVTP:
|
||||
file: lib/SNMP/Info/CiscoVTP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::DocsisCM:
|
||||
file: lib/SNMP/Info/DocsisCM.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::DocsisHE:
|
||||
file: lib/SNMP/Info/DocsisHE.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::EDP:
|
||||
file: lib/SNMP/Info/EDP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Entity:
|
||||
file: lib/SNMP/Info/Entity.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::EtherLike:
|
||||
file: lib/SNMP/Info/EtherLike.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::FDP:
|
||||
file: lib/SNMP/Info/FDP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::IEEE802_Bridge:
|
||||
file: lib/SNMP/Info/IEEE802_Bridge.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::IEEE802dot11:
|
||||
file: lib/SNMP/Info/IEEE802dot11.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::IEEE802dot3ad:
|
||||
file: lib/SNMP/Info/IEEE802dot3ad.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::IPv6:
|
||||
file: lib/SNMP/Info/IPv6.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::LLDP:
|
||||
file: lib/SNMP/Info/LLDP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1:
|
||||
file: lib/SNMP/Info/Layer1.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1::Allied:
|
||||
file: lib/SNMP/Info/Layer1/Allied.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1::Asante:
|
||||
file: lib/SNMP/Info/Layer1/Asante.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1::Bayhub:
|
||||
file: lib/SNMP/Info/Layer1/Bayhub.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1::Cyclades:
|
||||
file: lib/SNMP/Info/Layer1/Cyclades.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer1::S3000:
|
||||
file: lib/SNMP/Info/Layer1/S3000.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2:
|
||||
file: lib/SNMP/Info/Layer2.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::3Com:
|
||||
file: lib/SNMP/Info/Layer2/3Com.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Adtran:
|
||||
file: lib/SNMP/Info/Layer2/Adtran.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Aerohive:
|
||||
file: lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Airespace:
|
||||
file: lib/SNMP/Info/Layer2/Airespace.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Aironet:
|
||||
file: lib/SNMP/Info/Layer2/Aironet.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Allied:
|
||||
file: lib/SNMP/Info/Layer2/Allied.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Atmedia:
|
||||
file: lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Baystack:
|
||||
file: lib/SNMP/Info/Layer2/Baystack.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::C1900:
|
||||
file: lib/SNMP/Info/Layer2/C1900.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::C2900:
|
||||
file: lib/SNMP/Info/Layer2/C2900.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Catalyst:
|
||||
file: lib/SNMP/Info/Layer2/Catalyst.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Centillion:
|
||||
file: lib/SNMP/Info/Layer2/Centillion.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Cisco:
|
||||
file: lib/SNMP/Info/Layer2/Cisco.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::CiscoSB:
|
||||
file: lib/SNMP/Info/Layer2/CiscoSB.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Exinda:
|
||||
file: lib/SNMP/Info/Layer2/Exinda.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::HP:
|
||||
file: lib/SNMP/Info/Layer2/HP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::HP4000:
|
||||
file: lib/SNMP/Info/Layer2/HP4000.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::HPVC:
|
||||
file: lib/SNMP/Info/Layer2/HPVC.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Hirschmann:
|
||||
file: lib/SNMP/Info/Layer2/Hirschmann.pm
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Kentrox:
|
||||
file: lib/SNMP/Info/Layer2/Kentrox.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::N2270:
|
||||
file: lib/SNMP/Info/Layer2/N2270.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::NAP222x:
|
||||
file: lib/SNMP/Info/Layer2/NAP222x.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::NWSS2300:
|
||||
file: lib/SNMP/Info/Layer2/NWSS2300.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Netgear:
|
||||
file: lib/SNMP/Info/Layer2/Netgear.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Nexans:
|
||||
file: lib/SNMP/Info/Layer2/Nexans.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Orinoco:
|
||||
file: lib/SNMP/Info/Layer2/Orinoco.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Sixnet:
|
||||
file: lib/SNMP/Info/Layer2/Sixnet.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Trapeze:
|
||||
file: lib/SNMP/Info/Layer2/Trapeze.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::Ubiquiti:
|
||||
file: lib/SNMP/Info/Layer2/Ubiquiti.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer2::ZyXEL_DSLAM:
|
||||
file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3:
|
||||
file: lib/SNMP/Info/Layer3.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Aironet:
|
||||
file: lib/SNMP/Info/Layer3/Aironet.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::AlcatelLucent:
|
||||
file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::AlteonAD:
|
||||
file: lib/SNMP/Info/Layer3/AlteonAD.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Altiga:
|
||||
file: lib/SNMP/Info/Layer3/Altiga.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Arista:
|
||||
file: lib/SNMP/Info/Layer3/Arista.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Aruba:
|
||||
file: lib/SNMP/Info/Layer3/Aruba.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::ArubaCX:
|
||||
file: lib/SNMP/Info/Layer3/ArubaCX.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::BayRS:
|
||||
file: lib/SNMP/Info/Layer3/BayRS.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::BlueCoatSG:
|
||||
file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::C3550:
|
||||
file: lib/SNMP/Info/Layer3/C3550.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::C4000:
|
||||
file: lib/SNMP/Info/Layer3/C4000.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::C6500:
|
||||
file: lib/SNMP/Info/Layer3/C6500.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::CheckPoint:
|
||||
file: lib/SNMP/Info/Layer3/CheckPoint.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Ciena:
|
||||
file: lib/SNMP/Info/Layer3/Ciena.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Cisco:
|
||||
file: lib/SNMP/Info/Layer3/Cisco.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::CiscoASA:
|
||||
file: lib/SNMP/Info/Layer3/CiscoASA.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::CiscoFWSM:
|
||||
file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::CiscoSwitch:
|
||||
file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Contivity:
|
||||
file: lib/SNMP/Info/Layer3/Contivity.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Cumulus:
|
||||
file: lib/SNMP/Info/Layer3/Cumulus.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::DLink:
|
||||
file: lib/SNMP/Info/Layer3/DLink.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Dell:
|
||||
file: lib/SNMP/Info/Layer3/Dell.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::ERX:
|
||||
file: lib/SNMP/Info/Layer3/ERX.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Enterasys:
|
||||
file: lib/SNMP/Info/Layer3/Enterasys.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Extreme:
|
||||
file: lib/SNMP/Info/Layer3/Extreme.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::F5:
|
||||
file: lib/SNMP/Info/Layer3/F5.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Force10:
|
||||
file: lib/SNMP/Info/Layer3/Force10.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Fortinet:
|
||||
file: lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Foundry:
|
||||
file: lib/SNMP/Info/Layer3/Foundry.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Genua:
|
||||
file: lib/SNMP/Info/Layer3/Genua.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::H3C:
|
||||
file: lib/SNMP/Info/Layer3/H3C.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::HP9300:
|
||||
file: lib/SNMP/Info/Layer3/HP9300.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Huawei:
|
||||
file: lib/SNMP/Info/Layer3/Huawei.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::IBMGbTor:
|
||||
file: lib/SNMP/Info/Layer3/IBMGbTor.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Juniper:
|
||||
file: lib/SNMP/Info/Layer3/Juniper.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Lantronix:
|
||||
file: lib/SNMP/Info/Layer3/Lantronix.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Lenovo:
|
||||
file: lib/SNMP/Info/Layer3/Lenovo.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Microsoft:
|
||||
file: lib/SNMP/Info/Layer3/Microsoft.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Mikrotik:
|
||||
file: lib/SNMP/Info/Layer3/Mikrotik.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::N1600:
|
||||
file: lib/SNMP/Info/Layer3/N1600.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::NetSNMP:
|
||||
file: lib/SNMP/Info/Layer3/NetSNMP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Netonix:
|
||||
file: lib/SNMP/Info/Layer3/Netonix.pm
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Netscreen:
|
||||
file: lib/SNMP/Info/Layer3/Netscreen.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Nexus:
|
||||
file: lib/SNMP/Info/Layer3/Nexus.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::OneAccess:
|
||||
file: lib/SNMP/Info/Layer3/OneAccess.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::PacketFront:
|
||||
file: lib/SNMP/Info/Layer3/PacketFront.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::PaloAlto:
|
||||
file: lib/SNMP/Info/Layer3/PaloAlto.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Passport:
|
||||
file: lib/SNMP/Info/Layer3/Passport.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Pf:
|
||||
file: lib/SNMP/Info/Layer3/Pf.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Pica8:
|
||||
file: lib/SNMP/Info/Layer3/Pica8.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Redlion:
|
||||
file: lib/SNMP/Info/Layer3/Redlion.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Scalance:
|
||||
file: lib/SNMP/Info/Layer3/Scalance.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::SonicWALL:
|
||||
file: lib/SNMP/Info/Layer3/SonicWALL.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Steelfusion:
|
||||
file: lib/SNMP/Info/Layer3/Steelfusion.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Steelhead:
|
||||
file: lib/SNMP/Info/Layer3/Steelhead.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::SteelheadEx:
|
||||
file: lib/SNMP/Info/Layer3/SteelheadEx.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Sun:
|
||||
file: lib/SNMP/Info/Layer3/Sun.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Tasman:
|
||||
file: lib/SNMP/Info/Layer3/Tasman.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Teltonika:
|
||||
file: lib/SNMP/Info/Layer3/Teltonika.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Timetra:
|
||||
file: lib/SNMP/Info/Layer3/Timetra.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::VMware:
|
||||
file: lib/SNMP/Info/Layer3/VMware.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::VyOS:
|
||||
file: lib/SNMP/Info/Layer3/VyOS.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer3::Whiterabbit:
|
||||
file: lib/SNMP/Info/Layer3/Whiterabbit.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7:
|
||||
file: lib/SNMP/Info/Layer7.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::APC:
|
||||
file: lib/SNMP/Info/Layer7/APC.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::Arbor:
|
||||
file: lib/SNMP/Info/Layer7/Arbor.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::CiscoIPS:
|
||||
file: lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::Gigamon:
|
||||
file: lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::HWGroup:
|
||||
file: lib/SNMP/Info/Layer7/HWGroup.pm
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::Liebert:
|
||||
file: lib/SNMP/Info/Layer7/Liebert.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::Neoteris:
|
||||
file: lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::Layer7::Netscaler:
|
||||
file: lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::MAU:
|
||||
file: lib/SNMP/Info/MAU.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::MRO:
|
||||
file: lib/SNMP/Info/MRO.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::NortelStack:
|
||||
file: lib/SNMP/Info/NortelStack.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::PortAccessEntity:
|
||||
file: lib/SNMP/Info/PortAccessEntity.pm
|
||||
version: '3.95'
|
||||
SNMP::Info::PowerEthernet:
|
||||
file: lib/SNMP/Info/PowerEthernet.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::RapidCity:
|
||||
file: lib/SNMP/Info/RapidCity.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
SNMP::Info::SONMP:
|
||||
file: lib/SNMP/Info/SONMP.pm
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
recommends:
|
||||
Class::ISA: '0'
|
||||
File::Slurp: '0'
|
||||
@@ -460,13 +472,15 @@ recommends:
|
||||
requires:
|
||||
Math::BigInt: '0'
|
||||
NetAddr::IP: '4.068'
|
||||
Regexp::Common: '0'
|
||||
SNMP: '0'
|
||||
Scalar::Util: '0'
|
||||
resources:
|
||||
IRC: irc://irc.libera.chat/#netdisco
|
||||
MailingList: https://lists.sourceforge.net/lists/listinfo/snmp-info-users
|
||||
bugtracker: https://github.com/netdisco/snmp-info/issues
|
||||
homepage: http://netdisco.org/
|
||||
license: http://opensource.org/licenses/bsd-license.php
|
||||
license: http://opensource.org/licenses/BSD-3-Clause
|
||||
repository: https://github.com/netdisco/snmp-info
|
||||
version: '3.82'
|
||||
version: '3.95'
|
||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
||||
|
||||
110
lib/SNMP/Info.pm
110
lib/SNMP/Info.pm
@@ -15,6 +15,7 @@ use strict;
|
||||
use Exporter;
|
||||
use SNMP;
|
||||
use Carp;
|
||||
use Scalar::Util ();
|
||||
use Math::BigInt;
|
||||
use NetAddr::IP::Lite ':lower';
|
||||
|
||||
@@ -25,7 +26,7 @@ our
|
||||
($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP,
|
||||
$NOSUCH, $BIGINT, $REPEATERS);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -33,7 +34,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
SNMP::Info - Version 3.82
|
||||
SNMP::Info - Version 3.95
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -56,18 +57,29 @@ list any missing functionality (such as neighbor discovery tables).
|
||||
|
||||
use SNMP::Info;
|
||||
|
||||
my $info = new SNMP::Info(
|
||||
# Auto Discover more specific Device Class
|
||||
my $info = SNMP::Info->new({
|
||||
# Auto Discover your Device Class (Cisco, Juniper, etc ...)
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
|
||||
# The rest is passed to SNMP::Session
|
||||
DestHost => 'router',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
) or die "Can't connect to device.\n";
|
||||
|
||||
# Parameter reference for SNMPv3
|
||||
# Version => 3
|
||||
# SecLevel => 'authPriv', # authPriv|authNoPriv|noAuthNoPriv
|
||||
# SecName => 'myuser',
|
||||
# AuthProto => 'MD5', # MD5|SHA
|
||||
# AuthPass => 'authp4ss',
|
||||
# PrivProto => 'DES', # DES|AES
|
||||
# PrivPass => 'pr1vp4ss',
|
||||
});
|
||||
|
||||
my $err = $info->error();
|
||||
die "SNMP Community or Version probably wrong connecting to device. $err\n" if defined $err;
|
||||
die $err if defined $err;
|
||||
# usually a wrong DestHost or Community or Version if you have trouble here
|
||||
|
||||
my $name = $info->name();
|
||||
my $class = $info->class();
|
||||
@@ -435,6 +447,12 @@ F<S5-AGENT-MIB>, F<S5-CHASSIS-MIB>.
|
||||
|
||||
See documentation in L<SNMP::Info::NortelStack> for details.
|
||||
|
||||
=item SNMP::Info::PortAccessEntity
|
||||
|
||||
F<IEEE8021-PAE-MIB>
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity> for details.
|
||||
|
||||
=item SNMP::Info::PowerEthernet
|
||||
|
||||
F<POWER-ETHERNET-MIB>
|
||||
@@ -620,6 +638,12 @@ Subclass for Exinda / GFI Network Orchestrator traffic shapers.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Exinda> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Hirschmann
|
||||
|
||||
Subclass for Hirschmann switches
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Hirschmann> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::HP
|
||||
|
||||
Subclass for more recent HP Procurve Switches.
|
||||
@@ -966,6 +990,12 @@ Subclass for Avaya/Nortel Ethernet Routing Switch 1600 series.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::N1600> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Netonix
|
||||
|
||||
Subclass for Netonix switches.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Netonix> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::NetSNMP
|
||||
|
||||
Subclass for host systems running Net-SNMP.
|
||||
@@ -1137,6 +1167,12 @@ Subclass for Gigamon devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Gigamon> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::HWGroup
|
||||
|
||||
Subclass for HW Group devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::HWGroup> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Liebert
|
||||
|
||||
Subclass for Liebert devices.
|
||||
@@ -1181,18 +1217,24 @@ on the Netdisco README!
|
||||
|
||||
Creates a new object and connects via SNMP::Session.
|
||||
|
||||
my $info = new SNMP::Info( 'Debug' => 1,
|
||||
'AutoSpecify' => 1,
|
||||
'BigInt' => 1,
|
||||
'BulkWalk' => 1,
|
||||
'BulkRepeaters' => 20,
|
||||
'IgnoreNetSNMPConf' => 1,
|
||||
'LoopDetect' => 1,
|
||||
'DestHost' => 'myrouter',
|
||||
'Community' => 'public',
|
||||
'Version' => 2,
|
||||
'MibDirs' => ['dir1','dir2','dir3'],
|
||||
) or die;
|
||||
Always returns an SNMP::Info instance, and you should always check for
|
||||
error() as in SYNOPSIS above to be sure of success.
|
||||
|
||||
Will take a bare list of key/value options but we recommend a HASH ref
|
||||
as in the example below and SYNOPSIS, to catch syntax errors.
|
||||
|
||||
my $info = SNMP::Info->({ 'Debug' => 1,
|
||||
'AutoSpecify' => 1,
|
||||
'BigInt' => 1,
|
||||
'BulkWalk' => 1,
|
||||
'BulkRepeaters' => 20,
|
||||
'LoopDetect' => 1,
|
||||
'IgnoreNetSNMPConf' => 1,
|
||||
'DestHost' => 'myrouter',
|
||||
'Community' => 'public',
|
||||
'Version' => 2,
|
||||
'MibDirs' => ['dir1','dir2','dir3'],
|
||||
});
|
||||
|
||||
SNMP::Info Specific Arguments :
|
||||
|
||||
@@ -1331,7 +1373,7 @@ then fallback to version 1.
|
||||
sub new {
|
||||
my $proto = shift;
|
||||
my $class = ref($proto) || $proto;
|
||||
my %args = @_;
|
||||
my %args = (ref $_[0] ? %{ $_[0] } : @_);
|
||||
my %sess_args = %args;
|
||||
my $new_obj = {};
|
||||
bless $new_obj, $class;
|
||||
@@ -1434,16 +1476,16 @@ sub new {
|
||||
|
||||
# No session object created
|
||||
unless ( defined $sess ) {
|
||||
$new_obj->error_throw("SNMP::Info::new() Failed to Create Session. ");
|
||||
return;
|
||||
$new_obj->error_throw("SNMP::Info::new() Net-SNMP session creation failed completely.");
|
||||
return $new_obj;
|
||||
}
|
||||
|
||||
# Session object created but SNMP connection failed.
|
||||
my $sess_err = $sess->{ErrorStr} || '';
|
||||
if ($sess_err) {
|
||||
if ($sess->{ErrorStr}) {
|
||||
my $sess_err = $sess->{ErrorStr} || 'no specific error';
|
||||
$new_obj->error_throw(
|
||||
"SNMP::Info::new() Net-SNMP session creation failed. $sess_err");
|
||||
return;
|
||||
"SNMP::Info::new() Net-SNMP session creation failed: $sess_err");
|
||||
return $new_obj;
|
||||
}
|
||||
|
||||
# Save Args for later
|
||||
@@ -1714,6 +1756,7 @@ sub device_type {
|
||||
45 => 'SNMP::Info::Layer2::Baystack',
|
||||
96 => 'SNMP::Info::Layer3::Whiterabbit',
|
||||
171 => 'SNMP::Info::Layer3::DLink',
|
||||
207 => 'SNMP::Info::Layer2::Allied',
|
||||
244 => 'SNMP::Info::Layer3::Lantronix',
|
||||
311 => 'SNMP::Info::Layer3::Microsoft',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
@@ -1767,6 +1810,7 @@ sub device_type {
|
||||
40310 => 'SNMP::Info::Layer3::Cumulus',
|
||||
41112 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
44641 => 'SNMP::Info::Layer3::VyOS',
|
||||
46242 => 'SNMP::Info::Layer3::Netonix',
|
||||
47196 => 'SNMP::Info::Layer3::ArubaCX',
|
||||
48690 => 'SNMP::Info::Layer3::Teltonika',
|
||||
);
|
||||
@@ -1779,6 +1823,7 @@ sub device_type {
|
||||
96 => 'SNMP::Info::Layer3::Whiterabbit',
|
||||
171 => 'SNMP::Info::Layer3::DLink',
|
||||
207 => 'SNMP::Info::Layer2::Allied',
|
||||
248 => 'SNMP::Info::Layer2::Hirschmann',
|
||||
266 => 'SNMP::Info::Layer2::Nexans',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
674 => 'SNMP::Info::Layer3::Dell',
|
||||
@@ -1807,6 +1852,7 @@ sub device_type {
|
||||
21091 => 'SNMP::Info::Layer2::Exinda',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
46242 => 'SNMP::Info::Layer3::Netonix',
|
||||
47196 => 'SNMP::Info::Layer3::ArubaCX',
|
||||
48690 => 'SNMP::Info::Layer3::Teltonika',
|
||||
);
|
||||
@@ -1823,6 +1869,7 @@ sub device_type {
|
||||
9694 => 'SNMP::Info::Layer7::Arbor',
|
||||
12532 => 'SNMP::Info::Layer7::Neoteris',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
21796 => 'SNMP::Info::Layer7::HWGroup',
|
||||
26866 => 'SNMP::Info::Layer7::Gigamon',
|
||||
);
|
||||
|
||||
@@ -2309,8 +2356,8 @@ sub specify {
|
||||
my $device_type = $self->device_type();
|
||||
unless ( defined $device_type ) {
|
||||
$self->error_throw(
|
||||
"SNMP::Info::specify() - Could not get info from device");
|
||||
return;
|
||||
"SNMP::Info::specify() - fatal error: connect failed or missing sysServices and/or sysDescr");
|
||||
return $self;
|
||||
}
|
||||
return $self if $device_type eq 'SNMP::Info';
|
||||
|
||||
@@ -3732,6 +3779,7 @@ Makes human friendly speed ratings using C<%SPEED_MAP>.
|
||||
'1000000000' => '1.0 Gbps',
|
||||
'2000000000' => '2.0 Gbps',
|
||||
'2488000000' => 'OC-48',
|
||||
'2500000000' => '2.5 Gbps',
|
||||
)
|
||||
|
||||
Note: high speed interfaces (usually 1 Gbps or faster) have their link
|
||||
@@ -3779,6 +3827,7 @@ munge_highspeed(). SNMP::Info can return speeds up to terabit levels this way.
|
||||
'1000000000' => '1.0 Gbps',
|
||||
'2000000000' => '2.0 Gbps',
|
||||
'2488000000' => 'OC-48',
|
||||
'2500000000' => '2.5 Gbps',
|
||||
);
|
||||
|
||||
sub munge_speed {
|
||||
@@ -4018,6 +4067,8 @@ Takes an OID and return the object name if the right MIB is loaded.
|
||||
|
||||
sub munge_e_type {
|
||||
my $oid = shift;
|
||||
return unless $oid;
|
||||
return $oid if $oid =~ m/^\.0/;
|
||||
|
||||
my $name = &SNMP::translateObj($oid);
|
||||
return $name if defined($name);
|
||||
@@ -4900,6 +4951,11 @@ sub _cache {
|
||||
my $store = $self->store();
|
||||
|
||||
if (ref {} eq ref $data) {
|
||||
if (! Scalar::Util::looks_like_number($self->{"_${attr}"})) {
|
||||
# https://github.com/netdisco/snmp-info/issues/464
|
||||
# perhaps this is being set twice and first time gets $data ??
|
||||
$self->{"_${attr}"} = 0;
|
||||
}
|
||||
$self->{"_${attr}"}++;
|
||||
$store->{$attr} = $data;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# Load MIB for leafs referenced within class
|
||||
%MIBS = ('IF-MIB' => 'ifIndex',);
|
||||
@@ -63,7 +63,8 @@ sub agg_ports_ifstack {
|
||||
foreach my $idx ( keys %$ifStack ) {
|
||||
my ( $higher, $lower ) = split /\./, $idx;
|
||||
next if ( $higher == 0 or $lower == 0 );
|
||||
if ( $ifType->{ $higher } eq 'ieee8023adLag' or $ifType->{ $higher } eq 'propMultiplexor') {
|
||||
if ( $ifType->{ $higher } eq 'ieee8023adLag'
|
||||
or $ifType->{ $higher } eq 'propMultiplexor' ) {
|
||||
$ret->{ $lower } = $higher;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info;
|
||||
our
|
||||
($VERSION, $DEBUG, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $INIT, %CDP_CAPABILITIES);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# Five data structures required by SNMP::Info
|
||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
|
||||
|
||||
@@ -33,6 +33,7 @@ use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::IEEE802dot3ad;
|
||||
use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
@SNMP::Info::CiscoAgg::ISA = qw/
|
||||
SNMP::Info::IEEE802dot3ad
|
||||
@@ -48,7 +49,7 @@ use SNMP::Info::IEEE802dot3ad;
|
||||
|
||||
our ($DEBUG, $VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
@@ -134,10 +135,48 @@ sub agg_ports_lag {
|
||||
return $mapping;
|
||||
}
|
||||
|
||||
# version of SNMP::Info::Aggregate which uses propVirtual
|
||||
# because CISCO-PAGP-MIB says "The ifType of an agport is propVirtual"
|
||||
# but we need to filter out the VLANs and stuff so check against
|
||||
# CISCO-PAGP-MIB::pagpEthcOperationMode
|
||||
sub agg_ports_propvirtual {
|
||||
my $dev = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $ifStack = $dev->ifStackStatus();
|
||||
my $pagpOperMode = $dev->pagpEthcOperationMode() || {};
|
||||
# TODO: if we want to do partial, we need to use inverse status
|
||||
my $ifType = $dev->ifType();
|
||||
|
||||
my $ret = {};
|
||||
|
||||
foreach my $idx ( keys %$ifStack ) {
|
||||
my ( $higher, $lower ) = split /\./, $idx;
|
||||
next if ( $higher == 0 or $lower == 0 );
|
||||
if ( $ifType->{ $higher } eq 'propVirtual' ) {
|
||||
|
||||
# lower needs also to be configured in pagpEthcOperationMode
|
||||
next unless exists $pagpOperMode->{$lower}
|
||||
and defined $pagpOperMode->{$lower}
|
||||
and $pagpOperMode->{$lower} =~ m/^(?:manual|pagpOn)$/;
|
||||
|
||||
$ret->{ $lower } = $higher;
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
# combine PAgP, LAG & Cisco proprietary data
|
||||
sub agg_ports {
|
||||
my $ret = {%{agg_ports_pagp(@_)}, %{agg_ports_lag(@_)}, %{agg_ports_cisco(@_)}};
|
||||
my $ret = {
|
||||
%{agg_ports_propvirtual(@_)},
|
||||
%{agg_ports_ifstack(@_)},
|
||||
%{agg_ports_pagp(@_)},
|
||||
%{agg_ports_lag(@_)},
|
||||
%{agg_ports_cisco(@_)},
|
||||
};
|
||||
return $ret;
|
||||
}
|
||||
|
||||
@@ -212,6 +251,11 @@ even if they are not running an aggregation protocol.
|
||||
Implements the PAgP LAG info retrieval. Merged into C<agg_ports> data
|
||||
automatically.
|
||||
|
||||
=item C<agg_ports_propvirtual>
|
||||
|
||||
A version of SNMP::Info::Aggregate::agg_ports_ifstack that inspects only
|
||||
ports of type propVirtual. You still need to use agg_ports_ifstack.
|
||||
|
||||
=item C<lag_members>
|
||||
|
||||
Mimics C<ad_lag_ports> from L<SNMP::Info::IEEE802dot3ad> but based on ifindex
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'CISCO-BGP4-MIB' => 'cbgpPeer2State', );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PAECAPABILITIES);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
|
||||
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use Exporter;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'SNMPv2-MIB' => 'sysDescr',
|
||||
@@ -109,6 +109,11 @@ sub os {
|
||||
return 'ios-xe' if ( $descr =~ /Fuji/ );
|
||||
return 'ios-xe' if ( $descr =~ /Everest/ );
|
||||
return 'ios-xe' if ( $descr =~ /Gibraltar/ );
|
||||
return 'ios-xe' if ( $descr =~ /Amsterdam/ );
|
||||
return 'ios-xe' if ( $descr =~ /Bengaluru/ );
|
||||
return 'ios-xe' if ( $descr =~ /Cupertino/ );
|
||||
return 'ios-xe' if ( $descr =~ /Dublin/ );
|
||||
return 'ios-xe' if ( $descr =~ /IOSXE/ );
|
||||
return 'ios-xe' if ( $descr =~ /IOS-XE/ );
|
||||
return 'ios-xr' if ( $descr =~ /IOS XR/ );
|
||||
return 'ios' if ( $descr =~ /IOS/ );
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT, $INIT);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||
@@ -199,6 +199,32 @@ sub i_vlan {
|
||||
return \%i_vlans;
|
||||
}
|
||||
|
||||
sub i_subinterfaces {
|
||||
my $vtp = shift;
|
||||
my %i_subs = %{ $vtp->SUPER::i_subinterfaces() || {} };
|
||||
|
||||
# CISCO-VLAN-IFTABLE-RELATION-MIB
|
||||
# Used for traditional Cisco Routers and Aironet
|
||||
|
||||
my $v_cvi_if = $vtp->v_cvi_if();
|
||||
if ( defined $v_cvi_if ) {
|
||||
|
||||
# Translate vlan.parent_physical_interface_iid -> iid
|
||||
# to iid -> [iid, iid, ...]
|
||||
foreach my $i ( keys %$v_cvi_if ) {
|
||||
my ( $vlan, $phys ) = split( /\./, $i );
|
||||
my $iid = $v_cvi_if->{$i};
|
||||
|
||||
next unless $phys and $iid;
|
||||
next if $phys == $iid;
|
||||
|
||||
push @{ $i_subs{$phys} }, $iid;
|
||||
}
|
||||
}
|
||||
|
||||
return \%i_subs;
|
||||
}
|
||||
|
||||
sub i_untagged {
|
||||
my $vtp = shift;
|
||||
my ( $ifindex ) = @_;
|
||||
@@ -625,6 +651,22 @@ IDs. These are the VLANs which are members of enabled VLAN list for the port.
|
||||
print "Port: $port VLAN: $vlan\n";
|
||||
}
|
||||
|
||||
=item $vtp->i_subinterfaces()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of
|
||||
C<ifIndex>. These are the VLAN subinterfaces (C<l2vlan> type) for the parent
|
||||
(C<ethernetCsmacd> type) interface.
|
||||
|
||||
Example:
|
||||
my $interfaces = $vtp->interfaces();
|
||||
my $i_subs = $vtp->i_subinterfaces();
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $subs = join(',', sort(map {$interfaces->{$_}} @{$i_subs->{$iid}}));
|
||||
print "Port: $port has subinterfaces: $subs\n";
|
||||
}
|
||||
|
||||
=item $vtp->i_vlan_membership_untagged()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of VLAN
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS
|
||||
|
||||
@@ -11,7 +11,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'DOCS-IF3-MIB' => 'docsIf3Mib',
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'IEEE8021-Q-BRIDGE-MIB' => 'ieee8021QBridgeVlanCurrentEgressPorts',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Aggregate;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Aggregate::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use constant {
|
||||
IPV6MIB => 3,
|
||||
};
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
'LLDP-MIB' => 'lldpLocSysCapEnabled',
|
||||
@@ -52,6 +52,8 @@ $VERSION = '3.82';
|
||||
'lldp_sysname' => 'lldpLocSysName',
|
||||
'lldp_sysdesc' => 'lldpLocSysDesc',
|
||||
'lldp_sys_cap' => 'lldpLocSysCapEnabled',
|
||||
'lldp_loc_id_type' => 'lldpLocChassisIdSubtype',
|
||||
'lldp_loc_id_os' => 'lldpLocChassisId',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -283,6 +285,29 @@ sub lldp_port {
|
||||
return \%lldp_port;
|
||||
}
|
||||
|
||||
sub _lldp_id_string {
|
||||
my $lldp = shift;
|
||||
my $id = shift;
|
||||
my $type = shift;
|
||||
|
||||
# May need to format other types in the future
|
||||
if ( $type =~ /mac/ ) {
|
||||
$id = SNMP::Info::munge_mac($id)
|
||||
} elsif ( $type eq 'networkAddress' ) {
|
||||
if ( length( unpack( 'H*', $id ) ) == 10 ) {
|
||||
|
||||
# IP address - first octet is IANA Address Family Number, need
|
||||
# walk with IPv6
|
||||
my @octets
|
||||
= ( map { sprintf "%02x", $_ } unpack( 'C*', $id ) )
|
||||
[ 1 .. 4 ];
|
||||
$id = join '.', map { hex($_) } @octets;
|
||||
}
|
||||
}
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
sub lldp_id {
|
||||
my $lldp = shift;
|
||||
my $partial = shift;
|
||||
@@ -297,26 +322,19 @@ sub lldp_id {
|
||||
my $type = $ch_type->{$key};
|
||||
next unless $type;
|
||||
|
||||
# May need to format other types in the future
|
||||
if ( $type =~ /mac/ ) {
|
||||
$id = SNMP::Info::munge_mac($id)
|
||||
}
|
||||
elsif ( $type eq 'networkAddress' ) {
|
||||
if ( length( unpack( 'H*', $id ) ) == 10 ) {
|
||||
|
||||
# IP address - first octet is IANA Address Family Number, need
|
||||
# walk with IPv6
|
||||
my @octets
|
||||
= ( map { sprintf "%02x", $_ } unpack( 'C*', $id ) )
|
||||
[ 1 .. 4 ];
|
||||
$id = join '.', map { hex($_) } @octets;
|
||||
}
|
||||
}
|
||||
$id = $lldp->_lldp_id_string($id, $type);
|
||||
$lldp_id{$key} = $id;
|
||||
}
|
||||
return \%lldp_id;
|
||||
}
|
||||
|
||||
sub lldp_loc_id {
|
||||
my $lldp = shift;
|
||||
my $ch_type = $lldp->lldp_loc_id_type();
|
||||
my $ch = $lldp->lldp_loc_id_os();
|
||||
return $lldp->_lldp_id_string($ch, $ch_type);
|
||||
}
|
||||
|
||||
sub lldp_platform {
|
||||
my $lldp = shift;
|
||||
my $partial = shift;
|
||||
@@ -586,6 +604,22 @@ capability and nothing else."
|
||||
|
||||
(C<lldpLocSysCapEnabled>)
|
||||
|
||||
=item $lldp->lldp_loc_id()
|
||||
|
||||
The string value used to identify the chassis component associated with
|
||||
the local system.
|
||||
|
||||
(C<lldpLocChassisId>)
|
||||
|
||||
=item $lldp->lldp_loc_id_type()
|
||||
|
||||
The type of encoding used to identify the chassis associated with the
|
||||
local system.
|
||||
|
||||
This is used by the above method to decode the octet string in C<lldpLocChassisId>
|
||||
|
||||
(C<lldpLocChassisIdSubtype>)
|
||||
|
||||
=back
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer1::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -37,22 +37,32 @@ use Exporter;
|
||||
use SNMP::Info;
|
||||
use SNMP::Info::Bridge;
|
||||
use SNMP::Info::Entity;
|
||||
use SNMP::Info::PortAccessEntity;
|
||||
use SNMP::Info::PowerEthernet;
|
||||
use SNMP::Info::LLDP;
|
||||
use SNMP::Info::DocsisHE;
|
||||
|
||||
@SNMP::Info::Layer2::ISA
|
||||
= qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::Entity SNMP::Info::PowerEthernet SNMP::Info::LLDP SNMP::Info::DocsisHE Exporter/;
|
||||
@SNMP::Info::Layer2::ISA = qw/
|
||||
SNMP::Info SNMP::Info::Bridge
|
||||
SNMP::Info::Entity
|
||||
SNMP::Info::PowerEthernet
|
||||
SNMP::Info::LLDP
|
||||
SNMP::Info::DocsisHE
|
||||
SNMP::Info::PortAccessEntity
|
||||
Exporter
|
||||
/;
|
||||
|
||||
@SNMP::Info::Layer2::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
%SNMP::Info::Entity::MIBS, %SNMP::Info::PowerEthernet::MIBS,
|
||||
%SNMP::Info::LLDP::MIBS, %SNMP::Info::DocsisHE::MIBS,
|
||||
%SNMP::Info::PortAccessEntity::MIBS
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
@@ -62,6 +72,7 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::Entity::GLOBALS,
|
||||
%SNMP::Info::PowerEthernet::GLOBALS,
|
||||
%SNMP::Info::LLDP::GLOBALS,
|
||||
%SNMP::Info::PortAccessEntity::GLOBALS,
|
||||
'serial1' =>
|
||||
'.1.3.6.1.4.1.9.3.6.3.0', # OLD-CISCO-CHASSIS-MIB::chassisId.0
|
||||
);
|
||||
@@ -70,6 +81,7 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::FUNCS, %SNMP::Info::Bridge::FUNCS,
|
||||
%SNMP::Info::Entity::FUNCS, %SNMP::Info::PowerEthernet::FUNCS,
|
||||
%SNMP::Info::LLDP::FUNCS, %SNMP::Info::DocsisHE::FUNCS,
|
||||
%SNMP::Info::PortAccessEntity::FUNCS
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
@@ -81,6 +93,7 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::Entity::MUNGE,
|
||||
%SNMP::Info::PowerEthernet::MUNGE,
|
||||
%SNMP::Info::LLDP::MUNGE,
|
||||
%SNMP::Info::PortAccessEntity::MUNGE,
|
||||
);
|
||||
|
||||
# Method OverRides
|
||||
@@ -236,6 +249,8 @@ after determining a more specific class using the method above.
|
||||
|
||||
=item SNMP::Info::PowerEthernet
|
||||
|
||||
=item SNMP::Info::PortAccessEntity
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
@@ -293,6 +308,10 @@ See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details.
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details.
|
||||
|
||||
=head2 Globals imported from SNMP::Info::PortAccessEntity
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
@@ -327,4 +346,8 @@ See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details.
|
||||
|
||||
See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::PortAccessEntity
|
||||
|
||||
See documentation in L<SNMP::Info::PortAccessEntity/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot11;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::IEEE802dot11::GLOBALS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::Cisco::GLOBALS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::Cisco::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::SONMP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
227
lib/SNMP/Info/Layer2/Hirschmann.pm
Normal file
227
lib/SNMP/Info/Layer2/Hirschmann.pm
Normal file
@@ -0,0 +1,227 @@
|
||||
# SNMP::Info::Layer2::Hirschmann - SNMP Interface to Hirschmann Devices
|
||||
#
|
||||
# Copyright (c) 2019 by The Netdisco Developer Team.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::Hirschmann;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
use SNMP::Info::CDP;
|
||||
|
||||
@SNMP::Info::Layer2::Hirschmann::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Hirschmann::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
'HMPRIV-MGMT-SNMP-MIB' => 'hirschmann',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'h_serial_number' => 'hmSysGroupTable.hmSysGroupEntry.hmSysGroupSerialNum.1',
|
||||
'os_version' => 'hmSysVersion.0'
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer2::FUNCS,
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
%SNMP::Info::Layer2::MUNGE,
|
||||
);
|
||||
|
||||
sub os {
|
||||
return 'Hirschmann';
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $hirschmann = shift;
|
||||
my $model = $hirschmann->model();
|
||||
my $id = $hirschmann->id();
|
||||
my $serial;
|
||||
|
||||
return $hirschmann->h_serial_number() if ( $hirschmann->h_serial_number() );
|
||||
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $hirschmann = shift;
|
||||
my $model = $hirschmann->model();
|
||||
my $id = $hirschmann->id();
|
||||
|
||||
my $os_version = $hirschmann->os_version();
|
||||
if ( $os_version =~ m/(SW:\sL2.-\d{1,2}\.\d\.\d{2})/ ) {
|
||||
return $1;
|
||||
}
|
||||
|
||||
return $id unless defined $os_version;
|
||||
|
||||
return $os_version;
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'Hirschmann';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $hmodel = shift;
|
||||
my $id = $hmodel->id();
|
||||
|
||||
my $model = &SNMP::translateObj($id) || $id;
|
||||
|
||||
# model return by snmp is rs30 also if its a rs40
|
||||
if (defined $model && $model !~ /rs30/) {
|
||||
return uc $model;
|
||||
} else {
|
||||
return 'RS40-30';
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sub mac {
|
||||
my $hirschmann = shift;
|
||||
my $i_descr = $hirschmann->i_description();
|
||||
my $i_mac = $hirschmann->i_mac();
|
||||
|
||||
# Return Interface MAC addresse of the switch (on the CPU pseudo interface)
|
||||
foreach my $entry ( sort keys %$i_descr ) {
|
||||
my $descr = $i_descr->{$entry};
|
||||
if ($descr =~ m/(^CPU.)/) {
|
||||
my $sn = $i_mac->{$entry};
|
||||
# next unless $sn;
|
||||
return $sn;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Hirschamnn - SNMP Interface to L2 Hirschmann Switches
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Christophe COMTE
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $router = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $router->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Hirschmann L2 devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
=item F<>
|
||||
|
||||
=item Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $device->vendor()
|
||||
|
||||
Returns 'hirschmann'
|
||||
|
||||
=item $device->os()
|
||||
|
||||
Returns 'hirschmann'
|
||||
|
||||
=item $device->os_ver()
|
||||
|
||||
Return os version
|
||||
|
||||
=item $device->mac()
|
||||
|
||||
Return Interface MAC addresse of the switch (on the CPU pseudo interface).
|
||||
|
||||
=item $device->model()
|
||||
|
||||
Returns device model extracted from description
|
||||
|
||||
=item $device->serial()
|
||||
|
||||
Returns serial number
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer2
|
||||
|
||||
See documentation in 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.
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
@@ -54,7 +54,7 @@ use SNMP::Info::DocsisHE;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
@@ -277,6 +277,30 @@ sub model {
|
||||
return $model;
|
||||
}
|
||||
|
||||
sub i_subinterfaces {
|
||||
my $dev = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $ifstack = $dev->i_stack_status() || {};
|
||||
# TODO: if we want to do partial, we need to use inverse status
|
||||
my $iftype = $dev->i_type() || {};
|
||||
|
||||
my $ret = $dev->SUPER::i_subinterfaces() || {};
|
||||
|
||||
foreach my $idx ( keys %$ifstack ) {
|
||||
next unless $ifstack->{$idx} eq 'active';
|
||||
|
||||
my ( $higher, $lower ) = split /\./, $idx;
|
||||
next if ( $higher == 0 or $lower == 0 );
|
||||
|
||||
if ( $iftype->{ $higher } eq 'l2vlan' or $iftype->{ $higher } eq 'l3ipvlan') {
|
||||
push @{ $ret->{ $lower } }, $higher;
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub i_name {
|
||||
my $l3 = shift;
|
||||
my $partial = shift;
|
||||
@@ -611,6 +635,22 @@ name.
|
||||
|
||||
Only returns those iids that have a description listed in $l3->i_description()
|
||||
|
||||
=item $l3->i_subinterfaces()
|
||||
|
||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of
|
||||
C<ifIndex>. These are the VLAN subinterfaces (C<l2vlan> type) for the parent
|
||||
(C<ethernetCsmacd> type) interface.
|
||||
|
||||
Example:
|
||||
my $interfaces = $l3->interfaces();
|
||||
my $i_subs = $l3->i_subinterfaces();
|
||||
|
||||
foreach my $iid (sort keys %$interfaces) {
|
||||
my $port = $interfaces->{$iid};
|
||||
my $subs = join(',', sort(map {$interfaces->{$_}} @{$i_subs->{$iid}}));
|
||||
print "Port: $port has subinterfaces: $subs\n";
|
||||
}
|
||||
|
||||
=item $l3->i_name()
|
||||
|
||||
Returns reference to hash of iid to human set name.
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE,
|
||||
$int_include_vpn, $fake_idx, $type_class);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802_Bridge;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -56,6 +56,7 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::IEEE802_Bridge::MIBS,
|
||||
'ARUBAWIRED-FAN-MIB' => 'arubaWiredFanName',
|
||||
'ARUBAWIRED-VSF-MIB' => 'arubaWiredVsfTrapEnable',
|
||||
'ARUBAWIRED-POE-MIB' => 'arubaWiredPoePethPsePortAveragePower',
|
||||
'ARUBAWIRED-POWERSUPPLY-MIB' => 'arubaWiredPSUName',
|
||||
);
|
||||
|
||||
@@ -73,12 +74,14 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
%SNMP::Info::IEEE802dot3ad::FUNCS,
|
||||
%SNMP::Info::IEEE802_Bridge::FUNCS,
|
||||
'peth_port_power' => 'arubaWiredPoePethPsePortAveragePower',
|
||||
'fan_names' => 'arubaWiredFanName',
|
||||
'fan_states' => 'arubaWiredFanState',
|
||||
'psu_names' => 'arubaWiredPSUName',
|
||||
'psu_types' => 'arubaWiredPSUProductName',
|
||||
'psu_states' => 'arubaWiredPSUState',
|
||||
'vsf_prod_names' => 'arubaWiredVsfMemberProductName',
|
||||
'raw_ad_lag_ports' => 'dot3adAggPortListPorts', # unmunged raw data
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
@@ -154,7 +157,37 @@ sub os_ver {
|
||||
return $ver_release->{1};
|
||||
}
|
||||
|
||||
sub agg_ports { return agg_ports_lag(@_) }
|
||||
# agg_ports should return a hash with
|
||||
# ifindex of member -> ifindex of aggregation
|
||||
#
|
||||
# arabuaos-cx has a broken implementation of
|
||||
# dot3adAggPortListPorts / 1.2.840.10006.300.43.1.1.2.1.1
|
||||
# it return a comma seperated String with interface names
|
||||
# (rfc states a PortList / bitmask of member ports)
|
||||
#
|
||||
# fetch value, split at comma, reverse search the interface hash
|
||||
# for the interface index
|
||||
|
||||
sub agg_ports {
|
||||
my $cx = shift;
|
||||
my $ret = {};
|
||||
my $ports = $cx->raw_ad_lag_ports();
|
||||
my $interfaces = $cx->interfaces();
|
||||
foreach my $m ( keys %$ports ) {
|
||||
my $idx = $m;
|
||||
my $portlist = $ports->{$m};
|
||||
next unless $portlist;
|
||||
|
||||
foreach my $ifname ( split(/,/, $portlist) ) {
|
||||
foreach my $ifindex ( keys %$interfaces) {
|
||||
if ($interfaces->{$ifindex} eq $ifname) {
|
||||
$ret->{$ifindex} = $idx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
# Overrides for VLAN & forwarding table methods
|
||||
sub v_name {
|
||||
@@ -233,7 +266,11 @@ Subclass for devices running ArubaOS-CX
|
||||
=over
|
||||
|
||||
=item F<ARUBAWIRED-FAN-MIB>
|
||||
|
||||
=item F<ARUBAWIRED-VSF-MIB>
|
||||
|
||||
=item F<ARUBAWIRED-POE-MIB>
|
||||
|
||||
=item F<ARUBAWIRED-POWERSUPPLY-MIB>
|
||||
|
||||
=item Inherited Classes' MIBs
|
||||
@@ -302,6 +339,15 @@ See documentation in L<SNMP::Info::IEEE802dot3ad> for details.
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $cx->peth_port_power()
|
||||
|
||||
Power supplied by PoE ports, in milliwatts.
|
||||
(C<arubaWiredPoePethPsePortAveragePower>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE, %MODEL_MAP,
|
||||
%MODID_MAP, %PROCID_MAP);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::MAU;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MAU::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C6500::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -56,7 +56,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -116,6 +116,9 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::CiscoVTP::MUNGE,
|
||||
);
|
||||
|
||||
|
||||
# the i_vlan in SUPER is just fine; this exists to catch any dotted vlan
|
||||
# subinterfaces not caught by CiscoVTP
|
||||
sub i_vlan {
|
||||
my $cisco = shift;
|
||||
my $partial = shift;
|
||||
@@ -126,18 +129,17 @@ sub i_vlan {
|
||||
|
||||
foreach my $idx ( keys %$i_descr ) {
|
||||
next unless $i_type->{$idx};
|
||||
if ( $i_type->{$idx} eq 'l2vlan'
|
||||
|| $i_type->{$idx} eq '135' && !defined $i_vlan->{$idx} )
|
||||
{
|
||||
# Not sure where this regex came from, anchored at end?
|
||||
if ( $i_descr->{$idx} =~ /\.(\d+)$/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
next unless (($i_type->{$idx} eq 'l2vlan' or $i_type->{$idx} eq '135')
|
||||
and !defined $i_vlan->{$idx});
|
||||
|
||||
# This matches 101 in 'Ethernet0.101-802.1Q vLAN subif'
|
||||
elsif ( $i_descr->{$idx} =~ /\.(\d+)-/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
# Not sure where this regex came from, anchored at end?
|
||||
if ( $i_descr->{$idx} =~ /\.(\d+)$/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
|
||||
# This matches 101 in 'Ethernet0.101-802.1Q vLAN subif'
|
||||
elsif ( $i_descr->{$idx} =~ /\.(\d+)-/ ) {
|
||||
$i_vlan->{$idx} = $1;
|
||||
}
|
||||
}
|
||||
return $i_vlan;
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ use Exporter;
|
||||
use SNMP::Info::CiscoAgg;
|
||||
use SNMP::Info::CiscoPortSecurity;
|
||||
use SNMP::Info::Layer3::Cisco;
|
||||
use SNMP::Info::PortAccessEntity;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@@ -42,35 +43,40 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
SNMP::Info::CiscoAgg
|
||||
SNMP::Info::CiscoPortSecurity
|
||||
SNMP::Info::Layer3::Cisco
|
||||
SNMP::Info::PortAccessEntity
|
||||
Exporter
|
||||
/;
|
||||
|
||||
@SNMP::Info::Layer3::CiscoSwitch::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::Cisco::MIBS,
|
||||
%SNMP::Info::CiscoPortSecurity::MIBS,
|
||||
%SNMP::Info::CiscoAgg::MIBS,
|
||||
%SNMP::Info::PortAccessEntity::MIBS,
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::Cisco::GLOBALS,
|
||||
%SNMP::Info::CiscoPortSecurity::GLOBALS,
|
||||
%SNMP::Info::CiscoAgg::GLOBALS,
|
||||
%SNMP::Info::PortAccessEntity::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer3::Cisco::FUNCS,
|
||||
%SNMP::Info::CiscoPortSecurity::FUNCS,
|
||||
%SNMP::Info::CiscoAgg::FUNCS,
|
||||
%SNMP::Info::PortAccessEntity::FUNCS,
|
||||
);
|
||||
|
||||
%MUNGE = (
|
||||
%SNMP::Info::Layer3::Cisco::MUNGE,
|
||||
%SNMP::Info::CiscoPortSecurity::MUNGE,
|
||||
%SNMP::Info::CiscoAgg::MUNGE,
|
||||
%SNMP::Info::PortAccessEntity::MUNGE,
|
||||
);
|
||||
|
||||
sub cisco_comm_indexing { return 1; }
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -49,12 +49,19 @@ $VERSION = '3.82';
|
||||
'RADLAN-HWENVIROMENT' => 'rlEnvPhysicalDescription',
|
||||
'Dell-Vendor-MIB' => 'productIdentificationVersion',
|
||||
'DELL-REF-MIB' => 'dell6224Switch',
|
||||
|
||||
# For DELL-OS10 devices
|
||||
'DELLEMC-OS10-PRODUCTS-MIB' => 'os10Products',
|
||||
'DELLEMC-OS10-CHASSIS-MIB' => 'os10SysObject',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'dell_os_ver' => 'productIdentificationVersion',
|
||||
'dell_id_name' => 'productIdentificationDisplayName',
|
||||
|
||||
# For DELL-OS10
|
||||
'dell_os10_id_name' => 'os10ChassisType',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -102,6 +109,15 @@ $VERSION = '3.82';
|
||||
# RADLAN-HWENVIROMENT:rlEnvMonFanStatusTable
|
||||
'dell_fan_state' => 'rlEnvMonFanState',
|
||||
'dell_fan_desc' => 'rlEnvMonFanStatusDescr',
|
||||
|
||||
# DELLEMC-OS10-CHASSIS-MIB:os10PowerSupplyTable
|
||||
'dell_os10_pwr_src' => 'os10PowerSupplyType',
|
||||
'dell_os10_pwr_state' => 'os10PowerSupplyOperStatus',
|
||||
|
||||
# DELLEMC-OS10-CHASSIS-MIB:os10FanTable
|
||||
'dell_os10_fan_state' => 'os10FanOperStatus',
|
||||
'dell_os10_fan_ent' => 'os10FanEntity',
|
||||
'dell_os10_fan_slot' => 'os10FanEntitySlot',
|
||||
);
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
@@ -112,10 +128,13 @@ sub model {
|
||||
my $dell = shift;
|
||||
|
||||
my $name = $dell->dell_id_name();
|
||||
my $os10_name = $dell->dell_os10_id_name();
|
||||
my $id = $dell->id();
|
||||
|
||||
if ( defined $name and $name =~ m/(\d+)/ ) {
|
||||
return $1;
|
||||
} elsif (defined $os10_name) {
|
||||
return $os10_name;
|
||||
}
|
||||
|
||||
return unless defined $id;
|
||||
@@ -163,6 +182,9 @@ sub fan {
|
||||
|
||||
my $fan = $dell->dell_fan_desc() || {};
|
||||
my $state = $dell->dell_fan_state() || {};
|
||||
my $os10_fan_ent = $dell->dell_os10_fan_ent() || {};
|
||||
my $os10_fan_slot = $dell->dell_os10_fan_slot() || {};
|
||||
my $os10_state = $dell->dell_os10_fan_state() || {};
|
||||
|
||||
if (scalar keys %$fan) {
|
||||
my @messages = ();
|
||||
@@ -176,14 +198,25 @@ sub fan {
|
||||
if scalar @messages == 0;
|
||||
|
||||
return (join ", ", @messages);
|
||||
} elsif (scalar keys %$os10_fan_ent) {
|
||||
my @messages = ();
|
||||
|
||||
foreach my $k (keys %$os10_fan_ent) {
|
||||
next if $os10_state->{$k} and $os10_state->{$k} eq 'up';
|
||||
push @messages, "$os10_fan_ent->{$k}_$os10_fan_slot->{$k}: $os10_state->{$k}";
|
||||
}
|
||||
|
||||
push @messages, ((scalar keys %$os10_fan_ent). " fans OK");
|
||||
|
||||
return (join ", ", @messages);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub ps1_type {
|
||||
my $dell = shift;
|
||||
|
||||
my $src = $dell->dell_pwr_src() || {};
|
||||
my $src = $dell->dell_pwr_src() || $dell->dell_os10_pwr_src() || {};
|
||||
|
||||
foreach my $k (sort keys %$src) {
|
||||
next unless $src->{$k};
|
||||
@@ -195,7 +228,7 @@ sub ps1_type {
|
||||
sub ps2_type {
|
||||
my $dell = shift;
|
||||
|
||||
my $src = $dell->dell_pwr_src() || {};
|
||||
my $src = $dell->dell_pwr_src() || $dell->dell_os10_pwr_src() || {};
|
||||
|
||||
my $i = 0;
|
||||
foreach my $k (sort keys %$src) {
|
||||
@@ -209,7 +242,7 @@ sub ps2_type {
|
||||
sub ps1_status {
|
||||
my $dell = shift;
|
||||
|
||||
my $status = $dell->dell_pwr_state() || {};
|
||||
my $status = $dell->dell_pwr_state() || $dell->dell_os10_pwr_state() || {};
|
||||
|
||||
foreach my $k (sort keys %$status) {
|
||||
next unless $status->{$k};
|
||||
@@ -221,7 +254,7 @@ sub ps1_status {
|
||||
sub ps2_status {
|
||||
my $dell = shift;
|
||||
|
||||
my $status = $dell->dell_pwr_state() || {};
|
||||
my $status = $dell->dell_pwr_state() || $dell->dell_os10_pwr_state() || {};
|
||||
|
||||
my $i = 0;
|
||||
foreach my $k (sort keys %$status) {
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, $DEBUG, %GLOBALS, %FUNCS, $INIT, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::EDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.82';
|
||||
$VERSION = '3.95';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -54,9 +54,9 @@ $VERSION = '3.82';
|
||||
'ps2_status' => 'sysChassisPowerSupplyStatus.2',
|
||||
|
||||
# Named serial1 to override serial1 in L3 serial method
|
||||
'serial1' => 'sysGeneralChassisSerialNum',
|
||||
'qb_vlans' => 'sysVlanNumber',
|
||||
'ports' => 'sysInterfaceNumber',
|
||||
'serial1' => 'sysGeneralChassisSerialNum',
|
||||
'qb_vlans' => 'sysVlanNumber',
|
||||
'ports' => 'sysInterfaceNumber',
|
||||
|
||||
);
|
||||
|
||||
@@ -64,39 +64,19 @@ $VERSION = '3.82';
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
|
||||
# sysInterfaceTable
|
||||
'i_index' => 'sysInterfaceName',
|
||||
'i_description' => 'sysInterfaceName',
|
||||
'i_mtu' => 'sysInterfaceMtu',
|
||||
'i_speed' => 'sysInterfaceMediaActiveSpeed',
|
||||
'i_mac' => 'sysInterfaceMacAddr',
|
||||
'i_up_admin' => 'sysInterfaceEnabled',
|
||||
'i_up' => 'sysInterfaceStatus',
|
||||
|
||||
# sysIfxStatTable
|
||||
'i_octet_in64' => 'sysIfxStatHcInOctets',
|
||||
'i_octet_out64' => 'sysIfxStatHcOutOctets',
|
||||
'i_pkts_ucast_in64' => 'sysIfxStatHcInUcastPkts',
|
||||
'i_pkts_ucast_out64' => 'sysIfxStatHcOutUcastPkts',
|
||||
'i_pkts_mutli_in64' => 'sysIfxStatInMulticastPkts',
|
||||
'i_pkts_multi_out64' => 'sysIfxStatOutMulticastPkts',
|
||||
'i_pkts_bcast_in64' => 'sysIfxStatInBroadcastPkts',
|
||||
'i_pkts_bcast_out64' => 'sysIfxStatOutBroadcastPkts',
|
||||
|
||||
# sysInterfaceStatTable
|
||||
'i_discards_in' => 'sysInterfaceStatDropsIn',
|
||||
'i_discards_out' => 'sysInterfaceStatDropsOut',
|
||||
'i_errors_in' => 'sysInterfaceStatErrorsIn',
|
||||
'i_errors_out' => 'sysInterfaceStatErrorsOut',
|
||||
|
||||
# sysInterfaceTable
|
||||
'sys_i_duplex' => 'sysInterfaceMediaActiveDuplex',
|
||||
'sys_i_description' => 'sysInterfaceName',
|
||||
'sys_i_mtu' => 'sysInterfaceMtu',
|
||||
'sys_i_speed' => 'sysInterfaceMediaActiveSpeed',
|
||||
'sys_i_up_admin' => 'sysInterfaceEnabled',
|
||||
'sys_i_up' => 'sysInterfaceStatus',
|
||||
'sys_i_duplex' => 'sysInterfaceMediaActiveDuplex',
|
||||
|
||||
# sysChassisFanTable
|
||||
'fan_state' => 'sysChassisFanStatus',
|
||||
|
||||
# sysVlanTable
|
||||
'sys_v_id' => 'sysVlanId',
|
||||
'v_name' => 'sysVlanVname',
|
||||
'sys_v_name' => 'sysVlanVname',
|
||||
|
||||
# sysVlanMemberTable
|
||||
'sys_vm_tagged' => 'sysVlanMemberTagged',
|
||||
@@ -106,6 +86,22 @@ $VERSION = '3.82';
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub _convert_f5id_stdid {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
my $id = shift;
|
||||
my $sys_i_description = $f5->sys_i_description($partial) || {};
|
||||
my $i_name = $f5->i_name($partial) || {};
|
||||
|
||||
if (exists($sys_i_description->{$id})) {
|
||||
my @result = grep { $i_name->{$_} eq $sys_i_description->{$id} } keys %$i_name;
|
||||
if (scalar @result eq 1) {
|
||||
return $result[0];
|
||||
}
|
||||
}
|
||||
return $id;
|
||||
};
|
||||
|
||||
sub vendor {
|
||||
return 'f5';
|
||||
}
|
||||
@@ -141,36 +137,18 @@ sub model {
|
||||
return $model;
|
||||
}
|
||||
|
||||
# Override L3 interfaces
|
||||
sub interfaces {
|
||||
# Override L3 i_mtu
|
||||
sub i_mtu {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
return $f5->i_index($partial);
|
||||
}
|
||||
|
||||
# Override L3 i_name
|
||||
sub i_name {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
return $f5->i_index($partial);
|
||||
}
|
||||
|
||||
# We don't have this, so fake it
|
||||
sub i_type {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $idx = $f5->i_index($partial);
|
||||
|
||||
my %i_type;
|
||||
foreach my $if ( keys %$idx ) {
|
||||
$i_type{$if} =
|
||||
((exists $f5->{sess}->{UseEnums} and $f5->{sess}->{UseEnums})
|
||||
? 'ethernetCsmacd' : 6 );
|
||||
my $mtu = $f5->sys_i_mtu($partial) || {};
|
||||
my $i_mtu = {};
|
||||
while (my ($iid,$value) = each( %$mtu )) {
|
||||
$i_mtu->{$f5->_convert_f5id_stdid($partial,$iid)} = $value;
|
||||
}
|
||||
return \%i_type;
|
||||
|
||||
return $i_mtu;
|
||||
}
|
||||
|
||||
# Override L3 i_duplex
|
||||
@@ -180,15 +158,14 @@ sub i_duplex {
|
||||
|
||||
my $duplexes = $f5->sys_i_duplex() || {};
|
||||
|
||||
my %i_duplex;
|
||||
foreach my $if ( keys %$duplexes ) {
|
||||
my $duplex = $duplexes->{$if};
|
||||
my $i_duplex = {};
|
||||
while (my ($iid,$duplex) = each( %$duplexes )) {
|
||||
next unless defined $duplex;
|
||||
next if ( $duplex eq 'none' );
|
||||
|
||||
$i_duplex{$if} = $duplex;
|
||||
$i_duplex->{$f5->_convert_f5id_stdid($partial,$iid)} = $duplex;
|
||||
}
|
||||
return \%i_duplex;
|
||||
return $i_duplex;
|
||||
}
|
||||
|
||||
# Override Bridge v_index
|
||||
@@ -196,14 +173,34 @@ sub v_index {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
return $f5->sys_v_id($partial);
|
||||
my $v_idx = $f5->sys_v_id($partial);
|
||||
my $v_index = {};
|
||||
while (my ($vid,$value) = each( %$v_idx )) {
|
||||
$v_index->{$vid =~ s/\.//gr} = $value;
|
||||
}
|
||||
|
||||
return $v_index;
|
||||
}
|
||||
|
||||
# Override Bridge v_name
|
||||
sub v_name {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $vlan_names = $f5->sys_v_name($partial) || {};
|
||||
my $v_name = {};
|
||||
while (my ($vid,$value) = each( %$vlan_names )) {
|
||||
$v_name->{$vid =~ s/\.//gr} = $value;
|
||||
}
|
||||
|
||||
return $v_name;
|
||||
}
|
||||
|
||||
sub i_vlan {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $index = $f5->i_index($partial) || {};
|
||||
my $index = $f5->interfaces($partial) || {};
|
||||
my $tagged = $f5->sys_vm_tagged() || {};
|
||||
my $vlans = $f5->v_index() || {};
|
||||
|
||||
@@ -214,10 +211,10 @@ sub i_vlan {
|
||||
|
||||
# IID is length.vlan name index.length.interface index
|
||||
# Split out and use as the IID to get the VLAN ID and ifIndex
|
||||
my @iid_array = split /\./, $iid;
|
||||
my @iid_array = split(/\./, $iid);
|
||||
my $len = $iid_array[0];
|
||||
my $v_idx = join '.', ( splice @iid_array, 0, $len + 1 );
|
||||
my $idx = join '.', @iid_array;
|
||||
my $v_idx = join('', ( splice @iid_array, 0, $len + 1 ));
|
||||
my $idx = $f5->_convert_f5id_stdid($partial,join('.', @iid_array));
|
||||
|
||||
# Check to make sure we can map to a port
|
||||
my $p_idx = $index->{$idx};
|
||||
@@ -235,7 +232,7 @@ sub i_vlan_membership {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $index = $f5->i_index($partial) || {};
|
||||
my $index = $f5->interfaces($partial) || {};
|
||||
my $tagged = $f5->sys_vm_tagged() || {};
|
||||
my $vlans = $f5->v_index() || {};
|
||||
|
||||
@@ -244,10 +241,10 @@ sub i_vlan_membership {
|
||||
|
||||
# IID is length.vlan name index.length.interface index
|
||||
# Split out and use as the IID to get the VLAN ID and ifIndex
|
||||
my @iid_array = split /\./, $iid;
|
||||
my @iid_array = split (/\./, $iid);
|
||||
my $len = $iid_array[0];
|
||||
my $v_idx = join '.', ( splice @iid_array, 0, $len + 1 );
|
||||
my $idx = join '.', @iid_array;
|
||||
my $v_idx = join ('.', ( splice @iid_array, 0, $len + 1 ));
|
||||
my $idx = $f5->_convert_f5id_stdid($partial,join ('.', @iid_array));
|
||||
|
||||
# Check to make sure we can map to a port
|
||||
my $p_idx = $index->{$idx};
|
||||
@@ -265,7 +262,7 @@ sub i_vlan_membership_untagged {
|
||||
my $f5 = shift;
|
||||
my $partial = shift;
|
||||
|
||||
my $index = $f5->i_index($partial) || {};
|
||||
my $index = $f5->interfaces($partial) || {};
|
||||
my $tagged = $f5->sys_vm_tagged() || {};
|
||||
my $vlans = $f5->v_index() || {};
|
||||
|
||||
@@ -275,10 +272,10 @@ sub i_vlan_membership_untagged {
|
||||
next unless $tagged->{$iid} eq 'false';
|
||||
# IID is length.vlan name index.length.interface index
|
||||
# Split out and use as the IID to get the VLAN ID and ifIndex
|
||||
my @iid_array = split /\./, $iid;
|
||||
my @iid_array = split (/\./, $iid);
|
||||
my $len = $iid_array[0];
|
||||
my $v_idx = join '.', ( splice @iid_array, 0, $len + 1 );
|
||||
my $idx = join '.', @iid_array;
|
||||
my $v_idx = join ('.', ( splice @iid_array, 0, $len + 1 ));
|
||||
my $idx = $f5->_convert_f5id_stdid($partial,join ('.', @iid_array));
|
||||
|
||||
# Check to make sure we can map to a port
|
||||
my $p_idx = $index->{$idx};
|
||||
@@ -394,16 +391,18 @@ reference to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $f5->interfaces()
|
||||
|
||||
Returns reference to the map between IID and physical port.
|
||||
|
||||
(C<sysInterfaceName>).
|
||||
|
||||
=item $f5->i_duplex()
|
||||
|
||||
Returns reference to hash. Maps port operational duplexes to IIDs.
|
||||
|
||||
(C<sysInterfaceMediaActiveDuplex>).
|
||||
|
||||
=item $f5->i_mtu()
|
||||
|
||||
Returns reference to hash. Maps port operational MTU to IIDs
|
||||
|
||||
(C<sysInterfaceMtu>).
|
||||
|
||||
=item $f5->i_vlan()
|
||||
|
||||
Returns a mapping between C<ifIndex> and the default VLAN.
|
||||
@@ -437,14 +436,6 @@ Returns VLAN IDs
|
||||
|
||||
Human-entered name for vlans.
|
||||
|
||||
=item $f5->i_name()
|
||||
|
||||
Returns the human set port name if exists.
|
||||
|
||||
=item $f5->i_type()
|
||||
|
||||
Returns C<'ethernetCsmacd'> for each C<ifIndex>.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer3
|
||||
@@ -452,3 +443,5 @@ Returns C<'ethernetCsmacd'> for each C<ifIndex>.
|
||||
See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
|
||||
# vim: expandtab tabstop=4 shiftwidth=4
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user