From 7621b30bc23fa65212125fe8dce6f1674b6f5942 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Mon, 19 Mar 2018 18:07:51 +0000 Subject: [PATCH 01/16] release 3.52 --- Changes | 8 + META.json | 244 +-- META.yml | 242 +-- README | 2554 ++++++++++++++----------- lib/SNMP/Info.pm | 4 +- lib/SNMP/Info/AMAP.pm | 2 +- lib/SNMP/Info/AdslLine.pm | 2 +- lib/SNMP/Info/Aggregate.pm | 2 +- lib/SNMP/Info/Airespace.pm | 2 +- lib/SNMP/Info/Bridge.pm | 2 +- lib/SNMP/Info/CDP.pm | 2 +- lib/SNMP/Info/CiscoAgg.pm | 2 +- lib/SNMP/Info/CiscoConfig.pm | 2 +- lib/SNMP/Info/CiscoPortSecurity.pm | 2 +- lib/SNMP/Info/CiscoPower.pm | 2 +- lib/SNMP/Info/CiscoQOS.pm | 2 +- lib/SNMP/Info/CiscoRTT.pm | 2 +- lib/SNMP/Info/CiscoStack.pm | 2 +- lib/SNMP/Info/CiscoStats.pm | 2 +- lib/SNMP/Info/CiscoStpExtensions.pm | 2 +- lib/SNMP/Info/CiscoVTP.pm | 2 +- lib/SNMP/Info/EDP.pm | 2 +- lib/SNMP/Info/Entity.pm | 2 +- lib/SNMP/Info/EtherLike.pm | 2 +- lib/SNMP/Info/FDP.pm | 2 +- lib/SNMP/Info/IEEE802dot11.pm | 2 +- lib/SNMP/Info/IEEE802dot3ad.pm | 2 +- lib/SNMP/Info/IPv6.pm | 2 +- lib/SNMP/Info/LLDP.pm | 2 +- lib/SNMP/Info/Layer1.pm | 2 +- lib/SNMP/Info/Layer1/Allied.pm | 2 +- lib/SNMP/Info/Layer1/Asante.pm | 2 +- lib/SNMP/Info/Layer1/Bayhub.pm | 2 +- lib/SNMP/Info/Layer1/Cyclades.pm | 2 +- lib/SNMP/Info/Layer1/S3000.pm | 2 +- lib/SNMP/Info/Layer2.pm | 2 +- lib/SNMP/Info/Layer2/3Com.pm | 2 +- lib/SNMP/Info/Layer2/Adtran.pm | 2 +- lib/SNMP/Info/Layer2/Airespace.pm | 2 +- lib/SNMP/Info/Layer2/Aironet.pm | 2 +- lib/SNMP/Info/Layer2/Allied.pm | 2 +- lib/SNMP/Info/Layer2/Baystack.pm | 2 +- lib/SNMP/Info/Layer2/C1900.pm | 2 +- lib/SNMP/Info/Layer2/C2900.pm | 2 +- lib/SNMP/Info/Layer2/Catalyst.pm | 2 +- lib/SNMP/Info/Layer2/Centillion.pm | 2 +- lib/SNMP/Info/Layer2/Cisco.pm | 2 +- lib/SNMP/Info/Layer2/CiscoSB.pm | 2 +- lib/SNMP/Info/Layer2/HP.pm | 2 +- lib/SNMP/Info/Layer2/HP4000.pm | 2 +- lib/SNMP/Info/Layer2/HPVC.pm | 2 +- lib/SNMP/Info/Layer2/Kentrox.pm | 2 +- lib/SNMP/Info/Layer2/N2270.pm | 2 +- lib/SNMP/Info/Layer2/NAP222x.pm | 2 +- lib/SNMP/Info/Layer2/NWSS2300.pm | 2 +- lib/SNMP/Info/Layer2/Netgear.pm | 2 +- lib/SNMP/Info/Layer2/Orinoco.pm | 2 +- lib/SNMP/Info/Layer2/Trapeze.pm | 2 +- lib/SNMP/Info/Layer2/Ubiquiti.pm | 2 +- lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm | 2 +- lib/SNMP/Info/Layer3.pm | 2 +- lib/SNMP/Info/Layer3/Aironet.pm | 2 +- lib/SNMP/Info/Layer3/AlcatelLucent.pm | 2 +- lib/SNMP/Info/Layer3/AlteonAD.pm | 2 +- lib/SNMP/Info/Layer3/Altiga.pm | 2 +- lib/SNMP/Info/Layer3/Arista.pm | 2 +- lib/SNMP/Info/Layer3/Aruba.pm | 2 +- lib/SNMP/Info/Layer3/BayRS.pm | 2 +- lib/SNMP/Info/Layer3/BlueCoatSG.pm | 2 +- lib/SNMP/Info/Layer3/C3550.pm | 2 +- lib/SNMP/Info/Layer3/C4000.pm | 2 +- lib/SNMP/Info/Layer3/C6500.pm | 2 +- lib/SNMP/Info/Layer3/CheckPoint.pm | 2 +- lib/SNMP/Info/Layer3/Cisco.pm | 2 +- lib/SNMP/Info/Layer3/CiscoASA.pm | 2 +- lib/SNMP/Info/Layer3/CiscoFWSM.pm | 2 +- lib/SNMP/Info/Layer3/CiscoSwitch.pm | 2 +- lib/SNMP/Info/Layer3/Contivity.pm | 2 +- lib/SNMP/Info/Layer3/Cumulus.pm | 2 +- lib/SNMP/Info/Layer3/DLink.pm | 2 +- lib/SNMP/Info/Layer3/Dell.pm | 2 +- lib/SNMP/Info/Layer3/Enterasys.pm | 2 +- lib/SNMP/Info/Layer3/Extreme.pm | 2 +- lib/SNMP/Info/Layer3/F5.pm | 2 +- lib/SNMP/Info/Layer3/Force10.pm | 2 +- lib/SNMP/Info/Layer3/Fortinet.pm | 2 +- lib/SNMP/Info/Layer3/Foundry.pm | 2 +- lib/SNMP/Info/Layer3/H3C.pm | 2 +- lib/SNMP/Info/Layer3/HP9300.pm | 2 +- lib/SNMP/Info/Layer3/Huawei.pm | 2 +- lib/SNMP/Info/Layer3/IBMGbTor.pm | 2 +- lib/SNMP/Info/Layer3/Juniper.pm | 2 +- lib/SNMP/Info/Layer3/Lantronix.pm | 2 +- lib/SNMP/Info/Layer3/Microsoft.pm | 2 +- lib/SNMP/Info/Layer3/Mikrotik.pm | 2 +- lib/SNMP/Info/Layer3/N1600.pm | 2 +- lib/SNMP/Info/Layer3/NetSNMP.pm | 2 +- lib/SNMP/Info/Layer3/Netscreen.pm | 2 +- lib/SNMP/Info/Layer3/Nexus.pm | 2 +- lib/SNMP/Info/Layer3/PacketFront.pm | 2 +- lib/SNMP/Info/Layer3/PaloAlto.pm | 2 +- lib/SNMP/Info/Layer3/Passport.pm | 2 +- lib/SNMP/Info/Layer3/Pf.pm | 2 +- lib/SNMP/Info/Layer3/Pica8.pm | 2 +- lib/SNMP/Info/Layer3/SonicWALL.pm | 2 +- lib/SNMP/Info/Layer3/Steelhead.pm | 2 +- lib/SNMP/Info/Layer3/Sun.pm | 2 +- lib/SNMP/Info/Layer3/Tasman.pm | 2 +- lib/SNMP/Info/Layer3/Timetra.pm | 2 +- lib/SNMP/Info/Layer3/VMware.pm | 2 +- lib/SNMP/Info/Layer3/VyOS.pm | 2 +- lib/SNMP/Info/Layer7.pm | 2 +- lib/SNMP/Info/Layer7/APC.pm | 2 +- lib/SNMP/Info/Layer7/CiscoIPS.pm | 2 +- lib/SNMP/Info/Layer7/Gigamon.pm | 2 +- lib/SNMP/Info/Layer7/Neoteris.pm | 2 +- lib/SNMP/Info/Layer7/Netscaler.pm | 2 +- lib/SNMP/Info/MAU.pm | 2 +- lib/SNMP/Info/MRO.pm | 2 +- lib/SNMP/Info/NortelStack.pm | 2 +- lib/SNMP/Info/PowerEthernet.pm | 2 +- lib/SNMP/Info/RapidCity.pm | 2 +- lib/SNMP/Info/SONMP.pm | 2 +- 123 files changed, 1799 insertions(+), 1489 deletions(-) diff --git a/Changes b/Changes index dcbe1600..17289273 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,11 @@ +version 3.52 (2018-03-19) + + [ENHANCEMENTS] + + * set fallback for nonmatching interfaces in Cumulus class + * better interface naming for Ubiquiti + * modify mock utility to work under a perlbrew environment + version 3.50 (2018-03-14) [ENHANCEMENTS] diff --git a/META.json b/META.json index 96c63228..46620f5f 100644 --- a/META.json +++ b/META.json @@ -42,479 +42,479 @@ "provides" : { "SNMP::Info" : { "file" : "lib/SNMP/Info.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::AMAP" : { "file" : "lib/SNMP/Info/AMAP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::AdslLine" : { "file" : "lib/SNMP/Info/AdslLine.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Aggregate" : { "file" : "lib/SNMP/Info/Aggregate.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Airespace" : { "file" : "lib/SNMP/Info/Airespace.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Bridge" : { "file" : "lib/SNMP/Info/Bridge.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CDP" : { "file" : "lib/SNMP/Info/CDP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoAgg" : { "file" : "lib/SNMP/Info/CiscoAgg.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoConfig" : { "file" : "lib/SNMP/Info/CiscoConfig.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoPortSecurity" : { "file" : "lib/SNMP/Info/CiscoPortSecurity.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoPower" : { "file" : "lib/SNMP/Info/CiscoPower.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoQOS" : { "file" : "lib/SNMP/Info/CiscoQOS.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoRTT" : { "file" : "lib/SNMP/Info/CiscoRTT.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoStack" : { "file" : "lib/SNMP/Info/CiscoStack.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoStats" : { "file" : "lib/SNMP/Info/CiscoStats.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoStpExtensions" : { "file" : "lib/SNMP/Info/CiscoStpExtensions.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::CiscoVTP" : { "file" : "lib/SNMP/Info/CiscoVTP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::EDP" : { "file" : "lib/SNMP/Info/EDP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Entity" : { "file" : "lib/SNMP/Info/Entity.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::EtherLike" : { "file" : "lib/SNMP/Info/EtherLike.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::FDP" : { "file" : "lib/SNMP/Info/FDP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::IEEE802dot11" : { "file" : "lib/SNMP/Info/IEEE802dot11.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::IEEE802dot3ad" : { "file" : "lib/SNMP/Info/IEEE802dot3ad.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::IPv6" : { "file" : "lib/SNMP/Info/IPv6.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::LLDP" : { "file" : "lib/SNMP/Info/LLDP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1" : { "file" : "lib/SNMP/Info/Layer1.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1::Allied" : { "file" : "lib/SNMP/Info/Layer1/Allied.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1::Asante" : { "file" : "lib/SNMP/Info/Layer1/Asante.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1::Bayhub" : { "file" : "lib/SNMP/Info/Layer1/Bayhub.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1::Cyclades" : { "file" : "lib/SNMP/Info/Layer1/Cyclades.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer1::S3000" : { "file" : "lib/SNMP/Info/Layer1/S3000.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2" : { "file" : "lib/SNMP/Info/Layer2.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::3Com" : { "file" : "lib/SNMP/Info/Layer2/3Com.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Adtran" : { "file" : "lib/SNMP/Info/Layer2/Adtran.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Airespace" : { "file" : "lib/SNMP/Info/Layer2/Airespace.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Aironet" : { "file" : "lib/SNMP/Info/Layer2/Aironet.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Allied" : { "file" : "lib/SNMP/Info/Layer2/Allied.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Baystack" : { "file" : "lib/SNMP/Info/Layer2/Baystack.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::C1900" : { "file" : "lib/SNMP/Info/Layer2/C1900.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::C2900" : { "file" : "lib/SNMP/Info/Layer2/C2900.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Catalyst" : { "file" : "lib/SNMP/Info/Layer2/Catalyst.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Centillion" : { "file" : "lib/SNMP/Info/Layer2/Centillion.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Cisco" : { "file" : "lib/SNMP/Info/Layer2/Cisco.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::CiscoSB" : { "file" : "lib/SNMP/Info/Layer2/CiscoSB.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::HP" : { "file" : "lib/SNMP/Info/Layer2/HP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::HP4000" : { "file" : "lib/SNMP/Info/Layer2/HP4000.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::HPVC" : { "file" : "lib/SNMP/Info/Layer2/HPVC.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Kentrox" : { "file" : "lib/SNMP/Info/Layer2/Kentrox.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::N2270" : { "file" : "lib/SNMP/Info/Layer2/N2270.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::NAP222x" : { "file" : "lib/SNMP/Info/Layer2/NAP222x.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::NWSS2300" : { "file" : "lib/SNMP/Info/Layer2/NWSS2300.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Netgear" : { "file" : "lib/SNMP/Info/Layer2/Netgear.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Orinoco" : { "file" : "lib/SNMP/Info/Layer2/Orinoco.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Trapeze" : { "file" : "lib/SNMP/Info/Layer2/Trapeze.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::Ubiquiti" : { "file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer2::ZyXEL_DSLAM" : { "file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3" : { "file" : "lib/SNMP/Info/Layer3.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Aironet" : { "file" : "lib/SNMP/Info/Layer3/Aironet.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::AlcatelLucent" : { "file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::AlteonAD" : { "file" : "lib/SNMP/Info/Layer3/AlteonAD.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Altiga" : { "file" : "lib/SNMP/Info/Layer3/Altiga.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Arista" : { "file" : "lib/SNMP/Info/Layer3/Arista.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Aruba" : { "file" : "lib/SNMP/Info/Layer3/Aruba.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::BayRS" : { "file" : "lib/SNMP/Info/Layer3/BayRS.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::BlueCoatSG" : { "file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::C3550" : { "file" : "lib/SNMP/Info/Layer3/C3550.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::C4000" : { "file" : "lib/SNMP/Info/Layer3/C4000.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::C6500" : { "file" : "lib/SNMP/Info/Layer3/C6500.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::CheckPoint" : { "file" : "lib/SNMP/Info/Layer3/CheckPoint.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Cisco" : { "file" : "lib/SNMP/Info/Layer3/Cisco.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::CiscoASA" : { "file" : "lib/SNMP/Info/Layer3/CiscoASA.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::CiscoFWSM" : { "file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::CiscoSwitch" : { "file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Contivity" : { "file" : "lib/SNMP/Info/Layer3/Contivity.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Cumulus" : { "file" : "lib/SNMP/Info/Layer3/Cumulus.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::DLink" : { "file" : "lib/SNMP/Info/Layer3/DLink.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Dell" : { "file" : "lib/SNMP/Info/Layer3/Dell.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Enterasys" : { "file" : "lib/SNMP/Info/Layer3/Enterasys.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Extreme" : { "file" : "lib/SNMP/Info/Layer3/Extreme.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::F5" : { "file" : "lib/SNMP/Info/Layer3/F5.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Force10" : { "file" : "lib/SNMP/Info/Layer3/Force10.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Fortinet" : { "file" : "lib/SNMP/Info/Layer3/Fortinet.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Foundry" : { "file" : "lib/SNMP/Info/Layer3/Foundry.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::H3C" : { "file" : "lib/SNMP/Info/Layer3/H3C.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::HP9300" : { "file" : "lib/SNMP/Info/Layer3/HP9300.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Huawei" : { "file" : "lib/SNMP/Info/Layer3/Huawei.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::IBMGbTor" : { "file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Juniper" : { "file" : "lib/SNMP/Info/Layer3/Juniper.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Lantronix" : { "file" : "lib/SNMP/Info/Layer3/Lantronix.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Microsoft" : { "file" : "lib/SNMP/Info/Layer3/Microsoft.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Mikrotik" : { "file" : "lib/SNMP/Info/Layer3/Mikrotik.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::N1600" : { "file" : "lib/SNMP/Info/Layer3/N1600.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::NetSNMP" : { "file" : "lib/SNMP/Info/Layer3/NetSNMP.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Netscreen" : { "file" : "lib/SNMP/Info/Layer3/Netscreen.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Nexus" : { "file" : "lib/SNMP/Info/Layer3/Nexus.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::PacketFront" : { "file" : "lib/SNMP/Info/Layer3/PacketFront.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::PaloAlto" : { "file" : "lib/SNMP/Info/Layer3/PaloAlto.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Passport" : { "file" : "lib/SNMP/Info/Layer3/Passport.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Pf" : { "file" : "lib/SNMP/Info/Layer3/Pf.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Pica8" : { "file" : "lib/SNMP/Info/Layer3/Pica8.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::SonicWALL" : { "file" : "lib/SNMP/Info/Layer3/SonicWALL.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Steelhead" : { "file" : "lib/SNMP/Info/Layer3/Steelhead.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Sun" : { "file" : "lib/SNMP/Info/Layer3/Sun.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Tasman" : { "file" : "lib/SNMP/Info/Layer3/Tasman.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::Timetra" : { "file" : "lib/SNMP/Info/Layer3/Timetra.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::VMware" : { "file" : "lib/SNMP/Info/Layer3/VMware.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer3::VyOS" : { "file" : "lib/SNMP/Info/Layer3/VyOS.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7" : { "file" : "lib/SNMP/Info/Layer7.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7::APC" : { "file" : "lib/SNMP/Info/Layer7/APC.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7::CiscoIPS" : { "file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7::Gigamon" : { "file" : "lib/SNMP/Info/Layer7/Gigamon.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7::Neoteris" : { "file" : "lib/SNMP/Info/Layer7/Neoteris.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::Layer7::Netscaler" : { "file" : "lib/SNMP/Info/Layer7/Netscaler.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::MAU" : { "file" : "lib/SNMP/Info/MAU.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::MRO" : { "file" : "lib/SNMP/Info/MRO.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::NortelStack" : { "file" : "lib/SNMP/Info/NortelStack.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::PowerEthernet" : { "file" : "lib/SNMP/Info/PowerEthernet.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::RapidCity" : { "file" : "lib/SNMP/Info/RapidCity.pm", - "version" : "3.51" + "version" : "3.52" }, "SNMP::Info::SONMP" : { "file" : "lib/SNMP/Info/SONMP.pm", - "version" : "3.51" + "version" : "3.52" } }, "release_status" : "stable", @@ -524,7 +524,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" @@ -532,6 +532,6 @@ "x_IRC" : "irc://irc.freenode.org/#netdisco", "x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users" }, - "version" : "3.51", - "x_serialization_backend" : "JSON::PP version 2.97001" + "version" : "3.52", + "x_serialization_backend" : "JSON::PP version 2.94" } diff --git a/META.yml b/META.yml index f41faea9..51cd3487 100644 --- a/META.yml +++ b/META.yml @@ -17,361 +17,361 @@ name: SNMP-Info provides: SNMP::Info: file: lib/SNMP/Info.pm - version: '3.51' + version: '3.52' SNMP::Info::AMAP: file: lib/SNMP/Info/AMAP.pm - version: '3.51' + version: '3.52' SNMP::Info::AdslLine: file: lib/SNMP/Info/AdslLine.pm - version: '3.51' + version: '3.52' SNMP::Info::Aggregate: file: lib/SNMP/Info/Aggregate.pm - version: '3.51' + version: '3.52' SNMP::Info::Airespace: file: lib/SNMP/Info/Airespace.pm - version: '3.51' + version: '3.52' SNMP::Info::Bridge: file: lib/SNMP/Info/Bridge.pm - version: '3.51' + version: '3.52' SNMP::Info::CDP: file: lib/SNMP/Info/CDP.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoAgg: file: lib/SNMP/Info/CiscoAgg.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoConfig: file: lib/SNMP/Info/CiscoConfig.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoPortSecurity: file: lib/SNMP/Info/CiscoPortSecurity.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoPower: file: lib/SNMP/Info/CiscoPower.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoQOS: file: lib/SNMP/Info/CiscoQOS.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoRTT: file: lib/SNMP/Info/CiscoRTT.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoStack: file: lib/SNMP/Info/CiscoStack.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoStats: file: lib/SNMP/Info/CiscoStats.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoStpExtensions: file: lib/SNMP/Info/CiscoStpExtensions.pm - version: '3.51' + version: '3.52' SNMP::Info::CiscoVTP: file: lib/SNMP/Info/CiscoVTP.pm - version: '3.51' + version: '3.52' SNMP::Info::EDP: file: lib/SNMP/Info/EDP.pm - version: '3.51' + version: '3.52' SNMP::Info::Entity: file: lib/SNMP/Info/Entity.pm - version: '3.51' + version: '3.52' SNMP::Info::EtherLike: file: lib/SNMP/Info/EtherLike.pm - version: '3.51' + version: '3.52' SNMP::Info::FDP: file: lib/SNMP/Info/FDP.pm - version: '3.51' + version: '3.52' SNMP::Info::IEEE802dot11: file: lib/SNMP/Info/IEEE802dot11.pm - version: '3.51' + version: '3.52' SNMP::Info::IEEE802dot3ad: file: lib/SNMP/Info/IEEE802dot3ad.pm - version: '3.51' + version: '3.52' SNMP::Info::IPv6: file: lib/SNMP/Info/IPv6.pm - version: '3.51' + version: '3.52' SNMP::Info::LLDP: file: lib/SNMP/Info/LLDP.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1: file: lib/SNMP/Info/Layer1.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1::Allied: file: lib/SNMP/Info/Layer1/Allied.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1::Asante: file: lib/SNMP/Info/Layer1/Asante.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1::Bayhub: file: lib/SNMP/Info/Layer1/Bayhub.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1::Cyclades: file: lib/SNMP/Info/Layer1/Cyclades.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer1::S3000: file: lib/SNMP/Info/Layer1/S3000.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2: file: lib/SNMP/Info/Layer2.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::3Com: file: lib/SNMP/Info/Layer2/3Com.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Adtran: file: lib/SNMP/Info/Layer2/Adtran.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Airespace: file: lib/SNMP/Info/Layer2/Airespace.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Aironet: file: lib/SNMP/Info/Layer2/Aironet.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Allied: file: lib/SNMP/Info/Layer2/Allied.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Baystack: file: lib/SNMP/Info/Layer2/Baystack.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::C1900: file: lib/SNMP/Info/Layer2/C1900.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::C2900: file: lib/SNMP/Info/Layer2/C2900.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Catalyst: file: lib/SNMP/Info/Layer2/Catalyst.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Centillion: file: lib/SNMP/Info/Layer2/Centillion.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Cisco: file: lib/SNMP/Info/Layer2/Cisco.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::CiscoSB: file: lib/SNMP/Info/Layer2/CiscoSB.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::HP: file: lib/SNMP/Info/Layer2/HP.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::HP4000: file: lib/SNMP/Info/Layer2/HP4000.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::HPVC: file: lib/SNMP/Info/Layer2/HPVC.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Kentrox: file: lib/SNMP/Info/Layer2/Kentrox.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::N2270: file: lib/SNMP/Info/Layer2/N2270.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::NAP222x: file: lib/SNMP/Info/Layer2/NAP222x.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::NWSS2300: file: lib/SNMP/Info/Layer2/NWSS2300.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Netgear: file: lib/SNMP/Info/Layer2/Netgear.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Orinoco: file: lib/SNMP/Info/Layer2/Orinoco.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Trapeze: file: lib/SNMP/Info/Layer2/Trapeze.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::Ubiquiti: file: lib/SNMP/Info/Layer2/Ubiquiti.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer2::ZyXEL_DSLAM: file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3: file: lib/SNMP/Info/Layer3.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Aironet: file: lib/SNMP/Info/Layer3/Aironet.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::AlcatelLucent: file: lib/SNMP/Info/Layer3/AlcatelLucent.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::AlteonAD: file: lib/SNMP/Info/Layer3/AlteonAD.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Altiga: file: lib/SNMP/Info/Layer3/Altiga.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Arista: file: lib/SNMP/Info/Layer3/Arista.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Aruba: file: lib/SNMP/Info/Layer3/Aruba.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::BayRS: file: lib/SNMP/Info/Layer3/BayRS.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::BlueCoatSG: file: lib/SNMP/Info/Layer3/BlueCoatSG.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::C3550: file: lib/SNMP/Info/Layer3/C3550.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::C4000: file: lib/SNMP/Info/Layer3/C4000.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::C6500: file: lib/SNMP/Info/Layer3/C6500.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::CheckPoint: file: lib/SNMP/Info/Layer3/CheckPoint.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Cisco: file: lib/SNMP/Info/Layer3/Cisco.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::CiscoASA: file: lib/SNMP/Info/Layer3/CiscoASA.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::CiscoFWSM: file: lib/SNMP/Info/Layer3/CiscoFWSM.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::CiscoSwitch: file: lib/SNMP/Info/Layer3/CiscoSwitch.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Contivity: file: lib/SNMP/Info/Layer3/Contivity.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Cumulus: file: lib/SNMP/Info/Layer3/Cumulus.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::DLink: file: lib/SNMP/Info/Layer3/DLink.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Dell: file: lib/SNMP/Info/Layer3/Dell.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Enterasys: file: lib/SNMP/Info/Layer3/Enterasys.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Extreme: file: lib/SNMP/Info/Layer3/Extreme.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::F5: file: lib/SNMP/Info/Layer3/F5.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Force10: file: lib/SNMP/Info/Layer3/Force10.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Fortinet: file: lib/SNMP/Info/Layer3/Fortinet.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Foundry: file: lib/SNMP/Info/Layer3/Foundry.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::H3C: file: lib/SNMP/Info/Layer3/H3C.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::HP9300: file: lib/SNMP/Info/Layer3/HP9300.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Huawei: file: lib/SNMP/Info/Layer3/Huawei.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::IBMGbTor: file: lib/SNMP/Info/Layer3/IBMGbTor.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Juniper: file: lib/SNMP/Info/Layer3/Juniper.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Lantronix: file: lib/SNMP/Info/Layer3/Lantronix.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Microsoft: file: lib/SNMP/Info/Layer3/Microsoft.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Mikrotik: file: lib/SNMP/Info/Layer3/Mikrotik.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::N1600: file: lib/SNMP/Info/Layer3/N1600.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::NetSNMP: file: lib/SNMP/Info/Layer3/NetSNMP.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Netscreen: file: lib/SNMP/Info/Layer3/Netscreen.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Nexus: file: lib/SNMP/Info/Layer3/Nexus.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::PacketFront: file: lib/SNMP/Info/Layer3/PacketFront.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::PaloAlto: file: lib/SNMP/Info/Layer3/PaloAlto.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Passport: file: lib/SNMP/Info/Layer3/Passport.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Pf: file: lib/SNMP/Info/Layer3/Pf.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Pica8: file: lib/SNMP/Info/Layer3/Pica8.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::SonicWALL: file: lib/SNMP/Info/Layer3/SonicWALL.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Steelhead: file: lib/SNMP/Info/Layer3/Steelhead.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Sun: file: lib/SNMP/Info/Layer3/Sun.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Tasman: file: lib/SNMP/Info/Layer3/Tasman.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::Timetra: file: lib/SNMP/Info/Layer3/Timetra.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::VMware: file: lib/SNMP/Info/Layer3/VMware.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer3::VyOS: file: lib/SNMP/Info/Layer3/VyOS.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7: file: lib/SNMP/Info/Layer7.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7::APC: file: lib/SNMP/Info/Layer7/APC.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7::CiscoIPS: file: lib/SNMP/Info/Layer7/CiscoIPS.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7::Gigamon: file: lib/SNMP/Info/Layer7/Gigamon.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7::Neoteris: file: lib/SNMP/Info/Layer7/Neoteris.pm - version: '3.51' + version: '3.52' SNMP::Info::Layer7::Netscaler: file: lib/SNMP/Info/Layer7/Netscaler.pm - version: '3.51' + version: '3.52' SNMP::Info::MAU: file: lib/SNMP/Info/MAU.pm - version: '3.51' + version: '3.52' SNMP::Info::MRO: file: lib/SNMP/Info/MRO.pm - version: '3.51' + version: '3.52' SNMP::Info::NortelStack: file: lib/SNMP/Info/NortelStack.pm - version: '3.51' + version: '3.52' SNMP::Info::PowerEthernet: file: lib/SNMP/Info/PowerEthernet.pm - version: '3.51' + version: '3.52' SNMP::Info::RapidCity: file: lib/SNMP/Info/RapidCity.pm - version: '3.51' + version: '3.52' SNMP::Info::SONMP: file: lib/SNMP/Info/SONMP.pm - version: '3.51' + version: '3.52' recommends: Class::ISA: '0' File::Slurp: '0' @@ -386,7 +386,7 @@ resources: MailingList: https://lists.sourceforge.net/lists/listinfo/snmp-info-users bugtracker: https://github.com/netdisco/snmp-info/issues homepage: http://netdisco.org/ - license: http://opensource.org/licenses/bsd-license.php + license: http://opensource.org/licenses/BSD-3-Clause repository: https://github.com/netdisco/snmp-info -version: '3.51' +version: '3.52' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/README b/README index 4fd45778..45547c39 100644 --- a/README +++ b/README @@ -1,10 +1,13 @@ NAME + SNMP::Info - OO Interface to Network devices and MIBs through SNMP VERSION - SNMP::Info - Version 3.51 + + SNMP::Info - Version 3.52 AUTHOR + SNMP::Info is maintained by team of Open Source authors headed by Eric Miller, Bill Fenner, Max Baker, Jeroen van Ingen and Oliver Gorwits. @@ -15,14 +18,16 @@ AUTHOR http://netdisco.org by Max Baker. DEVICES SUPPORTED + There are now generic classes for most types of device and so the authors recommend loading SNMP::Info with AutoSpecify, and then reporting to the mail list any missing functionality (such as neighbor discovery tables). SYNOPSIS - use SNMP::Info; + use SNMP::Info; + my $info = new SNMP::Info( # Auto Discover more specific Device Class AutoSpecify => 1, @@ -32,35 +37,35 @@ SYNOPSIS Community => 'public', Version => 2 ) or die "Can't connect to device.\n"; - + my $err = $info->error(); die "SNMP Community or Version probably wrong connecting to device. $err\n" if defined $err; - + $name = $info->name(); $class = $info->class(); print "SNMP::Info is using this device class : $class\n"; - + # Find out the Duplex status for the ports my $interfaces = $info->interfaces(); my $i_duplex = $info->i_duplex(); - + # Get CDP Neighbor info my $c_if = $info->c_if(); my $c_ip = $info->c_ip(); my $c_port = $info->c_port(); - + # Print out data per port foreach my $iid (keys %$interfaces){ my $duplex = $i_duplex->{$iid}; # Print out physical port name, not snmp iid my $port = $interfaces->{$iid}; - + print "$port: "; print "$duplex duplex" if defined $duplex; - + # The CDP Table has table entries different than the interface tables. # So we use c_if to get the map from cdp table to interface table. - + my %c_map = reverse %$c_if; my $c_key = $c_map{$iid}; unless (defined $c_key) { @@ -69,18 +74,20 @@ SYNOPSIS } my $neighbor_ip = $c_ip->{$c_key}; my $neighbor_port = $c_port->{$c_key}; - + print " connected to $neighbor_ip / $neighbor_port\n" if defined $neighbor_ip; print "\n"; - + } SUPPORT - Please direct all support, help, and bug requests to the snmp-info-users - Mailing List at + + Please direct all support, help, and bug requests to the + snmp-info-users Mailing List at http://lists.sourceforge.net/lists/listinfo/snmp-info-users. DESCRIPTION + SNMP::Info gives an object oriented interface to information obtained through SNMP. @@ -91,9 +98,9 @@ DESCRIPTION network devices, leaving the device-specific hacks behind the scenes in subclasses. - In the SYNOPSIS example we fetch the name of all the ports on the device - and the duplex setting for that port with two methods -- interfaces() - and i_duplex(). + In the SYNOPSIS example we fetch the name of all the ports on the + device and the duplex setting for that port with two methods -- + interfaces() and i_duplex(). The information may be coming from any number of MIB files and is very vendor specific. SNMP::Info provides you a common method for all @@ -103,256 +110,296 @@ DESCRIPTION knowledge. The module is not limited to network devices. Any MIB or device can be - given an objected oriented front-end by making a module that consists of - a couple hashes. See EXTENDING SNMP::INFO. + given an objected oriented front-end by making a module that consists + of a couple hashes. See EXTENDING SNMP::INFO. REQUIREMENTS + 1. Net-SNMP - To use this module, you must have Net-SNMP installed on your system. - More specifically you need the Perl modules that come with it. - DO NOT INSTALL SNMP:: or Net::SNMP from CPAN! + To use this module, you must have Net-SNMP installed on your system. + More specifically you need the Perl modules that come with it. - The SNMP module is matched to an install of net-snmp, and must be - installed from the net-snmp source tree. + DO NOT INSTALL SNMP:: or Net::SNMP from CPAN! - The Perl module `SNMP' is found inside the net-snmp distribution. Go - to the perl/ directory of the distribution to install it, or run - `./configure --with-perl-modules' from the top directory of the - net-snmp distribution. + The SNMP module is matched to an install of net-snmp, and must be + installed from the net-snmp source tree. - Net-SNMP can be found at http://net-snmp.sourceforge.net + The Perl module SNMP is found inside the net-snmp distribution. Go to + the perl/ directory of the distribution to install it, or run + ./configure --with-perl-modules from the top directory of the + net-snmp distribution. - Version 5.3.2 or greater is recommended. + Net-SNMP can be found at http://net-snmp.sourceforge.net - Versions 5.0.1, 5.0301 and 5.0203 have issues with bulkwalk and are - not supported. + Version 5.3.2 or greater is recommended. - Redhat Users: Some versions that come with certain versions of - Redhat/Fedora don't have the Perl library installed. Uninstall the - RPM and install by hand. + Versions 5.0.1, 5.0301 and 5.0203 have issues with bulkwalk and are + not supported. + + Redhat Users: Some versions that come with certain versions of + Redhat/Fedora don't have the Perl library installed. Uninstall the + RPM and install by hand. 2. MIBS - SNMP::Info operates on textual descriptors found in MIBs. - If you are using SNMP::Info separate from Netdisco, download the - Netdisco MIB package at - http://sourceforge.net/projects/netdisco/files/netdisco-mibs/latest- - snapshot/ + SNMP::Info operates on textual descriptors found in MIBs. - Make sure that your snmp.conf is updated to point to your MIB - directory and that the MIBs are world-readable. + If you are using SNMP::Info separate from Netdisco, download the + Netdisco MIB package at + http://sourceforge.net/projects/netdisco/files/netdisco-mibs/latest-s + napshot/ + + Make sure that your snmp.conf is updated to point to your MIB + directory and that the MIBs are world-readable. DESIGN GOALS + 1. Use of textual MIB leaf identifier and enumerated values - * All values are retrieved via MIB Leaf node names - For example SNMP::Info has an entry in its %GLOBALS hash for - ``sysName'' instead of 1.3.6.1.2.1.1.5. - * Data returned is in the enumerated value form. - For Example instead of looking up 1.3.6.1.2.1.2.2.1.3 and - getting back `23' + * All values are retrieved via MIB Leaf node names - SNMP::Info will ask for `RFC1213-MIB::ifType' and will get back - `ppp'. + For example SNMP::Info has an entry in its %GLOBALS hash for + ``sysName'' instead of 1.3.6.1.2.1.1.5. + + * Data returned is in the enumerated value form. + + For Example instead of looking up 1.3.6.1.2.1.2.2.1.3 and getting + back 23 + + SNMP::Info will ask for RFC1213-MIB::ifType and will get back ppp. 2. SNMP::Info is easily extended to new devices - You can create a new subclass for a device by providing four hashes - : %GLOBALS, %MIBS, %FUNCS, and %MUNGE. - Or you can override any existing methods from a parent class by - making a short subroutine. + You can create a new subclass for a device by providing four hashes : + %GLOBALS, %MIBS, %FUNCS, and %MUNGE. - See the section EXTENDING SNMP::INFO for more details. + Or you can override any existing methods from a parent class by + making a short subroutine. - When you make a new subclass for a device, please be sure to send it - back to the developers (via Source Forge or the mailing list) for - inclusion in the next version. + See the section EXTENDING SNMP::INFO for more details. + + When you make a new subclass for a device, please be sure to send it + back to the developers (via Source Forge or the mailing list) for + inclusion in the next version. SUBCLASSES + These are the subclasses that implement MIBs and support devices: Required MIBs not included in the install instructions above are noted here. - MIB Subclasses + MIB Subclasses + These subclasses implement method to access one or more MIBs. These are not used directly, but rather inherited from device subclasses. - For more info run `perldoc' on any of the following module names. + For more info run perldoc on any of the following module names. SNMP::Info::AdslLine - SNMP Interface to the ADSL-LINE-MIB for ADSL interfaces. - Requires the ADSL-LINE-MIB, down loadable from Cisco. + SNMP Interface to the ADSL-LINE-MIB for ADSL interfaces. - See documentation in SNMP::Info::AdslLine for details. + Requires the ADSL-LINE-MIB, down loadable from Cisco. + + See documentation in SNMP::Info::AdslLine for details. SNMP::Info::Aggregate - SNMP Interface to IF-MIB `ifStackTable' Aggregated Links - See documentation in SNMP::Info::Aggregate for details. + SNMP Interface to IF-MIB ifStackTable Aggregated Links + + See documentation in SNMP::Info::Aggregate for details. SNMP::Info::Airespace - AIRESPACE-WIRELESS-MIB and AIRESPACE-SWITCHING-MIB. Inherited by - devices based on the Airespace wireless platform. - See documentation in SNMP::Info::Airespace for details. + AIRESPACE-WIRELESS-MIB and AIRESPACE-SWITCHING-MIB. Inherited by + devices based on the Airespace wireless platform. + + See documentation in SNMP::Info::Airespace for details. SNMP::Info::AMAP - ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB. Alcatel Mapping Adjacency - Protocol (AMAP) Support. - See documentation in SNMP::Info::AMAP for details. + ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB. Alcatel Mapping Adjacency + Protocol (AMAP) Support. + + See documentation in SNMP::Info::AMAP for details. SNMP::Info::Bridge - BRIDGE-MIB (RFC1286). QBRIDGE-MIB. Inherited by devices with Layer2 - support. - See documentation in SNMP::Info::Bridge for details. + BRIDGE-MIB (RFC1286). QBRIDGE-MIB. Inherited by devices with Layer2 + support. + + See documentation in SNMP::Info::Bridge for details. SNMP::Info::CiscoAgg - SNMP Interface to Cisco Aggregated Links - See documentation in SNMP::Info::CiscoAgg for details. + SNMP Interface to Cisco Aggregated Links + + See documentation in SNMP::Info::CiscoAgg for details. SNMP::Info::CDP - CISCO-CDP-MIB. Cisco Discovery Protocol (CDP) Support. Inherited by - Cisco, Enterasys, and HP devices. - See documentation in SNMP::Info::CDP for details. + CISCO-CDP-MIB. Cisco Discovery Protocol (CDP) Support. Inherited by + Cisco, Enterasys, and HP devices. + + See documentation in SNMP::Info::CDP for details. SNMP::Info::CiscoConfig - CISCO-CONFIG-COPY-MIB, CISCO-FLASH-MIB, and OLD-CISCO-SYS-MIB. These - OIDs facilitate the writing of configuration files. - See documentation in SNMP::Info::CiscoConfig for details. + CISCO-CONFIG-COPY-MIB, CISCO-FLASH-MIB, and OLD-CISCO-SYS-MIB. These + OIDs facilitate the writing of configuration files. + + See documentation in SNMP::Info::CiscoConfig for details. SNMP::Info::CiscoPortSecurity - CISCO-PORT-SECURITY-MIB and CISCO-PAE-MIB. - See documentation in SNMP::Info::CiscoPortSecurity for details. + CISCO-PORT-SECURITY-MIB and CISCO-PAE-MIB. + + See documentation in SNMP::Info::CiscoPortSecurity for details. SNMP::Info::CiscoPower - CISCO-POWER-ETHERNET-EXT-MIB. - See documentation in SNMP::Info::CiscoPower for details. + CISCO-POWER-ETHERNET-EXT-MIB. + + See documentation in SNMP::Info::CiscoPower for details. SNMP::Info::CiscoQOS - CISCO-CLASS-BASED-QOS-MIB. A collection of OIDs providing - information about a Cisco device's QOS config. - See documentation in SNMP::Info::CiscoQOS for details. + CISCO-CLASS-BASED-QOS-MIB. A collection of OIDs providing information + about a Cisco device's QOS config. + + See documentation in SNMP::Info::CiscoQOS for details. SNMP::Info::CiscoRTT - CISCO-RTTMON-MIB. A collection of OIDs providing information about a - Cisco device's RTT values. - See documentation in SNMP::Info::CiscoRTT for details. + CISCO-RTTMON-MIB. A collection of OIDs providing information about a + Cisco device's RTT values. + + See documentation in SNMP::Info::CiscoRTT for details. SNMP::Info::CiscoStack - CISCO-STACK-MIB. - See documentation in SNMP::Info::CiscoStack for details. + CISCO-STACK-MIB. + + See documentation in SNMP::Info::CiscoStack for details. SNMP::Info::CiscoStpExtensions - CISCO-STP-EXTENSIONS-MIB - See documentation in SNMP::Info::CiscoStpExtensions for details. + CISCO-STP-EXTENSIONS-MIB + + See documentation in SNMP::Info::CiscoStpExtensions for details. SNMP::Info::CiscoStats - OLD-CISCO-CPU-MIB, CISCO-PROCESS-MIB, and CISCO-MEMORY-POOL-MIB. - Provides common interfaces for memory, cpu, and os statistics for - Cisco devices. - See documentation in SNMP::Info::CiscoStats for details. + OLD-CISCO-CPU-MIB, CISCO-PROCESS-MIB, and CISCO-MEMORY-POOL-MIB. + Provides common interfaces for memory, cpu, and os statistics for + Cisco devices. + + See documentation in SNMP::Info::CiscoStats for details. SNMP::Info::CiscoVTP - CISCO-VTP-MIB, CISCO-VLAN-MEMBERSHIP-MIB, - CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB - See documentation in SNMP::Info::CiscoVTP for details. + CISCO-VTP-MIB, CISCO-VLAN-MEMBERSHIP-MIB, + CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB + + See documentation in SNMP::Info::CiscoVTP for details. SNMP::Info::EDP - Extreme Discovery Protocol. EXTREME-EDP-MIB - See documentation in SNMP::Info::EDP for details. + Extreme Discovery Protocol. EXTREME-EDP-MIB + + See documentation in SNMP::Info::EDP for details. SNMP::Info::Entity - ENTITY-MIB. Used for device info in Cisco and other vendors. - See documentation in SNMP::Info::Entity for details. + ENTITY-MIB. Used for device info in Cisco and other vendors. + + See documentation in SNMP::Info::Entity for details. SNMP::Info::EtherLike - EtherLike-MIB (RFC1398) - Some Layer3 devices implement this MIB, as - well as some Aironet Layer 2 devices (non Cisco). - See documentation in SNMP::Info::EtherLike for details. + EtherLike-MIB (RFC1398) - Some Layer3 devices implement this MIB, as + well as some Aironet Layer 2 devices (non Cisco). + + See documentation in SNMP::Info::EtherLike for details. SNMP::Info::FDP - Foundry (Brocade) Discovery Protocol. FOUNDRY-SN-SWITCH-GROUP-MIB - See documentation in SNMP::Info::FDP for details. + Foundry (Brocade) Discovery Protocol. FOUNDRY-SN-SWITCH-GROUP-MIB + + See documentation in SNMP::Info::FDP for details. SNMP::Info::IPv6 - SNMP Interface for obtaining configured IPv6 addresses and mapping - IPv6 addresses to MAC addresses and interfaces, using information - from IP-MIB, IPV6-MIB and/or CISCO-IETF-IP-MIB. - See documentation in SNMP::Info::IPv6 for details. + SNMP Interface for obtaining configured IPv6 addresses and mapping + IPv6 addresses to MAC addresses and interfaces, using information + from IP-MIB, IPV6-MIB and/or CISCO-IETF-IP-MIB. + + See documentation in SNMP::Info::IPv6 for details. SNMP::Info::IEEE802dot11 - IEEE802dot11-MIB. A collection of OIDs providing information about - standards based 802.11 wireless devices. - See documentation in SNMP::Info::IEEE802dot11 for details. + IEEE802dot11-MIB. A collection of OIDs providing information about + standards based 802.11 wireless devices. + + See documentation in SNMP::Info::IEEE802dot11 for details. SNMP::Info::IEEE802dot3ad - SNMP Interface to IEEE Aggregated Links. IEEE8023-LAG-MIB - See documentation in SNMP::Info::IEEE802dot3ad for details. + SNMP Interface to IEEE Aggregated Links. IEEE8023-LAG-MIB + + See documentation in SNMP::Info::IEEE802dot3ad for details. SNMP::Info::LLDP - LLDP-MIB, LLDP-EXT-DOT1-MIB, and LLDP-EXT-DOT3-MIB. Link Layer - Discovery Protocol (LLDP) Support. - See documentation in SNMP::Info::LLDP for details. + LLDP-MIB, LLDP-EXT-DOT1-MIB, and LLDP-EXT-DOT3-MIB. Link Layer + Discovery Protocol (LLDP) Support. + + See documentation in SNMP::Info::LLDP for details. SNMP::Info::MAU - MAU-MIB (RFC2668). Some Layer2 devices use this for extended - Ethernet (Media Access Unit) interface information. - See documentation in SNMP::Info::MAU for details. + MAU-MIB (RFC2668). Some Layer2 devices use this for extended Ethernet + (Media Access Unit) interface information. + + See documentation in SNMP::Info::MAU for details. SNMP::Info::MRO - Method resolution introspection for SNMP::Info - See documentation in SNMP::Info::MRO for details. + Method resolution introspection for SNMP::Info + + See documentation in SNMP::Info::MRO for details. SNMP::Info::NortelStack - S5-AGENT-MIB, S5-CHASSIS-MIB. - See documentation in SNMP::Info::NortelStack for details. + S5-AGENT-MIB, S5-CHASSIS-MIB. + + See documentation in SNMP::Info::NortelStack for details. SNMP::Info::PowerEthernet - POWER-ETHERNET-MIB - See documentation in SNMP::Info::PowerEthernet for details. + POWER-ETHERNET-MIB + + See documentation in SNMP::Info::PowerEthernet for details. SNMP::Info::RapidCity - RAPID-CITY. Inherited by Avaya switches for duplex and VLAN - information. - See documentation in SNMP::Info::RapidCity for details. + RAPID-CITY. Inherited by Avaya switches for duplex and VLAN + information. + + See documentation in SNMP::Info::RapidCity for details. SNMP::Info::SONMP - SynOptics Network Management Protocol (SONMP) SYNOPTICS-ROOT-MIB, - S5-ETH-MULTISEG-TOPOLOGY-MIB. Inherited by - Avaya/Nortel/Bay/Synoptics switches and hubs. - See documentation in SNMP::Info::SONMP for details. + SynOptics Network Management Protocol (SONMP) SYNOPTICS-ROOT-MIB, + S5-ETH-MULTISEG-TOPOLOGY-MIB. Inherited by Avaya/Nortel/Bay/Synoptics + switches and hubs. + + See documentation in SNMP::Info::SONMP for details. + + Device Subclasses - Device Subclasses These subclasses inherit from one or more classes to provide a common interface to data obtainable from network devices. @@ -360,484 +407,567 @@ SUBCLASSES (See Above). SNMP::Info::Layer1 - Generic Layer1 Device subclass. - See documentation in SNMP::Info::Layer1 for details. + Generic Layer1 Device subclass. - SNMP::Info::Layer1::Allied - Subclass for Allied Telesis Repeaters / Hubs. + See documentation in SNMP::Info::Layer1 for details. - Requires ATI-MIB + SNMP::Info::Layer1::Allied - See documentation in SNMP::Info::Layer1::Allied for details. + Subclass for Allied Telesis Repeaters / Hubs. - SNMP::Info::Layer1::Asante - Subclass for Asante 1012 Hubs. + Requires ATI-MIB - Requires ASANTE-HUB1012-MIB + See documentation in SNMP::Info::Layer1::Allied for details. - See documentation in SNMP::Info::Layer1::Asante for details. + SNMP::Info::Layer1::Asante - SNMP::Info::Layer1::Bayhub - Subclass for Nortel/Bay hubs. This includes System 5000, 100 - series, 200 series, and probably more. + Subclass for Asante 1012 Hubs. - See documentation in SNMP::Info::Layer1::Bayhub for details. + Requires ASANTE-HUB1012-MIB - SNMP::Info::Layer1::Cyclades - Subclass for Cyclades terminal servers. + See documentation in SNMP::Info::Layer1::Asante for details. - See documentation in SNMP::Info::Layer1::Cyclades for details. + SNMP::Info::Layer1::Bayhub - SNMP::Info::Layer1::S3000 - Subclass for Bay/Synoptics hubs. This includes System 3000, - 281X, and probably more. + Subclass for Nortel/Bay hubs. This includes System 5000, 100 + series, 200 series, and probably more. - See documentation in SNMP::Info::Layer1::S3000 for details. + See documentation in SNMP::Info::Layer1::Bayhub for details. + + SNMP::Info::Layer1::Cyclades + + Subclass for Cyclades terminal servers. + + See documentation in SNMP::Info::Layer1::Cyclades for details. + + SNMP::Info::Layer1::S3000 + + Subclass for Bay/Synoptics hubs. This includes System 3000, 281X, + and probably more. + + See documentation in SNMP::Info::Layer1::S3000 for details. SNMP::Info::Layer2 - Generic Layer2 Device subclass. - See documentation in SNMP::Info::Layer2 for details. + Generic Layer2 Device subclass. - SNMP::Info::Layer2::3Com - SNMP::Info::Layer2::3Com - SNMP Interface to L2 3Com Switches + See documentation in SNMP::Info::Layer2 for details. - See documentation in SNMP::Info::Layer2::3Com for details. + SNMP::Info::Layer2::3Com - SNMP::Info::Layer2::Adtran - Subclass for Adtran devices. + SNMP::Info::Layer2::3Com - SNMP Interface to L2 3Com Switches - See documentation in SNMP::Info::Layer2::Adtran for details. + See documentation in SNMP::Info::Layer2::3Com for details. - SNMP::Info::Layer2::Airespace - Subclass for Cisco (Airespace) wireless controllers. + SNMP::Info::Layer2::Adtran - See documentation in SNMP::Info::Layer2::Airespace for details. + Subclass for Adtran devices. - SNMP::Info::Layer2::Aironet - Class for Cisco Aironet wireless devices that run IOS. See also - Layer3::Aironet for Aironet devices that don't run IOS. + See documentation in SNMP::Info::Layer2::Adtran for details. - See documentation in SNMP::Info::Layer2::Aironet for details. + SNMP::Info::Layer2::Airespace - SNMP::Info::Layer2::Allied - Allied Telesis switches. + Subclass for Cisco (Airespace) wireless controllers. - See documentation in SNMP::Info::Layer2::Allied for details. + See documentation in SNMP::Info::Layer2::Airespace for details. - SNMP::Info::Layer2::Baystack - Subclass for Avaya/Nortel/Bay Ethernet Switch/Baystack switches. - This includes 303, 304, 350, 380, 410, 420, 425, 450, 460, 470 - series, 2500 series, 4000 series, 5000 series, Business Ethernet - Switch (BES), Business Policy Switch (BPS), VSP 7000 series, and - probably others. + SNMP::Info::Layer2::Aironet - See documentation in SNMP::Info::Layer2::Baystack for details. + Class for Cisco Aironet wireless devices that run IOS. See also + Layer3::Aironet for Aironet devices that don't run IOS. - SNMP::Info::Layer2::Kentrox - Class for Kentrox DataSMART DSU/CSU. See - SNMP::Info::Layer2::Kentrox for details. + See documentation in SNMP::Info::Layer2::Aironet for details. - SNMP::Info::Layer2::C1900 - Subclass for Cisco Catalyst 1900 and 1900c Devices running - CatOS. + SNMP::Info::Layer2::Allied - See documentation in SNMP::Info::Layer2::C1900 for details. + Allied Telesis switches. - SNMP::Info::Layer2::C2900 - Subclass for Cisco Catalyst 2900, 2950, 3500XL, and 3548 devices - running IOS. + See documentation in SNMP::Info::Layer2::Allied for details. - See documentation in SNMP::Info::Layer2::C2900 for details. + SNMP::Info::Layer2::Baystack - SNMP::Info::Layer2::Catalyst - Subclass for Cisco Catalyst switches running CatOS. These - switches usually report a model number that starts with `wsc'. - Note that this class does not support everything that has the - name Catalyst. + Subclass for Avaya/Nortel/Bay Ethernet Switch/Baystack switches. + This includes 303, 304, 350, 380, 410, 420, 425, 450, 460, 470 + series, 2500 series, 4000 series, 5000 series, Business Ethernet + Switch (BES), Business Policy Switch (BPS), VSP 7000 series, and + probably others. - See documentation in SNMP::Info::Layer2::Catalyst for details. + See documentation in SNMP::Info::Layer2::Baystack for details. - SNMP::Info::Layer2::Centillion - Subclass for Nortel/Bay Centillion and 5000BH ATM switches. + SNMP::Info::Layer2::Kentrox - See documentation in SNMP::Info::Layer2::Centillion for details. + Class for Kentrox DataSMART DSU/CSU. See + SNMP::Info::Layer2::Kentrox for details. - SNMP::Info::Layer2::Cisco - Generic Cisco subclass for layer 2 devices that are not yet - supported in more specific subclassesand the base layer 2 Cisco - class for other device specific layer 2 Cisco classes. + SNMP::Info::Layer2::C1900 - See documentation in SNMP::Info::Layer2::Cisco for details. + Subclass for Cisco Catalyst 1900 and 1900c Devices running CatOS. - SNMP::Info::Layer2::CiscoSB - Subclass for Cisco's "Small Business" product line, acquired - from Linksys. This currently comprises the Sx300/500 line of - switches. + See documentation in SNMP::Info::Layer2::C1900 for details. - See documentation in SNMP::Info::Layer2::CiscoSB for details. + SNMP::Info::Layer2::C2900 - SNMP::Info::Layer2::HP - Subclass for more recent HP Procurve Switches + Subclass for Cisco Catalyst 2900, 2950, 3500XL, and 3548 devices + running IOS. - Requires HP-ICF-OID and ENTITY-MIB downloaded from HP. + See documentation in SNMP::Info::Layer2::C2900 for details. - See documentation in SNMP::Info::Layer2::HP for details. + SNMP::Info::Layer2::Catalyst - SNMP::Info::Layer2::HP4000 - Subclass for older HP Procurve Switches + Subclass for Cisco Catalyst switches running CatOS. These switches + usually report a model number that starts with wsc. Note that this + class does not support everything that has the name Catalyst. - Requires HP-ICF-OID and ENTITY-MIB downloaded from HP. + See documentation in SNMP::Info::Layer2::Catalyst for details. - See documentation in SNMP::Info::Layer2::HP4000 for details. + SNMP::Info::Layer2::Centillion - SNMP::Info::Layer2::HPVC - Subclass for HP Virtual Connect Switches + Subclass for Nortel/Bay Centillion and 5000BH ATM switches. - See documentation in SNMP::Info::Layer2::HPVC for details. + See documentation in SNMP::Info::Layer2::Centillion for details. - SNMP::Info::Layer2::N2270 - Subclass for Nortel 2270 wireless switches. + SNMP::Info::Layer2::Cisco - See documentation in SNMP::Info::Layer2::N2270 for details. + Generic Cisco subclass for layer 2 devices that are not yet + supported in more specific subclassesand the base layer 2 Cisco + class for other device specific layer 2 Cisco classes. - SNMP::Info::Layer2::NAP222x - Subclass for Nortel 222x series wireless access points. + See documentation in SNMP::Info::Layer2::Cisco for details. - See documentation in SNMP::Info::Layer2::NAP222x for details. + SNMP::Info::Layer2::CiscoSB - SNMP::Info::Layer2::Netgear - Subclass for Netgear switches + Subclass for Cisco's "Small Business" product line, acquired from + Linksys. This currently comprises the Sx300/500 line of switches. - See documentation in SNMP::Info::Layer2::Netgear for details. + See documentation in SNMP::Info::Layer2::CiscoSB for details. - SNMP::Info::Layer2::NWSS2300 - SNMP Interface to Avaya (Trapeze) Wireless Controllers + SNMP::Info::Layer2::HP - See documentation in SNMP::Info::Layer2::NWSS2300 for details. + Subclass for more recent HP Procurve Switches - SNMP::Info::Layer2::Orinoco - Subclass for Orinoco/Proxim wireless access points. + Requires HP-ICF-OID and ENTITY-MIB downloaded from HP. - See documentation in SNMP::Info::Layer2::Orinoco for details. + See documentation in SNMP::Info::Layer2::HP for details. - SNMP::Info::Layer2::Trapeze - SNMP Interface to Juniper (Trapeze) Wireless Controllers + SNMP::Info::Layer2::HP4000 - See documentation in SNMP::Info::Layer2::Trapeze for details. + Subclass for older HP Procurve Switches - SNMP::Info::Layer2::Ubiquiti - SNMP Interface to Ubiquiti Access Points and other devices + Requires HP-ICF-OID and ENTITY-MIB downloaded from HP. - See documentation in SNMP::Info::Layer2::Ubiquiti for details. + See documentation in SNMP::Info::Layer2::HP4000 for details. - SNMP::Info::Layer2::ZyXEL_DSLAM - Zyxel DSLAMs. Need I say more? + SNMP::Info::Layer2::HPVC - See documentation in SNMP::Info::Layer2::ZyXEL_DSLAM for - details. + Subclass for HP Virtual Connect Switches + + See documentation in SNMP::Info::Layer2::HPVC for details. + + SNMP::Info::Layer2::N2270 + + Subclass for Nortel 2270 wireless switches. + + See documentation in SNMP::Info::Layer2::N2270 for details. + + SNMP::Info::Layer2::NAP222x + + Subclass for Nortel 222x series wireless access points. + + See documentation in SNMP::Info::Layer2::NAP222x for details. + + SNMP::Info::Layer2::Netgear + + Subclass for Netgear switches + + See documentation in SNMP::Info::Layer2::Netgear for details. + + SNMP::Info::Layer2::NWSS2300 + + SNMP Interface to Avaya (Trapeze) Wireless Controllers + + See documentation in SNMP::Info::Layer2::NWSS2300 for details. + + SNMP::Info::Layer2::Orinoco + + Subclass for Orinoco/Proxim wireless access points. + + See documentation in SNMP::Info::Layer2::Orinoco for details. + + SNMP::Info::Layer2::Trapeze + + SNMP Interface to Juniper (Trapeze) Wireless Controllers + + See documentation in SNMP::Info::Layer2::Trapeze for details. + + SNMP::Info::Layer2::Ubiquiti + + SNMP Interface to Ubiquiti Access Points and other devices + + See documentation in SNMP::Info::Layer2::Ubiquiti for details. + + SNMP::Info::Layer2::ZyXEL_DSLAM + + Zyxel DSLAMs. Need I say more? + + See documentation in SNMP::Info::Layer2::ZyXEL_DSLAM for details. SNMP::Info::Layer3 - Generic Layer3 and Layer2+3 Device subclass. - See documentation in SNMP::Info::Layer3 for details. + Generic Layer3 and Layer2+3 Device subclass. - SNMP::Info::Layer3::Aironet - Subclass for Cisco Aironet wireless access points (AP) not - running IOS. These are usually older devices. + See documentation in SNMP::Info::Layer3 for details. - MIBs for these devices now included in v2.tar.gz available from - ftp.cisco.com. + SNMP::Info::Layer3::Aironet - Note Layer2::Aironet + Subclass for Cisco Aironet wireless access points (AP) not running + IOS. These are usually older devices. - See documentation in SNMP::Info::Layer3::Aironet for details. + MIBs for these devices now included in v2.tar.gz available from + ftp.cisco.com. - SNMP::Info::Layer3::AlcatelLucent - Alcatel-Lucent OmniSwitch Class. + Note Layer2::Aironet - See documentation in SNMP::Info::Layer3::AlcatelLucent for - details. + See documentation in SNMP::Info::Layer3::Aironet for details. - SNMP::Info::Layer3::AlteonAD - Subclass for Radware Alteon Series ADC switches and Nortel - BladeCenter Layer2-3 GbE Switch Modules. + SNMP::Info::Layer3::AlcatelLucent - See documentation in SNMP::Info::Layer3::AlteonAD for details. + Alcatel-Lucent OmniSwitch Class. - SNMP::Info::Layer3::Altiga - See documentation in SNMP::Info::Layer3::Altiga for details. + See documentation in SNMP::Info::Layer3::AlcatelLucent for details. - SNMP::Info::Layer3::Arista - See documentation in SNMP::Info::Layer3::Arista for details. + SNMP::Info::Layer3::AlteonAD - SNMP::Info::Layer3::Aruba - Subclass for Aruba wireless switches. + Subclass for Radware Alteon Series ADC switches and Nortel + BladeCenter Layer2-3 GbE Switch Modules. - See documentation in SNMP::Info::Layer3::Aruba for details. + See documentation in SNMP::Info::Layer3::AlteonAD for details. - SNMP::Info::Layer3::BayRS - Subclass for Avaya/Nortel/Bay Multiprotocol/BayRS routers. This - includes BCN, BLN, ASN, ARN, AN, 2430, and 5430 routers. + SNMP::Info::Layer3::Altiga - See documentation in SNMP::Info::Layer3::BayRS for details. + See documentation in SNMP::Info::Layer3::Altiga for details. - SNMP::Info::Layer3::BlueCoatSG - Subclass for Blue Coat SG series proxy devices. + SNMP::Info::Layer3::Arista - See documentation in SNMP::Info::Layer3::BlueCoatSG for details. + See documentation in SNMP::Info::Layer3::Arista for details. - SNMP::Info::Layer3::C3550 - Subclass for Cisco Catalyst 3550,3540,3560 2/3 switches running - IOS. + SNMP::Info::Layer3::Aruba - See documentation in SNMP::Info::Layer3::C3550 for details. + Subclass for Aruba wireless switches. - SNMP::Info::Layer3::C4000 - This class covers Catalyst 4000s and 4500s. + See documentation in SNMP::Info::Layer3::Aruba for details. - See documentation in SNMP::Info::Layer3::C4000 for details. + SNMP::Info::Layer3::BayRS - SNMP::Info::Layer3::C6500 - This class covers Catalyst 6500s in native mode, hybrid mode. - Catalyst 3750's, 2970's and probably others. + Subclass for Avaya/Nortel/Bay Multiprotocol/BayRS routers. This + includes BCN, BLN, ASN, ARN, AN, 2430, and 5430 routers. - See documentation in SNMP::Info::Layer3::C6500 for details. + See documentation in SNMP::Info::Layer3::BayRS for details. - SNMP::Info::Layer3::CheckPoint - Subclass for CheckPoint devices + SNMP::Info::Layer3::BlueCoatSG - See documentation in SNMP::Info::Layer3::CheckPoint for details. + Subclass for Blue Coat SG series proxy devices. - SNMP::Info::Layer3::Cisco - This is a simple wrapper around layer 3 for IOS devices and the - base layer 3 Cisco class for other device specific layer 3 Cisco - classes. + See documentation in SNMP::Info::Layer3::BlueCoatSG for details. - See documentation in SNMP::Info::Layer3::Cisco for details. + SNMP::Info::Layer3::C3550 - SNMP::Info::Layer3::CiscoASA - Subclass for Cisco Adaptive Security Appliances. + Subclass for Cisco Catalyst 3550,3540,3560 2/3 switches running + IOS. - See documentation in SNMP::Info::Layer3::CiscoASA for details. + See documentation in SNMP::Info::Layer3::C3550 for details. - SNMP::Info::Layer3::CiscoFWSM - Subclass for Cisco Firewall Services Modules. + SNMP::Info::Layer3::C4000 - See documentation in SNMP::Info::Layer3::CiscoFWSM for details. + This class covers Catalyst 4000s and 4500s. - SNMP::Info::Layer3::CiscoSwitch - Base class for L3 Cisco switches. See documentation in - SNMP::Info::Layer3::CiscoSwitch for details. + See documentation in SNMP::Info::Layer3::C4000 for details. - SNMP::Info::Layer3::Contivity - Subclass for Avaya/Nortel Contivity/VPN Routers. + SNMP::Info::Layer3::C6500 - See documentation in SNMP::Info::Layer3::Contivity for details. + This class covers Catalyst 6500s in native mode, hybrid mode. + Catalyst 3750's, 2970's and probably others. - SNMP::Info::Layer3::Cumulus - Subclass for Cumulus Networks Routers. + See documentation in SNMP::Info::Layer3::C6500 for details. - See documentation in SNMP::Info::Layer3::Cumulus for details. + SNMP::Info::Layer3::CheckPoint - SNMP::Info::Layer3::DLink - Subclass for DLink devices. + Subclass for CheckPoint devices - See documentation in SNMP::Info::Layer3::DLink for details. + See documentation in SNMP::Info::Layer3::CheckPoint for details. - SNMP::Info::Layer3::Dell - Subclass for Dell PowerConnect switches. D-Link, the IBM - BladeCenter Gigabit Ethernet Switch Module and some Linksys - switches also use this module based upon MIB support. + SNMP::Info::Layer3::Cisco - See documentation in SNMP::Info::Layer3::Dell for details. + This is a simple wrapper around layer 3 for IOS devices and the + base layer 3 Cisco class for other device specific layer 3 Cisco + classes. - SNMP::Info::Layer3::Enterasys - Subclass for Enterasys devices. + See documentation in SNMP::Info::Layer3::Cisco for details. - See documentation in SNMP::Info::Layer3::Enterasys for details. + SNMP::Info::Layer3::CiscoASA - SNMP::Info::Layer3::Extreme - Subclass for Extreme Networks switches. + Subclass for Cisco Adaptive Security Appliances. - See documentation in SNMP::Info::Layer3::Extreme for details. + See documentation in SNMP::Info::Layer3::CiscoASA for details. - SNMP::Info::Layer3::F5 - Subclass for F5 devices. + SNMP::Info::Layer3::CiscoFWSM - See documentation in SNMP::Info::Layer3::F5 for details. + Subclass for Cisco Firewall Services Modules. - SNMP::Info::Layer3::Force10 - Subclass for Force10 devices. + See documentation in SNMP::Info::Layer3::CiscoFWSM for details. - See documentation in SNMP::Info::Layer3::Force10 for details. + SNMP::Info::Layer3::CiscoSwitch - SNMP::Info::Layer3::Fortinet - Subclass for Fortinet devices. + Base class for L3 Cisco switches. See documentation in + SNMP::Info::Layer3::CiscoSwitch for details. - See documentation in SNMP::Info::Layer3::Fortinet for details. + SNMP::Info::Layer3::Contivity - SNMP::Info::Layer3::Foundry - Subclass for Brocade (Foundry) Network devices. + Subclass for Avaya/Nortel Contivity/VPN Routers. - See documentation in SNMP::Info::Layer3::Foundry for details. + See documentation in SNMP::Info::Layer3::Contivity for details. - SNMP::Info::Layer3::H3C - SNMP Interface to Layer 3 Devices, H3C & HP A-series. + SNMP::Info::Layer3::Cumulus - See documentation in SNMP::Info::Layer3::H3C for details. + Subclass for Cumulus Networks Routers. - SNMP::Info::Layer3::HP9300 - Subclass for HP network devices which Foundry Networks was the - Original Equipment Manufacturer (OEM) such as the HP ProCurve - 9300 and 6300 series. + See documentation in SNMP::Info::Layer3::Cumulus for details. - See documentation in SNMP::Info::Layer3::HP9300 for details. + SNMP::Info::Layer3::DLink - SNMP::Info::Layer3::Huawei - SNMP Interface to Huawei Layer 3 switches and routers. + Subclass for DLink devices. - See documentation in SNMP::Info::Layer3::Huawei for details. + See documentation in SNMP::Info::Layer3::DLink for details. - SNMP::Info::Layer3::IBMGbTor - SNMP Interface to IBM Rackswitch (formerly Blade Network - Technologies) network devices. + SNMP::Info::Layer3::Dell - See documentation in SNMP::Info::Layer3::IBMGbTor for details. + Subclass for Dell PowerConnect switches. D-Link, the IBM + BladeCenter Gigabit Ethernet Switch Module and some Linksys + switches also use this module based upon MIB support. - SNMP::Info::Layer3::Juniper - Subclass for Juniper devices + See documentation in SNMP::Info::Layer3::Dell for details. - See documentation in SNMP::Info::Layer3::Juniper for details. + SNMP::Info::Layer3::Enterasys - SNMP::Info::Layer3::Lantronix - Subclass for Lantronix devices + Subclass for Enterasys devices. - See documentation in SNMP::Info::Layer3::Lantronix for details. + See documentation in SNMP::Info::Layer3::Enterasys for details. - SNMP::Info::Layer3::Microsoft - Subclass for Generic Microsoft Routers running Microsoft Windows - OS. + SNMP::Info::Layer3::Extreme - See documentation in SNMP::Info::Layer3::Microsoft for details. + Subclass for Extreme Networks switches. - SNMP::Info::Layer3::Mikrotik - Subclass for Mikrotik devices running RouterOS. + See documentation in SNMP::Info::Layer3::Extreme for details. - See documentation in SNMP::Info::Layer3::Mikrotik for details. + SNMP::Info::Layer3::F5 - SNMP::Info::Layer3::N1600 - Subclass for Avaya/Nortel Ethernet Routing Switch 1600 series. + Subclass for F5 devices. - See documentation in SNMP::Info::Layer3::N1600 for details. + See documentation in SNMP::Info::Layer3::F5 for details. - SNMP::Info::Layer3::NetSNMP - Subclass for host systems running Net-SNMP. + SNMP::Info::Layer3::Force10 - See documentation in SNMP::Info::Layer3::NetSNMP for details. + Subclass for Force10 devices. - SNMP::Info::Layer3::Netscreen - Subclass for Juniper NetScreen. + See documentation in SNMP::Info::Layer3::Force10 for details. - See documentation in SNMP::Info::Layer3::Netscreen for details. + SNMP::Info::Layer3::Fortinet - SNMP::Info::Layer3::Nexus - Subclass for Cisco Nexus devices running NX-OS + Subclass for Fortinet devices. - See documentation in SNMP::Info::Layer3::Nexus for details. + See documentation in SNMP::Info::Layer3::Fortinet for details. - SNMP::Info::Layer3::PacketFront - Subclass for PacketFront DRG series CPE. + SNMP::Info::Layer3::Foundry - See documentation in SNMP::Info::Layer3::PacketFront for - details. + Subclass for Brocade (Foundry) Network devices. - SNMP::Info::Layer3::PaloAlto - Subclass for Palo Alto firewalls. + See documentation in SNMP::Info::Layer3::Foundry for details. - See documentation in SNMP::Info::Layer3::PaloAlto for details. + SNMP::Info::Layer3::H3C - SNMP::Info::Layer3::Passport - Subclass for Avaya/Nortel Ethernet Routing Switch/Passport 8000 - series, Accelar, and VSP 9000 series switches. + SNMP Interface to Layer 3 Devices, H3C & HP A-series. - See documentation in SNMP::Info::Layer3::Passport for details. + See documentation in SNMP::Info::Layer3::H3C for details. - SNMP::Info::Layer3::Pf - Subclass for FreeBSD-Based Firewalls using Pf /Pf Sense + SNMP::Info::Layer3::HP9300 - See documentation in SNMP::Info::Layer3::Pf for details. + Subclass for HP network devices which Foundry Networks was the + Original Equipment Manufacturer (OEM) such as the HP ProCurve 9300 + and 6300 series. - SNMP::Info::Layer3::Pica8 - Subclass for Pica8 devices. + See documentation in SNMP::Info::Layer3::HP9300 for details. - See documentation in SNMP::Info::Layer3::Pica8 for details. + SNMP::Info::Layer3::Huawei - SNMP::Info::Layer3::SonicWALL - Subclass for generic SonicWALL devices. See documentation in - SNMP::Info::Layer3::SonicWALL for details. + SNMP Interface to Huawei Layer 3 switches and routers. - SNMP::Info::Layer3::Steelhead - Subclass for Riverbed Steelhead WAN optimization appliances. See - documentation in SNMP::Info::Layer3::Steelhead for details. + See documentation in SNMP::Info::Layer3::Huawei for details. - SNMP::Info::Layer3::Sun - Subclass for Generic Sun Routers running SunOS. + SNMP::Info::Layer3::IBMGbTor - See documentation in SNMP::Info::Layer3::Sun for details. + SNMP Interface to IBM Rackswitch (formerly Blade Network + Technologies) network devices. - SNMP::Info::Layer3::Tasman - Subclass for Avaya Secure Routers. + See documentation in SNMP::Info::Layer3::IBMGbTor for details. - See documentation in SNMP::Info::Layer3::Tasman for details. + SNMP::Info::Layer3::Juniper - SNMP::Info::Layer3::Timetra - Alcatel-Lucent SR Class. + Subclass for Juniper devices - See documentation in SNMP::Info::Layer3::Timetra for details. + See documentation in SNMP::Info::Layer3::Juniper for details. - SNMP::Info::Layer3::VyOS - Subclass for VyOS routers. + SNMP::Info::Layer3::Lantronix - See documentation in SNMP::Info::Layer3::VyOS for details. + Subclass for Lantronix devices - SNMP::Info::Layer3::VMware - Subclass for VMware ESXi hosts. + See documentation in SNMP::Info::Layer3::Lantronix for details. - See documentation in SNMP::Info::Layer3::VMware for details. + SNMP::Info::Layer3::Microsoft + + Subclass for Generic Microsoft Routers running Microsoft Windows + OS. + + See documentation in SNMP::Info::Layer3::Microsoft for details. + + SNMP::Info::Layer3::Mikrotik + + Subclass for Mikrotik devices running RouterOS. + + See documentation in SNMP::Info::Layer3::Mikrotik for details. + + SNMP::Info::Layer3::N1600 + + Subclass for Avaya/Nortel Ethernet Routing Switch 1600 series. + + See documentation in SNMP::Info::Layer3::N1600 for details. + + SNMP::Info::Layer3::NetSNMP + + Subclass for host systems running Net-SNMP. + + See documentation in SNMP::Info::Layer3::NetSNMP for details. + + SNMP::Info::Layer3::Netscreen + + Subclass for Juniper NetScreen. + + See documentation in SNMP::Info::Layer3::Netscreen for details. + + SNMP::Info::Layer3::Nexus + + Subclass for Cisco Nexus devices running NX-OS + + See documentation in SNMP::Info::Layer3::Nexus for details. + + SNMP::Info::Layer3::PacketFront + + Subclass for PacketFront DRG series CPE. + + See documentation in SNMP::Info::Layer3::PacketFront for details. + + SNMP::Info::Layer3::PaloAlto + + Subclass for Palo Alto firewalls. + + See documentation in SNMP::Info::Layer3::PaloAlto for details. + + SNMP::Info::Layer3::Passport + + Subclass for Avaya/Nortel Ethernet Routing Switch/Passport 8000 + series, Accelar, and VSP 9000 series switches. + + See documentation in SNMP::Info::Layer3::Passport for details. + + SNMP::Info::Layer3::Pf + + Subclass for FreeBSD-Based Firewalls using Pf /Pf Sense + + See documentation in SNMP::Info::Layer3::Pf for details. + + SNMP::Info::Layer3::Pica8 + + Subclass for Pica8 devices. + + See documentation in SNMP::Info::Layer3::Pica8 for details. + + SNMP::Info::Layer3::SonicWALL + + Subclass for generic SonicWALL devices. See documentation in + SNMP::Info::Layer3::SonicWALL for details. + + SNMP::Info::Layer3::Steelhead + + Subclass for Riverbed Steelhead WAN optimization appliances. See + documentation in SNMP::Info::Layer3::Steelhead for details. + + SNMP::Info::Layer3::Sun + + Subclass for Generic Sun Routers running SunOS. + + See documentation in SNMP::Info::Layer3::Sun for details. + + SNMP::Info::Layer3::Tasman + + Subclass for Avaya Secure Routers. + + See documentation in SNMP::Info::Layer3::Tasman for details. + + SNMP::Info::Layer3::Timetra + + Alcatel-Lucent SR Class. + + See documentation in SNMP::Info::Layer3::Timetra for details. + + SNMP::Info::Layer3::VyOS + + Subclass for VyOS routers. + + See documentation in SNMP::Info::Layer3::VyOS for details. + + SNMP::Info::Layer3::VMware + + Subclass for VMware ESXi hosts. + + See documentation in SNMP::Info::Layer3::VMware for details. SNMP::Info::Layer7 - Generic Layer7 Devices. - See documentation in SNMP::Info::Layer7 for details. + Generic Layer7 Devices. - SNMP::Info::Layer7::APC - Subclass for APC UPS devices + See documentation in SNMP::Info::Layer7 for details. - See documentation in SNMP::Info::Layer7::APC for details. + SNMP::Info::Layer7::APC - SNMP::Info::Layer7::CiscoIPS - Subclass for Cisco IPS devices + Subclass for APC UPS devices - See documentation in SNMP::Info::Layer7::Cisco IPS for details. + See documentation in SNMP::Info::Layer7::APC for details. - SNMP::Info::Layer7::Gigamon - Subclass for Gigamon devices + SNMP::Info::Layer7::CiscoIPS - See documentation in SNMP::Info::Layer7::Gigamon for details. + Subclass for Cisco IPS devices - SNMP::Info::Layer7::Netscaler - Subclass for Citrix Netscaler appliances + See documentation in "SNMP::Info::Layer7::Cisco IPS" for details. - See documentation in SNMP::Info::Layer7::Netscaler for details. + SNMP::Info::Layer7::Gigamon - SNMP::Info::Layer7::Neoteris - Subclass for Juniper SSL VPN appliances + Subclass for Gigamon devices - See documentation in SNMP::Info::Layer7::Neoteris for details. + See documentation in SNMP::Info::Layer7::Gigamon for details. + + SNMP::Info::Layer7::Netscaler + + Subclass for Citrix Netscaler appliances + + See documentation in SNMP::Info::Layer7::Netscaler for details. + + SNMP::Info::Layer7::Neoteris + + Subclass for Juniper SSL VPN appliances + + See documentation in SNMP::Info::Layer7::Neoteris for details. Thanks + Thanks for testing and coding help (in no particular order) to : Alexander Barthel, Andy Ford, Alexander Hartmaier, Andrew Herrick, Alex Kramarov, Bernhard Augenstein, Bradley Baetz, Brian Chow, Brian Wilson, @@ -848,158 +978,177 @@ Thanks Netdisco README! USAGE - Constructor + + Constructor + new() - 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; + Creates a new object and connects via SNMP::Session. - SNMP::Info Specific Arguments : + 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; - AutoSpecify - Returns an object of a more specific device class + SNMP::Info Specific Arguments : - (default 0, which means "off") + AutoSpecify - BigInt - Return Math::BigInt objects for 64 bit counters. Sets on a - global scope, not object. + Returns an object of a more specific device class - (default 0, which means "off") + (default 0, which means "off") - BulkWalk - Set to `0' to turn off BULKWALK commands for SNMPv2 connections. + BigInt - Note that BULKWALK is turned off for Net-SNMP versions 5.1.x - because of a bug. + Return Math::BigInt objects for 64 bit counters. Sets on a global + scope, not object. - (default 1, which means "on") + (default 0, which means "off") - BulkRepeaters - Set number of MaxRepeaters for BULKWALK operation. See `perldoc - SNMP' -> bulkwalk() for more info. + BulkWalk - (default 20) + Set to 0 to turn off BULKWALK commands for SNMPv2 connections. - LoopDetect - Detects looping during getnext table column walks by comparing - IIDs for each instance. A loop is detected if the same IID is - seen more than once and the walk is aborted. Note: This will not - detect loops during a bulkwalk operation, Net-SNMP's internal - bulkwalk function must detect the loop. + Note that BULKWALK is turned off for Net-SNMP versions 5.1.x + because of a bug. - Set to `0' to turn off loop detection. + (default 1, which means "on") - (default 1, which means "on") + BulkRepeaters - IgnoreNetSNMPConf - Net-SNMP version 5.0 and higher read configuration files, - snmp.conf or snmp.local.conf, from /etc/snmp, /usr/share/snmp, - /usr/lib(64)/snmp, or $HOME/.snmp and uses those settings to - automatically parse MIB files, etc. + Set number of MaxRepeaters for BULKWALK operation. See perldoc SNMP + -> bulkwalk() for more info. - Set to `1' "on" to ignore Net-SNMP configuration files by - overriding the `SNMPCONFPATH' environmental variable during - object initialization. Note: MibDirs must be defined or Net-SNMP - will not be able to load MIBs and initialize the object. + (default 20) - (default 0, which means "off") + LoopDetect - Debug - Prints Lots of debugging messages. Pass 2 to print even more - debugging messages. + Detects looping during getnext table column walks by comparing IIDs + for each instance. A loop is detected if the same IID is seen more + than once and the walk is aborted. Note: This will not detect loops + during a bulkwalk operation, Net-SNMP's internal bulkwalk function + must detect the loop. - (default 0, which means "off") + Set to 0 to turn off loop detection. - DebugSNMP - Set $SNMP::debugging level for Net-SNMP. + (default 1, which means "on") - See SNMP for more details. + IgnoreNetSNMPConf - MibDirs - Array ref to list of directories in which to look for MIBs. Note - this will be in addition to the ones setup in snmp.conf at the - system level. + Net-SNMP version 5.0 and higher read configuration files, snmp.conf + or snmp.local.conf, from /etc/snmp, /usr/share/snmp, + /usr/lib(64)/snmp, or $HOME/.snmp and uses those settings to + automatically parse MIB files, etc. - (default use net-snmp settings only) + Set to 1 "on" to ignore Net-SNMP configuration files by overriding + the SNMPCONFPATH environmental variable during object + initialization. Note: MibDirs must be defined or Net-SNMP will not + be able to load MIBs and initialize the object. - RetryNoSuch - When using SNMP Version 1, try reading values even if they come - back as "no such variable in this MIB". Set to false if so - desired. This feature lets you read SNMPv2 data from an SNMP - version 1 connection, and should probably be left on. + (default 0, which means "off") - (default 1, which means "on") + Debug - Session - SNMP::Session object to use instead of connecting on own. + Prints Lots of debugging messages. Pass 2 to print even more + debugging messages. - (default creates session automatically) + (default 0, which means "off") - Offline - Causes SNMP::Info to avoid network activity and return data only - from its cache. If you ask for something not in the cache, an - error is thrown. See also the `cache()' and `offline()' methods. + DebugSNMP - (default 0, which means "online") + Set $SNMP::debugging level for Net-SNMP. - Cache - Pass in a HashRef to prime the cache of retrieved data. Useful - for creating an instance in `Offline' mode from a previously - dumped cache. See also the `cache()' method to retrieve a cache - after running actial queries. + See SNMP for more details. - OTHER - All other arguments are passed to SNMP::Session. + MibDirs - See SNMP::Session for a list of other possible arguments. + Array ref to list of directories in which to look for MIBs. Note + this will be in addition to the ones setup in snmp.conf at the + system level. - A Note about the wrong Community string or wrong SNMP Version: + (default use net-snmp settings only) - If a connection is using the wrong community string or the wrong - SNMP version, the creation of the object will not fail. The device - still answers the call on the SNMP port, but will not return - information. Check the error() method after you create the device - object to see if there was a problem in connecting. + RetryNoSuch - A note about SNMP Versions : + When using SNMP Version 1, try reading values even if they come + back as "no such variable in this MIB". Set to false if so desired. + This feature lets you read SNMPv2 data from an SNMP version 1 + connection, and should probably be left on. - Some older devices don't support SNMP version 2, and will not return - anything when a connection under Version 2 is attempted. + (default 1, which means "on") - Some newer devices will support Version 1, but will not return all - the data they might have if you had connected under Version 1 + Session - When trying to get info from a new device, you may have to try - version 2 and then fallback to version 1. + SNMP::Session object to use instead of connecting on own. + + (default creates session automatically) + + Offline + + Causes SNMP::Info to avoid network activity and return data only + from its cache. If you ask for something not in the cache, an error + is thrown. See also the cache() and offline() methods. + + (default 0, which means "online") + + Cache + + Pass in a HashRef to prime the cache of retrieved data. Useful for + creating an instance in Offline mode from a previously dumped + cache. See also the cache() method to retrieve a cache after + running actial queries. + + OTHER + + All other arguments are passed to SNMP::Session. + + See SNMP::Session for a list of other possible arguments. + + A Note about the wrong Community string or wrong SNMP Version: + + If a connection is using the wrong community string or the wrong SNMP + version, the creation of the object will not fail. The device still + answers the call on the SNMP port, but will not return information. + Check the error() method after you create the device object to see if + there was a problem in connecting. + + A note about SNMP Versions : + + Some older devices don't support SNMP version 2, and will not return + anything when a connection under Version 2 is attempted. + + Some newer devices will support Version 1, but will not return all + the data they might have if you had connected under Version 1 + + When trying to get info from a new device, you may have to try + version 2 and then fallback to version 1. update() - Replace the existing session with a new one with updated values, - without re-identifying the device. The only supported changes are to - Community or Context. - Clears the object cache. + Replace the existing session with a new one with updated values, + without re-identifying the device. The only supported changes are to + Community or Context. - This is useful, e.g., when a device supports multiple contexts (via - changes to the Community string, or via the SNMPv3 Context - parameter), but a context that you want to access does not support - the objects (e.g., `sysObjectID', `sysDescr') that we use to - identify the device. + Clears the object cache. - Data is Cached - Methods and subroutines requesting data from a device will only load the - data once, and then return cached versions of that data. + This is useful, e.g., when a device supports multiple contexts (via + changes to the Community string, or via the SNMPv3 Context + parameter), but a context that you want to access does not support + the objects (e.g., sysObjectID, sysDescr) that we use to identify the + device. + + Data is Cached + + Methods and subroutines requesting data from a device will only load + the data once, and then return cached versions of that data. Run $info->load_METHOD() where method is something like 'i_name' to reload data from a method. @@ -1008,140 +1157,162 @@ USAGE globals and table methods. The cache can be retrieved or set using the $info->cache() method. This - works together with the `Offline' option. + works together with the Offline option. + + Object Scalar Methods - Object Scalar Methods These are for package related data, not directly supplied from SNMP. $info->clear_cache() - Clears the cached data. This includes GLOBALS data and TABLE METHOD - data. + + Clears the cached data. This includes GLOBALS data and TABLE METHOD + data. $info->debug(1) - Returns current debug status, and optionally toggles debugging info - for this object. + + Returns current debug status, and optionally toggles debugging info + for this object. $info->offline([1|0]) - Returns if offline mode is currently turned on for this object. - Optionally sets the Offline parameter. + Returns if offline mode is currently turned on for this object. + + Optionally sets the Offline parameter. $info->cache([new_cache]) - Returns a HashRef of all cached data in this object. There will be a - `store' key for table data and then one key for each leaf. - Optionally sets the cache parameters if passed a HashRef. + Returns a HashRef of all cached data in this object. There will be a + store key for table data and then one key for each leaf. + + Optionally sets the cache parameters if passed a HashRef. $info->bulkwalk([1|0]) - Returns if bulkwalk is currently turned on for this object. - Optionally sets the bulkwalk parameter. + Returns if bulkwalk is currently turned on for this object. + + Optionally sets the bulkwalk parameter. $info->loopdetect([1|0]) - Returns if loopdetect is currently turned on for this object. - Optionally sets the loopdetect parameter. + Returns if loopdetect is currently turned on for this object. + + Optionally sets the loopdetect parameter. $info->device_type() - Returns the Subclass name for this device. `SNMP::Info' is returned - if no more specific class is available. - First the device is checked for Layer 3 support and a specific - subclass, then Layer 2 support and subclasses are checked. + Returns the Subclass name for this device. SNMP::Info is returned if + no more specific class is available. - This means that Layer 2 / 3 switches and routers will fall under the - SNMP::Info::Layer3 subclasses. + First the device is checked for Layer 3 support and a specific + subclass, then Layer 2 support and subclasses are checked. - If the device still can be connected to via SNMP::Info, then - SNMP::Info is returned. + This means that Layer 2 / 3 switches and routers will fall under the + SNMP::Info::Layer3 subclasses. + + If the device still can be connected to via SNMP::Info, then + SNMP::Info is returned. $info->error(no_clear) - Returns Error message if there is an error, or undef if there is - not. - Reading the error will clear the error unless you set the no_clear - flag. + Returns Error message if there is an error, or undef if there is not. + + Reading the error will clear the error unless you set the no_clear + flag. $info->has_layer(3) - Returns non-zero if the device has the supplied layer in the OSI - Model - Returns if the device doesn't support the layers() call. + Returns non-zero if the device has the supplied layer in the OSI + Model + + Returns if the device doesn't support the layers() call. $info->snmp_comm() - Returns SNMP Community string used in connection. + + Returns SNMP Community string used in connection. $info->snmp_ver() - Returns SNMP Version used for this connection + + Returns SNMP Version used for this connection $info->specify() - Returns an object of a more-specific subclass. - my $info = new SNMP::Info(...); - # Returns more specific object type - $info = $info->specific(); + Returns an object of a more-specific subclass. - Usually this method is called internally from new(AutoSpecify => 1) + my $info = new SNMP::Info(...); + # Returns more specific object type + $info = $info->specific(); - See device_type() entry for how a subclass is chosen. + Usually this method is called internally from new(AutoSpecify => 1) + + See device_type() entry for how a subclass is chosen. $info->cisco_comm_indexing() - Returns 0. Is an overridable method used for vlan indexing for snmp - calls on certain Cisco devices. - See - ftp://ftp.cisco.com/pub/mibs/supportlists/wsc5000/wsc5000-communityI - ndexing.html + Returns 0. Is an overridable method used for vlan indexing for snmp + calls on certain Cisco devices. + + See + ftp://ftp.cisco.com/pub/mibs/supportlists/wsc5000/wsc5000-communityIn + dexing.html + + Globals (Scalar Methods) - Globals (Scalar Methods) These are methods to return scalar data from RFC1213. Some subset of these is probably available for any network device that speaks SNMP. $info->uptime() - Uptime in hundredths of seconds since device became available. - (`sysUpTime') + Uptime in hundredths of seconds since device became available. + + (sysUpTime) $info->contact() - (`sysContact') + + (sysContact) $info->name() - (`sysName') + + (sysName) $info->location() - (`sysLocation') + + (sysLocation) $info->layers() - This returns a binary encoded string where each digit represents a - layer of the OSI model served by the device. - eg: 01000010 means layers 2 (physical) and 7 (Application) - are served. + This returns a binary encoded string where each digit represents a + layer of the OSI model served by the device. - Note: This string is 8 digits long. + eg: 01000010 means layers 2 (physical) and 7 (Application) + are served. - See $info->has_layer() + Note: This string is 8 digits long. - (`sysServices') + See $info->has_layer() + + (sysServices) $info->ports() - Number of interfaces available on this device. - Not too useful as the number of SNMP interfaces usually does not - correspond with the number of physical ports + Number of interfaces available on this device. - (`ifNumber') + Not too useful as the number of SNMP interfaces usually does not + correspond with the number of physical ports + + (ifNumber) $info->ipforwarding() - The indication of whether the entity is acting as an IP gateway - Returns either forwarding or not-forwarding + The indication of whether the entity is acting as an IP gateway - (`ipForwarding') + Returns either forwarding or not-forwarding + + (ipForwarding) + + Table Methods - Table Methods Each of these methods returns a hash_reference to a hash keyed on the interface index in SNMP. @@ -1152,347 +1323,392 @@ USAGE '9.99' => 'FastEthernet/2' } - The key is what you would see if you were to do an snmpwalk, and in some - cases changes between reboots of the network device. + The key is what you would see if you were to do an snmpwalk, and in + some cases changes between reboots of the network device. + + Partial Table Fetches - Partial Table Fetches If you want to get only a part of an SNMP table or a single instance from the table and you know the IID for the part of the table that you want, you can specify it in the call: $local_routes = $info->ipr_route('192.168.0'); - This will only fetch entries in the table that start with `192.168.0', + This will only fetch entries in the table that start with 192.168.0, which in this case are routes on the local network. Remember that you must supply the partial IID (a numeric OID). Partial table results are not cached. - Interface Information + Interface Information + $info->interfaces() - This methods is overridden in each subclass to provide a mapping - between the Interface Table Index (iid) and the physical port name. + + This methods is overridden in each subclass to provide a mapping + between the Interface Table Index (iid) and the physical port name. $info->if_ignore() - Returns a reference to a hash where key values that exist are - interfaces to ignore. - Ignored interfaces are ones that are usually not physical ports or - Virtual Lans (VLANs) such as the Loopback interface, or the CPU - interface. + Returns a reference to a hash where key values that exist are + interfaces to ignore. + + Ignored interfaces are ones that are usually not physical ports or + Virtual Lans (VLANs) such as the Loopback interface, or the CPU + interface. $info->bulkwalk_no() - Returns 0. Is an overridable method used for turn off bulkwalk for - the device class. + + Returns 0. Is an overridable method used for turn off bulkwalk for + the device class. $info->i_index() - Default SNMP IID to Interface index. - (`ifIndex') + Default SNMP IID to Interface index. + + (ifIndex) $info->i_description() - Description of the interface. Usually a little longer single word - name that is both human and machine friendly. Not always. - (`ifDescr') + Description of the interface. Usually a little longer single word + name that is both human and machine friendly. Not always. + + (ifDescr) $info->i_type() - Interface type, such as Vlan, Ethernet, Serial - (`ifType') + Interface type, such as Vlan, Ethernet, Serial + + (ifType) $info->i_mtu() - INTEGER. Interface MTU value. - (`ifMtu') + INTEGER. Interface MTU value. + + (ifMtu) $info->i_speed() - Speed of the link, human format. See munge_speed() later in document - for details. - (`ifSpeed', `ifHighSpeed' if necessary) + Speed of the link, human format. See munge_speed() later in document + for details. + + (ifSpeed, ifHighSpeed if necessary) $info->i_speed_raw() - Speed of the link in bits per second without munging. If - i_speed_high is available it will be used and multiplied by - 1_000_000. - (`ifSpeed', `ifHighSpeed' if necessary) + Speed of the link in bits per second without munging. If i_speed_high + is available it will be used and multiplied by 1_000_000. + + (ifSpeed, ifHighSpeed if necessary) $info->i_speed_high() - Speed of a high-speed link, human format. See munge_highspeed() - later in document for details. You should not need to call this - directly, as i_speed() will call it if it needs to. - (`ifHighSpeed') + Speed of a high-speed link, human format. See munge_highspeed() later + in document for details. You should not need to call this directly, + as i_speed() will call it if it needs to. + + (ifHighSpeed) $info->i_mac() - MAC address of the interface. Note this is just the MAC of the port, - not anything connected to it. - (`ifPhysAddress') + MAC address of the interface. Note this is just the MAC of the port, + not anything connected to it. + + (ifPhysAddress) $info->i_up() - Link Status of the interface. Typical values are 'up' and 'down'. - (`ifOperStatus') + Link Status of the interface. Typical values are 'up' and 'down'. + + (ifOperStatus) $info->i_up_admin() - Administrative status of the port. Typical values are 'enabled' and - 'disabled'. - (`ifAdminStatus') + Administrative status of the port. Typical values are 'enabled' and + 'disabled'. + + (ifAdminStatus) $info->i_lastchange() - The value of `sysUpTime' when this port last changed states - (up,down). - (`ifLastChange') + The value of sysUpTime when this port last changed states (up,down). + + (ifLastChange) $info->i_name() - Interface Name field. Supported by a smaller subset of devices, this - fields is often human set. - (`ifName') + Interface Name field. Supported by a smaller subset of devices, this + fields is often human set. + + (ifName) $info->i_alias() - Interface Name field. For certain devices this is a more human - friendly form of i_description(). For others it is a human set field - like i_name(). - (`ifAlias') + Interface Name field. For certain devices this is a more human + friendly form of i_description(). For others it is a human set field + like i_name(). + + (ifAlias) + + Interface Statistics - Interface Statistics $info->i_octet_in(), $info->i_octets_out(), $info->i_octet_in64(), $info->i_octets_out64() - Bandwidth. - Number of octets sent/received on the interface including framing - characters. + Bandwidth. - 64 bit version may not exist on all devices. + Number of octets sent/received on the interface including framing + characters. - NOTE: To manipulate 64 bit counters you need to use Math::BigInt, - since the values are too large for a normal Perl scalar. Set the - global $SNMP::Info::BIGINT to 1 , or pass the BigInt value to new() - if you want SNMP::Info to do it for you. + 64 bit version may not exist on all devices. - (`ifInOctets') (`ifOutOctets') (`ifHCInOctets') (`ifHCOutOctets') + NOTE: To manipulate 64 bit counters you need to use Math::BigInt, + since the values are too large for a normal Perl scalar. Set the + global $SNMP::Info::BIGINT to 1 , or pass the BigInt value to new() + if you want SNMP::Info to do it for you. + + (ifInOctets) (ifOutOctets) (ifHCInOctets) (ifHCOutOctets) $info->i_errors_in(), $info->i_errors_out() - Number of packets that contained an error preventing delivery. See - `IF-MIB' for more info. - (`ifInErrors') (`ifOutErrors') + Number of packets that contained an error preventing delivery. See + IF-MIB for more info. + + (ifInErrors) (ifOutErrors) $info->i_pkts_ucast_in(), $info->i_pkts_ucast_out(), $info->i_pkts_ucast_in64(), $info->i_pkts_ucast_out64() - Number of packets not sent to a multicast or broadcast address. - 64 bit version may not exist on all devices. + Number of packets not sent to a multicast or broadcast address. - (`ifInUcastPkts') (`ifOutUcastPkts') (`ifHCInUcastPkts') - (`ifHCOutUcastPkts') + 64 bit version may not exist on all devices. + + (ifInUcastPkts) (ifOutUcastPkts) (ifHCInUcastPkts) (ifHCOutUcastPkts) $info->i_pkts_nucast_in(), $info->i_pkts_nucast_out(), - Number of packets sent to a multicast or broadcast address. - These methods are deprecated by i_pkts_multi_in() and - i_pkts_bcast_in() according to `IF-MIB'. Actual device usage may - vary. + Number of packets sent to a multicast or broadcast address. - (`ifInNUcastPkts') (`ifOutNUcastPkts') + These methods are deprecated by i_pkts_multi_in() and + i_pkts_bcast_in() according to IF-MIB. Actual device usage may vary. + + (ifInNUcastPkts) (ifOutNUcastPkts) $info->i_pkts_multi_in() $info->i_pkts_multi_out(), $info->i_pkts_multi_in64(), $info->i_pkts_multi_out64() - Number of packets sent to a multicast address. - 64 bit version may not exist on all devices. + Number of packets sent to a multicast address. - (`ifInMulticastPkts') (`ifOutMulticastPkts') (`ifHCInMulticastPkts') - (`ifHCOutMulticastPkts') + 64 bit version may not exist on all devices. + + (ifInMulticastPkts) (ifOutMulticastPkts) (ifHCInMulticastPkts) + (ifHCOutMulticastPkts) $info->i_pkts_bcast_in() $info->i_pkts_bcast_out(), $info->i_pkts_bcast_in64() $info->i_pkts_bcast_out64() - Number of packets sent to a broadcast address on an interface. - 64 bit version may not exist on all devices. + Number of packets sent to a broadcast address on an interface. - (`ifInBroadcastPkts') (`ifOutBroadcastPkts') (`ifHCInBroadcastPkts') - (`ifHCOutBroadcastPkts') + 64 bit version may not exist on all devices. + + (ifInBroadcastPkts) (ifOutBroadcastPkts) (ifHCInBroadcastPkts) + (ifHCOutBroadcastPkts) $info->i_discards_in() $info->i_discards_out() - "The number of inbound packets which were chosen to be discarded - even though no errors had been detected to prevent their being - deliverable to a higher-layer protocol. One possible reason for - discarding such a packet could be to free up buffer space." - (`IF-MIB') - (`ifInDiscards') (`ifOutDiscards') + "The number of inbound packets which were chosen to be discarded even + though no errors had been detected to prevent their being deliverable + to a higher-layer protocol. One possible reason for discarding such a + packet could be to free up buffer space." (IF-MIB) + + (ifInDiscards) (ifOutDiscards) $info->i_bad_proto_in() - "For packet-oriented interfaces, the number of packets received via - the interface which were discarded because of an unknown or - unsupported protocol. For character-oriented or fixed-length - interfaces that support protocol multiplexing the number of - transmission units received via the interface which were discarded - because of an unknown or unsupported protocol. For any interface - that does not support protocol multiplexing, this counter will - always be 0." - (`ifInUnknownProtos') + "For packet-oriented interfaces, the number of packets received via + the interface which were discarded because of an unknown or + unsupported protocol. For character-oriented or fixed-length + interfaces that support protocol multiplexing the number of + transmission units received via the interface which were discarded + because of an unknown or unsupported protocol. For any interface that + does not support protocol multiplexing, this counter will always be + 0." + + (ifInUnknownProtos) $info->i_qlen_out() - "The length of the output packet queue (in packets)." - (`ifOutQLen') + "The length of the output packet queue (in packets)." + + (ifOutQLen) $info->i_specific() - See `IF-MIB' for full description - (`ifSpecific') + See IF-MIB for full description - IP Address Table - Each entry in this table is an IP address in use on this device. Usually - this is implemented in Layer3 Devices. + (ifSpecific) + + IP Address Table + + Each entry in this table is an IP address in use on this device. + Usually this is implemented in Layer3 Devices. $info->ip_index() - Maps the IP Table to the IID - (`ipAdEntIfIndex') + Maps the IP Table to the IID + + (ipAdEntIfIndex) $info->ip_table() - Maps the Table to the IP address - (`ipAdEntAddr') + Maps the Table to the IP address + + (ipAdEntAddr) $info->ip_netmask() - Gives netmask setting for IP table entry. - (`ipAdEntNetMask') + Gives netmask setting for IP table entry. + + (ipAdEntNetMask) $info->ip_broadcast() - Gives broadcast address for IP table entry. - (`ipAdEntBcastAddr') + Gives broadcast address for IP table entry. + + (ipAdEntBcastAddr) + + IP Routing Table - IP Routing Table $info->ipr_route() - The route in question. A value of 0.0.0.0 is the default gateway - route. - (`ipRouteDest') + The route in question. A value of 0.0.0.0 is the default gateway + route. + + (ipRouteDest) $info->ipr_if() - The interface (IID) that the route is on. Use interfaces() to map. - (`ipRouteIfIndex') + The interface (IID) that the route is on. Use interfaces() to map. + + (ipRouteIfIndex) $info->ipr_1() - Primary routing metric for this route. - (`ipRouteMetric1') + Primary routing metric for this route. + + (ipRouteMetric1) $info->ipr_2() - If metrics are not used, they should be set to -1 - (`ipRouteMetric2') + If metrics are not used, they should be set to -1 + + (ipRouteMetric2) $info->ipr_3() - (`ipRouteMetric3') + + (ipRouteMetric3) $info->ipr_4() - (`ipRouteMetric4') + + (ipRouteMetric4) $info->ipr_5() - (`ipRouteMetric5') + + (ipRouteMetric5) $info->ipr_dest() - From RFC1213: - "The IP address of the next hop of this route. - (In the case of a route bound to an interface - which is realized via a broadcast media, the value - of this field is the agent's IP address on that - interface.)" + From RFC1213: - (`ipRouteNextHop') + "The IP address of the next hop of this route. + (In the case of a route bound to an interface + which is realized via a broadcast media, the value + of this field is the agent's IP address on that + interface.)" + + (ipRouteNextHop) $info->ipr_type() - From RFC1213: - other(1), -- none of the following - invalid(2), -- an invalidated route - -- route to directly - direct(3), -- connected (sub-)network - -- route to a non-local - indirect(4) -- host/network/sub-network + From RFC1213: - "The type of route. Note that the values - direct(3) and indirect(4) refer to the notion of - direct and indirect routing in the IP - architecture. + other(1), -- none of the following + invalid(2), -- an invalidated route + -- route to directly + direct(3), -- connected (sub-)network + -- route to a non-local + indirect(4) -- host/network/sub-network + + + "The type of route. Note that the values + direct(3) and indirect(4) refer to the notion of + direct and indirect routing in the IP + architecture. + + Setting this object to the value invalid(2) has + the effect of invalidating the corresponding entry + in the ipRouteTable object. That is, it + effectively disassociates the destination + identified with said entry from the route + identified with said entry. It is an + implementation-specific matter as to whether the + agent removes an invalidated entry from the table. + Accordingly, management stations must be prepared + to receive tabular information from agents that + corresponds to entries not currently in use. + Proper interpretation of such entries requires + examination of the relevant ipRouteType object." - Setting this object to the value invalid(2) has - the effect of invalidating the corresponding entry - in the ipRouteTable object. That is, it - effectively disassociates the destination - identified with said entry from the route - identified with said entry. It is an - implementation-specific matter as to whether the - agent removes an invalidated entry from the table. - Accordingly, management stations must be prepared - to receive tabular information from agents that - corresponds to entries not currently in use. - Proper interpretation of such entries requires - examination of the relevant ipRouteType object." - - (`ipRouteType') + (ipRouteType) $info->ipr_proto() - From RFC1213: - other(1), -- none of the following - -- non-protocol information, - -- e.g., manually configured - local(2), -- entries - -- set via a network - netmgmt(3), -- management protocol - -- obtained via ICMP, - icmp(4), -- e.g., Redirect - -- the remaining values are - -- all gateway routing - -- protocols - egp(5), - ggp(6), - hello(7), - rip(8), - is-is(9), - es-is(10), - ciscoIgrp(11), - bbnSpfIgp(12), - ospf(13), - bgp(14) + From RFC1213: - (`ipRouteProto') + other(1), -- none of the following + -- non-protocol information, + -- e.g., manually configured + local(2), -- entries + -- set via a network + netmgmt(3), -- management protocol + -- obtained via ICMP, + icmp(4), -- e.g., Redirect + -- the remaining values are + -- all gateway routing + -- protocols + egp(5), + ggp(6), + hello(7), + rip(8), + is-is(9), + es-is(10), + ciscoIgrp(11), + bbnSpfIgp(12), + ospf(13), + bgp(14) + + (ipRouteProto) $info->ipr_age() - Seconds since route was last updated or validated. - (`ipRouteAge') + Seconds since route was last updated or validated. + + (ipRouteAge) $info->ipr_mask() - Subnet Mask of route. 0.0.0.0 for default gateway. - (`ipRouteMask') + Subnet Mask of route. 0.0.0.0 for default gateway. + + (ipRouteMask) $info->ipr_info() - Reference to MIB definition specific to routing protocol. - (`ipRouteInfo') + Reference to MIB definition specific to routing protocol. + + (ipRouteInfo) + + Topology Information - Topology Information Based upon the manufacturer and software version devices may support some combination of Layer 2 topology protocol information. SNMP::Info supports querying Link Layer Discovery Protocol (LLDP), Cisco Discovery @@ -1503,104 +1719,122 @@ USAGE For protocol specific information and implementation: LLDP: See SNMP::Info::LLDP for details. + CDP: See SNMP::Info::CDP for details. + SONMP: See SNMP::Info::SONMP for details. + FDP: See SNMP::Info::FDP for details. + EDP: See SNMP::Info::EDP for details. + AMAP: See SNMP::Info::AMAP for details. - Topology Capabilities + Topology Capabilities + $info->has_topo() - Reports Layer 2 topology protocols which are supported and running - on a device. - Returns either a reference to an array of protocols, possible values - being: `lldp', `cdp', `sonmp', `fdp', `edp', `amap' or `undef' if no - protocols are supported or running. + Reports Layer 2 topology protocols which are supported and running on + a device. + + Returns either a reference to an array of protocols, possible values + being: lldp, cdp, sonmp, fdp, edp, amap or undef if no protocols are + supported or running. + + Common Topology Table Information - Common Topology Table Information The common topology table methods below will query the device for information from the specified topology protocols and return a single hash combining all information. As a result, there may be identical topology information returned from the two protocols causing duplicate entries. It is the calling program's responsibility to identify any - duplicate entries and remove duplicates if necessary. If it is necessary - to understand which protocol provided the information, utilize the - protocol specific methods directly rather than the generic methods. + duplicate entries and remove duplicates if necessary. If it is + necessary to understand which protocol provided the information, + utilize the protocol specific methods directly rather than the generic + methods. The methods support partial table fetches by providing a partial as the first argument. If a reference to an array is provided as the second argument, those protocols will be queried for information. The supported array values - are: `lldp', `cdp', `sonmp', `fdp', `edp', `amap'. + are: lldp, cdp, sonmp, fdp, edp, amap. If nothing is passed in as the second argument, the methods will call has_topo() to determine supported and running topology protocols on the device. $info->c_ip(partial, topology_protocol_arrayref) - Returns reference to hash. Key: iid, Value: remote IPv4 address - If multiple entries exist with the same local port, c_if(), with the - same IPv4 address, c_ip(), it may be a duplicate entry. + Returns reference to hash. Key: iid, Value: remote IPv4 address - If multiple entries exist with the same local port, c_if(), with - different IPv4 addresses, c_ip(), there is either a device in - between two or more devices utilizing a different topology protocol - or multiple devices which are not directly connected. + If multiple entries exist with the same local port, c_if(), with the + same IPv4 address, c_ip(), it may be a duplicate entry. - Use the protocol specific methods to dig deeper. + If multiple entries exist with the same local port, c_if(), with + different IPv4 addresses, c_ip(), there is either a device in between + two or more devices utilizing a different topology protocol or + multiple devices which are not directly connected. + + Use the protocol specific methods to dig deeper. $info->c_if(partial, topology_protocol_arrayref) - Returns reference to hash. Key: iid, Value: local device port - (interfaces) + + Returns reference to hash. Key: iid, Value: local device port + (interfaces) $info->c_port(partial, topology_protocol_arrayref) - Returns reference to hash. Key: iid, Value: remote port (interfaces) + + Returns reference to hash. Key: iid, Value: remote port (interfaces) $info->c_id(partial, topology_protocol_arrayref) - Returns reference to hash. Key: iid, Value: string value used to - identify the chassis component associated with the remote system. - Note: SONMP does not return this information. + Returns reference to hash. Key: iid, Value: string value used to + identify the chassis component associated with the remote system. + + Note: SONMP does not return this information. $info->c_platform(partial, topology_protocol_arrayref) - Returns reference to hash. Key: iid, Value: Remote Device Type - Note: EDP does not provide this information. LLDP uses - (`lldpRemSysDesc') or `lldp_rem_sysname' as the closest match. + Returns reference to hash. Key: iid, Value: Remote Device Type + + Note: EDP does not provide this information. LLDP uses + (lldpRemSysDesc) or lldp_rem_sysname as the closest match. $info->c_cap(partial, topology_protocol_arrayref) - Returns reference to hash of arrays. Key: iid, Value: Array of - capabilities supported by the device. See the specific protocol - class for string values which could be elements within the array. - Note: Only CDP and LLDP support this method. + Returns reference to hash of arrays. Key: iid, Value: Array of + capabilities supported by the device. See the specific protocol class + for string values which could be elements within the array. + + Note: Only CDP and LLDP support this method. SETTING DATA VIA SNMP + This section explains how to use SNMP::Info to do SNMP Set operations. $info->set_METHOD($value) - Sets the global METHOD to value. Assumes that iid is .0 - Returns if failed, or the return value from SNMP::Session::set() - (snmp_errno) + Sets the global METHOD to value. Assumes that iid is .0 - $info->set_location("Here!"); + Returns if failed, or the return value from SNMP::Session::set() + (snmp_errno) + + $info->set_location("Here!"); $info->set_METHOD($value,$iid) - Table Methods. Set iid of method to value. - Returns if failed, or the return value from SNMP::Session::set() - (snmp_errno) + Table Methods. Set iid of method to value. - # Disable a port administratively - my %if_map = reverse %{$info->interfaces()} - $info->set_i_up_admin('down', $if_map{'FastEthernet0/0'}) - or die "Couldn't disable the port. ",$info->error(1); + Returns if failed, or the return value from SNMP::Session::set() + (snmp_errno) - NOTE: You must be connected to your device with a `ReadWrite' community + # Disable a port administratively + my %if_map = reverse %{$info->interfaces()} + $info->set_i_up_admin('down', $if_map{'FastEthernet0/0'}) + or die "Couldn't disable the port. ",$info->error(1); + + NOTE: You must be connected to your device with a ReadWrite community string in order for set operations to work. NOTE: This will only set data listed in %FUNCS and %GLOBALS. For data @@ -1608,11 +1842,12 @@ SETTING DATA VIA SNMP subroutines will need to be added if they haven't been already. Quiet Mode + SNMP::Info will not chirp anything to STDOUT unless there is a serious error (in which case it will probably die). - To get lots of debug info, set the Debug flag when calling new() or call - $info->debug(1); + To get lots of debug info, set the Debug flag when calling new() or + call $info->debug(1); When calling a method check the return value. If the return value is undef then check $info->error() @@ -1622,25 +1857,26 @@ Quiet Mode my $name = $info->name() or die "Couldn't get sysName!" . $name->error(); EXTENDING SNMP::INFO + To support a new class (vendor or platform) of device, add a Perl package with the data structures and methods listed below. - If this seems a little scary, then the SNMP::Info developers are usually - happy to accept the SNMP data from your device and make an attempt at - the class themselves. Usually a "beta" release will go to CPAN for you - to verify the implementation. + If this seems a little scary, then the SNMP::Info developers are + usually happy to accept the SNMP data from your device and make an + attempt at the class themselves. Usually a "beta" release will go to + CPAN for you to verify the implementation. + + Gathering MIB data for SNMP::Info Developers - Gathering MIB data for SNMP::Info Developers The preference is to open a feature request in the SourceForge project. This allows all developers to have visibility into the request. Please include pointers to the applicable platform MIBs. For development we - will need an `snmpwalk' of the device. There is a tool now included in - the SNMP::Info distribution to help with this task, although you'll most - likely need to download the distribution from CPAN as it's included in - the "`contrib/util'" directory. + will need an snmpwalk of the device. There is a tool now included in + the SNMP::Info distribution to help with this task, although you'll + most likely need to download the distribution from CPAN as it's + included in the "contrib/util" directory. - The utility is named `make_snmpdata.pl'. Run it with a command line - like: + The utility is named make_snmpdata.pl. Run it with a command line like: ./make_snmpdata.pl -c community -i -d device_ip \ -m /home/netdisco-mibs/rfc:/home/netdisco-mibs/net-snmp:/home/netdisco-mibs/dir3 \ @@ -1648,105 +1884,112 @@ EXTENDING SNMP::INFO POWER-ETHERNET-MIB IPV6-MIB LLDP-MIB DEVICE-SPECIFIC-MIB-NAME(s) > output.txt This will print to the file every MIB entry with data in a format that - the developers can use to emulate read operations without needing access - to the device. Preference would be to mask any sensitive data in the - output, zip the file, and upload as an attachment to the Sourceforge - tracker. However, if you do not feel comfortable uploading the output to - the tracker you could e-mail it to the developer that has claimed the - ticket. + the developers can use to emulate read operations without needing + access to the device. Preference would be to mask any sensitive data in + the output, zip the file, and upload as an attachment to the + Sourceforge tracker. However, if you do not feel comfortable uploading + the output to the tracker you could e-mail it to the developer that has + claimed the ticket. + + Data Structures required in new Subclass - Data Structures required in new Subclass A class inheriting this class must implement these data structures : $INIT - Used to flag if the MIBs have been loaded yet. + + Used to flag if the MIBs have been loaded yet. %GLOBALS - Contains a hash in the form ( method_name => SNMP MIB leaf name ) - These are scalar values such as name, uptime, etc. - To resolve MIB leaf name conflicts between private MIBs, you may - prefix the leaf name with the MIB replacing each - (dash) and : - (colon) with an _ (underscore). For example, - ALTEON_TIGON_SWITCH_MIB__agSoftwareVersion would be used as the hash - value instead of the net-snmp notation - ALTEON-TIGON-SWITCH-MIB::agSoftwareVersion. + Contains a hash in the form ( method_name => SNMP MIB leaf name ) + These are scalar values such as name, uptime, etc. - When choosing the name for the methods, be aware that other new Sub - Modules might inherit this one to get it's features. Try to choose a - prefix for methods that will give it's own name space inside the - SNMP::Info methods. + To resolve MIB leaf name conflicts between private MIBs, you may + prefix the leaf name with the MIB replacing each - (dash) and : + (colon) with an _ (underscore). For example, + ALTEON_TIGON_SWITCH_MIB__agSoftwareVersion would be used as the hash + value instead of the net-snmp notation + ALTEON-TIGON-SWITCH-MIB::agSoftwareVersion. + + When choosing the name for the methods, be aware that other new Sub + Modules might inherit this one to get it's features. Try to choose a + prefix for methods that will give it's own name space inside the + SNMP::Info methods. %FUNCS - Contains a hash in the form ( method_name => SNMP MIB leaf name) - These are table entries, such as the `ifIndex' - To resolve MIB leaf name conflicts between private MIBs, you may - prefix the leaf name with the MIB replacing each - (dash) and : - (colon) with an _ (underscore). For example, - ALTEON_TS_PHYSICAL_MIB__agPortCurCfgPortName would be used as the - hash value instead of the net-snmp notation - ALTEON-TS-PHYSICAL-MIB::agPortCurCfgPortName. + Contains a hash in the form ( method_name => SNMP MIB leaf name) + These are table entries, such as the ifIndex + + To resolve MIB leaf name conflicts between private MIBs, you may + prefix the leaf name with the MIB replacing each - (dash) and : + (colon) with an _ (underscore). For example, + ALTEON_TS_PHYSICAL_MIB__agPortCurCfgPortName would be used as the + hash value instead of the net-snmp notation + ALTEON-TS-PHYSICAL-MIB::agPortCurCfgPortName. %MIBS - A list of each mib needed. - ('MIB-NAME' => 'itemToTestForPresence') + A list of each mib needed. - The value for each entry should be a MIB object to check for to make - sure that the MIB is present and has loaded correctly. + ('MIB-NAME' => 'itemToTestForPresence') - $info->init() will throw an exception if a MIB does not load. + The value for each entry should be a MIB object to check for to make + sure that the MIB is present and has loaded correctly. + + $info->init() will throw an exception if a MIB does not load. %MUNGE - A map between method calls (from %FUNCS or %GLOBALS) and subroutine - methods. The subroutine called will be passed the data as it gets it - from SNMP and it should return that same data in a more human - friendly format. - Sample %MUNGE: + A map between method calls (from %FUNCS or %GLOBALS) and subroutine + methods. The subroutine called will be passed the data as it gets it + from SNMP and it should return that same data in a more human + friendly format. - (my_ip => \&munge_ip, - my_mac => \&munge_mac, - my_layers => \&munge_dec2bin - ) + Sample %MUNGE: - Sample Subclass - Let's make a sample Layer 2 Device subclass. This class will inherit the - Cisco Vlan module as an example. + (my_ip => \&munge_ip, + my_mac => \&munge_mac, + my_layers => \&munge_dec2bin + ) + + Sample Subclass + + Let's make a sample Layer 2 Device subclass. This class will inherit + the Cisco Vlan module as an example. ----------------------- snip -------------------------------- # SNMP::Info::Layer2::Sample - + package SNMP::Info::Layer2::Sample; - + $VERSION = 0.1; - + use strict; - + use Exporter; use SNMP::Info::Layer2; use SNMP::Info::CiscoVTP; - + @SNMP::Info::Layer2::Sample::ISA = qw/SNMP::Info::Layer2 SNMP::Info::CiscoVTP Exporter/; @SNMP::Info::Layer2::Sample::EXPORT_OK = qw//; - + use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; - + %MIBS = (%SNMP::Info::Layer2::MIBS, %SNMP::Info::CiscoVTP::MIBS, 'SUPER-DOOPER-MIB' => 'supermibobject' ); - + %GLOBALS = (%SNMP::Info::Layer2::GLOBALS, %SNMP::Info::CiscoVTP::GLOBALS, 'name' => 'supermib_supername', 'favorite_color' => 'supermib_fav_color_object', 'favorite_movie' => 'supermib_fav_movie_val' ); - + %FUNCS = (%SNMP::Info::Layer2::FUNCS, %SNMP::Info::CiscoVTP::FUNCS, # Super Dooper MIB - Super Hero Table @@ -1754,34 +1997,35 @@ EXTENDING SNMP::INFO 'super_hero_name' => 'SuperHeroIfName', 'super_hero_powers' => 'SuperHeroIfPowers' ); - + + %MUNGE = (%SNMP::Info::Layer2::MUNGE, %SNMP::Info::CiscoVTP::MUNGE, 'super_hero_powers' => \&munge_powers ); - + # OverRide uptime() method from %SNMP::Info::GLOBALS sub uptime { my $sample = shift; - + my $name = $sample->name(); - + # this is silly but you get the idea return '600' if defined $name ; } - + # Create our own munge function sub munge_powers { my $power = shift; - + # Take the returned obscure value and return something useful. return 'Fire' if $power =~ /reallyhot/i; return 'Ice' if $power =~ /reallycold/i; - + # Else return $power; } - + # Copious Documentation here!!! =head1 NAME =head1 AUTHOR @@ -1794,16 +2038,18 @@ EXTENDING SNMP::INFO =head1 TABLE METHODS =head2 Overrides =cut - + 1; # don't forget this line ----------------------- snip -------------------------------- Be sure and send the debugged version to - snmp-info-users@lists.sourceforge.net to be included in the next version - of SNMP::Info. + snmp-info-users@lists.sourceforge.net to be included in the next + version of SNMP::Info. SNMP::INFO INTERNALS - Object Namespace + + Object Namespace + Internal data is stored with bareword keys. For example $info->{debug} SNMP Data is stored or marked cached with keys starting with an @@ -1812,330 +2058,386 @@ SNMP::INFO INTERNALS Cached Table data is stored in $info->store() and marked cached per above. - Package Globals + Package Globals + These set the default value for an object upon creation. $DEBUG - Default 0. Sends copious debug info to stdout. This global sets the - object's debug status in new() unless 'Debug' argument passed in - new(). Change objects' debug status with $info->debug(). + + Default 0. Sends copious debug info to stdout. This global sets the + object's debug status in new() unless 'Debug' argument passed in + new(). Change objects' debug status with $info->debug(). $BIGINT - Default 0. Set to true to have 64 bit counters return Math::BigInt - objects instead of scalar string values. See note under Interface - Statistics about 64 bit values. + + Default 0. Set to true to have 64 bit counters return Math::BigInt + objects instead of scalar string values. See note under Interface + Statistics about 64 bit values. $NOSUCH - Default 1. Set to false to disable RetryNoSuch option for - SNMP::Session. Or see method in new() to do it on an object scope. + + Default 1. Set to false to disable RetryNoSuch option for + SNMP::Session. Or see method in new() to do it on an object scope. $REPEATERS - Default 20. MaxRepeaters for BULKWALK operations. See `perldoc SNMP' - for more info. Can change by passing BulkRepeaters option in new() - Data Munging Callback Subroutines + Default 20. MaxRepeaters for BULKWALK operations. See perldoc SNMP + for more info. Can change by passing BulkRepeaters option in new() + + Data Munging Callback Subroutines + munge_speed() - Makes human friendly speed ratings using %SPEED_MAP - %SPEED_MAP = ( - '56000' => '56 kbps', - '64000' => '64 kbps', - '115000' => '115 kpbs', - '1500000' => '1.5 Mbps', - '1536000' => 'T1', - '1544000' => 'T1', - '2000000' => '2.0 Mbps', - '2048000' => '2.048 Mbps', - '3072000' => 'Dual T1', - '3088000' => 'Dual T1', - '4000000' => '4.0 Mbps', - '10000000' => '10 Mbps', - '11000000' => '11 Mbps', - '20000000' => '20 Mbps', - '16000000' => '16 Mbps', - '16777216' => '16 Mbps', - '44210000' => 'T3', - '44736000' => 'T3', - '45000000' => '45 Mbps', - '45045000' => 'DS3', - '46359642' => 'DS3', - '51850000' => 'OC-1', - '54000000' => '54 Mbps', - '64000000' => '64 Mbps', - '100000000' => '100 Mbps', - '200000000' => '200 Mbps', - '149760000' => 'ATM on OC-3', - '155000000' => 'OC-3', - '155519000' => 'OC-3', - '155520000' => 'OC-3', - '400000000' => '400 Mbps', - '599040000' => 'ATM on OC-12', - '622000000' => 'OC-12', - '622080000' => 'OC-12', - '1000000000' => '1.0 Gbps', - '2000000000' => '2.0 Gbps', - '2488000000' => 'OC-48', - ) + Makes human friendly speed ratings using %SPEED_MAP - Note: high speed interfaces (usually 1 Gbps or faster) have their - link speed in `ifHighSpeed'. i_speed() automatically determines - whether to use `ifSpeed' or `ifHighSpeed'; if the latter is used, - the value is munged by munge_highspeed(). SNMP::Info can return - speeds up to terabit levels this way. + %SPEED_MAP = ( + '56000' => '56 kbps', + '64000' => '64 kbps', + '115000' => '115 kpbs', + '1500000' => '1.5 Mbps', + '1536000' => 'T1', + '1544000' => 'T1', + '2000000' => '2.0 Mbps', + '2048000' => '2.048 Mbps', + '3072000' => 'Dual T1', + '3088000' => 'Dual T1', + '4000000' => '4.0 Mbps', + '10000000' => '10 Mbps', + '11000000' => '11 Mbps', + '20000000' => '20 Mbps', + '16000000' => '16 Mbps', + '16777216' => '16 Mbps', + '44210000' => 'T3', + '44736000' => 'T3', + '45000000' => '45 Mbps', + '45045000' => 'DS3', + '46359642' => 'DS3', + '51850000' => 'OC-1', + '54000000' => '54 Mbps', + '64000000' => '64 Mbps', + '100000000' => '100 Mbps', + '200000000' => '200 Mbps', + '149760000' => 'ATM on OC-3', + '155000000' => 'OC-3', + '155519000' => 'OC-3', + '155520000' => 'OC-3', + '400000000' => '400 Mbps', + '599040000' => 'ATM on OC-12', + '622000000' => 'OC-12', + '622080000' => 'OC-12', + '1000000000' => '1.0 Gbps', + '2000000000' => '2.0 Gbps', + '2488000000' => 'OC-48', + ) + + Note: high speed interfaces (usually 1 Gbps or faster) have their + link speed in ifHighSpeed. i_speed() automatically determines whether + to use ifSpeed or ifHighSpeed; if the latter is used, the value is + munged by munge_highspeed(). SNMP::Info can return speeds up to + terabit levels this way. munge_highspeed() - Makes human friendly speed ratings for `ifHighSpeed' + + Makes human friendly speed ratings for ifHighSpeed munge_ip() - Takes a binary IP and makes it dotted ASCII + + Takes a binary IP and makes it dotted ASCII munge_mac() - Takes an octet stream (HEX-STRING) and returns a colon separated - ASCII hex string. + + Takes an octet stream (HEX-STRING) and returns a colon separated + ASCII hex string. munge_prio_mac() - Takes an 2-byte octet stream (HEX-STRING) and returns a colon - separated ASCII hex string. + + Takes an 2-byte octet stream (HEX-STRING) and returns a colon + separated ASCII hex string. munge_prio_port() - Takes an 8-byte octet stream (HEX-STRING) and returns a colon - separated ASCII hex string. + + Takes an 8-byte octet stream (HEX-STRING) and returns a colon + separated ASCII hex string. munge_octet2hex() - Takes a binary octet stream and returns an ASCII hex string + + Takes a binary octet stream and returns an ASCII hex string munge_dec2bin() - Takes a binary char and returns its ASCII binary representation + + Takes a binary char and returns its ASCII binary representation munge_bits - Takes a SNMP2 'BITS' field and returns the ASCII bit string + + Takes a SNMP2 'BITS' field and returns the ASCII bit string munge_counter64 - If $BIGINT is set to true, then a Math::BigInt object is returned. - See Math::BigInt for details. + + If $BIGINT is set to true, then a Math::BigInt object is returned. + See Math::BigInt for details. munge_i_up - Net-SNMP tends to load `RFC1213-MIB' first, and so ignores the - updated enumeration for `ifOperStatus' in `IF-MIB'. This munge - handles the "newer" definitions for the enumeration in IF-MIB. - TODO: Get the precedence of MIBs and overriding of MIB data in - Net-SNMP figured out. Heirarchy/precendence of MIBS in SNMP::Info. + Net-SNMP tends to load RFC1213-MIB first, and so ignores the updated + enumeration for ifOperStatus in IF-MIB. This munge handles the + "newer" definitions for the enumeration in IF-MIB. + + TODO: Get the precedence of MIBs and overriding of MIB data in + Net-SNMP figured out. Heirarchy/precendence of MIBS in SNMP::Info. munge_port_list - Takes an octet string representing a set of ports and returns a - reference to an array of binary values each array element - representing a port. - If the element has a value of '1', then that port is included in the - set of ports; the port is not included if it has a value of '0'. + Takes an octet string representing a set of ports and returns a + reference to an array of binary values each array element + representing a port. + + If the element has a value of '1', then that port is included in the + set of ports; the port is not included if it has a value of '0'. munge_null() - Removes control characters from a string + + Removes control characters from a string munge_e_type() - Takes an OID and return the object name if the right MIB is loaded. - Internally Used Functions + Takes an OID and return the object name if the right MIB is loaded. + + Internally Used Functions + $info->init() - Used internally. Loads all entries in %MIBS. + + Used internally. Loads all entries in %MIBS. $info->args() - Returns a reference to the argument hash supplied to SNMP::Session + + Returns a reference to the argument hash supplied to SNMP::Session $info->class() - Returns the class name of the object. + + Returns the class name of the object. $info->error_throw(error message) - Stores the error message for use by $info->error() - If $info->debug() is true, then the error message is carped too. + Stores the error message for use by $info->error() + + If $info->debug() is true, then the error message is carped too. $info->funcs() - Returns a reference to the %FUNCS hash. + + Returns a reference to the %FUNCS hash. $info->globals() - Returns a reference to the %GLOBALS hash. + + Returns a reference to the %GLOBALS hash. $info->mibs() - Returns a reference to the %MIBS hash. + + Returns a reference to the %MIBS hash. $info->munge() - Returns a reference of the %MUNGE hash. + + Returns a reference of the %MUNGE hash. $info->nosuch() - Returns NoSuch value set or not in new() + + Returns NoSuch value set or not in new() $info->session() - Gets or Sets the SNMP::Session object. + + Gets or Sets the SNMP::Session object. $info->store(new_store) - Returns or sets hash store for Table functions. - Store is a hash reference in this format : + Returns or sets hash store for Table functions. - $info->store = { attribute => { iid => value , iid2 => value2, ... } - }; + Store is a hash reference in this format : + + $info->store = { attribute => { iid => value , iid2 => value2, ... } + }; $info->_global() - Used internally by AUTOLOAD to create dynamic methods from %GLOBALS - or a single instance MIB Leaf node name from a loaded MIB. - Example: $info->name() on the first call dispatches to AUTOLOAD() - which calls $info->_global('name') creating the method name(). + Used internally by AUTOLOAD to create dynamic methods from %GLOBALS + or a single instance MIB Leaf node name from a loaded MIB. - These methods return data as a scalar. + Example: $info->name() on the first call dispatches to AUTOLOAD() + which calls $info->_global('name') creating the method name(). + + These methods return data as a scalar. $info->_set(attr,val,iid,type) - Used internally by set_multi() to run an SNMP set command. When run - clears attr cache. - Attr can be passed as either a scalar or a reference to an array or - array of arrays when used with set_multi(). + Used internally by set_multi() to run an SNMP set command. When run + clears attr cache. - Example: $info->set_name('dog',3) uses autoload to resolve to - $info->_set('name','dog',3); + Attr can be passed as either a scalar or a reference to an array or + array of arrays when used with set_multi(). + + Example: $info->set_name('dog',3) uses autoload to resolve to + $info->_set('name','dog',3); $info->_make_setter(val,iid) - Used internally by AUTOLOAD to create dynamic methods from either - %GLOBALS, %FUNCS, or a valid mib leaf from a loaded MIB which runs - an SNMP set command. When run clears the attribute cache. - Example: $info->set_name('dog',3) dispatches to autoload to resolve - to $info->_set('name','dog',3) and _make_setter creates the - set_name() method. + Used internally by AUTOLOAD to create dynamic methods from either + %GLOBALS, %FUNCS, or a valid mib leaf from a loaded MIB which runs an + SNMP set command. When run clears the attribute cache. + + Example: $info->set_name('dog',3) dispatches to autoload to resolve + to $info->_set('name','dog',3) and _make_setter creates the + set_name() method. $info->set_multi(arrayref) - Used to run an SNMP set command on several new values in the one - request. Returns the result of $info->_set(method). - Pass either a reference to a 4 element array [, , , - ] or a reference to an array of 4 element arrays to specify - multiple values. + Used to run an SNMP set command on several new values in the one + request. Returns the result of $info->_set(method). - - One of the following forms: - 1) leaf identifier (e.g., C<'sysContact'>) - 2) An entry in either %FUNCS, %GLOBALS (e.g., 'contact') - - The dotted-decimal, instance identifier. For scalar MIB objects - use '0' - - The SNMP data value being set (e.g., 'netdisco') - - Optional as the MIB should be loaded. + Pass either a reference to a 4 element array [, , , + ] or a reference to an array of 4 element arrays to specify + multiple values. - If one of the set assignments is invalid, then the request will be - rejected without applying any of the new values - regardless of the - order they appear in the list. + - One of the following forms: + 1) leaf identifier (e.g., C<'sysContact'>) + 2) An entry in either %FUNCS, %GLOBALS (e.g., 'contact') + - The dotted-decimal, instance identifier. For scalar MIB objects + use '0' + - The SNMP data value being set (e.g., 'netdisco') + - Optional as the MIB should be loaded. - Example: my $vlan_set = [ - ['qb_v_untagged',"$old_vlan_id","$old_untagged_portlist"], - ['qb_v_egress',"$new_vlan_id","$new_egress_portlist"], - ['qb_v_egress',"$old_vlan_id","$old_egress_portlist"], - ['qb_v_untagged',"$new_vlan_id","$new_untagged_portlist"], - ['qb_i_vlan',"$port","$new_vlan_id"], ]; + If one of the set assignments is invalid, then the request will be + rejected without applying any of the new values - regardless of the + order they appear in the list. - $info->set_multi($vlan_set); + Example: my $vlan_set = [ + ['qb_v_untagged',"$old_vlan_id","$old_untagged_portlist"], + ['qb_v_egress',"$new_vlan_id","$new_egress_portlist"], + ['qb_v_egress',"$old_vlan_id","$old_egress_portlist"], + ['qb_v_untagged',"$new_vlan_id","$new_untagged_portlist"], + ['qb_i_vlan',"$port","$new_vlan_id"], ]; + + $info->set_multi($vlan_set); $info->load_all() - Debugging routine. This does not include any overridden method or - method implemented by subroutine. - Runs $info->load_METHOD() for each entry in $info->funcs(); + Debugging routine. This does not include any overridden method or + method implemented by subroutine. - Returns $info->store() -- See store() entry. + Runs $info->load_METHOD() for each entry in $info->funcs(); - Note return value has changed since version 0.3 + Returns $info->store() -- See store() entry. + + Note return value has changed since version 0.3 $info->all() - Runs $info->load_all() once then returns $info->store(); - Use $info->load_all() to reload the data. + Runs $info->load_all() once then returns $info->store(); - Note return value has changed since version 0.3 + Use $info->load_all() to reload the data. + + Note return value has changed since version 0.3 $info->_load_attr() - Used internally by AUTOLOAD to create dynamic methods from %FUNCS or - a MIB Leaf node name contained within a table of a loaded MIB. - Supports partial table fetches and single instance table fetches. - See SNMP::Info. + Used internally by AUTOLOAD to create dynamic methods from %FUNCS or + a MIB Leaf node name contained within a table of a loaded MIB. - These methods return data as a reference to a hash. + Supports partial table fetches and single instance table fetches. See + "Partial Table Fetches" in SNMP::Info. + + These methods return data as a reference to a hash. $info->_show_attr() - Used internally by AUTOLOAD to return data called by methods listed - in %FUNCS. + + Used internally by AUTOLOAD to return data called by methods listed + in %FUNCS. $info->snmp_connect_ip(ip) - Returns true or false based upon snmp connectivity to an IP. + + Returns true or false based upon snmp connectivity to an IP. modify_port_list(portlist,offset,replacement) - Replaces the specified bit in a port_list array and returns the - packed bitmask + + Replaces the specified bit in a port_list array and returns the + packed bitmask $info->_cache(attr, data) - Cache retrieved data so that if it's asked for again, we use the - cache instead of going back to Net-SNMP. Data is cached inside the - blessed hashref `$self'. - Accepts the leaf and value (scalar, or hashref for a table). Does - not return anything useful. + Cache retrieved data so that if it's asked for again, we use the + cache instead of going back to Net-SNMP. Data is cached inside the + blessed hashref $self. + + Accepts the leaf and value (scalar, or hashref for a table). Does not + return anything useful. $info->_munge(attr, data) - Raw data returned from Net-SNMP might not be formatted correctly or - might have platform-specific bugs or mistakes. The MUNGE feature of - SNMP::Info allows for fixups to take place. - Accepts the leaf and value (scalar, or hashref for a table) and - returns the raw or the munged data, as appropriate. That is, you do - not need to know whether MUNGE is installed, and it's safe to call - this method regardless. + Raw data returned from Net-SNMP might not be formatted correctly or + might have platform-specific bugs or mistakes. The MUNGE feature of + SNMP::Info allows for fixups to take place. + + Accepts the leaf and value (scalar, or hashref for a table) and + returns the raw or the munged data, as appropriate. That is, you do + not need to know whether MUNGE is installed, and it's safe to call + this method regardless. _validate_autoload_method(method) - Used internally by AUTOLOAD to validate that a dynamic method should - be created. Returns the OID of the MIB leaf node the method will get - or set. - 1. Returns unless method is listed in %FUNCS, %GLOBALS, or is MIB - Leaf node name in a loaded MIB for given class. - 2. Translates the MIB Leaf node name to an OID. - 3. Checks to see if the method access type is allowed for the - resolved OID. Write access for set_ methods, read access for others. + Used internally by AUTOLOAD to validate that a dynamic method should + be created. Returns the OID of the MIB leaf node the method will get + or set. + + 1. Returns unless method is listed in %FUNCS, %GLOBALS, or is MIB + Leaf node name in a loaded MIB for given class. + + 2. Translates the MIB Leaf node name to an OID. + + 3. Checks to see if the method access type is allowed for the + resolved OID. Write access for set_ methods, read access for others. $info->can() - Overrides UNIVERSAL::can() so that objects will correctly report - their capabilities to include dynamic methods generated at run time - via AUTOLOAD. - Calls parent can() first to see if method exists, if not validates - that a method should be created then dispatches to the appropriate - internal method for creation. The newly created method is inserted - into the symbol table returning to AUTOLOAD only for the initial - method call. + Overrides UNIVERSAL::can() so that objects will correctly report + their capabilities to include dynamic methods generated at run time + via AUTOLOAD. - Returns undef if the method does not exist and can not be created. + Calls parent can() first to see if method exists, if not validates + that a method should be created then dispatches to the appropriate + internal method for creation. The newly created method is inserted + into the symbol table returning to AUTOLOAD only for the initial + method call. - AUTOLOAD - Each entry in either %FUNCS, %GLOBALS, or MIB Leaf node names present in - loaded MIBs are used by AUTOLOAD() to create dynamic methods. Generated - methods are inserted into the symbol table so that subsequent calls can - avoid AUTOLOAD() and dispatch directly. + Returns undef if the method does not exist and can not be created. + + AUTOLOAD + + Each entry in either %FUNCS, %GLOBALS, or MIB Leaf node names present + in loaded MIBs are used by AUTOLOAD() to create dynamic methods. + Generated methods are inserted into the symbol table so that subsequent + calls can avoid AUTOLOAD() and dispatch directly. + + 1. Returns unless method is listed in %FUNCS, %GLOBALS, or is a MIB + Leaf node name in a loaded MIB for given class. - 1. Returns unless method is listed in %FUNCS, %GLOBALS, or is a MIB Leaf - node name in a loaded MIB for given class. 2. If the method exists in %GLOBALS or is a single instance MIB Leaf node name from a loaded MIB, _global() generates the method. + 3. If a set_ prefix is present _make_setter() generates the method. + 4. If the method exists in %FUNCS or is a MIB Leaf node name contained within a table from a loaded MIB, _load_attr() generates the method. - 5. A load_ prefix forces reloading of data and does not use cached data. + + 5. A load_ prefix forces reloading of data and does not use cached + data. + 6. A _raw suffix returns data ignoring any munge routines. - Override any dynamic method listed in %GLOBALS, %FUNCS, or MIB Leaf node - name a by creating a subroutine with the same name. + Override any dynamic method listed in %GLOBALS, %FUNCS, or MIB Leaf + node name a by creating a subroutine with the same name. - For example to override $info->name() create `` sub name {...}'' in your - subclass. + For example to override $info->name() create `` sub name {...}'' in + your subclass. COPYRIGHT AND LICENSE + Changes from SNMP::Info Version 0.7 and on are: Copyright (c) 2003-2010 Max Baker and SNMP::Info Developers All rights reserved. @@ -2158,12 +2460,12 @@ COPYRIGHT AND LICENSE 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. + 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. diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index df595515..1d91863a 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -24,7 +24,7 @@ use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP $NOSUCH $BIGINT $REPEATERS/; -$VERSION = '3.51'; +$VERSION = '3.52'; =head1 NAME @@ -32,7 +32,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP =head1 VERSION -SNMP::Info - Version 3.51 +SNMP::Info - Version 3.52 =head1 AUTHOR diff --git a/lib/SNMP/Info/AMAP.pm b/lib/SNMP/Info/AMAP.pm index 8e492c9a..4898dbec 100644 --- a/lib/SNMP/Info/AMAP.pm +++ b/lib/SNMP/Info/AMAP.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', ); diff --git a/lib/SNMP/Info/AdslLine.pm b/lib/SNMP/Info/AdslLine.pm index 0623bdd2..e98e6e81 100644 --- a/lib/SNMP/Info/AdslLine.pm +++ b/lib/SNMP/Info/AdslLine.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' ); diff --git a/lib/SNMP/Info/Aggregate.pm b/lib/SNMP/Info/Aggregate.pm index dd714c93..7b511ec9 100644 --- a/lib/SNMP/Info/Aggregate.pm +++ b/lib/SNMP/Info/Aggregate.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = (); # IF-MIB diff --git a/lib/SNMP/Info/Airespace.pm b/lib/SNMP/Info/Airespace.pm index 09fd7c05..41ed0d94 100644 --- a/lib/SNMP/Info/Airespace.pm +++ b/lib/SNMP/Info/Airespace.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Bridge.pm b/lib/SNMP/Info/Bridge.pm index 8e7fe6ea..f97776b7 100644 --- a/lib/SNMP/Info/Bridge.pm +++ b/lib/SNMP/Info/Bridge.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'BRIDGE-MIB' => 'dot1dBaseBridgeAddress', diff --git a/lib/SNMP/Info/CDP.pm b/lib/SNMP/Info/CDP.pm index 20ba2183..05a42e13 100644 --- a/lib/SNMP/Info/CDP.pm +++ b/lib/SNMP/Info/CDP.pm @@ -43,7 +43,7 @@ use SNMP::Info; use vars qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/; -$VERSION = '3.51'; +$VERSION = '3.52'; # Five data structures required by SNMP::Info %MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' ); diff --git a/lib/SNMP/Info/CiscoAgg.pm b/lib/SNMP/Info/CiscoAgg.pm index b6edb1e0..4d479fbb 100644 --- a/lib/SNMP/Info/CiscoAgg.pm +++ b/lib/SNMP/Info/CiscoAgg.pm @@ -43,7 +43,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::IEEE802dot3ad::MIBS, diff --git a/lib/SNMP/Info/CiscoConfig.pm b/lib/SNMP/Info/CiscoConfig.pm index a4369545..66522231 100644 --- a/lib/SNMP/Info/CiscoConfig.pm +++ b/lib/SNMP/Info/CiscoConfig.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable', diff --git a/lib/SNMP/Info/CiscoPortSecurity.pm b/lib/SNMP/Info/CiscoPortSecurity.pm index 49b6a2e8..9bf5f327 100644 --- a/lib/SNMP/Info/CiscoPortSecurity.pm +++ b/lib/SNMP/Info/CiscoPortSecurity.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB', diff --git a/lib/SNMP/Info/CiscoPower.pm b/lib/SNMP/Info/CiscoPower.pm index 63272ad2..eb6d946e 100644 --- a/lib/SNMP/Info/CiscoPower.pm +++ b/lib/SNMP/Info/CiscoPower.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex', 'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' ); diff --git a/lib/SNMP/Info/CiscoQOS.pm b/lib/SNMP/Info/CiscoQOS.pm index f454e5e0..95371ec2 100644 --- a/lib/SNMP/Info/CiscoQOS.pm +++ b/lib/SNMP/Info/CiscoQOS.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', ); diff --git a/lib/SNMP/Info/CiscoRTT.pm b/lib/SNMP/Info/CiscoRTT.pm index c1b7c409..25ed167d 100644 --- a/lib/SNMP/Info/CiscoRTT.pm +++ b/lib/SNMP/Info/CiscoRTT.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', ); diff --git a/lib/SNMP/Info/CiscoStack.pm b/lib/SNMP/Info/CiscoStack.pm index 381a3cfb..3ab5b5d3 100644 --- a/lib/SNMP/Info/CiscoStack.pm +++ b/lib/SNMP/Info/CiscoStack.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', ); diff --git a/lib/SNMP/Info/CiscoStats.pm b/lib/SNMP/Info/CiscoStats.pm index ba1a0073..623bae16 100644 --- a/lib/SNMP/Info/CiscoStats.pm +++ b/lib/SNMP/Info/CiscoStats.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'SNMPv2-MIB' => 'sysDescr', diff --git a/lib/SNMP/Info/CiscoStpExtensions.pm b/lib/SNMP/Info/CiscoStpExtensions.pm index 8dd2861a..47456a0c 100644 --- a/lib/SNMP/Info/CiscoStpExtensions.pm +++ b/lib/SNMP/Info/CiscoStpExtensions.pm @@ -36,7 +36,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/; -$VERSION = '3.51'; +$VERSION = '3.52'; @SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/; @SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//; diff --git a/lib/SNMP/Info/CiscoVTP.pm b/lib/SNMP/Info/CiscoVTP.pm index 481c50c3..7498bbbf 100644 --- a/lib/SNMP/Info/CiscoVTP.pm +++ b/lib/SNMP/Info/CiscoVTP.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'CISCO-VTP-MIB' => 'vtpVlanName', diff --git a/lib/SNMP/Info/EDP.pm b/lib/SNMP/Info/EDP.pm index b1db1c77..01af160c 100644 --- a/lib/SNMP/Info/EDP.pm +++ b/lib/SNMP/Info/EDP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex', diff --git a/lib/SNMP/Info/Entity.pm b/lib/SNMP/Info/Entity.pm index 907538a8..79d12c2b 100644 --- a/lib/SNMP/Info/Entity.pm +++ b/lib/SNMP/Info/Entity.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' ); diff --git a/lib/SNMP/Info/EtherLike.pm b/lib/SNMP/Info/EtherLike.pm index d85346a4..788a4595 100644 --- a/lib/SNMP/Info/EtherLike.pm +++ b/lib/SNMP/Info/EtherLike.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'EtherLike-MIB' => 'etherMIB' ); diff --git a/lib/SNMP/Info/FDP.pm b/lib/SNMP/Info/FDP.pm index 09f29224..648a09b4 100644 --- a/lib/SNMP/Info/FDP.pm +++ b/lib/SNMP/Info/FDP.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' ); diff --git a/lib/SNMP/Info/IEEE802dot11.pm b/lib/SNMP/Info/IEEE802dot11.pm index 224e4bfa..602eef50 100644 --- a/lib/SNMP/Info/IEEE802dot11.pm +++ b/lib/SNMP/Info/IEEE802dot11.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', ); diff --git a/lib/SNMP/Info/IEEE802dot3ad.pm b/lib/SNMP/Info/IEEE802dot3ad.pm index 7022fb60..0ebf396d 100644 --- a/lib/SNMP/Info/IEEE802dot3ad.pm +++ b/lib/SNMP/Info/IEEE802dot3ad.pm @@ -43,7 +43,7 @@ use SNMP::Info::Aggregate; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Aggregate::MIBS, diff --git a/lib/SNMP/Info/IPv6.pm b/lib/SNMP/Info/IPv6.pm index ac255332..ad94cafd 100644 --- a/lib/SNMP/Info/IPv6.pm +++ b/lib/SNMP/Info/IPv6.pm @@ -44,7 +44,7 @@ use constant { IPV6MIB => 3, }; -$VERSION = '3.51'; +$VERSION = '3.52'; diff --git a/lib/SNMP/Info/LLDP.pm b/lib/SNMP/Info/LLDP.pm index 38dd98cd..32093c80 100644 --- a/lib/SNMP/Info/LLDP.pm +++ b/lib/SNMP/Info/LLDP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'LLDP-MIB' => 'lldpLocSysCapEnabled', diff --git a/lib/SNMP/Info/Layer1.pm b/lib/SNMP/Info/Layer1.pm index 6a3f432c..c19ffa5d 100644 --- a/lib/SNMP/Info/Layer1.pm +++ b/lib/SNMP/Info/Layer1.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' ); diff --git a/lib/SNMP/Info/Layer1/Allied.pm b/lib/SNMP/Info/Layer1/Allied.pm index 7be1bdee..f87d7f01 100644 --- a/lib/SNMP/Info/Layer1/Allied.pm +++ b/lib/SNMP/Info/Layer1/Allied.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', ); diff --git a/lib/SNMP/Info/Layer1/Asante.pm b/lib/SNMP/Info/Layer1/Asante.pm index ffd17faf..02f0cd15 100644 --- a/lib/SNMP/Info/Layer1/Asante.pm +++ b/lib/SNMP/Info/Layer1/Asante.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, ); diff --git a/lib/SNMP/Info/Layer1/Bayhub.pm b/lib/SNMP/Info/Layer1/Bayhub.pm index 455a5255..4365017d 100644 --- a/lib/SNMP/Info/Layer1/Bayhub.pm +++ b/lib/SNMP/Info/Layer1/Bayhub.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer1/Cyclades.pm b/lib/SNMP/Info/Layer1/Cyclades.pm index 90c71345..b3506099 100644 --- a/lib/SNMP/Info/Layer1/Cyclades.pm +++ b/lib/SNMP/Info/Layer1/Cyclades.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer1::MIBS, diff --git a/lib/SNMP/Info/Layer1/S3000.pm b/lib/SNMP/Info/Layer1/S3000.pm index d713644e..8ff8604f 100644 --- a/lib/SNMP/Info/Layer1/S3000.pm +++ b/lib/SNMP/Info/Layer1/S3000.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2.pm b/lib/SNMP/Info/Layer2.pm index 9d8caaac..a2661831 100644 --- a/lib/SNMP/Info/Layer2.pm +++ b/lib/SNMP/Info/Layer2.pm @@ -46,7 +46,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/3Com.pm b/lib/SNMP/Info/Layer2/3Com.pm index 3acbb8fb..dfc6cc63 100644 --- a/lib/SNMP/Info/Layer2/3Com.pm +++ b/lib/SNMP/Info/Layer2/3Com.pm @@ -11,7 +11,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::LLDP::MIBS, diff --git a/lib/SNMP/Info/Layer2/Adtran.pm b/lib/SNMP/Info/Layer2/Adtran.pm index 25175724..5f7003f0 100644 --- a/lib/SNMP/Info/Layer2/Adtran.pm +++ b/lib/SNMP/Info/Layer2/Adtran.pm @@ -11,7 +11,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # This will be filled in with the device's index into the EntPhysicalEntry # table by the serial() function. diff --git a/lib/SNMP/Info/Layer2/Airespace.pm b/lib/SNMP/Info/Layer2/Airespace.pm index dcf6167c..2b1d0ea2 100644 --- a/lib/SNMP/Info/Layer2/Airespace.pm +++ b/lib/SNMP/Info/Layer2/Airespace.pm @@ -40,7 +40,7 @@ use SNMP::Info::Airespace; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/Aironet.pm b/lib/SNMP/Info/Layer2/Aironet.pm index 50aaa252..ed373d02 100644 --- a/lib/SNMP/Info/Layer2/Aironet.pm +++ b/lib/SNMP/Info/Layer2/Aironet.pm @@ -49,7 +49,7 @@ use SNMP::Info::IEEE802dot11; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %GLOBALS = ( %SNMP::Info::IEEE802dot11::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/Allied.pm b/lib/SNMP/Info/Layer2/Allied.pm index 4cc1d14b..0564d56c 100644 --- a/lib/SNMP/Info/Layer2/Allied.pm +++ b/lib/SNMP/Info/Layer2/Allied.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); diff --git a/lib/SNMP/Info/Layer2/Baystack.pm b/lib/SNMP/Info/Layer2/Baystack.pm index 8de95701..10c07a4d 100644 --- a/lib/SNMP/Info/Layer2/Baystack.pm +++ b/lib/SNMP/Info/Layer2/Baystack.pm @@ -46,7 +46,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::LLDP::MIBS, diff --git a/lib/SNMP/Info/Layer2/C1900.pm b/lib/SNMP/Info/Layer2/C1900.pm index 5f86db35..6ff10e44 100644 --- a/lib/SNMP/Info/Layer2/C1900.pm +++ b/lib/SNMP/Info/Layer2/C1900.pm @@ -48,7 +48,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/C2900.pm b/lib/SNMP/Info/Layer2/C2900.pm index 4fa65895..07ace77d 100644 --- a/lib/SNMP/Info/Layer2/C2900.pm +++ b/lib/SNMP/Info/Layer2/C2900.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %GLOBALS = ( %SNMP::Info::Layer2::Cisco::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/Catalyst.pm b/lib/SNMP/Info/Layer2/Catalyst.pm index 9c47fb53..9c8f7b84 100644 --- a/lib/SNMP/Info/Layer2/Catalyst.pm +++ b/lib/SNMP/Info/Layer2/Catalyst.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::Cisco::MIBS, diff --git a/lib/SNMP/Info/Layer2/Centillion.pm b/lib/SNMP/Info/Layer2/Centillion.pm index f670aa84..132dd063 100644 --- a/lib/SNMP/Info/Layer2/Centillion.pm +++ b/lib/SNMP/Info/Layer2/Centillion.pm @@ -43,7 +43,7 @@ use SNMP::Info::SONMP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Cisco.pm b/lib/SNMP/Info/Layer2/Cisco.pm index 8a6c7c1d..e793b28c 100644 --- a/lib/SNMP/Info/Layer2/Cisco.pm +++ b/lib/SNMP/Info/Layer2/Cisco.pm @@ -52,7 +52,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/CiscoSB.pm b/lib/SNMP/Info/Layer2/CiscoSB.pm index af8f2170..b51c0dfa 100644 --- a/lib/SNMP/Info/Layer2/CiscoSB.pm +++ b/lib/SNMP/Info/Layer2/CiscoSB.pm @@ -50,7 +50,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/HP.pm b/lib/SNMP/Info/Layer2/HP.pm index bc2a3d1f..3ec7d64d 100644 --- a/lib/SNMP/Info/Layer2/HP.pm +++ b/lib/SNMP/Info/Layer2/HP.pm @@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer2/HP4000.pm b/lib/SNMP/Info/Layer2/HP4000.pm index 34a39eee..06442a2d 100644 --- a/lib/SNMP/Info/Layer2/HP4000.pm +++ b/lib/SNMP/Info/Layer2/HP4000.pm @@ -44,7 +44,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer2/HPVC.pm b/lib/SNMP/Info/Layer2/HPVC.pm index 62ec4414..b2584d1d 100644 --- a/lib/SNMP/Info/Layer2/HPVC.pm +++ b/lib/SNMP/Info/Layer2/HPVC.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/Kentrox.pm b/lib/SNMP/Info/Layer2/Kentrox.pm index 5174434b..f28eeee0 100644 --- a/lib/SNMP/Info/Layer2/Kentrox.pm +++ b/lib/SNMP/Info/Layer2/Kentrox.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/N2270.pm b/lib/SNMP/Info/Layer2/N2270.pm index 26087535..75c53af6 100644 --- a/lib/SNMP/Info/Layer2/N2270.pm +++ b/lib/SNMP/Info/Layer2/N2270.pm @@ -43,7 +43,7 @@ use SNMP::Info::Airespace; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/NAP222x.pm b/lib/SNMP/Info/Layer2/NAP222x.pm index f10895a7..caaab585 100644 --- a/lib/SNMP/Info/Layer2/NAP222x.pm +++ b/lib/SNMP/Info/Layer2/NAP222x.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS, diff --git a/lib/SNMP/Info/Layer2/NWSS2300.pm b/lib/SNMP/Info/Layer2/NWSS2300.pm index d078a1a4..0af1c0a9 100644 --- a/lib/SNMP/Info/Layer2/NWSS2300.pm +++ b/lib/SNMP/Info/Layer2/NWSS2300.pm @@ -39,7 +39,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Netgear.pm b/lib/SNMP/Info/Layer2/Netgear.pm index ba3ca108..ec2b8b25 100644 --- a/lib/SNMP/Info/Layer2/Netgear.pm +++ b/lib/SNMP/Info/Layer2/Netgear.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # This will be filled in with the device's index into the EntPhysicalEntry # table by the serial() function. diff --git a/lib/SNMP/Info/Layer2/Orinoco.pm b/lib/SNMP/Info/Layer2/Orinoco.pm index b8ccb9c1..f1fd3449 100644 --- a/lib/SNMP/Info/Layer2/Orinoco.pm +++ b/lib/SNMP/Info/Layer2/Orinoco.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/Trapeze.pm b/lib/SNMP/Info/Layer2/Trapeze.pm index 396e83fb..d3f39a81 100644 --- a/lib/SNMP/Info/Layer2/Trapeze.pm +++ b/lib/SNMP/Info/Layer2/Trapeze.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Ubiquiti.pm b/lib/SNMP/Info/Layer2/Ubiquiti.pm index c51f84c5..fefde0b9 100644 --- a/lib/SNMP/Info/Layer2/Ubiquiti.pm +++ b/lib/SNMP/Info/Layer2/Ubiquiti.pm @@ -18,7 +18,7 @@ use SNMP::Info::Layer3; # only used in sub mac() use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm b/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm index 4f1b67e1..d016df78 100644 --- a/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm +++ b/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); diff --git a/lib/SNMP/Info/Layer3.pm b/lib/SNMP/Info/Layer3.pm index 459f6add..e10cc0f6 100644 --- a/lib/SNMP/Info/Layer3.pm +++ b/lib/SNMP/Info/Layer3.pm @@ -53,7 +53,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer3/Aironet.pm b/lib/SNMP/Info/Layer3/Aironet.pm index e9afde20..cc35287d 100644 --- a/lib/SNMP/Info/Layer3/Aironet.pm +++ b/lib/SNMP/Info/Layer3/Aironet.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/AlcatelLucent.pm b/lib/SNMP/Info/Layer3/AlcatelLucent.pm index 350483e9..ed82ab82 100644 --- a/lib/SNMP/Info/Layer3/AlcatelLucent.pm +++ b/lib/SNMP/Info/Layer3/AlcatelLucent.pm @@ -49,7 +49,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/AlteonAD.pm b/lib/SNMP/Info/Layer3/AlteonAD.pm index 48401bbc..3c1c2e5d 100644 --- a/lib/SNMP/Info/Layer3/AlteonAD.pm +++ b/lib/SNMP/Info/Layer3/AlteonAD.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Altiga.pm b/lib/SNMP/Info/Layer3/Altiga.pm index a13200d2..4fd9cf88 100644 --- a/lib/SNMP/Info/Layer3/Altiga.pm +++ b/lib/SNMP/Info/Layer3/Altiga.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE $int_include_vpn $fake_idx $type_class/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Arista.pm b/lib/SNMP/Info/Layer3/Arista.pm index 29457c67..8875d39e 100644 --- a/lib/SNMP/Info/Layer3/Arista.pm +++ b/lib/SNMP/Info/Layer3/Arista.pm @@ -48,7 +48,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Aruba.pm b/lib/SNMP/Info/Layer3/Aruba.pm index 522af30d..5833035b 100644 --- a/lib/SNMP/Info/Layer3/Aruba.pm +++ b/lib/SNMP/Info/Layer3/Aruba.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/BayRS.pm b/lib/SNMP/Info/Layer3/BayRS.pm index 46f7e42a..7837d3b1 100644 --- a/lib/SNMP/Info/Layer3/BayRS.pm +++ b/lib/SNMP/Info/Layer3/BayRS.pm @@ -43,7 +43,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP %MODID_MAP %PROCID_MAP/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer3/BlueCoatSG.pm b/lib/SNMP/Info/Layer3/BlueCoatSG.pm index 0ea6d271..ae8ac873 100644 --- a/lib/SNMP/Info/Layer3/BlueCoatSG.pm +++ b/lib/SNMP/Info/Layer3/BlueCoatSG.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/C3550.pm b/lib/SNMP/Info/Layer3/C3550.pm index 77115b01..72874290 100644 --- a/lib/SNMP/Info/Layer3/C3550.pm +++ b/lib/SNMP/Info/Layer3/C3550.pm @@ -47,7 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; @SNMP::Info::Layer3::C3550::EXPORT_OK = qw//; -$VERSION = '3.51'; +$VERSION = '3.52'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/C4000.pm b/lib/SNMP/Info/Layer3/C4000.pm index 6f6c6606..bb0e8d7b 100644 --- a/lib/SNMP/Info/Layer3/C4000.pm +++ b/lib/SNMP/Info/Layer3/C4000.pm @@ -44,7 +44,7 @@ use SNMP::Info::MAU; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MAU::MIBS, diff --git a/lib/SNMP/Info/Layer3/C6500.pm b/lib/SNMP/Info/Layer3/C6500.pm index 2d821ca6..54138069 100644 --- a/lib/SNMP/Info/Layer3/C6500.pm +++ b/lib/SNMP/Info/Layer3/C6500.pm @@ -51,7 +51,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/CheckPoint.pm b/lib/SNMP/Info/Layer3/CheckPoint.pm index f09836a9..38cf4e6f 100644 --- a/lib/SNMP/Info/Layer3/CheckPoint.pm +++ b/lib/SNMP/Info/Layer3/CheckPoint.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Cisco.pm b/lib/SNMP/Info/Layer3/Cisco.pm index 9326160e..7c131477 100644 --- a/lib/SNMP/Info/Layer3/Cisco.pm +++ b/lib/SNMP/Info/Layer3/Cisco.pm @@ -55,7 +55,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/CiscoASA.pm b/lib/SNMP/Info/Layer3/CiscoASA.pm index b1797001..3feeb356 100644 --- a/lib/SNMP/Info/Layer3/CiscoASA.pm +++ b/lib/SNMP/Info/Layer3/CiscoASA.pm @@ -45,7 +45,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/CiscoFWSM.pm b/lib/SNMP/Info/Layer3/CiscoFWSM.pm index 62fe2cb5..3e771fec 100644 --- a/lib/SNMP/Info/Layer3/CiscoFWSM.pm +++ b/lib/SNMP/Info/Layer3/CiscoFWSM.pm @@ -43,7 +43,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/CiscoSwitch.pm b/lib/SNMP/Info/Layer3/CiscoSwitch.pm index 8baf9d16..9bde4913 100644 --- a/lib/SNMP/Info/Layer3/CiscoSwitch.pm +++ b/lib/SNMP/Info/Layer3/CiscoSwitch.pm @@ -50,7 +50,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::Cisco::MIBS, diff --git a/lib/SNMP/Info/Layer3/Contivity.pm b/lib/SNMP/Info/Layer3/Contivity.pm index 1b3567e4..5c866ece 100644 --- a/lib/SNMP/Info/Layer3/Contivity.pm +++ b/lib/SNMP/Info/Layer3/Contivity.pm @@ -42,7 +42,7 @@ use SNMP::Info::Entity; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS, diff --git a/lib/SNMP/Info/Layer3/Cumulus.pm b/lib/SNMP/Info/Layer3/Cumulus.pm index c1347014..43d7a1fa 100644 --- a/lib/SNMP/Info/Layer3/Cumulus.pm +++ b/lib/SNMP/Info/Layer3/Cumulus.pm @@ -46,7 +46,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/DLink.pm b/lib/SNMP/Info/Layer3/DLink.pm index f7ca4307..19891f4e 100644 --- a/lib/SNMP/Info/Layer3/DLink.pm +++ b/lib/SNMP/Info/Layer3/DLink.pm @@ -10,7 +10,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Dell.pm b/lib/SNMP/Info/Layer3/Dell.pm index 47549f38..a5e65fb5 100644 --- a/lib/SNMP/Info/Layer3/Dell.pm +++ b/lib/SNMP/Info/Layer3/Dell.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Enterasys.pm b/lib/SNMP/Info/Layer3/Enterasys.pm index 892c0a4f..875074bd 100644 --- a/lib/SNMP/Info/Layer3/Enterasys.pm +++ b/lib/SNMP/Info/Layer3/Enterasys.pm @@ -44,7 +44,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS, diff --git a/lib/SNMP/Info/Layer3/Extreme.pm b/lib/SNMP/Info/Layer3/Extreme.pm index b97acd3a..78e07817 100644 --- a/lib/SNMP/Info/Layer3/Extreme.pm +++ b/lib/SNMP/Info/Layer3/Extreme.pm @@ -46,7 +46,7 @@ use SNMP::Info::EDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/F5.pm b/lib/SNMP/Info/Layer3/F5.pm index dbc09523..76fd0d80 100644 --- a/lib/SNMP/Info/Layer3/F5.pm +++ b/lib/SNMP/Info/Layer3/F5.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Force10.pm b/lib/SNMP/Info/Layer3/Force10.pm index dfd5d80d..8c372d76 100644 --- a/lib/SNMP/Info/Layer3/Force10.pm +++ b/lib/SNMP/Info/Layer3/Force10.pm @@ -43,7 +43,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Fortinet.pm b/lib/SNMP/Info/Layer3/Fortinet.pm index 811d57d6..15fdb40a 100644 --- a/lib/SNMP/Info/Layer3/Fortinet.pm +++ b/lib/SNMP/Info/Layer3/Fortinet.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Foundry.pm b/lib/SNMP/Info/Layer3/Foundry.pm index 1b36623a..b934e309 100644 --- a/lib/SNMP/Info/Layer3/Foundry.pm +++ b/lib/SNMP/Info/Layer3/Foundry.pm @@ -48,7 +48,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/H3C.pm b/lib/SNMP/Info/Layer3/H3C.pm index ee019e71..f0e5cabd 100644 --- a/lib/SNMP/Info/Layer3/H3C.pm +++ b/lib/SNMP/Info/Layer3/H3C.pm @@ -47,7 +47,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/HP9300.pm b/lib/SNMP/Info/Layer3/HP9300.pm index d6e5dde7..de70dc18 100644 --- a/lib/SNMP/Info/Layer3/HP9300.pm +++ b/lib/SNMP/Info/Layer3/HP9300.pm @@ -42,7 +42,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Huawei.pm b/lib/SNMP/Info/Layer3/Huawei.pm index faa8223b..210e8038 100644 --- a/lib/SNMP/Info/Layer3/Huawei.pm +++ b/lib/SNMP/Info/Layer3/Huawei.pm @@ -47,7 +47,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/IBMGbTor.pm b/lib/SNMP/Info/Layer3/IBMGbTor.pm index 330179c2..854d5995 100644 --- a/lib/SNMP/Info/Layer3/IBMGbTor.pm +++ b/lib/SNMP/Info/Layer3/IBMGbTor.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Juniper.pm b/lib/SNMP/Info/Layer3/Juniper.pm index a47a4b95..5ad0ea10 100644 --- a/lib/SNMP/Info/Layer3/Juniper.pm +++ b/lib/SNMP/Info/Layer3/Juniper.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Lantronix.pm b/lib/SNMP/Info/Layer3/Lantronix.pm index 8c4f3c21..1047dab3 100644 --- a/lib/SNMP/Info/Layer3/Lantronix.pm +++ b/lib/SNMP/Info/Layer3/Lantronix.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Microsoft.pm b/lib/SNMP/Info/Layer3/Microsoft.pm index 76bd0802..92c6b618 100644 --- a/lib/SNMP/Info/Layer3/Microsoft.pm +++ b/lib/SNMP/Info/Layer3/Microsoft.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/Mikrotik.pm b/lib/SNMP/Info/Layer3/Mikrotik.pm index 17bc6221..fb26aaae 100644 --- a/lib/SNMP/Info/Layer3/Mikrotik.pm +++ b/lib/SNMP/Info/Layer3/Mikrotik.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/N1600.pm b/lib/SNMP/Info/Layer3/N1600.pm index db0c527f..4ec224b8 100644 --- a/lib/SNMP/Info/Layer3/N1600.pm +++ b/lib/SNMP/Info/Layer3/N1600.pm @@ -41,7 +41,7 @@ use SNMP::Info::SONMP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/NetSNMP.pm b/lib/SNMP/Info/Layer3/NetSNMP.pm index dfd93005..3113c535 100644 --- a/lib/SNMP/Info/Layer3/NetSNMP.pm +++ b/lib/SNMP/Info/Layer3/NetSNMP.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Netscreen.pm b/lib/SNMP/Info/Layer3/Netscreen.pm index 6cc42678..2b93be7e 100644 --- a/lib/SNMP/Info/Layer3/Netscreen.pm +++ b/lib/SNMP/Info/Layer3/Netscreen.pm @@ -40,7 +40,7 @@ use SNMP::Info::IEEE802dot11; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Nexus.pm b/lib/SNMP/Info/Layer3/Nexus.pm index d582379f..68261d90 100644 --- a/lib/SNMP/Info/Layer3/Nexus.pm +++ b/lib/SNMP/Info/Layer3/Nexus.pm @@ -46,7 +46,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/PacketFront.pm b/lib/SNMP/Info/Layer3/PacketFront.pm index 816c24bc..a5da7c6c 100644 --- a/lib/SNMP/Info/Layer3/PacketFront.pm +++ b/lib/SNMP/Info/Layer3/PacketFront.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/PaloAlto.pm b/lib/SNMP/Info/Layer3/PaloAlto.pm index 8866b3d8..2580f98c 100644 --- a/lib/SNMP/Info/Layer3/PaloAlto.pm +++ b/lib/SNMP/Info/Layer3/PaloAlto.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Passport.pm b/lib/SNMP/Info/Layer3/Passport.pm index daea9edc..f7c562b9 100644 --- a/lib/SNMP/Info/Layer3/Passport.pm +++ b/lib/SNMP/Info/Layer3/Passport.pm @@ -43,7 +43,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::RapidCity::MIBS, diff --git a/lib/SNMP/Info/Layer3/Pf.pm b/lib/SNMP/Info/Layer3/Pf.pm index e63c6d6b..06adf752 100644 --- a/lib/SNMP/Info/Layer3/Pf.pm +++ b/lib/SNMP/Info/Layer3/Pf.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Pica8.pm b/lib/SNMP/Info/Layer3/Pica8.pm index 334fba01..5e31c563 100644 --- a/lib/SNMP/Info/Layer3/Pica8.pm +++ b/lib/SNMP/Info/Layer3/Pica8.pm @@ -39,7 +39,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/SonicWALL.pm b/lib/SNMP/Info/Layer3/SonicWALL.pm index 23cb9a10..813dac56 100644 --- a/lib/SNMP/Info/Layer3/SonicWALL.pm +++ b/lib/SNMP/Info/Layer3/SonicWALL.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Steelhead.pm b/lib/SNMP/Info/Layer3/Steelhead.pm index 7a5181de..3afb6c24 100644 --- a/lib/SNMP/Info/Layer3/Steelhead.pm +++ b/lib/SNMP/Info/Layer3/Steelhead.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Sun.pm b/lib/SNMP/Info/Layer3/Sun.pm index 5020a0ae..36f68185 100644 --- a/lib/SNMP/Info/Layer3/Sun.pm +++ b/lib/SNMP/Info/Layer3/Sun.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/Tasman.pm b/lib/SNMP/Info/Layer3/Tasman.pm index a4fbee35..4f5e014a 100644 --- a/lib/SNMP/Info/Layer3/Tasman.pm +++ b/lib/SNMP/Info/Layer3/Tasman.pm @@ -42,7 +42,7 @@ use SNMP::Info::MAU; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Timetra.pm b/lib/SNMP/Info/Layer3/Timetra.pm index 575c36a3..34ce7e37 100644 --- a/lib/SNMP/Info/Layer3/Timetra.pm +++ b/lib/SNMP/Info/Layer3/Timetra.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer3::MIBS, 'TIMETRA-GLOBAL-MIB' => 'timetraReg', ); diff --git a/lib/SNMP/Info/Layer3/VMware.pm b/lib/SNMP/Info/Layer3/VMware.pm index ffdfea63..beaa1443 100644 --- a/lib/SNMP/Info/Layer3/VMware.pm +++ b/lib/SNMP/Info/Layer3/VMware.pm @@ -39,7 +39,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::IEEE802dot3ad::MIBS, diff --git a/lib/SNMP/Info/Layer3/VyOS.pm b/lib/SNMP/Info/Layer3/VyOS.pm index da50cb99..0904c59a 100644 --- a/lib/SNMP/Info/Layer3/VyOS.pm +++ b/lib/SNMP/Info/Layer3/VyOS.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer7.pm b/lib/SNMP/Info/Layer7.pm index 8cc041cd..76ed8c34 100644 --- a/lib/SNMP/Info/Layer7.pm +++ b/lib/SNMP/Info/Layer7.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer7/APC.pm b/lib/SNMP/Info/Layer7/APC.pm index 7ee71046..1819bcb7 100644 --- a/lib/SNMP/Info/Layer7/APC.pm +++ b/lib/SNMP/Info/Layer7/APC.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/CiscoIPS.pm b/lib/SNMP/Info/Layer7/CiscoIPS.pm index cfd9f107..23b099a7 100644 --- a/lib/SNMP/Info/Layer7/CiscoIPS.pm +++ b/lib/SNMP/Info/Layer7/CiscoIPS.pm @@ -46,7 +46,7 @@ use SNMP::Info::Entity; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer7::MIBS, %SNMP::Info::Entity::MIBS, ); diff --git a/lib/SNMP/Info/Layer7/Gigamon.pm b/lib/SNMP/Info/Layer7/Gigamon.pm index 374544c7..8e4fe27b 100644 --- a/lib/SNMP/Info/Layer7/Gigamon.pm +++ b/lib/SNMP/Info/Layer7/Gigamon.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/Neoteris.pm b/lib/SNMP/Info/Layer7/Neoteris.pm index 60aecc99..4ccc1dcb 100644 --- a/lib/SNMP/Info/Layer7/Neoteris.pm +++ b/lib/SNMP/Info/Layer7/Neoteris.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/Netscaler.pm b/lib/SNMP/Info/Layer7/Netscaler.pm index 0936fc58..8e721b56 100644 --- a/lib/SNMP/Info/Layer7/Netscaler.pm +++ b/lib/SNMP/Info/Layer7/Netscaler.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/MAU.pm b/lib/SNMP/Info/MAU.pm index 94303a88..bde1195d 100644 --- a/lib/SNMP/Info/MAU.pm +++ b/lib/SNMP/Info/MAU.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'MAU-MIB' => 'mauMod', 'IANA-MAU-MIB' => 'dot3MauType' ); diff --git a/lib/SNMP/Info/MRO.pm b/lib/SNMP/Info/MRO.pm index f4e7ead6..7add44e2 100644 --- a/lib/SNMP/Info/MRO.pm +++ b/lib/SNMP/Info/MRO.pm @@ -4,7 +4,7 @@ use warnings; use strict; use vars qw/$VERSION/; -$VERSION = '3.51'; +$VERSION = '3.52'; use PPI; use Class::ISA; ## no critic diff --git a/lib/SNMP/Info/NortelStack.pm b/lib/SNMP/Info/NortelStack.pm index ce1a8cd7..61e5af06 100644 --- a/lib/SNMP/Info/NortelStack.pm +++ b/lib/SNMP/Info/NortelStack.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( diff --git a/lib/SNMP/Info/PowerEthernet.pm b/lib/SNMP/Info/PowerEthernet.pm index 3a7289b7..a998a075 100644 --- a/lib/SNMP/Info/PowerEthernet.pm +++ b/lib/SNMP/Info/PowerEthernet.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'POWER-ETHERNET-MIB' => 'pethPsePortDetectionStatus' ); diff --git a/lib/SNMP/Info/RapidCity.pm b/lib/SNMP/Info/RapidCity.pm index 8e593241..3c0e3298 100644 --- a/lib/SNMP/Info/RapidCity.pm +++ b/lib/SNMP/Info/RapidCity.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'RAPID-CITY' => 'rapidCity', diff --git a/lib/SNMP/Info/SONMP.pm b/lib/SNMP/Info/SONMP.pm index 17923e37..2d11ae53 100644 --- a/lib/SNMP/Info/SONMP.pm +++ b/lib/SNMP/Info/SONMP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.51'; +$VERSION = '3.52'; %MIBS = ( 'SYNOPTICS-ROOT-MIB' => 'synoptics', From 814083e2faac5f9dd53a0958608e8480964b3d05 Mon Sep 17 00:00:00 2001 From: Christoph Neuhaus Date: Tue, 20 Mar 2018 10:34:12 +0100 Subject: [PATCH 02/16] modified Netgear.pm for serial/model compatibility to FSM73xx series --- lib/SNMP/Info/Layer2/Netgear.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/SNMP/Info/Layer2/Netgear.pm b/lib/SNMP/Info/Layer2/Netgear.pm index ba3ca108..59dbbf5d 100644 --- a/lib/SNMP/Info/Layer2/Netgear.pm +++ b/lib/SNMP/Info/Layer2/Netgear.pm @@ -89,7 +89,7 @@ sub serial { # Without Enitity-MIB, we've got to work our way through a bunch of # different locales... - return $netgear->ng_gsmserial() if defined $netgear->model and $netgear->model =~ m/GSM\d/i;; + return $netgear->ng_gsmserial() if defined $netgear->model and $netgear->model =~ m/[F|G]SM\d/i;; return 'none'; } @@ -139,7 +139,7 @@ sub interfaces { return $interfaces; } -# these seem to work for GSM models but not GS +# these seem to work for GSM/FSM models but not GS # https://sourceforge.net/tracker/?func=detail&aid=3085413&group_id=70362&atid=527529 sub os_ver { my $netgear = shift; @@ -148,7 +148,7 @@ sub os_ver { my $os_ver = $netgear->e_swver(); return $os_ver->{$index} if defined $os_ver; } - return $netgear->ng_gsmosver() if defined $netgear->model and $netgear->model =~ m/GSM\d/i; + return $netgear->ng_gsmosver() if defined $netgear->model and $netgear->model =~ m/[F|G]SM\d/i; return $netgear->ng_fsosver() if defined $netgear->model and $netgear->model =~ m/FS\d/i; } From 090d94191b0c645568e0873ddbed66a1a11fd23b Mon Sep 17 00:00:00 2001 From: Jeroen van Ingen Date: Tue, 20 Mar 2018 11:47:57 +0100 Subject: [PATCH 03/16] Update README and Netgear - Reflect Netgear FSM change by paecker in README - Remove pipe from character class in Netgear GSM/FSM match --- Changes | 6 ++++++ lib/SNMP/Info/Layer2/Netgear.pm | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Changes b/Changes index 17289273..d5761cac 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,9 @@ +Version 3.53 () + + [ENHANCEMENTS] + + * Report serial/version on Netgear FSM (paecker) + version 3.52 (2018-03-19) [ENHANCEMENTS] diff --git a/lib/SNMP/Info/Layer2/Netgear.pm b/lib/SNMP/Info/Layer2/Netgear.pm index 259e3633..17a93f69 100644 --- a/lib/SNMP/Info/Layer2/Netgear.pm +++ b/lib/SNMP/Info/Layer2/Netgear.pm @@ -89,7 +89,7 @@ sub serial { # Without Enitity-MIB, we've got to work our way through a bunch of # different locales... - return $netgear->ng_gsmserial() if defined $netgear->model and $netgear->model =~ m/[F|G]SM\d/i;; + return $netgear->ng_gsmserial() if defined $netgear->model and $netgear->model =~ m/[FG]SM\d/i;; return 'none'; } @@ -148,7 +148,7 @@ sub os_ver { my $os_ver = $netgear->e_swver(); return $os_ver->{$index} if defined $os_ver; } - return $netgear->ng_gsmosver() if defined $netgear->model and $netgear->model =~ m/[F|G]SM\d/i; + return $netgear->ng_gsmosver() if defined $netgear->model and $netgear->model =~ m/[FG]SM\d/i; return $netgear->ng_fsosver() if defined $netgear->model and $netgear->model =~ m/FS\d/i; } From e7fcd9810773726396c0d211d48ab823a1bde997 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 21 Mar 2018 10:35:09 +0000 Subject: [PATCH 04/16] #12 add Cisco PortFast support via CiscoStpExtensions::i_faststart_enabled --- Changes | 4 +++ lib/SNMP/Info/Bridge.pm | 5 ++++ lib/SNMP/Info/CiscoStpExtensions.pm | 42 ++++++++++++++++++++++++++++- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index d5761cac..496af1c3 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,9 @@ Version 3.53 () + [NEW FEATURES] + + * #12 add Cisco PortFast support via CiscoStpExtensions::i_faststart_enabled + [ENHANCEMENTS] * Report serial/version on Netgear FSM (paecker) diff --git a/lib/SNMP/Info/Bridge.pm b/lib/SNMP/Info/Bridge.pm index f97776b7..a2603670 100644 --- a/lib/SNMP/Info/Bridge.pm +++ b/lib/SNMP/Info/Bridge.pm @@ -47,6 +47,7 @@ $VERSION = '3.52'; %MIBS = ( 'BRIDGE-MIB' => 'dot1dBaseBridgeAddress', 'Q-BRIDGE-MIB' => 'dot1qPvid', + 'RSTP-MIB' => 'dot1dStpPortOperEdgePort', ); %GLOBALS = ( @@ -104,6 +105,10 @@ $VERSION = '3.52'; 'stp_p_bridge' => 'dot1dStpPortDesignatedBridge', 'stp_p_port' => 'dot1dStpPortDesignatedPort', + # Rapid Spanning Tree Protocol Table : dot1dStpExtPortEntry + 'is_edgeport_admin' => 'dot1dStpPortAdminEdgePort', + 'is_edgeport_oper' => 'dot1dStpPortOperEdgePort', + # Q-BRIDGE-MIB : dot1qPortVlanTable 'qb_i_vlan' => 'dot1qPvid', 'qb_i_vlan_type' => 'dot1qPortAcceptableFrameTypes', diff --git a/lib/SNMP/Info/CiscoStpExtensions.pm b/lib/SNMP/Info/CiscoStpExtensions.pm index 47456a0c..fdda197f 100644 --- a/lib/SNMP/Info/CiscoStpExtensions.pm +++ b/lib/SNMP/Info/CiscoStpExtensions.pm @@ -54,12 +54,15 @@ $VERSION = '3.52'; 'stpx_stp_type' => 'stpxSpanningTreeType', 'stpx_bpduguard_enable' => 'stpxFastStartBpduGuardEnable', 'stpx_bpdufilter_enable' => 'stpxFastStartBpduFilterEnable', + 'stpx_faststart_default' => 'stpxFastStartGlobalDefaultMode', ); %FUNCS = ( %SNMP::Info::Bridge::FUNCS, 'stpx_rootguard_enabled' => 'stpxRootGuardConfigEnabled', 'stpx_loopguard_enabled' => 'stpxLoopGuardConfigEnabled', + 'stpx_faststart_enabled' => 'stpxFastStartPortEnable', + 'stpx_faststart_operational' => 'stpxFastStartPortMode', 'stpx_port_bpduguard_mode' => 'stpxFastStartPortBpduGuardMode', 'stpx_port_bpdufilter_mode' => 'stpxFastStartPortBpduFilterMode', 'stpx_smst_root' => 'stpxSMSTInstanceCISTRegionalRoot', @@ -69,7 +72,7 @@ $VERSION = '3.52'; %MUNGE = ( %SNMP::Info::Bridge::MUNGE, - 'stpx_mst_config_digest' => \&SNMP::Info::CiscoStpExtensions::oct2str, + 'stpx_mst_config_digest' => \&SNMP::Info::CiscoStpExtensions::oct2str, ); @@ -225,6 +228,36 @@ sub i_bpdufilter_enabled { return \%res; } +sub i_faststart_enabled { + my $self = shift; + my $partial = shift; + + my $faststart_default = $self->stpx_faststart_default(); + my $bp_index = $self->bp_index($partial); + my $faststart = $self->stpx_faststart_enabled(); + my $faststart_oper = $self->stpx_faststart_operational(); + + my %res; + # stpxFastStartPortEnable is deprecated in favour of stpxFastStartPortMode + # see https://github.com/netdisco/netdisco/issues/12 + foreach my $index ( keys %$faststart, keys %$faststart_oper ){ + my $mode = $faststart_oper->{$index} || $faststart->{$index}; + my $iid = $bp_index->{$index}; + next unless defined $iid; + next unless defined $mode; + if ( $mode eq 'default' ){ + $res{$iid} = $faststart_default; + }else{ + $res{$iid} = $mode; + } + $res{$iid} = 'enable' if $res{$iid} eq 'true'; + $res{$iid} = 'disable' if $res{$iid} eq 'false'; + $res{$iid} = 1 if $res{$iid} =~ m/enable/i; # enableForTrunk + $res{$iid} = 0 if $res{$iid} eq 'disable'; + } + return \%res; +} + sub oct2str { my ($v) = @_; @@ -340,6 +373,13 @@ Format is a hash reference with key = C, value = [1|0] (C) +=item $stpx->i_faststart_enabled() + +Returns 1 or 0 depending on whether FastStart (aka PortFast) is enabled on a +given port. Format is a hash reference with key = C, value = [1|0] + +(C and C) + =back =head1 MUNGES From 76cbb05f1947ff22de95c6bd1acac1a654a4a8f2 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 21 Mar 2018 23:30:13 -0400 Subject: [PATCH 05/16] Identify where base MIBs are from and include base MIBs for cases where Net-SNMP library doesn't have them complied in. --- lib/SNMP/Info.pm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index df595515..3124e44c 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -3056,7 +3056,9 @@ the SNMP::Info methods. 'name' => 'sysName', 'location' => 'sysLocation', 'layers' => 'sysServices', + # IF-MIB 'ports' => 'ifNumber', + # IP-MIB 'ipforwarding' => 'ipForwarding', ); @@ -3074,7 +3076,9 @@ ALTEON-TS-PHYSICAL-MIB::agPortCurCfgPortName. =cut %FUNCS = ( + # IF-MIB::IfEntry 'interfaces' => 'ifIndex', + # IF-MIB::IfEntry 'i_name' => 'ifName', # IF-MIB::IfEntry @@ -3104,13 +3108,13 @@ ALTEON-TS-PHYSICAL-MIB::agPortCurCfgPortName. # IF-MIB::IfStackTable 'i_stack_status' => 'ifStackStatus', - # IP Address Table + # IP::MIB::ipAddrTable (deprecated IPv4 address table) 'ip_index' => 'ipAdEntIfIndex', 'ip_table' => 'ipAdEntAddr', 'ip_netmask' => 'ipAdEntNetMask', 'ip_broadcast' => 'ipAdEntBcastAddr', - # ifXTable - Extension Table + # IF-MIB::ifXTable - Extension Table 'i_speed_high' => 'ifHighSpeed', 'i_pkts_multi_in' => 'ifInMulticastPkts', 'i_pkts_multi_out' => 'ifOutMulticastPkts', @@ -3126,7 +3130,7 @@ ALTEON-TS-PHYSICAL-MIB::agPortCurCfgPortName. 'i_pkts_bcast_out64' => 'ifHCOutBroadcastPkts', 'i_alias' => 'ifAlias', - # IP Routing Table + # RFC-1213::ipRoute (deprecated Table IP Routing Table) 'ipr_route' => 'ipRouteDest', 'ipr_if' => 'ipRouteIfIndex', 'ipr_1' => 'ipRouteMetric1', @@ -3157,7 +3161,13 @@ $info->init() will throw an exception if a MIB does not load. %MIBS = ( - # The "main" MIBs are automagically loaded in Net-SNMP now. + # Include these here for cases where the Net-SNMP default MIB list has + # been overridden during the compliation of the local Net-SNMP library. + # These cover the globals and funcs defined in this file. + 'SNMPv2-MIB' => 'sysObjectID', + 'RFC1213-MIB' => 'ipRouteIfIndex', + 'IP-MIB' => 'ipAdEntAddr', + 'IF-MIB' => 'ifIndex', ); =item %MUNGE From 1c948d6e45b00c19ae2464ec4ff324fd6993c5f5 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 21 Mar 2018 23:33:10 -0400 Subject: [PATCH 06/16] Prevent warning in _get_topo_data() from undef arg --- lib/SNMP/Info.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index 3124e44c..dcb33599 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -2721,7 +2721,7 @@ sub _get_topo_data { my $self = shift; my $partial = shift; my $topo_cap = shift; - my $method = shift; + my $method = shift || ''; return unless $method =~ /(ip|if|port|id|platform|cap)/; From 91b98085f61e0498069f0ff56b8239d4a3f1cbdc Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 21 Mar 2018 23:41:16 -0400 Subject: [PATCH 07/16] Fix AUTOLOAD / can() bug that could result in DESTROY being redefined and dynamic methods not being added to the symbol table. --- lib/SNMP/Info.pm | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index dcb33599..29226fd1 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -4690,21 +4690,27 @@ sub can { my $funcs = $self->funcs(); # We need to resolve funcs with a prefix or suffix - my $f_method = $method; - $f_method =~ s/^(load|orig)_//; - $f_method =~ s/_raw$//; + my $base_method = $method; + $base_method =~ s/^(load|orig)_//; + $base_method =~ s/_raw$//; no strict 'refs'; ## no critic (ProhibitNoStrict ) + # We could add load_/orig_/_raw alternatives to symbol table here on + # first call of any type for a global or func since they all use the same + # destination code, but they aren't used heavily in main code base so + # we’ll just create if/when they are called rather than pollute the + # symbol table with entries that never get called. + # Check for set_ ing. if ( $method =~ /^set_/ ) { - return *{$AUTOLOAD} = _make_setter( $method, $oid, @_ ); + return *{$method} = _make_setter( $method, $oid, @_ ); } - elsif ( defined $funcs->{$f_method} || $table ) { - return *{$AUTOLOAD} = _load_attr( $method, $oid, @_ ); + elsif ( defined $funcs->{$base_method} || $table ) { + return *{$method} = _load_attr( $method, $oid, @_ ); } else { - return *{$AUTOLOAD} = _global( $method, $oid ); + return *{$method} = _global( $method, $oid ); } } @@ -4744,12 +4750,12 @@ subclass. =cut +our $AUTOLOAD; + sub AUTOLOAD { my $self = shift; my ($sub_name) = $AUTOLOAD =~ /::(\w+)$/; - return if $sub_name =~ /DESTROY$/; - # Typos in function calls in SNMP::Info subclasses turn into # AUTOLOAD requests for non-methods. While this is deprecated, # we'll still get called, so report a less confusing error. @@ -4776,6 +4782,9 @@ sub AUTOLOAD { } +# Skip AUTOLOAD() +sub DESTROY {} + 1; =head1 COPYRIGHT AND LICENSE From 26b13fbcd405979e16b904d8195f932afaaa3c02 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 21 Mar 2018 23:43:27 -0400 Subject: [PATCH 08/16] Ignore Devel::Cover files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ffadc6ab..7cba4a14 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ Makefile* Build _build blib +cover_db From ddc5fd8c962215f786e60a4e05980994a44fec40 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 21 Mar 2018 23:45:00 -0400 Subject: [PATCH 09/16] Add test harness and inital test coverage of the base class. --- Build.PL | 5 + xt/20_run.t | 6 + xt/lib/My/Test/Class.pm | 271 ++++++++++++++++ xt/lib/SNMP/Info/Test.pm | 678 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 960 insertions(+) create mode 100644 xt/20_run.t create mode 100644 xt/lib/My/Test/Class.pm create mode 100644 xt/lib/SNMP/Info/Test.pm diff --git a/Build.PL b/Build.PL index b92eb6cd..9446b4d0 100644 --- a/Build.PL +++ b/Build.PL @@ -27,6 +27,11 @@ Module::Build->new( test_requires => { 'Test::More' => '0.88', 'Test::Distribution' => '0', + 'Test::Class::Most' => '0', + 'Test::MockObject::Extends' => '0', + 'File::Find' => '0', + 'Path::Class' => '0', + 'File::Slurper' => '0', }, # script_files => [ # ], diff --git a/xt/20_run.t b/xt/20_run.t new file mode 100644 index 00000000..f52fa62a --- /dev/null +++ b/xt/20_run.t @@ -0,0 +1,6 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Test::Class::Load qw; diff --git a/xt/lib/My/Test/Class.pm b/xt/lib/My/Test/Class.pm new file mode 100644 index 00000000..2e1300c5 --- /dev/null +++ b/xt/lib/My/Test/Class.pm @@ -0,0 +1,271 @@ +# My::Test::Class +# +# Copyright (c) 2018 Eric Miller +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the University of California, Santa Cruz nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +package My::Test::Class; + +use Test::Class::Most attributes => [qw/class mock_session test_obj/]; +use Test::MockObject::Extends; +use File::Find 'find'; +use Path::Class 'dir'; +use File::Slurper 'read_lines'; + +use base qw; + +INIT { Test::Class->runtests } + +my $EMPTY = q{}; + +sub startup : Tests( startup => 1 ) { + my $test = shift; + (my $class = ref $test) =~ s/::Test$//x; + return ok 1, "$class loaded" if $class eq __PACKAGE__; + use_ok $class or die; + $test->class($class); + $test->mock_session(create_mock_session()); + return; +} + +sub shutdown : Tests(shutdown) { } + +sub setup : Tests(setup) { + my $test = shift; + my $class = $test->class; + my $sess = $test->mock_session; + + $test->{info} + = $class->new('AutoSpecify' => 0, 'BulkWalk' => 0, 'Session' => $sess,); +} + +sub teardown : Tests(teardown) { my $test = shift; $test->{info} = undef; } + +sub create_mock_session { + + my $home = dir($ENV{HOME}, 'netdisco-mibs'); + + local $ENV{'SNMPCONFPATH'} = $EMPTY; + local $ENV{'MIBDIRS'} = $EMPTY; + local $ENV{'MIBS'} = $EMPTY; + local $ENV{'SNMP_PERSISTENT_DIR'} = $home; + + SNMP::initMib(); + + my @mibdirs = _build_mibdirs(); + + foreach my $d (@mibdirs) { + next unless -d $d; + SNMP::addMibDirs($d); + } + + my $session = SNMP::Session->new( + UseEnums => 1, + RetryNoSuch => 1, + DestHost => '127.0.0.1', + Community => 'public', + Version => 2, + + # Hold simulated data for mock sessions + Data => {}, + ); + + my $mock_session = Test::MockObject::Extends->new($session); + + mock_get($mock_session); + mock_getnext($mock_session); + mock_set($mock_session); + + return $mock_session; +} + +sub _build_mibdirs { + my $home = dir($ENV{HOME}, 'netdisco-mibs'); + return map { dir($home, $_)->stringify } @{_get_mibdirs_content($home)}; +} + +sub _get_mibdirs_content { + my $home = shift; + my @list + = map { s|$home/||; $_ } grep {m/[a-z0-9]/} grep {-d} glob("$home/*"); + return \@list; +} + +sub mock_get { + my $mock_session = shift; + + $mock_session->mock( + 'get', + sub { + my $self = shift; + my $vars = shift; + my ($leaf, $iid, $oid, $oid_name); + my $c_data = $self->{Data}; + + # From SNMP::Info get will only be passed either an OID or + # SNMP::Varbind with a fully qualified leaf and potentially + # a partial + if (ref($vars) =~ /SNMP::Varbind/x) { + ($leaf, $iid) = @{$vars}; + } + else { + $oid = $vars; + $oid_name = SNMP::translateObj($oid, 0, 1) || $EMPTY; + ($leaf, $iid) = $oid_name =~ /^(\S+::\w+)[.]?(\S+)*$/x; + } + + $iid ||= 0; + my $new_iid = $iid; + my $val = $EMPTY; + my $data = $c_data->{$leaf} || {}; + my $count = scalar keys %{$data} || 0; + if ($count > 1) { + my $found = 0; + foreach my $d_iid (sort keys %{$data}) { + if ($d_iid eq $iid) { + $val = $data->{$d_iid}; + $found = 1; + next; + } + elsif ($found == 1) { + $new_iid = $d_iid; + last; + } + } + if ($found && ($new_iid eq $iid)) { + $leaf = 'unknown'; + } + } + else { + $val = $data->{$iid}; + $leaf = 'unknown'; + } + + if (ref $vars =~ /SNMP::Varbind/x) { + $vars->[0] = $leaf; + $vars->[1] = $new_iid; + $vars->[2] = $val; + } + return (wantarray() ? $vars : $val); + } + ); + return; +} + +sub mock_getnext { + my $mock_session = shift; + + $mock_session->mock( + 'getnext', + sub { + my $self = shift; + my $vars = shift; + my ($leaf, $iid, $oid, $oid_name); + my $c_data = $self->{Data}; + + # From SNMP::Info getnext will only be passed a SNMP::Varbind + # with a fully qualified leaf and potentially a partial + ($leaf, $iid) = @{$vars}; + + # If we captured data using OIDs printed numerically -On option, + # we need to convert the leaf to an OID for match + my $leaf_oid = SNMP::translateObj($leaf, 0, 1) || ''; + + unless (defined $iid) { + $iid = -1; + } + my $new_iid = $iid; + my $val = $EMPTY; + my $data = $c_data->{$leaf} || $c_data->{$leaf_oid}; + my $count = scalar keys %{$data} || 0; + if ($count) { + my $found = 0; + foreach my $d_iid (sort keys %{$data}) { + if ($d_iid gt $iid && !$found) { + $val = $data->{$d_iid}; + $new_iid = $d_iid; + $found = 1; + next; + } + elsif ($found == 1) { + last; + } + } + if ($found && ($new_iid eq $iid)) { + $leaf = 'unknown'; + } + } + else { + $val = $data->{$iid}; + $leaf = 'unknown'; + } + + $vars->[0] = $leaf; + $vars->[1] = $new_iid; + $vars->[2] = $val; + return (wantarray() ? $vars : $val); + } + ); + return; +} + +# For testing purposes assume sets worked +sub mock_set {1} + +# Utility to load snmpwalk from a file to use for mock sessions +sub load_snmpdata { + my $test = shift; + my $data_file = shift; + + my @lines = read_lines($data_file); + + my $snmp_data = {}; + foreach my $line (@lines) { + next if !$line; + next if ($line =~ /^#/); + if ($line =~ /^(\S+::\w+)[.]?(\S+)*\s=\s(.*)$/x) { + my ($leaf, $iid, $val) = ($1, $2, $3); + next if !$leaf; + $iid ||= 0; + $val =~ s/\"//g; + $snmp_data->{$leaf}->{$iid} = $val; + } + } + return $snmp_data; +} + +# Grab the symbol table for verification that +# dynamic methods via AUTOLOAD and can() have been inserted +sub symbols { + my $test = shift; + my $class = $test->class; + { + no strict 'refs'; ## no critic (ProhibitNoStrict) + return \%{$class . '::'}; + } +} + +1; diff --git a/xt/lib/SNMP/Info/Test.pm b/xt/lib/SNMP/Info/Test.pm new file mode 100644 index 00000000..96781d23 --- /dev/null +++ b/xt/lib/SNMP/Info/Test.pm @@ -0,0 +1,678 @@ +# SNMP::Info::Test +# +# Copyright (c) 2018 Eric Miller +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the University of California, Santa Cruz nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +package SNMP::Info::Test; + +use Test::Class::Most parent => 'My::Test::Class'; + +use SNMP::Info; + +sub _constructor : Tests(11) { + my $test = shift; + my $class = $test->class; + my $sess = $test->mock_session; + + can_ok $class, 'new'; + isa_ok $test->{info}, $class, '... and the object it returns'; + + is(defined $test->{info}{init}, 1, 'mibs initialized'); + ok( + scalar keys %{$test->{info}{mibs}}, + 'mibs subclass data structure initialized' + ); + ok( + scalar keys %{$test->{info}{globals}}, + 'globals subclass data structure initialized' + ); + ok( + scalar keys %{$test->{info}{funcs}}, + 'funcs subclass data structure initialized' + ); + ok( + scalar keys %{$test->{info}{munge}}, + 'munge subclass data structure initialized' + ); + is_deeply($test->{info}{store}, {}, 'store initialized'); + + is($test->{info}{snmp_comm}, 'public', 'snmp comm arg saved'); + is($test->{info}{snmp_ver}, 2, 'snmp version arg saved'); + is($test->{info}{snmp_user}, 'initial', 'snmp user arg saved'); +} + +sub globals : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'globals'); + + subtest 'Globals can() subtest' => sub { + + my $test_globals = $test->{info}->globals; + foreach my $key (keys %$test_globals) { + can_ok($test->{info}, $key); + } + }; +} + +sub funcs : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'funcs'); + + subtest 'Funcs can() subtest' => sub { + + my $test_funcs = $test->{info}->funcs; + foreach my $key (keys %$test_funcs) { + can_ok($test->{info}, $key); + } + }; +} + +# update() needs to be reworked to discard all args except community +# or context as described in documentation +sub update : Tests(4) { + my $test = shift; + + # Starting community + is($test->{info}{sess}{Community}, 'public', 'original community'); + + # Change community + $test->{info}->update('Community' => 'new_community',); + is($test->{info}{sess}{Community}, 'new_community', 'community changed'); + + # Starting context + is($test->{info}{sess}{Context}, '', 'original context'); + + # Change context + $test->{info}->update('Context' => 'new_context',); + is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); +} + +sub cache_and_clear_cache : Tests(9) { + my $test = shift; + + # Isolate tests to cache method. Populated structure of global 'name' and + # func 'i_description' + my $cache_data = { + '_name' => 'Test-Name', + '_i_description' => 1, + 'store' => { + 'i_description' => + {10 => 'Test-Description-10', 20 => 'Test-Description-20'} + } + }; + + # The empty store hash exists upon initialization and remains when the cache + # is cleared. + my $empty_cache = {'store' => {}}; + + can_ok($test->{info}, 'cache'); + cmp_deeply($empty_cache, $test->{info}->cache(), 'cache starts empty'); + ok($test->{info}->cache($cache_data), 'insert test data into cache'); + cmp_deeply( + $cache_data, + $test->{info}->cache(), + 'cache method returns test data' + ); + is($test->{info}->name(), + 'Test-Name', 'global method call returned cached data'); + cmp_deeply( + $test->{info}->i_description(), + $cache_data->{store}{i_description}, + 'funcs method call returned cached data' + ); + can_ok($test->{info}, 'clear_cache'); + ok($test->{info}->clear_cache(), 'cache cleared'); + cmp_deeply( + $empty_cache, + $test->{info}->cache(), + 'no cached data returned after clear_cache method call' + ); +} + +sub debug : Tests(4) { + my $test = shift; + + can_ok($test->{info}, 'debug'); + + ok( + defined $test->{info}{debug} + && $test->{info}{debug} == 0 + && $test->{info}->debug() == 0, + 'debug initialized off' + ); + $test->{info}->debug(1); + ok($test->{info}{debug} && $test->{info}->debug(), 'debug on'); + $test->{info}->debug(0); + ok($test->{info}{debug} == 0 && $test->{info}->debug() == 0, 'debug off'); +} + +sub offline : Tests(4) { + my $test = shift; + + can_ok($test->{info}, 'offline'); + + ok(!defined $test->{info}{Offline}, 'offline not initialized'); + $test->{info}->offline(1); + ok($test->{info}{Offline} && $test->{info}->offline(), 'offline mode on'); + $test->{info}->offline(0); + ok($test->{info}{Offline} == 0 && $test->{info}->offline() == 0, + 'offline off'); +} + +sub bulkwalk : Tests(4) { + my $test = shift; + + can_ok $test->{info}, 'bulkwalk'; + + # Test harness initalizes BulkWalk off, if we didn't provide an arg + # it would not be defined. + ok( + !defined $test->{info}{BulkWalk} + || ($test->{info}{BulkWalk} == 0 && $test->{info}->bulkwalk() == 0), + 'bulkwalk initialized off' + ); + $test->{info}->bulkwalk(1); + ok($test->{info}{BulkWalk} && $test->{info}->bulkwalk(), 'bulkwalk on'); + $test->{info}->bulkwalk(0); + ok($test->{info}{BulkWalk} == 0 && $test->{info}->bulkwalk() == 0, + 'bulkwalk off'); +} + +sub loopdetect : Tests(4) { + my $test = shift; + + can_ok $test->{info}, 'loopdetect'; + + ok(!defined $test->{info}{LoopDetect}, 'loopdetect not initialized'); + $test->{info}->loopdetect(1); + ok($test->{info}{LoopDetect} && $test->{info}->loopdetect(), 'loopdetect on'); + $test->{info}->loopdetect(0); + ok($test->{info}{LoopDetect} == 0 && $test->{info}->loopdetect() == 0, + 'loopdetect off'); +} + +sub device_type : Tests(8) { + my $test = shift; + + can_ok($test->{info}, 'device_type'); + + # Empty args and no SNMP data should result in undef + is($test->{info}->device_type(), + undef, 'No sysServices, no sysDescr results in undef'); + + # Populate cache for tests rather than mocking session to limit code hit + # on these tests + my $cache_data + = {'_layers' => '00000000', '_description' => 'My-Test-sysDescr',}; + $test->{info}->cache($cache_data); + + is($test->{info}->device_type(), + 'SNMP::Info', 'No sysServices and unknown sysDescr results in SNMP::Info'); + + $test->{info}->debug(1); + warnings_like { $test->{info}->device_type() } + [{carped => qr/Might give unexpected results/i}], + 'No sysServices and unknown sysDescr with debug on gives warning'; + $test->{info}->debug(0); + $test->{info}->clear_cache(); + + # Test one oid per layer hash just to verify oid mapping, no need to test + # every hash key - chose an id that is unique per layer + + # Layer 3 + $cache_data = { + '_layers' => 4, + '_description' => 'My-Test-sysDescr', + '_id' => '.1.3.6.1.4.1.18' + }; + $test->{info}->cache($cache_data); + is($test->{info}->device_type, + 'SNMP::Info::Layer3::BayRS', 'Layer 3 device type by sysObjectID'); + $test->{info}->clear_cache(); + + # Layer 2 + $cache_data = { + '_layers' => 2, + '_description' => 'My-Test-sysDescr', + '_id' => '.1.3.6.1.4.1.11898' + }; + $test->{info}->cache($cache_data); + is($test->{info}->device_type, + 'SNMP::Info::Layer2::Orinoco', 'Layer 2 device type by sysObjectID'); + $test->{info}->clear_cache(); + + # Layer 1 + $cache_data = { + '_layers' => 1, + '_description' => 'My-Test-sysDescr', + '_id' => '.1.3.6.1.4.1.2925' + }; + $test->{info}->cache($cache_data); + is( + $test->{info}->device_type, + 'SNMP::Info::Layer1::Cyclades', + 'Layer 1 device type by sysObjectID' + ); + $test->{info}->clear_cache(); + + # Layer 7 + $cache_data = { + '_layers' => 64, + '_description' => 'My-Test-sysDescr', + '_id' => '.1.3.6.1.4.1.318' + }; + $test->{info}->cache($cache_data); + is($test->{info}->device_type, + 'SNMP::Info::Layer7::APC', 'Layer 1 device type by sysObjectID'); + $test->{info}->clear_cache(); + + # Add Regex tests if needed +} + +sub error : Tests(7) { + my $test = shift; + + can_ok($test->{info}, 'error'); + ok(!exists $test->{info}{error}, 'Error not present'); + $test->{info}{error} = 'Test Error'; + is($test->{info}->error(), 'Test Error', 'Test Error present'); + is($test->{info}->error(), undef, 'Test Error cleared upon read'); + $test->{info}{error} = 'Test Error 2'; + is($test->{info}->error(1), + 'Test Error 2', 'Test Error 2 present and no clear flag set'); + is($test->{info}->error(0), + 'Test Error 2', 'Test Error 2 still present on next read'); + is($test->{info}->error(), + undef, 'Test Error 2 cleared upon read with flag set to false'); +} + +sub has_layer : Tests(6) { + my $test = shift; + + can_ok $test->{info}, 'has_layer'; + $test->{info}->clear_cache(); + + # Populate cache, one key/value so don't bother going through the + # cache() method. + # Layers holds the unmunged value (decimal) + $test->{info}{'_layers'} = 1; + is($test->{info}->has_layer(1), 1, 'Has layer 1'); + + $test->{info}{'_layers'} = 2; + is($test->{info}->has_layer(2), 1, 'Has layer 2'); + + $test->{info}{'_layers'} = 4; + is($test->{info}->has_layer(3), 1, 'Has layer 3'); + + # We don't use layers 4-6 for classification, skip testing + + $test->{info}{'_layers'} = 64; + is($test->{info}->has_layer(7), 1, 'Has layer 7'); + + # Check for undef layers + $test->{info}{'_layers'} = undef; + is($test->{info}->has_layer(7), undef, 'Undef layers returns undef'); +} + +sub snmp_comm : Tests(4) { + my $test = shift; + + can_ok $test->{info}, 'snmp_comm'; + + # Define before test to be sure instead of relying on initalization + $test->{info}{snmp_comm} = 'publicv1'; + $test->{info}{snmp_ver} = 1; + is($test->{info}->snmp_comm(), 'publicv1', + 'Version 1 returns SNMP community'); + + $test->{info}{snmp_comm} = 'publicv2'; + $test->{info}{snmp_ver} = 2; + is($test->{info}->snmp_comm(), 'publicv2', + 'Version 2 returns SNMP community'); + + $test->{info}{snmp_user} = 'initialv3'; + $test->{info}{snmp_ver} = 3; + is($test->{info}->snmp_comm(), 'initialv3', 'Version 3 returns SNMP user'); +} + +sub snmp_ver : Tests(2) { + my $test = shift; + + can_ok $test->{info}, 'snmp_ver'; + + # Define before test to be sure instead of relying on initalization + $test->{info}{snmp_ver} = 1; + is($test->{info}->snmp_ver(), 1, 'SNMP version returned'); +} + +sub specify : Tests(4) { + my $test = shift; + + can_ok $test->{info}, 'specify'; + $test->{info}->cache_clear(); + + # Specify uses device_type(), use same data as that test to setup + # test cases here since return values from device_type() with them + # have been tested + + # device_type returns undef + $test->{info}->specify(); + is( + $test->{info}->error(), + 'SNMP::Info::specify() - Could not get info from device', + 'Undef device type throws error' + ); + $test->{info}->cache_clear(); + + # Populate cache for following tests + my $cache_data + = {'_layers' => '00000000', '_description' => 'My-Test-sysDescr',}; + $test->{info}->cache($cache_data); + + isa_ok($test->{info}->specify(), + 'SNMP::Info', 'SNMP::Info device_type returns self'); + $test->{info}->cache_clear(); + + # Layer 7 - SNMP::Info::Layer7::APC + $cache_data = { + '_layers' => 64, + '_description' => 'My-Test-sysDescr', + '_id' => '.1.3.6.1.4.1.318' + }; + $test->{info}->cache($cache_data); + isa_ok($test->{info}->specify(), + 'SNMP::Info::Layer7::APC', + 'Layer 7 device type returns new object of same type'); + $test->{info}->clear_cache(); +} + +sub cisco_comm_indexing : Tests(2) { + my $test = shift; + + can_ok $test->{info}, 'cisco_comm_indexing'; + is($test->{info}->cisco_comm_indexing(), 0, 'Cisco community indexing off'); +} + +sub if_ignore : Tests(2) { + my $test = shift; + + can_ok $test->{info}, 'if_ignore'; + is_deeply($test->{info}->if_ignore(), + {}, 'No ignored interfaces for this class'); +} + +sub bulkwalk_no : Tests(2) { + my $test = shift; + + can_ok $test->{info}, 'bulkwalk_no'; + is($test->{info}->bulkwalk_no(), 0, 'Bulkwalk not turned off in this class'); +} + +sub i_speed : Tests(2) { + my $test = shift; + + can_ok $test->{info}, 'i_speed'; + + # Method uses partial fetches which ignores the cache and reloads data + # therefore we must use the mocked session. Populate the session data + # so that the mock_getnext() has data to fetch. + my $data = { + + # Need to use OID for ifSpeed since it could resolve to a fully qualified + # name as either RFC1213-MIB::ifSpeed or IF-MIB::ifSpeed dependent upon + # which MIB got loaded last which is based upon random hash ordering. Using + # a fully qualified name with mock session we would need to know which MIB + # "owned" the OID since the MIB hash is indexed by OID. This is not an + # issue in live code since what is fed to getnext for a fully qualified + # name is what is returned. + '.1.3.6.1.2.1.2.2.1.5' => {38 => 0, 49 => 4294967295, 501 => 1000000000,}, + 'IF-MIB::ifHighSpeed' => {38 => 0, 49 => 32000, 501 => 1000,}, + }; + my $expected = {38 => 0, 49 => '32 Gbps', 501 => '1.0 Gbps',}; + $test->{info}{sess}{Data} = $data; + is_deeply($test->{info}->i_speed(), + $expected, 'High speed interface reported accurately'); +} + +sub i_speed_raw : Tests(3) { + my $test = shift; + + can_ok $test->{info}, 'i_speed_raw'; + + # Method uses partial fetches which ignores the cache and reloads data + # therefore we must use the mocked session. Populate the session data + # so that the mock_getnext() has data to fetch. + my $data = { + + # Need to use OID for ifSpeed since it could resolve to a fully qualified + # name as either RFC1213-MIB::ifSpeed or IF-MIB::ifSpeed dependent upon + # which MIB got loaded last which is based upon random hash ordering. Using + # a fully qualified name with mock session we would need to know which MIB + # "owned" the OID since the MIB hash is indexed by OID. This is not an + # issue in live code since what is fed to getnext for a fully qualified + # name is what is returned. + '.1.3.6.1.2.1.2.2.1.5' => {38 => 0, 49 => 4294967295, 501 => 1000000000,}, + 'IF-MIB::ifHighSpeed' => {38 => 0, 49 => 32000, 501 => 1000,}, + }; + my $expected = {38 => 0, 49 => '32 Gbps', 501 => '1.0 Gbps',}; + my $expected_raw = {38 => 0, 49 => 32000000000, 501 => 1000000000,}; + $test->{info}{sess}{Data} = $data; + is_deeply($test->{info}->i_speed_raw(), + $expected_raw, 'Raw high speed interface reported accurately'); + + # Note the cache is populated unmunged data now - not sure if that is + # expected behavior. Clear cache to get data to test that munges are restored. + $test->{info}->clear_cache(); + is_deeply($test->{info}->i_speed(), + $expected, 'Munges restored after i_speed_raw() call'); +} + +# Topo routines will need to be tested in sub classes for conditionals +sub has_topo : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'has_topo'); + is($test->{info}->has_topo(), undef, 'Base class has no topo'); +} + +sub get_topo_data : Tests(2) { + my $test = shift; + + can_ok($test->{info}, '_get_topo_data'); + is($test->{info}->_get_topo_data(), undef, 'Base class has no topo data'); +} + +sub c_ip : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_ip'); + is($test->{info}->c_ip(), undef, 'Base class has no topo'); +} + +sub c_if : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_if'); + is($test->{info}->c_if(), undef, 'Base class has no topo'); +} + +sub c_port : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_port'); + is($test->{info}->c_port(), undef, 'Base class has no topo'); +} + +sub c_id : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_id'); + is($test->{info}->c_id(), undef, 'Base class has no topo'); +} + +sub c_platform : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_platform'); + is($test->{info}->c_platform(), undef, 'Base class has no topo'); +} + +sub c_cap : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'c_cap'); + is($test->{info}->c_cap(), undef, 'Base class has no topo'); +} + +# Munges aren't methods, the are functions so calling convention is different +sub munge_speed : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_speed'); + is(SNMP::Info::munge_speed('2488000000'), + 'OC-48', 'Speed munged according to map'); +} + +sub munge_highspeed : Tests(6) { + my $test = shift; + + can_ok($test->{info}, 'munge_highspeed'); + is(SNMP::Info::munge_highspeed('15000000'), '15 Tbps', 'Tbps munge'); + is(SNMP::Info::munge_highspeed('1500000'), + '1.5 Tbps', 'Fractional Tbps munge'); + is(SNMP::Info::munge_highspeed('15000'), '15 Gbps', 'Gbps munge'); + is(SNMP::Info::munge_highspeed('1500'), '1.5 Gbps', 'Fractional Gbps munge'); + is(SNMP::Info::munge_highspeed('100'), '100 Mbps', 'Mbps munge'); +} + +sub munge_ip : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_ip'); + my $test_ip = pack("C4", split /\./, "123.4.5.6"); + is(SNMP::Info::munge_ip($test_ip), + "123.4.5.6", 'Binary IP to dotted ASCII munge'); +} + +sub munge_mac : Tests(3) { + my $test = shift; + + can_ok($test->{info}, 'munge_mac'); + + # The munge expects an octet string, pack a decimal string into + # representation munge is expecting + my $test_mac = pack("C*", split /\./, "01.35.69.103.137.171"); + is(SNMP::Info::munge_mac($test_mac), + "01:23:45:67:89:ab", 'Octet string to colon separated ASCII hex string'); + my $bogus_mac = pack("C*", split /\./, "01.35.69.103.137.171.02"); + is(SNMP::Info::munge_mac($bogus_mac), undef, + 'Bad octet string returns undef'); +} + +sub munge_prio_mac : Tests(3) { + my $test = shift; + + can_ok($test->{info}, 'munge_prio_mac'); + + # The munge expects an octet string, pack a decimal string into + # representation munge is expecting + my $test_mac = pack("C*", split /\./, "01.35.69.103.137.171.205.239"); + is(SNMP::Info::munge_prio_mac($test_mac), + "01:23:45:67:89:ab:cd:ef", + 'Octet string to colon separated ASCII hex string'); + my $bogus_mac = pack("C*", split /\./, "01.35.69.103.137.171.205.239.02"); + is(SNMP::Info::munge_prio_mac($bogus_mac), + undef, 'Bad octet string returns undef'); +} + +sub munge_prio_port : Tests(3) { + my $test = shift; + + can_ok($test->{info}, 'munge_prio_port'); + + # The munge expects an octet string, pack a decimal string into + # representation munge is expecting + my $test_mac = pack("C*", split /\./, "171.205"); + is(SNMP::Info::munge_prio_port($test_mac), + "ab:cd", 'Octet string to colon separated ASCII hex string'); + my $bogus_mac = pack("C*", split /\./, "171.205.02"); + is(SNMP::Info::munge_prio_port($bogus_mac), + undef, 'Bad octet string returns undef'); +} + +# Can't see where this code is actually used, remove? +sub munge_octet2hex : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_octet2hex'); + + # The munge expects an octet string, pack a decimal string into + # representation munge is expecting + my $test_mac = pack("C*", split /\./, "171.205"); + is(SNMP::Info::munge_octet2hex($test_mac), + "abcd", 'Octet string to ASCII hex string'); +} + +sub munge_dec2bin : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_dec2bin'); + + # This is layers munge, use L3 test case + is(SNMP::Info::munge_dec2bin(4), '00000100', 'Binary char to ASCII binary'); +} + +sub munge_bits : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_bits'); + + my $bits = pack("B*", '00010110'); + + is(SNMP::Info::munge_bits($bits), + '00010110', 'SNMP2 BITS field to ASCII bit string'); +} + +# TODO +#sub munge_counter64 : Tests() { +# my $test = shift; +# +#} + +sub munge_i_up : Tests(4) { + my $test = shift; + + can_ok($test->{info}, 'munge_i_up'); + + is(SNMP::Info::munge_i_up(), undef, 'No arg returns undef'); + is(SNMP::Info::munge_i_up(4), 'unknown', 'Unknown status'); + is(SNMP::Info::munge_i_up(7), 'lowerLayerDown', 'Lower layer down status'); +} + +1; From f6d0fb1d7e7ffd0d0b02d55c6129c8d3562dc2ec Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 00:15:06 -0400 Subject: [PATCH 10/16] Don't use indirect syntax for new() --- lib/SNMP/Info.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index 29226fd1..4cb303e8 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -1277,7 +1277,7 @@ sub new { } # Connects to device unless open session is provided. - $sess = new SNMP::Session( + $sess = SNMP::Session->new( 'UseEnums' => 1, %sess_args, 'RetryNoSuch' => $new_obj->{nosuch} ) unless defined $sess; @@ -1339,7 +1339,7 @@ sub update { delete $sess_args{BigInt}; delete $sess_args{MibDirs}; - my $sess = new SNMP::Session( + my $sess = SNMP::Session->new( 'UseEnums' => 1, %sess_args, 'RetryNoSuch' => $obj->{nosuch} ); @@ -4247,7 +4247,7 @@ sub _load_attr { # partial fetch may strip the Module portion upon return. We need # the match to make sure we didn't leave the table during getnext # requests - + my ($leaf) = $qual_leaf =~ /::(\w+)$/; $self->debug() @@ -4255,7 +4255,7 @@ sub _load_attr { defined $partial ? "($partial)" : '', " : $oid" , defined $partial ? ".$partial" : '', "\n"; - my $var = new SNMP::Varbind( [$qual_leaf, $partial] ); + my $var = SNMP::Varbind->new( [$qual_leaf, $partial] ); # So devices speaking SNMP v.1 are not supposed to give out # data from SNMP2, but most do. Net-SNMP, being very precise @@ -4448,7 +4448,7 @@ sub snmp_connect_ip { return if ( $ip eq '0.0.0.0' ) or ( $ip =~ /^127\./ ); # Create session object - my $snmp_test = new SNMP::Session( + my $snmp_test = SNMP::Session->new( 'DestHost' => $ip, 'Community' => $comm, 'Version' => $ver From c49d8ab921d219b94143593b0cd07c38064b3da9 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 00:38:04 -0400 Subject: [PATCH 11/16] Test::Exception version recommended by test system --- Build.PL | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Build.PL b/Build.PL index 9446b4d0..0344b1f5 100644 --- a/Build.PL +++ b/Build.PL @@ -31,7 +31,8 @@ Module::Build->new( 'Test::MockObject::Extends' => '0', 'File::Find' => '0', 'Path::Class' => '0', - 'File::Slurper' => '0', + 'File::Slurper' => '0', + 'Test::Exception' => '0.43', }, # script_files => [ # ], From c6eb73bc7b325e13a0998c6ed27c66aa6ee497a1 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 00:38:49 -0400 Subject: [PATCH 12/16] Update changes --- Changes | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Changes b/Changes index 496af1c3..79a1b14a 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,12 @@ Version 3.53 () [ENHANCEMENTS] * Report serial/version on Netgear FSM (paecker) + * Add test harness and expand developer test coverage + + [BUG FIXES] + + * Fix AUTOLOAD / can() bug that could result in DESTROY being redefined and + dynamic methods not being added to the symbol table. version 3.52 (2018-03-19) From 1e5eda927c04c31b430ee0ea721c97b9ac807d76 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 01:01:09 -0400 Subject: [PATCH 13/16] Remove problematic update() tests --- xt/lib/SNMP/Info/Test.pm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/xt/lib/SNMP/Info/Test.pm b/xt/lib/SNMP/Info/Test.pm index 96781d23..4ab0d415 100644 --- a/xt/lib/SNMP/Info/Test.pm +++ b/xt/lib/SNMP/Info/Test.pm @@ -95,23 +95,25 @@ sub funcs : Tests(2) { # update() needs to be reworked to discard all args except community # or context as described in documentation -sub update : Tests(4) { - my $test = shift; + +# TODO - Commented out as causing problems during CI build +#sub update : Tests(4) { +# my $test = shift; # Starting community - is($test->{info}{sess}{Community}, 'public', 'original community'); +# is($test->{info}{sess}{Community}, 'public', 'original community'); # Change community - $test->{info}->update('Community' => 'new_community',); - is($test->{info}{sess}{Community}, 'new_community', 'community changed'); +# $test->{info}->update('Community' => 'new_community',); +# is($test->{info}{sess}{Community}, 'new_community', 'community changed'); # Starting context - is($test->{info}{sess}{Context}, '', 'original context'); +# is($test->{info}{sess}{Context}, '', 'original context'); # Change context - $test->{info}->update('Context' => 'new_context',); - is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); -} +# $test->{info}->update('Context' => 'new_context',); +# is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); +#} sub cache_and_clear_cache : Tests(9) { my $test = shift; From 98e8e57747e5bf025fb4d34a37f4457e6df5628c Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Thu, 22 Mar 2018 21:36:10 +0000 Subject: [PATCH 14/16] release 3.53 --- Changes | 3 +- MANIFEST | 3 + META.json | 246 +++++++++++++------------- META.yml | 246 +++++++++++++------------- README | 2 +- lib/SNMP/Info.pm | 4 +- lib/SNMP/Info/AMAP.pm | 2 +- lib/SNMP/Info/AdslLine.pm | 2 +- lib/SNMP/Info/Aggregate.pm | 2 +- lib/SNMP/Info/Airespace.pm | 2 +- lib/SNMP/Info/Bridge.pm | 2 +- lib/SNMP/Info/CDP.pm | 2 +- lib/SNMP/Info/CiscoAgg.pm | 2 +- lib/SNMP/Info/CiscoConfig.pm | 2 +- lib/SNMP/Info/CiscoPortSecurity.pm | 2 +- lib/SNMP/Info/CiscoPower.pm | 2 +- lib/SNMP/Info/CiscoQOS.pm | 2 +- lib/SNMP/Info/CiscoRTT.pm | 2 +- lib/SNMP/Info/CiscoStack.pm | 2 +- lib/SNMP/Info/CiscoStats.pm | 2 +- lib/SNMP/Info/CiscoStpExtensions.pm | 2 +- lib/SNMP/Info/CiscoVTP.pm | 2 +- lib/SNMP/Info/EDP.pm | 2 +- lib/SNMP/Info/Entity.pm | 2 +- lib/SNMP/Info/EtherLike.pm | 2 +- lib/SNMP/Info/FDP.pm | 2 +- lib/SNMP/Info/IEEE802dot11.pm | 2 +- lib/SNMP/Info/IEEE802dot3ad.pm | 2 +- lib/SNMP/Info/IPv6.pm | 2 +- lib/SNMP/Info/LLDP.pm | 2 +- lib/SNMP/Info/Layer1.pm | 2 +- lib/SNMP/Info/Layer1/Allied.pm | 2 +- lib/SNMP/Info/Layer1/Asante.pm | 2 +- lib/SNMP/Info/Layer1/Bayhub.pm | 2 +- lib/SNMP/Info/Layer1/Cyclades.pm | 2 +- lib/SNMP/Info/Layer1/S3000.pm | 2 +- lib/SNMP/Info/Layer2.pm | 2 +- lib/SNMP/Info/Layer2/3Com.pm | 2 +- lib/SNMP/Info/Layer2/Adtran.pm | 2 +- lib/SNMP/Info/Layer2/Airespace.pm | 2 +- lib/SNMP/Info/Layer2/Aironet.pm | 2 +- lib/SNMP/Info/Layer2/Allied.pm | 2 +- lib/SNMP/Info/Layer2/Baystack.pm | 2 +- lib/SNMP/Info/Layer2/C1900.pm | 2 +- lib/SNMP/Info/Layer2/C2900.pm | 2 +- lib/SNMP/Info/Layer2/Catalyst.pm | 2 +- lib/SNMP/Info/Layer2/Centillion.pm | 2 +- lib/SNMP/Info/Layer2/Cisco.pm | 2 +- lib/SNMP/Info/Layer2/CiscoSB.pm | 2 +- lib/SNMP/Info/Layer2/HP.pm | 2 +- lib/SNMP/Info/Layer2/HP4000.pm | 2 +- lib/SNMP/Info/Layer2/HPVC.pm | 2 +- lib/SNMP/Info/Layer2/Kentrox.pm | 2 +- lib/SNMP/Info/Layer2/N2270.pm | 2 +- lib/SNMP/Info/Layer2/NAP222x.pm | 2 +- lib/SNMP/Info/Layer2/NWSS2300.pm | 2 +- lib/SNMP/Info/Layer2/Netgear.pm | 2 +- lib/SNMP/Info/Layer2/Orinoco.pm | 2 +- lib/SNMP/Info/Layer2/Trapeze.pm | 2 +- lib/SNMP/Info/Layer2/Ubiquiti.pm | 2 +- lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm | 2 +- lib/SNMP/Info/Layer3.pm | 2 +- lib/SNMP/Info/Layer3/Aironet.pm | 2 +- lib/SNMP/Info/Layer3/AlcatelLucent.pm | 2 +- lib/SNMP/Info/Layer3/AlteonAD.pm | 2 +- lib/SNMP/Info/Layer3/Altiga.pm | 2 +- lib/SNMP/Info/Layer3/Arista.pm | 2 +- lib/SNMP/Info/Layer3/Aruba.pm | 2 +- lib/SNMP/Info/Layer3/BayRS.pm | 2 +- lib/SNMP/Info/Layer3/BlueCoatSG.pm | 2 +- lib/SNMP/Info/Layer3/C3550.pm | 2 +- lib/SNMP/Info/Layer3/C4000.pm | 2 +- lib/SNMP/Info/Layer3/C6500.pm | 2 +- lib/SNMP/Info/Layer3/CheckPoint.pm | 2 +- lib/SNMP/Info/Layer3/Cisco.pm | 2 +- lib/SNMP/Info/Layer3/CiscoASA.pm | 2 +- lib/SNMP/Info/Layer3/CiscoFWSM.pm | 2 +- lib/SNMP/Info/Layer3/CiscoSwitch.pm | 2 +- lib/SNMP/Info/Layer3/Contivity.pm | 2 +- lib/SNMP/Info/Layer3/Cumulus.pm | 2 +- lib/SNMP/Info/Layer3/DLink.pm | 2 +- lib/SNMP/Info/Layer3/Dell.pm | 2 +- lib/SNMP/Info/Layer3/Enterasys.pm | 2 +- lib/SNMP/Info/Layer3/Extreme.pm | 2 +- lib/SNMP/Info/Layer3/F5.pm | 2 +- lib/SNMP/Info/Layer3/Force10.pm | 2 +- lib/SNMP/Info/Layer3/Fortinet.pm | 2 +- lib/SNMP/Info/Layer3/Foundry.pm | 2 +- lib/SNMP/Info/Layer3/H3C.pm | 2 +- lib/SNMP/Info/Layer3/HP9300.pm | 2 +- lib/SNMP/Info/Layer3/Huawei.pm | 2 +- lib/SNMP/Info/Layer3/IBMGbTor.pm | 2 +- lib/SNMP/Info/Layer3/Juniper.pm | 2 +- lib/SNMP/Info/Layer3/Lantronix.pm | 2 +- lib/SNMP/Info/Layer3/Microsoft.pm | 2 +- lib/SNMP/Info/Layer3/Mikrotik.pm | 2 +- lib/SNMP/Info/Layer3/N1600.pm | 2 +- lib/SNMP/Info/Layer3/NetSNMP.pm | 2 +- lib/SNMP/Info/Layer3/Netscreen.pm | 2 +- lib/SNMP/Info/Layer3/Nexus.pm | 2 +- lib/SNMP/Info/Layer3/PacketFront.pm | 2 +- lib/SNMP/Info/Layer3/PaloAlto.pm | 2 +- lib/SNMP/Info/Layer3/Passport.pm | 2 +- lib/SNMP/Info/Layer3/Pf.pm | 2 +- lib/SNMP/Info/Layer3/Pica8.pm | 2 +- lib/SNMP/Info/Layer3/SonicWALL.pm | 2 +- lib/SNMP/Info/Layer3/Steelhead.pm | 2 +- lib/SNMP/Info/Layer3/Sun.pm | 2 +- lib/SNMP/Info/Layer3/Tasman.pm | 2 +- lib/SNMP/Info/Layer3/Timetra.pm | 2 +- lib/SNMP/Info/Layer3/VMware.pm | 2 +- lib/SNMP/Info/Layer3/VyOS.pm | 2 +- lib/SNMP/Info/Layer7.pm | 2 +- lib/SNMP/Info/Layer7/APC.pm | 2 +- lib/SNMP/Info/Layer7/CiscoIPS.pm | 2 +- lib/SNMP/Info/Layer7/Gigamon.pm | 2 +- lib/SNMP/Info/Layer7/Neoteris.pm | 2 +- lib/SNMP/Info/Layer7/Netscaler.pm | 2 +- lib/SNMP/Info/MAU.pm | 2 +- lib/SNMP/Info/MRO.pm | 2 +- lib/SNMP/Info/NortelStack.pm | 2 +- lib/SNMP/Info/PowerEthernet.pm | 2 +- lib/SNMP/Info/RapidCity.pm | 2 +- lib/SNMP/Info/SONMP.pm | 2 +- 124 files changed, 378 insertions(+), 362 deletions(-) diff --git a/Changes b/Changes index 79a1b14a..ac212b2d 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,4 @@ -Version 3.53 () +Version 3.53 (2018-03-22) [NEW FEATURES] @@ -8,6 +8,7 @@ Version 3.53 () * Report serial/version on Netgear FSM (paecker) * Add test harness and expand developer test coverage + * Add back the base (RFC) MIBs for when net-snmp does not have them builtin [BUG FIXES] diff --git a/MANIFEST b/MANIFEST index ac385fc1..687e207f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -143,3 +143,6 @@ xt/00_local_prereq.t xt/00_local_spelling.t xt/00_local_versionsync.t xt/10_remote_snmplabs.t +xt/20_run.t +xt/lib/My/Test/Class.pm +xt/lib/SNMP/Info/Test.pm diff --git a/META.json b/META.json index 46620f5f..1701b59f 100644 --- a/META.json +++ b/META.json @@ -34,7 +34,13 @@ }, "test" : { "requires" : { + "File::Find" : "0", + "File::Slurper" : "0", + "Path::Class" : "0", + "Test::Class::Most" : "0", "Test::Distribution" : "0", + "Test::Exception" : "0.43", + "Test::MockObject::Extends" : "0", "Test::More" : "0.88" } } @@ -42,479 +48,479 @@ "provides" : { "SNMP::Info" : { "file" : "lib/SNMP/Info.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::AMAP" : { "file" : "lib/SNMP/Info/AMAP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::AdslLine" : { "file" : "lib/SNMP/Info/AdslLine.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Aggregate" : { "file" : "lib/SNMP/Info/Aggregate.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Airespace" : { "file" : "lib/SNMP/Info/Airespace.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Bridge" : { "file" : "lib/SNMP/Info/Bridge.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CDP" : { "file" : "lib/SNMP/Info/CDP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoAgg" : { "file" : "lib/SNMP/Info/CiscoAgg.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoConfig" : { "file" : "lib/SNMP/Info/CiscoConfig.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoPortSecurity" : { "file" : "lib/SNMP/Info/CiscoPortSecurity.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoPower" : { "file" : "lib/SNMP/Info/CiscoPower.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoQOS" : { "file" : "lib/SNMP/Info/CiscoQOS.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoRTT" : { "file" : "lib/SNMP/Info/CiscoRTT.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoStack" : { "file" : "lib/SNMP/Info/CiscoStack.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoStats" : { "file" : "lib/SNMP/Info/CiscoStats.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoStpExtensions" : { "file" : "lib/SNMP/Info/CiscoStpExtensions.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::CiscoVTP" : { "file" : "lib/SNMP/Info/CiscoVTP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::EDP" : { "file" : "lib/SNMP/Info/EDP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Entity" : { "file" : "lib/SNMP/Info/Entity.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::EtherLike" : { "file" : "lib/SNMP/Info/EtherLike.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::FDP" : { "file" : "lib/SNMP/Info/FDP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::IEEE802dot11" : { "file" : "lib/SNMP/Info/IEEE802dot11.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::IEEE802dot3ad" : { "file" : "lib/SNMP/Info/IEEE802dot3ad.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::IPv6" : { "file" : "lib/SNMP/Info/IPv6.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::LLDP" : { "file" : "lib/SNMP/Info/LLDP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1" : { "file" : "lib/SNMP/Info/Layer1.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1::Allied" : { "file" : "lib/SNMP/Info/Layer1/Allied.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1::Asante" : { "file" : "lib/SNMP/Info/Layer1/Asante.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1::Bayhub" : { "file" : "lib/SNMP/Info/Layer1/Bayhub.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1::Cyclades" : { "file" : "lib/SNMP/Info/Layer1/Cyclades.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer1::S3000" : { "file" : "lib/SNMP/Info/Layer1/S3000.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2" : { "file" : "lib/SNMP/Info/Layer2.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::3Com" : { "file" : "lib/SNMP/Info/Layer2/3Com.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Adtran" : { "file" : "lib/SNMP/Info/Layer2/Adtran.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Airespace" : { "file" : "lib/SNMP/Info/Layer2/Airespace.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Aironet" : { "file" : "lib/SNMP/Info/Layer2/Aironet.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Allied" : { "file" : "lib/SNMP/Info/Layer2/Allied.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Baystack" : { "file" : "lib/SNMP/Info/Layer2/Baystack.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::C1900" : { "file" : "lib/SNMP/Info/Layer2/C1900.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::C2900" : { "file" : "lib/SNMP/Info/Layer2/C2900.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Catalyst" : { "file" : "lib/SNMP/Info/Layer2/Catalyst.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Centillion" : { "file" : "lib/SNMP/Info/Layer2/Centillion.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Cisco" : { "file" : "lib/SNMP/Info/Layer2/Cisco.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::CiscoSB" : { "file" : "lib/SNMP/Info/Layer2/CiscoSB.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::HP" : { "file" : "lib/SNMP/Info/Layer2/HP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::HP4000" : { "file" : "lib/SNMP/Info/Layer2/HP4000.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::HPVC" : { "file" : "lib/SNMP/Info/Layer2/HPVC.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Kentrox" : { "file" : "lib/SNMP/Info/Layer2/Kentrox.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::N2270" : { "file" : "lib/SNMP/Info/Layer2/N2270.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::NAP222x" : { "file" : "lib/SNMP/Info/Layer2/NAP222x.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::NWSS2300" : { "file" : "lib/SNMP/Info/Layer2/NWSS2300.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Netgear" : { "file" : "lib/SNMP/Info/Layer2/Netgear.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Orinoco" : { "file" : "lib/SNMP/Info/Layer2/Orinoco.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Trapeze" : { "file" : "lib/SNMP/Info/Layer2/Trapeze.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::Ubiquiti" : { "file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer2::ZyXEL_DSLAM" : { "file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3" : { "file" : "lib/SNMP/Info/Layer3.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Aironet" : { "file" : "lib/SNMP/Info/Layer3/Aironet.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::AlcatelLucent" : { "file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::AlteonAD" : { "file" : "lib/SNMP/Info/Layer3/AlteonAD.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Altiga" : { "file" : "lib/SNMP/Info/Layer3/Altiga.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Arista" : { "file" : "lib/SNMP/Info/Layer3/Arista.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Aruba" : { "file" : "lib/SNMP/Info/Layer3/Aruba.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::BayRS" : { "file" : "lib/SNMP/Info/Layer3/BayRS.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::BlueCoatSG" : { "file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::C3550" : { "file" : "lib/SNMP/Info/Layer3/C3550.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::C4000" : { "file" : "lib/SNMP/Info/Layer3/C4000.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::C6500" : { "file" : "lib/SNMP/Info/Layer3/C6500.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::CheckPoint" : { "file" : "lib/SNMP/Info/Layer3/CheckPoint.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Cisco" : { "file" : "lib/SNMP/Info/Layer3/Cisco.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::CiscoASA" : { "file" : "lib/SNMP/Info/Layer3/CiscoASA.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::CiscoFWSM" : { "file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::CiscoSwitch" : { "file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Contivity" : { "file" : "lib/SNMP/Info/Layer3/Contivity.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Cumulus" : { "file" : "lib/SNMP/Info/Layer3/Cumulus.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::DLink" : { "file" : "lib/SNMP/Info/Layer3/DLink.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Dell" : { "file" : "lib/SNMP/Info/Layer3/Dell.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Enterasys" : { "file" : "lib/SNMP/Info/Layer3/Enterasys.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Extreme" : { "file" : "lib/SNMP/Info/Layer3/Extreme.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::F5" : { "file" : "lib/SNMP/Info/Layer3/F5.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Force10" : { "file" : "lib/SNMP/Info/Layer3/Force10.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Fortinet" : { "file" : "lib/SNMP/Info/Layer3/Fortinet.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Foundry" : { "file" : "lib/SNMP/Info/Layer3/Foundry.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::H3C" : { "file" : "lib/SNMP/Info/Layer3/H3C.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::HP9300" : { "file" : "lib/SNMP/Info/Layer3/HP9300.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Huawei" : { "file" : "lib/SNMP/Info/Layer3/Huawei.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::IBMGbTor" : { "file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Juniper" : { "file" : "lib/SNMP/Info/Layer3/Juniper.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Lantronix" : { "file" : "lib/SNMP/Info/Layer3/Lantronix.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Microsoft" : { "file" : "lib/SNMP/Info/Layer3/Microsoft.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Mikrotik" : { "file" : "lib/SNMP/Info/Layer3/Mikrotik.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::N1600" : { "file" : "lib/SNMP/Info/Layer3/N1600.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::NetSNMP" : { "file" : "lib/SNMP/Info/Layer3/NetSNMP.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Netscreen" : { "file" : "lib/SNMP/Info/Layer3/Netscreen.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Nexus" : { "file" : "lib/SNMP/Info/Layer3/Nexus.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::PacketFront" : { "file" : "lib/SNMP/Info/Layer3/PacketFront.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::PaloAlto" : { "file" : "lib/SNMP/Info/Layer3/PaloAlto.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Passport" : { "file" : "lib/SNMP/Info/Layer3/Passport.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Pf" : { "file" : "lib/SNMP/Info/Layer3/Pf.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Pica8" : { "file" : "lib/SNMP/Info/Layer3/Pica8.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::SonicWALL" : { "file" : "lib/SNMP/Info/Layer3/SonicWALL.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Steelhead" : { "file" : "lib/SNMP/Info/Layer3/Steelhead.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Sun" : { "file" : "lib/SNMP/Info/Layer3/Sun.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Tasman" : { "file" : "lib/SNMP/Info/Layer3/Tasman.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::Timetra" : { "file" : "lib/SNMP/Info/Layer3/Timetra.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::VMware" : { "file" : "lib/SNMP/Info/Layer3/VMware.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer3::VyOS" : { "file" : "lib/SNMP/Info/Layer3/VyOS.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7" : { "file" : "lib/SNMP/Info/Layer7.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7::APC" : { "file" : "lib/SNMP/Info/Layer7/APC.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7::CiscoIPS" : { "file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7::Gigamon" : { "file" : "lib/SNMP/Info/Layer7/Gigamon.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7::Neoteris" : { "file" : "lib/SNMP/Info/Layer7/Neoteris.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::Layer7::Netscaler" : { "file" : "lib/SNMP/Info/Layer7/Netscaler.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::MAU" : { "file" : "lib/SNMP/Info/MAU.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::MRO" : { "file" : "lib/SNMP/Info/MRO.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::NortelStack" : { "file" : "lib/SNMP/Info/NortelStack.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::PowerEthernet" : { "file" : "lib/SNMP/Info/PowerEthernet.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::RapidCity" : { "file" : "lib/SNMP/Info/RapidCity.pm", - "version" : "3.52" + "version" : "3.53" }, "SNMP::Info::SONMP" : { "file" : "lib/SNMP/Info/SONMP.pm", - "version" : "3.52" + "version" : "3.53" } }, "release_status" : "stable", @@ -532,6 +538,6 @@ "x_IRC" : "irc://irc.freenode.org/#netdisco", "x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users" }, - "version" : "3.52", + "version" : "3.53", "x_serialization_backend" : "JSON::PP version 2.94" } diff --git a/META.yml b/META.yml index 51cd3487..43bebdb5 100644 --- a/META.yml +++ b/META.yml @@ -3,7 +3,13 @@ abstract: 'OO Interface to Network devices and MIBs through SNMP' author: - 'Eric A. Miller ' build_requires: + File::Find: '0' + File::Slurper: '0' + Path::Class: '0' + Test::Class::Most: '0' Test::Distribution: '0' + Test::Exception: '0.43' + Test::MockObject::Extends: '0' Test::More: '0.88' configure_requires: Module::Build: '0.42' @@ -17,361 +23,361 @@ name: SNMP-Info provides: SNMP::Info: file: lib/SNMP/Info.pm - version: '3.52' + version: '3.53' SNMP::Info::AMAP: file: lib/SNMP/Info/AMAP.pm - version: '3.52' + version: '3.53' SNMP::Info::AdslLine: file: lib/SNMP/Info/AdslLine.pm - version: '3.52' + version: '3.53' SNMP::Info::Aggregate: file: lib/SNMP/Info/Aggregate.pm - version: '3.52' + version: '3.53' SNMP::Info::Airespace: file: lib/SNMP/Info/Airespace.pm - version: '3.52' + version: '3.53' SNMP::Info::Bridge: file: lib/SNMP/Info/Bridge.pm - version: '3.52' + version: '3.53' SNMP::Info::CDP: file: lib/SNMP/Info/CDP.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoAgg: file: lib/SNMP/Info/CiscoAgg.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoConfig: file: lib/SNMP/Info/CiscoConfig.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoPortSecurity: file: lib/SNMP/Info/CiscoPortSecurity.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoPower: file: lib/SNMP/Info/CiscoPower.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoQOS: file: lib/SNMP/Info/CiscoQOS.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoRTT: file: lib/SNMP/Info/CiscoRTT.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoStack: file: lib/SNMP/Info/CiscoStack.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoStats: file: lib/SNMP/Info/CiscoStats.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoStpExtensions: file: lib/SNMP/Info/CiscoStpExtensions.pm - version: '3.52' + version: '3.53' SNMP::Info::CiscoVTP: file: lib/SNMP/Info/CiscoVTP.pm - version: '3.52' + version: '3.53' SNMP::Info::EDP: file: lib/SNMP/Info/EDP.pm - version: '3.52' + version: '3.53' SNMP::Info::Entity: file: lib/SNMP/Info/Entity.pm - version: '3.52' + version: '3.53' SNMP::Info::EtherLike: file: lib/SNMP/Info/EtherLike.pm - version: '3.52' + version: '3.53' SNMP::Info::FDP: file: lib/SNMP/Info/FDP.pm - version: '3.52' + version: '3.53' SNMP::Info::IEEE802dot11: file: lib/SNMP/Info/IEEE802dot11.pm - version: '3.52' + version: '3.53' SNMP::Info::IEEE802dot3ad: file: lib/SNMP/Info/IEEE802dot3ad.pm - version: '3.52' + version: '3.53' SNMP::Info::IPv6: file: lib/SNMP/Info/IPv6.pm - version: '3.52' + version: '3.53' SNMP::Info::LLDP: file: lib/SNMP/Info/LLDP.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1: file: lib/SNMP/Info/Layer1.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1::Allied: file: lib/SNMP/Info/Layer1/Allied.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1::Asante: file: lib/SNMP/Info/Layer1/Asante.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1::Bayhub: file: lib/SNMP/Info/Layer1/Bayhub.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1::Cyclades: file: lib/SNMP/Info/Layer1/Cyclades.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer1::S3000: file: lib/SNMP/Info/Layer1/S3000.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2: file: lib/SNMP/Info/Layer2.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::3Com: file: lib/SNMP/Info/Layer2/3Com.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Adtran: file: lib/SNMP/Info/Layer2/Adtran.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Airespace: file: lib/SNMP/Info/Layer2/Airespace.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Aironet: file: lib/SNMP/Info/Layer2/Aironet.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Allied: file: lib/SNMP/Info/Layer2/Allied.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Baystack: file: lib/SNMP/Info/Layer2/Baystack.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::C1900: file: lib/SNMP/Info/Layer2/C1900.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::C2900: file: lib/SNMP/Info/Layer2/C2900.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Catalyst: file: lib/SNMP/Info/Layer2/Catalyst.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Centillion: file: lib/SNMP/Info/Layer2/Centillion.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Cisco: file: lib/SNMP/Info/Layer2/Cisco.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::CiscoSB: file: lib/SNMP/Info/Layer2/CiscoSB.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::HP: file: lib/SNMP/Info/Layer2/HP.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::HP4000: file: lib/SNMP/Info/Layer2/HP4000.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::HPVC: file: lib/SNMP/Info/Layer2/HPVC.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Kentrox: file: lib/SNMP/Info/Layer2/Kentrox.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::N2270: file: lib/SNMP/Info/Layer2/N2270.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::NAP222x: file: lib/SNMP/Info/Layer2/NAP222x.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::NWSS2300: file: lib/SNMP/Info/Layer2/NWSS2300.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Netgear: file: lib/SNMP/Info/Layer2/Netgear.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Orinoco: file: lib/SNMP/Info/Layer2/Orinoco.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Trapeze: file: lib/SNMP/Info/Layer2/Trapeze.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::Ubiquiti: file: lib/SNMP/Info/Layer2/Ubiquiti.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer2::ZyXEL_DSLAM: file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3: file: lib/SNMP/Info/Layer3.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Aironet: file: lib/SNMP/Info/Layer3/Aironet.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::AlcatelLucent: file: lib/SNMP/Info/Layer3/AlcatelLucent.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::AlteonAD: file: lib/SNMP/Info/Layer3/AlteonAD.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Altiga: file: lib/SNMP/Info/Layer3/Altiga.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Arista: file: lib/SNMP/Info/Layer3/Arista.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Aruba: file: lib/SNMP/Info/Layer3/Aruba.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::BayRS: file: lib/SNMP/Info/Layer3/BayRS.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::BlueCoatSG: file: lib/SNMP/Info/Layer3/BlueCoatSG.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::C3550: file: lib/SNMP/Info/Layer3/C3550.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::C4000: file: lib/SNMP/Info/Layer3/C4000.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::C6500: file: lib/SNMP/Info/Layer3/C6500.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::CheckPoint: file: lib/SNMP/Info/Layer3/CheckPoint.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Cisco: file: lib/SNMP/Info/Layer3/Cisco.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::CiscoASA: file: lib/SNMP/Info/Layer3/CiscoASA.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::CiscoFWSM: file: lib/SNMP/Info/Layer3/CiscoFWSM.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::CiscoSwitch: file: lib/SNMP/Info/Layer3/CiscoSwitch.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Contivity: file: lib/SNMP/Info/Layer3/Contivity.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Cumulus: file: lib/SNMP/Info/Layer3/Cumulus.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::DLink: file: lib/SNMP/Info/Layer3/DLink.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Dell: file: lib/SNMP/Info/Layer3/Dell.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Enterasys: file: lib/SNMP/Info/Layer3/Enterasys.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Extreme: file: lib/SNMP/Info/Layer3/Extreme.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::F5: file: lib/SNMP/Info/Layer3/F5.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Force10: file: lib/SNMP/Info/Layer3/Force10.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Fortinet: file: lib/SNMP/Info/Layer3/Fortinet.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Foundry: file: lib/SNMP/Info/Layer3/Foundry.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::H3C: file: lib/SNMP/Info/Layer3/H3C.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::HP9300: file: lib/SNMP/Info/Layer3/HP9300.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Huawei: file: lib/SNMP/Info/Layer3/Huawei.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::IBMGbTor: file: lib/SNMP/Info/Layer3/IBMGbTor.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Juniper: file: lib/SNMP/Info/Layer3/Juniper.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Lantronix: file: lib/SNMP/Info/Layer3/Lantronix.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Microsoft: file: lib/SNMP/Info/Layer3/Microsoft.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Mikrotik: file: lib/SNMP/Info/Layer3/Mikrotik.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::N1600: file: lib/SNMP/Info/Layer3/N1600.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::NetSNMP: file: lib/SNMP/Info/Layer3/NetSNMP.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Netscreen: file: lib/SNMP/Info/Layer3/Netscreen.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Nexus: file: lib/SNMP/Info/Layer3/Nexus.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::PacketFront: file: lib/SNMP/Info/Layer3/PacketFront.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::PaloAlto: file: lib/SNMP/Info/Layer3/PaloAlto.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Passport: file: lib/SNMP/Info/Layer3/Passport.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Pf: file: lib/SNMP/Info/Layer3/Pf.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Pica8: file: lib/SNMP/Info/Layer3/Pica8.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::SonicWALL: file: lib/SNMP/Info/Layer3/SonicWALL.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Steelhead: file: lib/SNMP/Info/Layer3/Steelhead.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Sun: file: lib/SNMP/Info/Layer3/Sun.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Tasman: file: lib/SNMP/Info/Layer3/Tasman.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::Timetra: file: lib/SNMP/Info/Layer3/Timetra.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::VMware: file: lib/SNMP/Info/Layer3/VMware.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer3::VyOS: file: lib/SNMP/Info/Layer3/VyOS.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7: file: lib/SNMP/Info/Layer7.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7::APC: file: lib/SNMP/Info/Layer7/APC.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7::CiscoIPS: file: lib/SNMP/Info/Layer7/CiscoIPS.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7::Gigamon: file: lib/SNMP/Info/Layer7/Gigamon.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7::Neoteris: file: lib/SNMP/Info/Layer7/Neoteris.pm - version: '3.52' + version: '3.53' SNMP::Info::Layer7::Netscaler: file: lib/SNMP/Info/Layer7/Netscaler.pm - version: '3.52' + version: '3.53' SNMP::Info::MAU: file: lib/SNMP/Info/MAU.pm - version: '3.52' + version: '3.53' SNMP::Info::MRO: file: lib/SNMP/Info/MRO.pm - version: '3.52' + version: '3.53' SNMP::Info::NortelStack: file: lib/SNMP/Info/NortelStack.pm - version: '3.52' + version: '3.53' SNMP::Info::PowerEthernet: file: lib/SNMP/Info/PowerEthernet.pm - version: '3.52' + version: '3.53' SNMP::Info::RapidCity: file: lib/SNMP/Info/RapidCity.pm - version: '3.52' + version: '3.53' SNMP::Info::SONMP: file: lib/SNMP/Info/SONMP.pm - version: '3.52' + version: '3.53' recommends: Class::ISA: '0' File::Slurp: '0' @@ -388,5 +394,5 @@ resources: homepage: http://netdisco.org/ license: http://opensource.org/licenses/BSD-3-Clause repository: https://github.com/netdisco/snmp-info -version: '3.52' +version: '3.53' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff --git a/README b/README index 45547c39..39ba3934 100644 --- a/README +++ b/README @@ -4,7 +4,7 @@ NAME VERSION - SNMP::Info - Version 3.52 + SNMP::Info - Version 3.53 AUTHOR diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index e216d7cd..b845d4e7 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -24,7 +24,7 @@ use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP $NOSUCH $BIGINT $REPEATERS/; -$VERSION = '3.52'; +$VERSION = '3.53'; =head1 NAME @@ -32,7 +32,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP =head1 VERSION -SNMP::Info - Version 3.52 +SNMP::Info - Version 3.53 =head1 AUTHOR diff --git a/lib/SNMP/Info/AMAP.pm b/lib/SNMP/Info/AMAP.pm index 4898dbec..098a734d 100644 --- a/lib/SNMP/Info/AMAP.pm +++ b/lib/SNMP/Info/AMAP.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', ); diff --git a/lib/SNMP/Info/AdslLine.pm b/lib/SNMP/Info/AdslLine.pm index e98e6e81..68a2a1e5 100644 --- a/lib/SNMP/Info/AdslLine.pm +++ b/lib/SNMP/Info/AdslLine.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' ); diff --git a/lib/SNMP/Info/Aggregate.pm b/lib/SNMP/Info/Aggregate.pm index 7b511ec9..6873baee 100644 --- a/lib/SNMP/Info/Aggregate.pm +++ b/lib/SNMP/Info/Aggregate.pm @@ -38,7 +38,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = (); # IF-MIB diff --git a/lib/SNMP/Info/Airespace.pm b/lib/SNMP/Info/Airespace.pm index 41ed0d94..307251dc 100644 --- a/lib/SNMP/Info/Airespace.pm +++ b/lib/SNMP/Info/Airespace.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Bridge.pm b/lib/SNMP/Info/Bridge.pm index a2603670..bb69d2ed 100644 --- a/lib/SNMP/Info/Bridge.pm +++ b/lib/SNMP/Info/Bridge.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'BRIDGE-MIB' => 'dot1dBaseBridgeAddress', diff --git a/lib/SNMP/Info/CDP.pm b/lib/SNMP/Info/CDP.pm index 05a42e13..0299872c 100644 --- a/lib/SNMP/Info/CDP.pm +++ b/lib/SNMP/Info/CDP.pm @@ -43,7 +43,7 @@ use SNMP::Info; use vars qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/; -$VERSION = '3.52'; +$VERSION = '3.53'; # Five data structures required by SNMP::Info %MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' ); diff --git a/lib/SNMP/Info/CiscoAgg.pm b/lib/SNMP/Info/CiscoAgg.pm index 4d479fbb..03981200 100644 --- a/lib/SNMP/Info/CiscoAgg.pm +++ b/lib/SNMP/Info/CiscoAgg.pm @@ -43,7 +43,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::IEEE802dot3ad::MIBS, diff --git a/lib/SNMP/Info/CiscoConfig.pm b/lib/SNMP/Info/CiscoConfig.pm index 66522231..e4d9e4f0 100644 --- a/lib/SNMP/Info/CiscoConfig.pm +++ b/lib/SNMP/Info/CiscoConfig.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable', diff --git a/lib/SNMP/Info/CiscoPortSecurity.pm b/lib/SNMP/Info/CiscoPortSecurity.pm index 9bf5f327..37baa7b6 100644 --- a/lib/SNMP/Info/CiscoPortSecurity.pm +++ b/lib/SNMP/Info/CiscoPortSecurity.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB', diff --git a/lib/SNMP/Info/CiscoPower.pm b/lib/SNMP/Info/CiscoPower.pm index eb6d946e..1e913b9d 100644 --- a/lib/SNMP/Info/CiscoPower.pm +++ b/lib/SNMP/Info/CiscoPower.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex', 'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' ); diff --git a/lib/SNMP/Info/CiscoQOS.pm b/lib/SNMP/Info/CiscoQOS.pm index 95371ec2..a48fb717 100644 --- a/lib/SNMP/Info/CiscoQOS.pm +++ b/lib/SNMP/Info/CiscoQOS.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', ); diff --git a/lib/SNMP/Info/CiscoRTT.pm b/lib/SNMP/Info/CiscoRTT.pm index 25ed167d..72139993 100644 --- a/lib/SNMP/Info/CiscoRTT.pm +++ b/lib/SNMP/Info/CiscoRTT.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', ); diff --git a/lib/SNMP/Info/CiscoStack.pm b/lib/SNMP/Info/CiscoStack.pm index 3ab5b5d3..0638db25 100644 --- a/lib/SNMP/Info/CiscoStack.pm +++ b/lib/SNMP/Info/CiscoStack.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', ); diff --git a/lib/SNMP/Info/CiscoStats.pm b/lib/SNMP/Info/CiscoStats.pm index 623bae16..b2bcfc29 100644 --- a/lib/SNMP/Info/CiscoStats.pm +++ b/lib/SNMP/Info/CiscoStats.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'SNMPv2-MIB' => 'sysDescr', diff --git a/lib/SNMP/Info/CiscoStpExtensions.pm b/lib/SNMP/Info/CiscoStpExtensions.pm index fdda197f..7cda5efc 100644 --- a/lib/SNMP/Info/CiscoStpExtensions.pm +++ b/lib/SNMP/Info/CiscoStpExtensions.pm @@ -36,7 +36,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/; -$VERSION = '3.52'; +$VERSION = '3.53'; @SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/; @SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//; diff --git a/lib/SNMP/Info/CiscoVTP.pm b/lib/SNMP/Info/CiscoVTP.pm index 7498bbbf..5f1c4d46 100644 --- a/lib/SNMP/Info/CiscoVTP.pm +++ b/lib/SNMP/Info/CiscoVTP.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'CISCO-VTP-MIB' => 'vtpVlanName', diff --git a/lib/SNMP/Info/EDP.pm b/lib/SNMP/Info/EDP.pm index 01af160c..526dcb09 100644 --- a/lib/SNMP/Info/EDP.pm +++ b/lib/SNMP/Info/EDP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex', diff --git a/lib/SNMP/Info/Entity.pm b/lib/SNMP/Info/Entity.pm index 79d12c2b..8f0455cf 100644 --- a/lib/SNMP/Info/Entity.pm +++ b/lib/SNMP/Info/Entity.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' ); diff --git a/lib/SNMP/Info/EtherLike.pm b/lib/SNMP/Info/EtherLike.pm index 788a4595..7146f1a8 100644 --- a/lib/SNMP/Info/EtherLike.pm +++ b/lib/SNMP/Info/EtherLike.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'EtherLike-MIB' => 'etherMIB' ); diff --git a/lib/SNMP/Info/FDP.pm b/lib/SNMP/Info/FDP.pm index 648a09b4..21b38063 100644 --- a/lib/SNMP/Info/FDP.pm +++ b/lib/SNMP/Info/FDP.pm @@ -42,7 +42,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' ); diff --git a/lib/SNMP/Info/IEEE802dot11.pm b/lib/SNMP/Info/IEEE802dot11.pm index 602eef50..21ce9d66 100644 --- a/lib/SNMP/Info/IEEE802dot11.pm +++ b/lib/SNMP/Info/IEEE802dot11.pm @@ -38,7 +38,7 @@ use Exporter; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', ); diff --git a/lib/SNMP/Info/IEEE802dot3ad.pm b/lib/SNMP/Info/IEEE802dot3ad.pm index 0ebf396d..e6bb71d8 100644 --- a/lib/SNMP/Info/IEEE802dot3ad.pm +++ b/lib/SNMP/Info/IEEE802dot3ad.pm @@ -43,7 +43,7 @@ use SNMP::Info::Aggregate; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Aggregate::MIBS, diff --git a/lib/SNMP/Info/IPv6.pm b/lib/SNMP/Info/IPv6.pm index ad94cafd..da3a0e2d 100644 --- a/lib/SNMP/Info/IPv6.pm +++ b/lib/SNMP/Info/IPv6.pm @@ -44,7 +44,7 @@ use constant { IPV6MIB => 3, }; -$VERSION = '3.52'; +$VERSION = '3.53'; diff --git a/lib/SNMP/Info/LLDP.pm b/lib/SNMP/Info/LLDP.pm index 32093c80..732b6cad 100644 --- a/lib/SNMP/Info/LLDP.pm +++ b/lib/SNMP/Info/LLDP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'LLDP-MIB' => 'lldpLocSysCapEnabled', diff --git a/lib/SNMP/Info/Layer1.pm b/lib/SNMP/Info/Layer1.pm index c19ffa5d..136fc045 100644 --- a/lib/SNMP/Info/Layer1.pm +++ b/lib/SNMP/Info/Layer1.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' ); diff --git a/lib/SNMP/Info/Layer1/Allied.pm b/lib/SNMP/Info/Layer1/Allied.pm index f87d7f01..32a9b59a 100644 --- a/lib/SNMP/Info/Layer1/Allied.pm +++ b/lib/SNMP/Info/Layer1/Allied.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', ); diff --git a/lib/SNMP/Info/Layer1/Asante.pm b/lib/SNMP/Info/Layer1/Asante.pm index 02f0cd15..6a15d005 100644 --- a/lib/SNMP/Info/Layer1/Asante.pm +++ b/lib/SNMP/Info/Layer1/Asante.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, ); diff --git a/lib/SNMP/Info/Layer1/Bayhub.pm b/lib/SNMP/Info/Layer1/Bayhub.pm index 4365017d..568583a6 100644 --- a/lib/SNMP/Info/Layer1/Bayhub.pm +++ b/lib/SNMP/Info/Layer1/Bayhub.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer1/Cyclades.pm b/lib/SNMP/Info/Layer1/Cyclades.pm index b3506099..6a4272a1 100644 --- a/lib/SNMP/Info/Layer1/Cyclades.pm +++ b/lib/SNMP/Info/Layer1/Cyclades.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer1::MIBS, diff --git a/lib/SNMP/Info/Layer1/S3000.pm b/lib/SNMP/Info/Layer1/S3000.pm index 8ff8604f..8b82dc53 100644 --- a/lib/SNMP/Info/Layer1/S3000.pm +++ b/lib/SNMP/Info/Layer1/S3000.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2.pm b/lib/SNMP/Info/Layer2.pm index a2661831..fef8185d 100644 --- a/lib/SNMP/Info/Layer2.pm +++ b/lib/SNMP/Info/Layer2.pm @@ -46,7 +46,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/3Com.pm b/lib/SNMP/Info/Layer2/3Com.pm index dfc6cc63..775adc57 100644 --- a/lib/SNMP/Info/Layer2/3Com.pm +++ b/lib/SNMP/Info/Layer2/3Com.pm @@ -11,7 +11,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::LLDP::MIBS, diff --git a/lib/SNMP/Info/Layer2/Adtran.pm b/lib/SNMP/Info/Layer2/Adtran.pm index 5f7003f0..7131976e 100644 --- a/lib/SNMP/Info/Layer2/Adtran.pm +++ b/lib/SNMP/Info/Layer2/Adtran.pm @@ -11,7 +11,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # This will be filled in with the device's index into the EntPhysicalEntry # table by the serial() function. diff --git a/lib/SNMP/Info/Layer2/Airespace.pm b/lib/SNMP/Info/Layer2/Airespace.pm index 2b1d0ea2..1e8726a7 100644 --- a/lib/SNMP/Info/Layer2/Airespace.pm +++ b/lib/SNMP/Info/Layer2/Airespace.pm @@ -40,7 +40,7 @@ use SNMP::Info::Airespace; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/Aironet.pm b/lib/SNMP/Info/Layer2/Aironet.pm index ed373d02..d9a746ea 100644 --- a/lib/SNMP/Info/Layer2/Aironet.pm +++ b/lib/SNMP/Info/Layer2/Aironet.pm @@ -49,7 +49,7 @@ use SNMP::Info::IEEE802dot11; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %GLOBALS = ( %SNMP::Info::IEEE802dot11::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/Allied.pm b/lib/SNMP/Info/Layer2/Allied.pm index 0564d56c..722fc947 100644 --- a/lib/SNMP/Info/Layer2/Allied.pm +++ b/lib/SNMP/Info/Layer2/Allied.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer1; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); diff --git a/lib/SNMP/Info/Layer2/Baystack.pm b/lib/SNMP/Info/Layer2/Baystack.pm index 10c07a4d..0a1a7067 100644 --- a/lib/SNMP/Info/Layer2/Baystack.pm +++ b/lib/SNMP/Info/Layer2/Baystack.pm @@ -46,7 +46,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::LLDP::MIBS, diff --git a/lib/SNMP/Info/Layer2/C1900.pm b/lib/SNMP/Info/Layer2/C1900.pm index 6ff10e44..274855e6 100644 --- a/lib/SNMP/Info/Layer2/C1900.pm +++ b/lib/SNMP/Info/Layer2/C1900.pm @@ -48,7 +48,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/C2900.pm b/lib/SNMP/Info/Layer2/C2900.pm index 07ace77d..2899b007 100644 --- a/lib/SNMP/Info/Layer2/C2900.pm +++ b/lib/SNMP/Info/Layer2/C2900.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %GLOBALS = ( %SNMP::Info::Layer2::Cisco::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/Catalyst.pm b/lib/SNMP/Info/Layer2/Catalyst.pm index 9c8f7b84..9dfc3a57 100644 --- a/lib/SNMP/Info/Layer2/Catalyst.pm +++ b/lib/SNMP/Info/Layer2/Catalyst.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::Cisco::MIBS, diff --git a/lib/SNMP/Info/Layer2/Centillion.pm b/lib/SNMP/Info/Layer2/Centillion.pm index 132dd063..c1307668 100644 --- a/lib/SNMP/Info/Layer2/Centillion.pm +++ b/lib/SNMP/Info/Layer2/Centillion.pm @@ -43,7 +43,7 @@ use SNMP::Info::SONMP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Cisco.pm b/lib/SNMP/Info/Layer2/Cisco.pm index e793b28c..aad01702 100644 --- a/lib/SNMP/Info/Layer2/Cisco.pm +++ b/lib/SNMP/Info/Layer2/Cisco.pm @@ -52,7 +52,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/CiscoSB.pm b/lib/SNMP/Info/Layer2/CiscoSB.pm index b51c0dfa..6059b885 100644 --- a/lib/SNMP/Info/Layer2/CiscoSB.pm +++ b/lib/SNMP/Info/Layer2/CiscoSB.pm @@ -50,7 +50,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS, diff --git a/lib/SNMP/Info/Layer2/HP.pm b/lib/SNMP/Info/Layer2/HP.pm index 3ec7d64d..58983255 100644 --- a/lib/SNMP/Info/Layer2/HP.pm +++ b/lib/SNMP/Info/Layer2/HP.pm @@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer2/HP4000.pm b/lib/SNMP/Info/Layer2/HP4000.pm index 06442a2d..8ec19cc8 100644 --- a/lib/SNMP/Info/Layer2/HP4000.pm +++ b/lib/SNMP/Info/Layer2/HP4000.pm @@ -44,7 +44,7 @@ use SNMP::Info::CDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer2/HPVC.pm b/lib/SNMP/Info/Layer2/HPVC.pm index b2584d1d..1ec42c93 100644 --- a/lib/SNMP/Info/Layer2/HPVC.pm +++ b/lib/SNMP/Info/Layer2/HPVC.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/Kentrox.pm b/lib/SNMP/Info/Layer2/Kentrox.pm index f28eeee0..5a7dad6a 100644 --- a/lib/SNMP/Info/Layer2/Kentrox.pm +++ b/lib/SNMP/Info/Layer2/Kentrox.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/N2270.pm b/lib/SNMP/Info/Layer2/N2270.pm index 75c53af6..fe607c67 100644 --- a/lib/SNMP/Info/Layer2/N2270.pm +++ b/lib/SNMP/Info/Layer2/N2270.pm @@ -43,7 +43,7 @@ use SNMP::Info::Airespace; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS, diff --git a/lib/SNMP/Info/Layer2/NAP222x.pm b/lib/SNMP/Info/Layer2/NAP222x.pm index caaab585..3fba7513 100644 --- a/lib/SNMP/Info/Layer2/NAP222x.pm +++ b/lib/SNMP/Info/Layer2/NAP222x.pm @@ -42,7 +42,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS, diff --git a/lib/SNMP/Info/Layer2/NWSS2300.pm b/lib/SNMP/Info/Layer2/NWSS2300.pm index 0af1c0a9..e51e2d46 100644 --- a/lib/SNMP/Info/Layer2/NWSS2300.pm +++ b/lib/SNMP/Info/Layer2/NWSS2300.pm @@ -39,7 +39,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Netgear.pm b/lib/SNMP/Info/Layer2/Netgear.pm index 17a93f69..361e3ff6 100644 --- a/lib/SNMP/Info/Layer2/Netgear.pm +++ b/lib/SNMP/Info/Layer2/Netgear.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # This will be filled in with the device's index into the EntPhysicalEntry # table by the serial() function. diff --git a/lib/SNMP/Info/Layer2/Orinoco.pm b/lib/SNMP/Info/Layer2/Orinoco.pm index f1fd3449..8adf1025 100644 --- a/lib/SNMP/Info/Layer2/Orinoco.pm +++ b/lib/SNMP/Info/Layer2/Orinoco.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/Trapeze.pm b/lib/SNMP/Info/Layer2/Trapeze.pm index d3f39a81..f33e7be6 100644 --- a/lib/SNMP/Info/Layer2/Trapeze.pm +++ b/lib/SNMP/Info/Layer2/Trapeze.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer2/Ubiquiti.pm b/lib/SNMP/Info/Layer2/Ubiquiti.pm index fefde0b9..16339414 100644 --- a/lib/SNMP/Info/Layer2/Ubiquiti.pm +++ b/lib/SNMP/Info/Layer2/Ubiquiti.pm @@ -18,7 +18,7 @@ use SNMP::Info::Layer3; # only used in sub mac() use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, diff --git a/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm b/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm index d016df78..f9ac518c 100644 --- a/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm +++ b/lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer2; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # Set for No CDP %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); diff --git a/lib/SNMP/Info/Layer3.pm b/lib/SNMP/Info/Layer3.pm index e10cc0f6..676701d5 100644 --- a/lib/SNMP/Info/Layer3.pm +++ b/lib/SNMP/Info/Layer3.pm @@ -53,7 +53,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer3/Aironet.pm b/lib/SNMP/Info/Layer3/Aironet.pm index cc35287d..21f0a94a 100644 --- a/lib/SNMP/Info/Layer3/Aironet.pm +++ b/lib/SNMP/Info/Layer3/Aironet.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/AlcatelLucent.pm b/lib/SNMP/Info/Layer3/AlcatelLucent.pm index ed82ab82..c25b00a3 100644 --- a/lib/SNMP/Info/Layer3/AlcatelLucent.pm +++ b/lib/SNMP/Info/Layer3/AlcatelLucent.pm @@ -49,7 +49,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/AlteonAD.pm b/lib/SNMP/Info/Layer3/AlteonAD.pm index 3c1c2e5d..02ab6d64 100644 --- a/lib/SNMP/Info/Layer3/AlteonAD.pm +++ b/lib/SNMP/Info/Layer3/AlteonAD.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Altiga.pm b/lib/SNMP/Info/Layer3/Altiga.pm index 4fd9cf88..61728021 100644 --- a/lib/SNMP/Info/Layer3/Altiga.pm +++ b/lib/SNMP/Info/Layer3/Altiga.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE $int_include_vpn $fake_idx $type_class/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Arista.pm b/lib/SNMP/Info/Layer3/Arista.pm index 8875d39e..1e253e55 100644 --- a/lib/SNMP/Info/Layer3/Arista.pm +++ b/lib/SNMP/Info/Layer3/Arista.pm @@ -48,7 +48,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Aruba.pm b/lib/SNMP/Info/Layer3/Aruba.pm index 5833035b..d849212a 100644 --- a/lib/SNMP/Info/Layer3/Aruba.pm +++ b/lib/SNMP/Info/Layer3/Aruba.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/BayRS.pm b/lib/SNMP/Info/Layer3/BayRS.pm index 7837d3b1..1ae45d33 100644 --- a/lib/SNMP/Info/Layer3/BayRS.pm +++ b/lib/SNMP/Info/Layer3/BayRS.pm @@ -43,7 +43,7 @@ use SNMP::Info::Bridge; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP %MODID_MAP %PROCID_MAP/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer3/BlueCoatSG.pm b/lib/SNMP/Info/Layer3/BlueCoatSG.pm index ae8ac873..d3ac3d35 100644 --- a/lib/SNMP/Info/Layer3/BlueCoatSG.pm +++ b/lib/SNMP/Info/Layer3/BlueCoatSG.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/C3550.pm b/lib/SNMP/Info/Layer3/C3550.pm index 72874290..556b913f 100644 --- a/lib/SNMP/Info/Layer3/C3550.pm +++ b/lib/SNMP/Info/Layer3/C3550.pm @@ -47,7 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; @SNMP::Info::Layer3::C3550::EXPORT_OK = qw//; -$VERSION = '3.52'; +$VERSION = '3.53'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/C4000.pm b/lib/SNMP/Info/Layer3/C4000.pm index bb0e8d7b..ec740ea4 100644 --- a/lib/SNMP/Info/Layer3/C4000.pm +++ b/lib/SNMP/Info/Layer3/C4000.pm @@ -44,7 +44,7 @@ use SNMP::Info::MAU; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MAU::MIBS, diff --git a/lib/SNMP/Info/Layer3/C6500.pm b/lib/SNMP/Info/Layer3/C6500.pm index 54138069..eaa5ecc6 100644 --- a/lib/SNMP/Info/Layer3/C6500.pm +++ b/lib/SNMP/Info/Layer3/C6500.pm @@ -51,7 +51,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/CheckPoint.pm b/lib/SNMP/Info/Layer3/CheckPoint.pm index 38cf4e6f..d5ce65d7 100644 --- a/lib/SNMP/Info/Layer3/CheckPoint.pm +++ b/lib/SNMP/Info/Layer3/CheckPoint.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Cisco.pm b/lib/SNMP/Info/Layer3/Cisco.pm index 7c131477..29d053ee 100644 --- a/lib/SNMP/Info/Layer3/Cisco.pm +++ b/lib/SNMP/Info/Layer3/Cisco.pm @@ -55,7 +55,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/CiscoASA.pm b/lib/SNMP/Info/Layer3/CiscoASA.pm index 3feeb356..ab3e0966 100644 --- a/lib/SNMP/Info/Layer3/CiscoASA.pm +++ b/lib/SNMP/Info/Layer3/CiscoASA.pm @@ -45,7 +45,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/CiscoFWSM.pm b/lib/SNMP/Info/Layer3/CiscoFWSM.pm index 3e771fec..925b73a4 100644 --- a/lib/SNMP/Info/Layer3/CiscoFWSM.pm +++ b/lib/SNMP/Info/Layer3/CiscoFWSM.pm @@ -43,7 +43,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/CiscoSwitch.pm b/lib/SNMP/Info/Layer3/CiscoSwitch.pm index 9bde4913..ca4ea164 100644 --- a/lib/SNMP/Info/Layer3/CiscoSwitch.pm +++ b/lib/SNMP/Info/Layer3/CiscoSwitch.pm @@ -50,7 +50,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::Cisco::MIBS, diff --git a/lib/SNMP/Info/Layer3/Contivity.pm b/lib/SNMP/Info/Layer3/Contivity.pm index 5c866ece..10ed4699 100644 --- a/lib/SNMP/Info/Layer3/Contivity.pm +++ b/lib/SNMP/Info/Layer3/Contivity.pm @@ -42,7 +42,7 @@ use SNMP::Info::Entity; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS, diff --git a/lib/SNMP/Info/Layer3/Cumulus.pm b/lib/SNMP/Info/Layer3/Cumulus.pm index 43d7a1fa..759bcd35 100644 --- a/lib/SNMP/Info/Layer3/Cumulus.pm +++ b/lib/SNMP/Info/Layer3/Cumulus.pm @@ -46,7 +46,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/DLink.pm b/lib/SNMP/Info/Layer3/DLink.pm index 19891f4e..755219fb 100644 --- a/lib/SNMP/Info/Layer3/DLink.pm +++ b/lib/SNMP/Info/Layer3/DLink.pm @@ -10,7 +10,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Dell.pm b/lib/SNMP/Info/Layer3/Dell.pm index a5e65fb5..8c4a7fc4 100644 --- a/lib/SNMP/Info/Layer3/Dell.pm +++ b/lib/SNMP/Info/Layer3/Dell.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Enterasys.pm b/lib/SNMP/Info/Layer3/Enterasys.pm index 875074bd..71c879d3 100644 --- a/lib/SNMP/Info/Layer3/Enterasys.pm +++ b/lib/SNMP/Info/Layer3/Enterasys.pm @@ -44,7 +44,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS, diff --git a/lib/SNMP/Info/Layer3/Extreme.pm b/lib/SNMP/Info/Layer3/Extreme.pm index 78e07817..288dbae1 100644 --- a/lib/SNMP/Info/Layer3/Extreme.pm +++ b/lib/SNMP/Info/Layer3/Extreme.pm @@ -46,7 +46,7 @@ use SNMP::Info::EDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/F5.pm b/lib/SNMP/Info/Layer3/F5.pm index 76fd0d80..6b116cea 100644 --- a/lib/SNMP/Info/Layer3/F5.pm +++ b/lib/SNMP/Info/Layer3/F5.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Force10.pm b/lib/SNMP/Info/Layer3/Force10.pm index 8c372d76..ea5ca279 100644 --- a/lib/SNMP/Info/Layer3/Force10.pm +++ b/lib/SNMP/Info/Layer3/Force10.pm @@ -43,7 +43,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Fortinet.pm b/lib/SNMP/Info/Layer3/Fortinet.pm index 15fdb40a..cffeb472 100644 --- a/lib/SNMP/Info/Layer3/Fortinet.pm +++ b/lib/SNMP/Info/Layer3/Fortinet.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Foundry.pm b/lib/SNMP/Info/Layer3/Foundry.pm index b934e309..0b8038d2 100644 --- a/lib/SNMP/Info/Layer3/Foundry.pm +++ b/lib/SNMP/Info/Layer3/Foundry.pm @@ -48,7 +48,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/H3C.pm b/lib/SNMP/Info/Layer3/H3C.pm index f0e5cabd..d42449e0 100644 --- a/lib/SNMP/Info/Layer3/H3C.pm +++ b/lib/SNMP/Info/Layer3/H3C.pm @@ -47,7 +47,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/HP9300.pm b/lib/SNMP/Info/Layer3/HP9300.pm index de70dc18..f0d19bb8 100644 --- a/lib/SNMP/Info/Layer3/HP9300.pm +++ b/lib/SNMP/Info/Layer3/HP9300.pm @@ -42,7 +42,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Huawei.pm b/lib/SNMP/Info/Layer3/Huawei.pm index 210e8038..04eb03b4 100644 --- a/lib/SNMP/Info/Layer3/Huawei.pm +++ b/lib/SNMP/Info/Layer3/Huawei.pm @@ -47,7 +47,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/IBMGbTor.pm b/lib/SNMP/Info/Layer3/IBMGbTor.pm index 854d5995..aa9338d7 100644 --- a/lib/SNMP/Info/Layer3/IBMGbTor.pm +++ b/lib/SNMP/Info/Layer3/IBMGbTor.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Juniper.pm b/lib/SNMP/Info/Layer3/Juniper.pm index 5ad0ea10..7fa20f0c 100644 --- a/lib/SNMP/Info/Layer3/Juniper.pm +++ b/lib/SNMP/Info/Layer3/Juniper.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Lantronix.pm b/lib/SNMP/Info/Layer3/Lantronix.pm index 1047dab3..c23a9ee9 100644 --- a/lib/SNMP/Info/Layer3/Lantronix.pm +++ b/lib/SNMP/Info/Layer3/Lantronix.pm @@ -41,7 +41,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Microsoft.pm b/lib/SNMP/Info/Layer3/Microsoft.pm index 92c6b618..b079fc47 100644 --- a/lib/SNMP/Info/Layer3/Microsoft.pm +++ b/lib/SNMP/Info/Layer3/Microsoft.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/Mikrotik.pm b/lib/SNMP/Info/Layer3/Mikrotik.pm index fb26aaae..ebd35a35 100644 --- a/lib/SNMP/Info/Layer3/Mikrotik.pm +++ b/lib/SNMP/Info/Layer3/Mikrotik.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/N1600.pm b/lib/SNMP/Info/Layer3/N1600.pm index 4ec224b8..eb316928 100644 --- a/lib/SNMP/Info/Layer3/N1600.pm +++ b/lib/SNMP/Info/Layer3/N1600.pm @@ -41,7 +41,7 @@ use SNMP::Info::SONMP; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/NetSNMP.pm b/lib/SNMP/Info/Layer3/NetSNMP.pm index 3113c535..deb70ad2 100644 --- a/lib/SNMP/Info/Layer3/NetSNMP.pm +++ b/lib/SNMP/Info/Layer3/NetSNMP.pm @@ -40,7 +40,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Netscreen.pm b/lib/SNMP/Info/Layer3/Netscreen.pm index 2b93be7e..fc5909c8 100644 --- a/lib/SNMP/Info/Layer3/Netscreen.pm +++ b/lib/SNMP/Info/Layer3/Netscreen.pm @@ -40,7 +40,7 @@ use SNMP::Info::IEEE802dot11; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Nexus.pm b/lib/SNMP/Info/Layer3/Nexus.pm index 68261d90..40dd55f5 100644 --- a/lib/SNMP/Info/Layer3/Nexus.pm +++ b/lib/SNMP/Info/Layer3/Nexus.pm @@ -46,7 +46,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; # NOTE: Order creates precedence # Example: v_name exists in Bridge.pm and CiscoVTP.pm diff --git a/lib/SNMP/Info/Layer3/PacketFront.pm b/lib/SNMP/Info/Layer3/PacketFront.pm index a5da7c6c..8fe089f2 100644 --- a/lib/SNMP/Info/Layer3/PacketFront.pm +++ b/lib/SNMP/Info/Layer3/PacketFront.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/PaloAlto.pm b/lib/SNMP/Info/Layer3/PaloAlto.pm index 2580f98c..e658f5ce 100644 --- a/lib/SNMP/Info/Layer3/PaloAlto.pm +++ b/lib/SNMP/Info/Layer3/PaloAlto.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Passport.pm b/lib/SNMP/Info/Layer3/Passport.pm index f7c562b9..c3c99930 100644 --- a/lib/SNMP/Info/Layer3/Passport.pm +++ b/lib/SNMP/Info/Layer3/Passport.pm @@ -43,7 +43,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::RapidCity::MIBS, diff --git a/lib/SNMP/Info/Layer3/Pf.pm b/lib/SNMP/Info/Layer3/Pf.pm index 06adf752..7441e212 100644 --- a/lib/SNMP/Info/Layer3/Pf.pm +++ b/lib/SNMP/Info/Layer3/Pf.pm @@ -41,7 +41,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Pica8.pm b/lib/SNMP/Info/Layer3/Pica8.pm index 5e31c563..414ade56 100644 --- a/lib/SNMP/Info/Layer3/Pica8.pm +++ b/lib/SNMP/Info/Layer3/Pica8.pm @@ -39,7 +39,7 @@ use SNMP::Info::LLDP; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/SonicWALL.pm b/lib/SNMP/Info/Layer3/SonicWALL.pm index 813dac56..f30e77a0 100644 --- a/lib/SNMP/Info/Layer3/SonicWALL.pm +++ b/lib/SNMP/Info/Layer3/SonicWALL.pm @@ -36,7 +36,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Steelhead.pm b/lib/SNMP/Info/Layer3/Steelhead.pm index 3afb6c24..11a478e6 100644 --- a/lib/SNMP/Info/Layer3/Steelhead.pm +++ b/lib/SNMP/Info/Layer3/Steelhead.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Sun.pm b/lib/SNMP/Info/Layer3/Sun.pm index 36f68185..ccc97316 100644 --- a/lib/SNMP/Info/Layer3/Sun.pm +++ b/lib/SNMP/Info/Layer3/Sun.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, ); diff --git a/lib/SNMP/Info/Layer3/Tasman.pm b/lib/SNMP/Info/Layer3/Tasman.pm index 4f5e014a..9d43983a 100644 --- a/lib/SNMP/Info/Layer3/Tasman.pm +++ b/lib/SNMP/Info/Layer3/Tasman.pm @@ -42,7 +42,7 @@ use SNMP::Info::MAU; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer3/Timetra.pm b/lib/SNMP/Info/Layer3/Timetra.pm index 34ce7e37..081eac67 100644 --- a/lib/SNMP/Info/Layer3/Timetra.pm +++ b/lib/SNMP/Info/Layer3/Timetra.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer3::MIBS, 'TIMETRA-GLOBAL-MIB' => 'timetraReg', ); diff --git a/lib/SNMP/Info/Layer3/VMware.pm b/lib/SNMP/Info/Layer3/VMware.pm index beaa1443..de80875e 100644 --- a/lib/SNMP/Info/Layer3/VMware.pm +++ b/lib/SNMP/Info/Layer3/VMware.pm @@ -39,7 +39,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::IEEE802dot3ad::MIBS, diff --git a/lib/SNMP/Info/Layer3/VyOS.pm b/lib/SNMP/Info/Layer3/VyOS.pm index 0904c59a..bc09f247 100644 --- a/lib/SNMP/Info/Layer3/VyOS.pm +++ b/lib/SNMP/Info/Layer3/VyOS.pm @@ -39,7 +39,7 @@ use SNMP::Info::Layer3; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, diff --git a/lib/SNMP/Info/Layer7.pm b/lib/SNMP/Info/Layer7.pm index 76ed8c34..ab6255fd 100644 --- a/lib/SNMP/Info/Layer7.pm +++ b/lib/SNMP/Info/Layer7.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::MIBS, diff --git a/lib/SNMP/Info/Layer7/APC.pm b/lib/SNMP/Info/Layer7/APC.pm index 1819bcb7..f884b090 100644 --- a/lib/SNMP/Info/Layer7/APC.pm +++ b/lib/SNMP/Info/Layer7/APC.pm @@ -40,7 +40,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/CiscoIPS.pm b/lib/SNMP/Info/Layer7/CiscoIPS.pm index 23b099a7..35903f5b 100644 --- a/lib/SNMP/Info/Layer7/CiscoIPS.pm +++ b/lib/SNMP/Info/Layer7/CiscoIPS.pm @@ -46,7 +46,7 @@ use SNMP::Info::Entity; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer7::MIBS, %SNMP::Info::Entity::MIBS, ); diff --git a/lib/SNMP/Info/Layer7/Gigamon.pm b/lib/SNMP/Info/Layer7/Gigamon.pm index 8e4fe27b..dcce74ac 100644 --- a/lib/SNMP/Info/Layer7/Gigamon.pm +++ b/lib/SNMP/Info/Layer7/Gigamon.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/Neoteris.pm b/lib/SNMP/Info/Layer7/Neoteris.pm index 4ccc1dcb..25f943af 100644 --- a/lib/SNMP/Info/Layer7/Neoteris.pm +++ b/lib/SNMP/Info/Layer7/Neoteris.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/Layer7/Netscaler.pm b/lib/SNMP/Info/Layer7/Netscaler.pm index 8e721b56..e336eb46 100644 --- a/lib/SNMP/Info/Layer7/Netscaler.pm +++ b/lib/SNMP/Info/Layer7/Netscaler.pm @@ -38,7 +38,7 @@ use SNMP::Info::Layer7; use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( %SNMP::Info::Layer7::MIBS, diff --git a/lib/SNMP/Info/MAU.pm b/lib/SNMP/Info/MAU.pm index bde1195d..509cdaa2 100644 --- a/lib/SNMP/Info/MAU.pm +++ b/lib/SNMP/Info/MAU.pm @@ -41,7 +41,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'MAU-MIB' => 'mauMod', 'IANA-MAU-MIB' => 'dot3MauType' ); diff --git a/lib/SNMP/Info/MRO.pm b/lib/SNMP/Info/MRO.pm index 7add44e2..2c013362 100644 --- a/lib/SNMP/Info/MRO.pm +++ b/lib/SNMP/Info/MRO.pm @@ -4,7 +4,7 @@ use warnings; use strict; use vars qw/$VERSION/; -$VERSION = '3.52'; +$VERSION = '3.53'; use PPI; use Class::ISA; ## no critic diff --git a/lib/SNMP/Info/NortelStack.pm b/lib/SNMP/Info/NortelStack.pm index 61e5af06..93751636 100644 --- a/lib/SNMP/Info/NortelStack.pm +++ b/lib/SNMP/Info/NortelStack.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( diff --git a/lib/SNMP/Info/PowerEthernet.pm b/lib/SNMP/Info/PowerEthernet.pm index a998a075..0d943dd3 100644 --- a/lib/SNMP/Info/PowerEthernet.pm +++ b/lib/SNMP/Info/PowerEthernet.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'POWER-ETHERNET-MIB' => 'pethPsePortDetectionStatus' ); diff --git a/lib/SNMP/Info/RapidCity.pm b/lib/SNMP/Info/RapidCity.pm index 3c0e3298..11357cf6 100644 --- a/lib/SNMP/Info/RapidCity.pm +++ b/lib/SNMP/Info/RapidCity.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'RAPID-CITY' => 'rapidCity', diff --git a/lib/SNMP/Info/SONMP.pm b/lib/SNMP/Info/SONMP.pm index 2d11ae53..41978315 100644 --- a/lib/SNMP/Info/SONMP.pm +++ b/lib/SNMP/Info/SONMP.pm @@ -39,7 +39,7 @@ use SNMP::Info; use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; -$VERSION = '3.52'; +$VERSION = '3.53'; %MIBS = ( 'SYNOPTICS-ROOT-MIB' => 'synoptics', From 60d55914012b8db5529634baad27d16c9a963759 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 22:52:58 -0400 Subject: [PATCH 15/16] More base class test coverage --- xt/lib/SNMP/Info/Test.pm | 102 +++++++++++++++++++++++++++++++++++---- 1 file changed, 93 insertions(+), 9 deletions(-) diff --git a/xt/lib/SNMP/Info/Test.pm b/xt/lib/SNMP/Info/Test.pm index 4ab0d415..43f87726 100644 --- a/xt/lib/SNMP/Info/Test.pm +++ b/xt/lib/SNMP/Info/Test.pm @@ -97,23 +97,25 @@ sub funcs : Tests(2) { # or context as described in documentation # TODO - Commented out as causing problems during CI build -#sub update : Tests(4) { -# my $test = shift; +sub update : Tests(4) { + my $test = shift; # Starting community -# is($test->{info}{sess}{Community}, 'public', 'original community'); + is($test->{info}{sess}{Community}, 'public', 'original community'); # Change community -# $test->{info}->update('Community' => 'new_community',); -# is($test->{info}{sess}{Community}, 'new_community', 'community changed'); + my %update_args = ('Community' => 'new_community',); + $test->{info}->update(%update_args); + is($test->{info}{sess}{Community}, 'new_community', 'community changed'); # Starting context -# is($test->{info}{sess}{Context}, '', 'original context'); + is($test->{info}{sess}{Context}, '', 'original context'); # Change context -# $test->{info}->update('Context' => 'new_context',); -# is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); -#} + %update_args = ('Context' => 'new_context',); + $test->{info}->update(%update_args); + is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); +} sub cache_and_clear_cache : Tests(9) { my $test = shift; @@ -677,4 +679,86 @@ sub munge_i_up : Tests(4) { is(SNMP::Info::munge_i_up(7), 'lowerLayerDown', 'Lower layer down status'); } +sub munge_port_list : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_port_list'); + + # These are typically longer bit strings to cover the all ports in a switch + my $bit_string = '01010101010101010101010101010101'; + my $bits = pack("B*", $bit_string); + + # We are going to get a reference of array of bits back so convert the + # string to an array + my $expected = []; + for my $value (split //, $bit_string) { + $expected->[++$#$expected] = $value; + } + is_deeply(SNMP::Info::munge_port_list($bits), + $expected, 'Portlist octet string coverted to ASCII bit array'); +} + +sub munge_null : Tests(2) { + my $test = shift; + + can_ok($test->{info}, 'munge_null'); + + # See if all possible control characters and nulls are removed + my $cntl_string = "Test\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09"; + $cntl_string .= "This\x0A\x0B\x0C\x0D\x0E\x0F"; + $cntl_string .= "Crazy\x11\x12\x13\x14\x15\x16\x17\x18\x19"; + $cntl_string .= "Cntl\x1A\x1B\x1C\x1D\x1E\x1F"; + $cntl_string .= "\x7FString"; + + # This is layers munge, use L3 test case + is(SNMP::Info::munge_null($cntl_string), + 'TestThisCrazyCntlString', 'Null and control characters removed'); +} + +sub munge_e_type : Tests(3) { + my $test = shift; + + can_ok($test->{info}, 'munge_e_type'); + + # This is just calling SNMP::translateOb, so rather than loading another MIB + # let's just resolve an OID we don't use from a loaded MIB. + is(SNMP::Info::munge_e_type('.1.3.6.1.2.1.11.4'), + 'snmpInBadCommunityNames', 'OID translated properly'); + + # Bogus OID + is(SNMP::Info::munge_e_type('.100.3.6.1.2.1.11.4'), + '.100.3.6.1.2.1.11.4', 'OID returned when unable to translate'); +} + +sub init : Tests(4) { + my $test = shift; + + can_ok($test->{info}, 'init'); + + # When the test info object was created init() was called so all of the + # entries in %MIBS should be loaded + subtest 'Base MIBs loaded subtest' => sub { + + my $base_mibs = $test->{info}->mibs(); + + foreach my $key (keys %$base_mibs) { + my $qual_name = "$key" . '::' . "$base_mibs->{$key}"; + ok(defined $SNMP::MIB{$base_mibs->{$key}}, "$qual_name defined"); + like(SNMP::translateObj($qual_name), + qr/^(\.\d+)+$/, "$qual_name translates to a OID"); + } + }; + + # Get SNMP::Version so we can restore + my $netsnmp_ver = $SNMP::VERSION; + local $SNMP::VERSION = '5.0.1'; + + warnings_like { $test->{info}->init() } + [{carped => qr/Net-SNMP\s5.0.1\sseems\sto\sbe\srather\sbuggy/x}], + 'Use of bad Net-SNMP gives warning'; + + $SNMP::VERSION = $netsnmp_ver; +} + + 1; From c921e8b35c0a09ac41594d0a7f51efac76702709 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 22 Mar 2018 23:19:12 -0400 Subject: [PATCH 16/16] Mark problematic update() tests as todo_skip --- xt/lib/SNMP/Info/Test.pm | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/xt/lib/SNMP/Info/Test.pm b/xt/lib/SNMP/Info/Test.pm index 43f87726..4df66c6e 100644 --- a/xt/lib/SNMP/Info/Test.pm +++ b/xt/lib/SNMP/Info/Test.pm @@ -96,25 +96,28 @@ sub funcs : Tests(2) { # update() needs to be reworked to discard all args except community # or context as described in documentation -# TODO - Commented out as causing problems during CI build sub update : Tests(4) { my $test = shift; # Starting community is($test->{info}{sess}{Community}, 'public', 'original community'); - # Change community - my %update_args = ('Community' => 'new_community',); - $test->{info}->update(%update_args); - is($test->{info}{sess}{Community}, 'new_community', 'community changed'); +TODO: { + todo_skip "CI issues with update() tests", 3 if 1; - # Starting context - is($test->{info}{sess}{Context}, '', 'original context'); + # Change community + my %update_args = ('Community' => 'new_community',); + $test->{info}->update(%update_args); + is($test->{info}{sess}{Community}, 'new_community', 'community changed'); - # Change context - %update_args = ('Context' => 'new_context',); - $test->{info}->update(%update_args); - is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); + # Starting context + is($test->{info}{sess}{Context}, '', 'original context'); + + # Change context + %update_args = ('Context' => 'new_context',); + $test->{info}->update(%update_args); + is($test->{info}->{sess}->{Context}, 'new_context', 'context changed'); + } } sub cache_and_clear_cache : Tests(9) { @@ -748,15 +751,15 @@ sub init : Tests(4) { qr/^(\.\d+)+$/, "$qual_name translates to a OID"); } }; - + # Get SNMP::Version so we can restore my $netsnmp_ver = $SNMP::VERSION; local $SNMP::VERSION = '5.0.1'; - + warnings_like { $test->{info}->init() } [{carped => qr/Net-SNMP\s5.0.1\sseems\sto\sbe\srather\sbuggy/x}], 'Use of bad Net-SNMP gives warning'; - + $SNMP::VERSION = $netsnmp_ver; }