Compare commits
	
		
			78 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | d36fce44d0 | ||
|  | 60e63ac9cc | ||
|  | a97c48546c | ||
|  | dd96147712 | ||
|  | 912bf62e9b | ||
|  | 0791b7cccb | ||
|  | 78c194faee | ||
|  | 9d00126c83 | ||
|  | 6fa54dd4db | ||
|  | eb6420125e | ||
|  | 51be2d5dc5 | ||
|  | 762a01e619 | ||
|  | f0fb351137 | ||
|  | 6d39026616 | ||
|  | 723f8ea744 | ||
|  | f941f432e9 | ||
|  | 631f99f97b | ||
|  | 1840089789 | ||
|  | 36029e38a7 | ||
|  | 3abffc4d59 | ||
|  | 0f01c6c07c | ||
|  | 68b001105d | ||
|  | d459dd7f8c | ||
|  | 75a00fabe9 | ||
|  | 091a3692e3 | ||
|  | 3bcc522590 | ||
|  | 6c8d39d746 | ||
|  | b6720a2b43 | ||
|  | 6753b795b9 | ||
|  | cefbcce8e3 | ||
|  | 910c5420e3 | ||
|  | 02c8ed0764 | ||
|  | fda13addf0 | ||
|  | 211a06dbf1 | ||
|  | e886190e8e | ||
|  | 8b3a1fd357 | ||
|  | e7adf92b59 | ||
|  | 7de14a2bd9 | ||
|  | f37225ee9a | ||
|  | 52f9042ef0 | ||
|  | d38ef69120 | ||
|  | 6341ad15f8 | ||
|  | f3f01d5f15 | ||
|  | 23d11551c6 | ||
|  | 73b63c8379 | ||
|  | 2652998aba | ||
|  | 254bfd11a3 | ||
|  | 2c61248016 | ||
|  | 45e56b332e | ||
|  | 8003691e64 | ||
|  | 25b1801fe4 | ||
|  | 737bb252a7 | ||
|  | 14e0aa0952 | ||
|  | e7d83a5918 | ||
|  | bfbb2fb2ab | ||
|  | c8f686b7aa | ||
|  | 77fa064db5 | ||
|  | 6b70ccfd79 | ||
|  | 9b1995e90f | ||
|  | 75785f70c7 | ||
|  | ea9ad92cc4 | ||
|  | ad8762a7c4 | ||
|  | c73bc0ca2c | ||
|  | 07de5e53e3 | ||
|  | 141812bf4d | ||
|  | 2308826147 | ||
|  | 01fa098078 | ||
|  | 167cc2f3fa | ||
|  | ea53f79bb8 | ||
|  | 4b75ef1889 | ||
|  | c4ce6a2062 | ||
|  | 9e4e0e3510 | ||
|  | c0228965f4 | ||
|  | 0896bd881c | ||
|  | 42395d49fd | ||
|  | e08d22d51c | ||
|  | f0b429039e | ||
|  | d63baa2473 | 
							
								
								
									
										19
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,20 @@ | ||||
| <!--- Provide a general summary of the issue in the Title above --> | ||||
| <!--- https://guides.github.com/features/mastering-markdown/#examples --> | ||||
| <!--- | ||||
|  | ||||
| READ THIS FIRST! | ||||
| ---------------- | ||||
|  | ||||
| the more info you can provide, the easier it is for us the help you, so please | ||||
| fill out as many of the items below as possible. | ||||
|  | ||||
| Provide a general summary of the issue in the Title above | ||||
|  | ||||
| when including netdisco config snippets, whitespace matters since it's a yaml file | ||||
| for github issues it really helps if you include the relevant config parts in a codeblock (code fencing) | ||||
| see the "code" subject on https://guides.github.com/features/mastering-markdown/ for that) | ||||
| this should preserve spaces in the issue tracker and make troubleshooting quicker | ||||
|  | ||||
| --> | ||||
|  | ||||
|  | ||||
| ## Expected Behavior | ||||
| <!--- If you're describing a bug, tell us what should happen --> | ||||
|   | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -10,3 +10,4 @@ Build | ||||
| _build | ||||
| blib | ||||
| cover_db | ||||
| .idea | ||||
|   | ||||
							
								
								
									
										21
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -1,4 +1,9 @@ | ||||
| language: perl | ||||
| perl: | ||||
|   - "5.30" | ||||
|   - "5.10" | ||||
| os: linux | ||||
| dist: trusty | ||||
| addons: | ||||
|   apt: | ||||
|     packages: | ||||
| @@ -12,7 +17,7 @@ before_install: | ||||
|   - mkdir ~/netdisco-mibs | ||||
|   - cd ~/netdisco-mibs | ||||
| install: | ||||
|   - curl -sL https://github.com/netdisco/netdisco-mibs/releases/download/4.014/netdisco-mibs.tar.gz | tar --strip-components=1 -zxf - | ||||
|   - curl -sL https://api.github.com/repos/netdisco/netdisco-mibs/releases/latest | jq -r '.tarball_url' | xargs -n1 curl -sL | tar --strip-components=1 -zxf - | ||||
|   - cpanm --quiet --notest PkgConfig Test::CChecker Alien::zlib::Static Alien::OpenSSL::Static Alien::SNMP | ||||
| before_script: | ||||
|   - 'cd ${TRAVIS_BUILD_DIR}' | ||||
| @@ -23,12 +28,12 @@ script: | ||||
|     ./Build test --test_files t/ --test_files xt/ | ||||
| notifications: | ||||
|   irc: | ||||
|     on_success: always | ||||
|     on_failure: always | ||||
|     on_success: change | ||||
|     on_failure: change | ||||
|     channels: | ||||
|       - 'chat.freenode.net#netdisco' | ||||
|   email: | ||||
|     on_success: always | ||||
|     on_failure: always | ||||
|     recipients: | ||||
|       - 'snmp-info-cvs@lists.sourceforge.net' | ||||
| #  email: | ||||
| #    on_success: always | ||||
| #    on_failure: always | ||||
| #    recipients: | ||||
| #      - 'snmp-info-cvs@lists.sourceforge.net' | ||||
|   | ||||
							
								
								
									
										1
									
								
								Build.PL
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Build.PL
									
									
									
									
									
								
							| @@ -37,6 +37,7 @@ Module::Build->new( | ||||
|     'Class::Inspector' => '0', | ||||
|     'NetSNMP::default_store' => '0', | ||||
|     'Module::Find' => '0', | ||||
|     'Hook::LexWrap' => '0', | ||||
|   }, | ||||
|   # script_files => [ | ||||
|   # ], | ||||
|   | ||||
							
								
								
									
										54
									
								
								Changes
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								Changes
									
									
									
									
									
								
							| @@ -1,3 +1,57 @@ | ||||
| Version 3.69 (2019-xx-xx) | ||||
|  | ||||
|   [ENHANCEMENTS] | ||||
|  | ||||
|   * #350 ubiquiti version string cleanup (LBegnaud) | ||||
|   * #352 duplex support for ciscosb | ||||
|   * #353 report all vendor names in lowercase | ||||
|   * #353 sprinkle "use warnings" and "use strict" around | ||||
|   * poe power usage & mac address for ciscosb | ||||
|   * #359 detect newer ios-xe using codenames (Christoph Neuhaus) | ||||
|   * #358 prefer checkpoint mib over net-snmp mib (earendilfr)  | ||||
|  | ||||
|   [BUG FIXES] | ||||
|  | ||||
|   * #353 doc fixes: report all required mibs for each module as based on code | ||||
|   * #353 include fixes: don't include modules already imported from parent classes | ||||
|   * #355 fix #252, don't think 6char devices names are mac addresses | ||||
|   * #364 strip newline from neoteris os_ver, fixes netdisco #647 | ||||
|  | ||||
| Version 3.68 (2019-04-28) | ||||
|  | ||||
|   [NEW FEATURES] | ||||
|  | ||||
|   * initial support for redlion cellular routers (inphobia) | ||||
|  | ||||
|   [ENHANCEMENTS] | ||||
|  | ||||
|   * use pulsesecure mib in layer7::neoteris instead of juniper-ive | ||||
|  | ||||
| Version 3.67 (2019-04-20) | ||||
|  | ||||
|   [NEW FEATURES] | ||||
|  | ||||
|   * #323 initial Lenovo / cnos support (inphobia) | ||||
|   * #317 #326 DOCSIS Head End support (Pyro3d) | ||||
|  | ||||
|   [ENHANCEMENTS] | ||||
|  | ||||
|   * add v3 Context update() tests for net-snmp 5.8+ | ||||
|   * support INFO_TRACE and SNMP_TRACE environment variables for Debug | ||||
|   * #324 clean up exinda and add regression test | ||||
|  | ||||
|   [BUG FIXES] | ||||
|  | ||||
|   * #294 snmp::info should show full class used | ||||
|   * #297 perl 5.28 removal of "use vars" | ||||
|   * #306 fix incorrect interfaces for d-link | ||||
|   * #319 make fortinet return a useful interface name (inphobia) | ||||
|   * #320 improve duplicate interfaces() fixup | ||||
|   * #321 clean interface descriptions of null and trailing space | ||||
|   * #322 #327 full fix for aerohive tests | ||||
|   * #325 lazy load legacy RFC1213-MIB only if needed | ||||
|   * #496 fix for aerohive wireless clients support (inphobia) | ||||
|  | ||||
| Version 3.66 (2019-03-24) | ||||
|  | ||||
|   [NEW FEATURES] | ||||
|   | ||||
							
								
								
									
										10
									
								
								MANIFEST
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								MANIFEST
									
									
									
									
									
								
							| @@ -26,6 +26,8 @@ lib/SNMP/Info/CiscoStack.pm | ||||
| lib/SNMP/Info/CiscoStats.pm | ||||
| lib/SNMP/Info/CiscoStpExtensions.pm | ||||
| lib/SNMP/Info/CiscoVTP.pm | ||||
| lib/SNMP/Info/DocsisCM.pm | ||||
| lib/SNMP/Info/DocsisHE.pm | ||||
| lib/SNMP/Info/EDP.pm | ||||
| lib/SNMP/Info/Entity.pm | ||||
| lib/SNMP/Info/EtherLike.pm | ||||
| @@ -82,6 +84,7 @@ lib/SNMP/Info/Layer3/C3550.pm | ||||
| lib/SNMP/Info/Layer3/C4000.pm | ||||
| lib/SNMP/Info/Layer3/C6500.pm | ||||
| lib/SNMP/Info/Layer3/CheckPoint.pm | ||||
| lib/SNMP/Info/Layer3/Ciena.pm | ||||
| lib/SNMP/Info/Layer3/Cisco.pm | ||||
| lib/SNMP/Info/Layer3/CiscoASA.pm | ||||
| lib/SNMP/Info/Layer3/CiscoFWSM.pm | ||||
| @@ -104,6 +107,7 @@ lib/SNMP/Info/Layer3/Huawei.pm | ||||
| lib/SNMP/Info/Layer3/IBMGbTor.pm | ||||
| lib/SNMP/Info/Layer3/Juniper.pm | ||||
| lib/SNMP/Info/Layer3/Lantronix.pm | ||||
| lib/SNMP/Info/Layer3/Lenovo.pm | ||||
| lib/SNMP/Info/Layer3/Microsoft.pm | ||||
| lib/SNMP/Info/Layer3/Mikrotik.pm | ||||
| lib/SNMP/Info/Layer3/N1600.pm | ||||
| @@ -116,6 +120,8 @@ lib/SNMP/Info/Layer3/PaloAlto.pm | ||||
| lib/SNMP/Info/Layer3/Passport.pm | ||||
| lib/SNMP/Info/Layer3/Pf.pm | ||||
| lib/SNMP/Info/Layer3/Pica8.pm | ||||
| lib/SNMP/Info/Layer3/Redlion.pm | ||||
| lib/SNMP/Info/Layer3/Scalance.pm | ||||
| lib/SNMP/Info/Layer3/SonicWALL.pm | ||||
| lib/SNMP/Info/Layer3/Steelhead.pm | ||||
| lib/SNMP/Info/Layer3/Sun.pm | ||||
| @@ -199,6 +205,7 @@ xt/lib/Test/SNMP/Info/Layer2/Catalyst.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/Centillion.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/Cisco.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/CiscoSB.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/Exinda.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/HP.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/HP4000.pm | ||||
| xt/lib/Test/SNMP/Info/Layer2/HPVC.pm | ||||
| @@ -248,6 +255,7 @@ xt/lib/Test/SNMP/Info/Layer3/Huawei.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/IBMGbTor.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Juniper.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Lantronix.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Lenovo.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Microsoft.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Mikrotik.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/N1600.pm | ||||
| @@ -260,6 +268,8 @@ xt/lib/Test/SNMP/Info/Layer3/PaloAlto.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Passport.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Pf.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Pica8.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Redlion.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Scalance.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/SonicWALL.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Steelhead.pm | ||||
| xt/lib/Test/SNMP/Info/Layer3/Sun.pm | ||||
|   | ||||
| @@ -68,3 +68,6 @@ README.md | ||||
|  | ||||
| # Avoid Komodo project file | ||||
| \.komodoproject$ | ||||
|  | ||||
| # ignore intellij | ||||
| \B\.idea | ||||
|   | ||||
							
								
								
									
										287
									
								
								META.json
									
									
									
									
									
								
							
							
						
						
									
										287
									
								
								META.json
									
									
									
									
									
								
							| @@ -38,6 +38,7 @@ | ||||
|             "Class::Inspector" : "0", | ||||
|             "File::Find" : "0", | ||||
|             "File::Slurper" : "0", | ||||
|             "Hook::LexWrap" : "0", | ||||
|             "Module::Find" : "0", | ||||
|             "NetSNMP::default_store" : "0", | ||||
|             "Path::Class" : "0", | ||||
| @@ -52,519 +53,543 @@ | ||||
|    "provides" : { | ||||
|       "SNMP::Info" : { | ||||
|          "file" : "lib/SNMP/Info.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::AMAP" : { | ||||
|          "file" : "lib/SNMP/Info/AMAP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::AdslLine" : { | ||||
|          "file" : "lib/SNMP/Info/AdslLine.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Aggregate" : { | ||||
|          "file" : "lib/SNMP/Info/Aggregate.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Airespace" : { | ||||
|          "file" : "lib/SNMP/Info/Airespace.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Bridge" : { | ||||
|          "file" : "lib/SNMP/Info/Bridge.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CDP" : { | ||||
|          "file" : "lib/SNMP/Info/CDP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoAgg" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoAgg.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoConfig" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoConfig.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoPortSecurity" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoPortSecurity.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoPower" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoPower.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoQOS" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoQOS.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoRTT" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoRTT.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoStack" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoStack.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoStats" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoStats.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoStpExtensions" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoStpExtensions.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::CiscoVTP" : { | ||||
|          "file" : "lib/SNMP/Info/CiscoVTP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::DocsisCM" : { | ||||
|          "file" : "lib/SNMP/Info/DocsisCM.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::DocsisHE" : { | ||||
|          "file" : "lib/SNMP/Info/DocsisHE.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::EDP" : { | ||||
|          "file" : "lib/SNMP/Info/EDP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Entity" : { | ||||
|          "file" : "lib/SNMP/Info/Entity.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::EtherLike" : { | ||||
|          "file" : "lib/SNMP/Info/EtherLike.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::FDP" : { | ||||
|          "file" : "lib/SNMP/Info/FDP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::IEEE802dot11" : { | ||||
|          "file" : "lib/SNMP/Info/IEEE802dot11.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::IEEE802dot3ad" : { | ||||
|          "file" : "lib/SNMP/Info/IEEE802dot3ad.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::IPv6" : { | ||||
|          "file" : "lib/SNMP/Info/IPv6.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::LLDP" : { | ||||
|          "file" : "lib/SNMP/Info/LLDP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1::Allied" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1/Allied.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1::Asante" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1/Asante.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1::Bayhub" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1/Bayhub.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1::Cyclades" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1/Cyclades.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer1::S3000" : { | ||||
|          "file" : "lib/SNMP/Info/Layer1/S3000.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::3Com" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/3Com.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Adtran" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Adtran.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Aerohive" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Aerohive.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Airespace" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Airespace.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Aironet" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Aironet.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Allied" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Allied.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Atmedia" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Atmedia.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Baystack" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Baystack.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::C1900" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/C1900.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::C2900" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/C2900.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Catalyst" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Catalyst.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Centillion" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Centillion.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Cisco" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Cisco.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::CiscoSB" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/CiscoSB.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Exinda" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Exinda.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::HP" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/HP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::HP4000" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/HP4000.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::HPVC" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/HPVC.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Kentrox" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Kentrox.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::N2270" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/N2270.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::NAP222x" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/NAP222x.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::NWSS2300" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/NWSS2300.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Netgear" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Netgear.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Nexans" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Nexans.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Orinoco" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Orinoco.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Sixnet" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Sixnet.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Trapeze" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Trapeze.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::Ubiquiti" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer2::ZyXEL_DSLAM" : { | ||||
|          "file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Aironet" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Aironet.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::AlcatelLucent" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::AlteonAD" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/AlteonAD.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Altiga" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Altiga.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Arista" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Arista.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Aruba" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Aruba.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::BayRS" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/BayRS.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::BlueCoatSG" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::C3550" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/C3550.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::C4000" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/C4000.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::C6500" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/C6500.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::CheckPoint" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/CheckPoint.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Ciena" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Ciena.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Cisco" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Cisco.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::CiscoASA" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/CiscoASA.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::CiscoFWSM" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::CiscoSwitch" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Contivity" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Contivity.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Cumulus" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Cumulus.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::DLink" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/DLink.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Dell" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Dell.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::ERX" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/ERX.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Enterasys" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Enterasys.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Extreme" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Extreme.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::F5" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/F5.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Force10" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Force10.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Fortinet" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Fortinet.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Foundry" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Foundry.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Genua" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Genua.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::H3C" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/H3C.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::HP9300" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/HP9300.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Huawei" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Huawei.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::IBMGbTor" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Juniper" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Juniper.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Lantronix" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Lantronix.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Lenovo" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Lenovo.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Microsoft" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Microsoft.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Mikrotik" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Mikrotik.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::N1600" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/N1600.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::NetSNMP" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/NetSNMP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Netscreen" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Netscreen.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Nexus" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Nexus.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::OneAccess" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/OneAccess.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::PacketFront" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/PacketFront.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::PaloAlto" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/PaloAlto.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Passport" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Passport.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Pf" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Pf.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Pica8" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Pica8.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Redlion" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Redlion.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Scalance" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Scalance.pm", | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::SonicWALL" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/SonicWALL.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Steelhead" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Steelhead.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Sun" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Sun.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Tasman" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Tasman.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::Timetra" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/Timetra.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::VMware" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/VMware.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer3::VyOS" : { | ||||
|          "file" : "lib/SNMP/Info/Layer3/VyOS.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::APC" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/APC.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::Arbor" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/Arbor.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::CiscoIPS" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::Gigamon" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/Gigamon.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::Liebert" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/Liebert.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::Neoteris" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/Neoteris.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::Layer7::Netscaler" : { | ||||
|          "file" : "lib/SNMP/Info/Layer7/Netscaler.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::MAU" : { | ||||
|          "file" : "lib/SNMP/Info/MAU.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::MRO" : { | ||||
|          "file" : "lib/SNMP/Info/MRO.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::NortelStack" : { | ||||
|          "file" : "lib/SNMP/Info/NortelStack.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::PowerEthernet" : { | ||||
|          "file" : "lib/SNMP/Info/PowerEthernet.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::RapidCity" : { | ||||
|          "file" : "lib/SNMP/Info/RapidCity.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       }, | ||||
|       "SNMP::Info::SONMP" : { | ||||
|          "file" : "lib/SNMP/Info/SONMP.pm", | ||||
|          "version" : "3.66" | ||||
|          "version" : "3.69" | ||||
|       } | ||||
|    }, | ||||
|    "release_status" : "stable", | ||||
| @@ -574,7 +599,7 @@ | ||||
|       }, | ||||
|       "homepage" : "http://netdisco.org/", | ||||
|       "license" : [ | ||||
|          "http://opensource.org/licenses/BSD-3-Clause" | ||||
|          "http://opensource.org/licenses/bsd-license.php" | ||||
|       ], | ||||
|       "repository" : { | ||||
|          "url" : "https://github.com/netdisco/snmp-info" | ||||
| @@ -582,6 +607,6 @@ | ||||
|       "x_IRC" : "irc://irc.freenode.org/#netdisco", | ||||
|       "x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users" | ||||
|    }, | ||||
|    "version" : "3.66", | ||||
|    "version" : "3.69", | ||||
|    "x_serialization_backend" : "JSON::PP version 2.97001" | ||||
| } | ||||
|   | ||||
							
								
								
									
										281
									
								
								META.yml
									
									
									
									
									
								
							
							
						
						
									
										281
									
								
								META.yml
									
									
									
									
									
								
							| @@ -6,6 +6,7 @@ build_requires: | ||||
|   Class::Inspector: '0' | ||||
|   File::Find: '0' | ||||
|   File::Slurper: '0' | ||||
|   Hook::LexWrap: '0' | ||||
|   Module::Find: '0' | ||||
|   NetSNMP::default_store: '0' | ||||
|   Path::Class: '0' | ||||
| @@ -26,391 +27,409 @@ name: SNMP-Info | ||||
| provides: | ||||
|   SNMP::Info: | ||||
|     file: lib/SNMP/Info.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::AMAP: | ||||
|     file: lib/SNMP/Info/AMAP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::AdslLine: | ||||
|     file: lib/SNMP/Info/AdslLine.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Aggregate: | ||||
|     file: lib/SNMP/Info/Aggregate.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Airespace: | ||||
|     file: lib/SNMP/Info/Airespace.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Bridge: | ||||
|     file: lib/SNMP/Info/Bridge.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CDP: | ||||
|     file: lib/SNMP/Info/CDP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoAgg: | ||||
|     file: lib/SNMP/Info/CiscoAgg.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoConfig: | ||||
|     file: lib/SNMP/Info/CiscoConfig.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoPortSecurity: | ||||
|     file: lib/SNMP/Info/CiscoPortSecurity.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoPower: | ||||
|     file: lib/SNMP/Info/CiscoPower.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoQOS: | ||||
|     file: lib/SNMP/Info/CiscoQOS.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoRTT: | ||||
|     file: lib/SNMP/Info/CiscoRTT.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoStack: | ||||
|     file: lib/SNMP/Info/CiscoStack.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoStats: | ||||
|     file: lib/SNMP/Info/CiscoStats.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoStpExtensions: | ||||
|     file: lib/SNMP/Info/CiscoStpExtensions.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::CiscoVTP: | ||||
|     file: lib/SNMP/Info/CiscoVTP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::DocsisCM: | ||||
|     file: lib/SNMP/Info/DocsisCM.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::DocsisHE: | ||||
|     file: lib/SNMP/Info/DocsisHE.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::EDP: | ||||
|     file: lib/SNMP/Info/EDP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Entity: | ||||
|     file: lib/SNMP/Info/Entity.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::EtherLike: | ||||
|     file: lib/SNMP/Info/EtherLike.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::FDP: | ||||
|     file: lib/SNMP/Info/FDP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::IEEE802dot11: | ||||
|     file: lib/SNMP/Info/IEEE802dot11.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::IEEE802dot3ad: | ||||
|     file: lib/SNMP/Info/IEEE802dot3ad.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::IPv6: | ||||
|     file: lib/SNMP/Info/IPv6.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::LLDP: | ||||
|     file: lib/SNMP/Info/LLDP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1: | ||||
|     file: lib/SNMP/Info/Layer1.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1::Allied: | ||||
|     file: lib/SNMP/Info/Layer1/Allied.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1::Asante: | ||||
|     file: lib/SNMP/Info/Layer1/Asante.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1::Bayhub: | ||||
|     file: lib/SNMP/Info/Layer1/Bayhub.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1::Cyclades: | ||||
|     file: lib/SNMP/Info/Layer1/Cyclades.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer1::S3000: | ||||
|     file: lib/SNMP/Info/Layer1/S3000.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2: | ||||
|     file: lib/SNMP/Info/Layer2.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::3Com: | ||||
|     file: lib/SNMP/Info/Layer2/3Com.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Adtran: | ||||
|     file: lib/SNMP/Info/Layer2/Adtran.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Aerohive: | ||||
|     file: lib/SNMP/Info/Layer2/Aerohive.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Airespace: | ||||
|     file: lib/SNMP/Info/Layer2/Airespace.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Aironet: | ||||
|     file: lib/SNMP/Info/Layer2/Aironet.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Allied: | ||||
|     file: lib/SNMP/Info/Layer2/Allied.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Atmedia: | ||||
|     file: lib/SNMP/Info/Layer2/Atmedia.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Baystack: | ||||
|     file: lib/SNMP/Info/Layer2/Baystack.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::C1900: | ||||
|     file: lib/SNMP/Info/Layer2/C1900.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::C2900: | ||||
|     file: lib/SNMP/Info/Layer2/C2900.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Catalyst: | ||||
|     file: lib/SNMP/Info/Layer2/Catalyst.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Centillion: | ||||
|     file: lib/SNMP/Info/Layer2/Centillion.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Cisco: | ||||
|     file: lib/SNMP/Info/Layer2/Cisco.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::CiscoSB: | ||||
|     file: lib/SNMP/Info/Layer2/CiscoSB.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Exinda: | ||||
|     file: lib/SNMP/Info/Layer2/Exinda.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::HP: | ||||
|     file: lib/SNMP/Info/Layer2/HP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::HP4000: | ||||
|     file: lib/SNMP/Info/Layer2/HP4000.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::HPVC: | ||||
|     file: lib/SNMP/Info/Layer2/HPVC.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Kentrox: | ||||
|     file: lib/SNMP/Info/Layer2/Kentrox.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::N2270: | ||||
|     file: lib/SNMP/Info/Layer2/N2270.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::NAP222x: | ||||
|     file: lib/SNMP/Info/Layer2/NAP222x.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::NWSS2300: | ||||
|     file: lib/SNMP/Info/Layer2/NWSS2300.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Netgear: | ||||
|     file: lib/SNMP/Info/Layer2/Netgear.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Nexans: | ||||
|     file: lib/SNMP/Info/Layer2/Nexans.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Orinoco: | ||||
|     file: lib/SNMP/Info/Layer2/Orinoco.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Sixnet: | ||||
|     file: lib/SNMP/Info/Layer2/Sixnet.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Trapeze: | ||||
|     file: lib/SNMP/Info/Layer2/Trapeze.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::Ubiquiti: | ||||
|     file: lib/SNMP/Info/Layer2/Ubiquiti.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer2::ZyXEL_DSLAM: | ||||
|     file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3: | ||||
|     file: lib/SNMP/Info/Layer3.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Aironet: | ||||
|     file: lib/SNMP/Info/Layer3/Aironet.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::AlcatelLucent: | ||||
|     file: lib/SNMP/Info/Layer3/AlcatelLucent.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::AlteonAD: | ||||
|     file: lib/SNMP/Info/Layer3/AlteonAD.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Altiga: | ||||
|     file: lib/SNMP/Info/Layer3/Altiga.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Arista: | ||||
|     file: lib/SNMP/Info/Layer3/Arista.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Aruba: | ||||
|     file: lib/SNMP/Info/Layer3/Aruba.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::BayRS: | ||||
|     file: lib/SNMP/Info/Layer3/BayRS.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::BlueCoatSG: | ||||
|     file: lib/SNMP/Info/Layer3/BlueCoatSG.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::C3550: | ||||
|     file: lib/SNMP/Info/Layer3/C3550.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::C4000: | ||||
|     file: lib/SNMP/Info/Layer3/C4000.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::C6500: | ||||
|     file: lib/SNMP/Info/Layer3/C6500.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::CheckPoint: | ||||
|     file: lib/SNMP/Info/Layer3/CheckPoint.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Ciena: | ||||
|     file: lib/SNMP/Info/Layer3/Ciena.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Cisco: | ||||
|     file: lib/SNMP/Info/Layer3/Cisco.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::CiscoASA: | ||||
|     file: lib/SNMP/Info/Layer3/CiscoASA.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::CiscoFWSM: | ||||
|     file: lib/SNMP/Info/Layer3/CiscoFWSM.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::CiscoSwitch: | ||||
|     file: lib/SNMP/Info/Layer3/CiscoSwitch.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Contivity: | ||||
|     file: lib/SNMP/Info/Layer3/Contivity.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Cumulus: | ||||
|     file: lib/SNMP/Info/Layer3/Cumulus.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::DLink: | ||||
|     file: lib/SNMP/Info/Layer3/DLink.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Dell: | ||||
|     file: lib/SNMP/Info/Layer3/Dell.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::ERX: | ||||
|     file: lib/SNMP/Info/Layer3/ERX.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Enterasys: | ||||
|     file: lib/SNMP/Info/Layer3/Enterasys.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Extreme: | ||||
|     file: lib/SNMP/Info/Layer3/Extreme.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::F5: | ||||
|     file: lib/SNMP/Info/Layer3/F5.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Force10: | ||||
|     file: lib/SNMP/Info/Layer3/Force10.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Fortinet: | ||||
|     file: lib/SNMP/Info/Layer3/Fortinet.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Foundry: | ||||
|     file: lib/SNMP/Info/Layer3/Foundry.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Genua: | ||||
|     file: lib/SNMP/Info/Layer3/Genua.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::H3C: | ||||
|     file: lib/SNMP/Info/Layer3/H3C.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::HP9300: | ||||
|     file: lib/SNMP/Info/Layer3/HP9300.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Huawei: | ||||
|     file: lib/SNMP/Info/Layer3/Huawei.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::IBMGbTor: | ||||
|     file: lib/SNMP/Info/Layer3/IBMGbTor.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Juniper: | ||||
|     file: lib/SNMP/Info/Layer3/Juniper.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Lantronix: | ||||
|     file: lib/SNMP/Info/Layer3/Lantronix.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Lenovo: | ||||
|     file: lib/SNMP/Info/Layer3/Lenovo.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Microsoft: | ||||
|     file: lib/SNMP/Info/Layer3/Microsoft.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Mikrotik: | ||||
|     file: lib/SNMP/Info/Layer3/Mikrotik.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::N1600: | ||||
|     file: lib/SNMP/Info/Layer3/N1600.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::NetSNMP: | ||||
|     file: lib/SNMP/Info/Layer3/NetSNMP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Netscreen: | ||||
|     file: lib/SNMP/Info/Layer3/Netscreen.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Nexus: | ||||
|     file: lib/SNMP/Info/Layer3/Nexus.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::OneAccess: | ||||
|     file: lib/SNMP/Info/Layer3/OneAccess.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::PacketFront: | ||||
|     file: lib/SNMP/Info/Layer3/PacketFront.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::PaloAlto: | ||||
|     file: lib/SNMP/Info/Layer3/PaloAlto.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Passport: | ||||
|     file: lib/SNMP/Info/Layer3/Passport.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Pf: | ||||
|     file: lib/SNMP/Info/Layer3/Pf.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Pica8: | ||||
|     file: lib/SNMP/Info/Layer3/Pica8.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Redlion: | ||||
|     file: lib/SNMP/Info/Layer3/Redlion.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Scalance: | ||||
|     file: lib/SNMP/Info/Layer3/Scalance.pm | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::SonicWALL: | ||||
|     file: lib/SNMP/Info/Layer3/SonicWALL.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Steelhead: | ||||
|     file: lib/SNMP/Info/Layer3/Steelhead.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Sun: | ||||
|     file: lib/SNMP/Info/Layer3/Sun.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Tasman: | ||||
|     file: lib/SNMP/Info/Layer3/Tasman.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::Timetra: | ||||
|     file: lib/SNMP/Info/Layer3/Timetra.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::VMware: | ||||
|     file: lib/SNMP/Info/Layer3/VMware.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer3::VyOS: | ||||
|     file: lib/SNMP/Info/Layer3/VyOS.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7: | ||||
|     file: lib/SNMP/Info/Layer7.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::APC: | ||||
|     file: lib/SNMP/Info/Layer7/APC.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::Arbor: | ||||
|     file: lib/SNMP/Info/Layer7/Arbor.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::CiscoIPS: | ||||
|     file: lib/SNMP/Info/Layer7/CiscoIPS.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::Gigamon: | ||||
|     file: lib/SNMP/Info/Layer7/Gigamon.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::Liebert: | ||||
|     file: lib/SNMP/Info/Layer7/Liebert.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::Neoteris: | ||||
|     file: lib/SNMP/Info/Layer7/Neoteris.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::Layer7::Netscaler: | ||||
|     file: lib/SNMP/Info/Layer7/Netscaler.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::MAU: | ||||
|     file: lib/SNMP/Info/MAU.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::MRO: | ||||
|     file: lib/SNMP/Info/MRO.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::NortelStack: | ||||
|     file: lib/SNMP/Info/NortelStack.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::PowerEthernet: | ||||
|     file: lib/SNMP/Info/PowerEthernet.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::RapidCity: | ||||
|     file: lib/SNMP/Info/RapidCity.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
|   SNMP::Info::SONMP: | ||||
|     file: lib/SNMP/Info/SONMP.pm | ||||
|     version: '3.66' | ||||
|     version: '3.69' | ||||
| recommends: | ||||
|   Class::ISA: '0' | ||||
|   File::Slurp: '0' | ||||
| @@ -426,7 +445,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-3-Clause | ||||
|   license: http://opensource.org/licenses/bsd-license.php | ||||
|   repository: https://github.com/netdisco/snmp-info | ||||
| version: '3.66' | ||||
| version: '3.69' | ||||
| x_serialization_backend: 'CPAN::Meta::YAML version 0.018' | ||||
|   | ||||
							
								
								
									
										85
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										85
									
								
								README
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ NAME | ||||
|     SNMP::Info - OO Interface to Network devices and MIBs through SNMP | ||||
|  | ||||
| VERSION | ||||
|     SNMP::Info - Version 3.66 | ||||
|     SNMP::Info - Version 3.69 | ||||
|  | ||||
| AUTHOR | ||||
|     SNMP::Info is maintained by team of Open Source authors headed by Eric | ||||
| @@ -275,6 +275,16 @@ SUBCLASSES | ||||
|  | ||||
|         See documentation in SNMP::Info::CiscoVTP for details. | ||||
|  | ||||
|     SNMP::Info::DocsisHE | ||||
|         SNMP Interface for DOCSIS CMTS | ||||
|  | ||||
|         See documentation in SNMP::Info::DocsisHE for details. | ||||
|  | ||||
|     SNMP::Info::DocsisCM | ||||
|         SNMP Interface for DOCSIS Cable Modems | ||||
|  | ||||
|         See documentation in SNMP::Info::DocsisCM for details. | ||||
|  | ||||
|     SNMP::Info::EDP | ||||
|         Extreme Discovery Protocol. EXTREME-EDP-MIB | ||||
|  | ||||
| @@ -296,13 +306,6 @@ SUBCLASSES | ||||
|  | ||||
|         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::Info::IEEE802dot11 | ||||
|         IEEE802dot11-MIB. A collection of OIDs providing information about | ||||
|         standards based 802.11 wireless devices. | ||||
| @@ -314,6 +317,13 @@ SUBCLASSES | ||||
|  | ||||
|         See documentation in SNMP::Info::IEEE802dot3ad 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::Info::LLDP | ||||
|         LLDP-MIB, LLDP-EXT-DOT1-MIB, and LLDP-EXT-DOT3-MIB. Link Layer | ||||
|         Discovery Protocol (LLDP) Support. | ||||
| @@ -475,7 +485,7 @@ SUBCLASSES | ||||
|  | ||||
|         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 | ||||
|             supported in more specific subclasses and the base layer 2 Cisco | ||||
|             class for other device specific layer 2 Cisco classes. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer2::Cisco for details. | ||||
| @@ -534,7 +544,7 @@ SUBCLASSES | ||||
|         SNMP::Info::Layer2::Nexans | ||||
|             Subclass for Nexans switches | ||||
|  | ||||
|             See documetion in SNMP::Info::Layer2::Nexans for details. | ||||
|             See documentation in SNMP::Info::Layer2::Nexans for details. | ||||
|  | ||||
|         SNMP::Info::Layer2::NWSS2300 | ||||
|             SNMP Interface to Avaya (Trapeze) Wireless Controllers | ||||
| @@ -576,9 +586,6 @@ SUBCLASSES | ||||
|             Subclass for Cisco Aironet wireless access points (AP) not | ||||
|             running IOS. These are usually older devices. | ||||
|  | ||||
|             MIBs for these devices now included in v2.tar.gz available from | ||||
|             ftp.cisco.com. | ||||
|  | ||||
|             Note SNMP::Info::Layer2::Aironet | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Aironet for details. | ||||
| @@ -629,8 +636,9 @@ SUBCLASSES | ||||
|             See documentation in SNMP::Info::Layer3::C4000 for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::C6500 | ||||
|             This class covers Catalyst 6500s in native mode, hybrid mode. | ||||
|             Catalyst 3750's, 2970's and probably others. | ||||
|             This class covers Catalyst 6500 series running CatOS or IOS, as | ||||
|             well as Catalyst 2960, 2970, 3750 and 3850 series, including | ||||
|             blade switches CBS30x0 and CBS31x0 series, all running IOS. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::C6500 for details. | ||||
|  | ||||
| @@ -639,6 +647,11 @@ SUBCLASSES | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::CheckPoint for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::Ciena | ||||
|             Subclass for Ciena devices. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Ciena for details. | ||||
|  | ||||
|         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 | ||||
| @@ -756,6 +769,11 @@ SUBCLASSES | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Lantronix for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::Lenovo | ||||
|             Subclass for Lenovo switches running CNOS. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Lenovo for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::Microsoft | ||||
|             Subclass for Generic Microsoft Routers running Microsoft Windows | ||||
|             OS. | ||||
| @@ -819,6 +837,16 @@ SUBCLASSES | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Pica8 for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::Redlion | ||||
|             Subclass for redlion routers. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Redlion for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::Scalance | ||||
|             Subclass for Siemens Scalance devices. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer3::Scalance for details. | ||||
|  | ||||
|         SNMP::Info::Layer3::SonicWALL | ||||
|             Subclass for generic SonicWALL devices. | ||||
|  | ||||
| @@ -885,7 +913,7 @@ SUBCLASSES | ||||
|             See documentation in SNMP::Info::Layer7::Liebert for details. | ||||
|  | ||||
|         SNMP::Info::Layer7::Neoteris | ||||
|             Subclass for Juniper SSL VPN appliances. | ||||
|             Subclass for Pulse Secure / Juniper SSL VPN appliances. | ||||
|  | ||||
|             See documentation in SNMP::Info::Layer7::Neoteris for details. | ||||
|  | ||||
| @@ -1036,7 +1064,7 @@ USAGE | ||||
|         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 | ||||
|         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. | ||||
| @@ -1136,7 +1164,7 @@ USAGE | ||||
|  | ||||
|          my $info = new SNMP::Info(...); | ||||
|          # Returns more specific object type | ||||
|          $info = $info->specific(); | ||||
|          my $specific = $info->specify(); | ||||
|  | ||||
|         Usually this method is called internally from new(AutoSpecify => 1) | ||||
|  | ||||
| @@ -1150,7 +1178,7 @@ USAGE | ||||
|         <ftp://ftp.cisco.com/pub/mibs/supportlists/wsc5000/wsc5000-community | ||||
|         Indexing.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 | ||||
| @@ -1791,6 +1819,7 @@ EXTENDING SNMP::INFO | ||||
|      $VERSION = 0.1; | ||||
|  | ||||
|      use strict; | ||||
|      use warnings; | ||||
|  | ||||
|      use Exporter; | ||||
|      use SNMP::Info::Layer2; | ||||
| @@ -1800,18 +1829,18 @@ EXTENDING SNMP::INFO | ||||
|                                            SNMP::Info::CiscoVTP Exporter/; | ||||
|      @SNMP::Info::Layer2::Sample::EXPORT_OK = qw//; | ||||
|  | ||||
|      use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; | ||||
|      our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG); | ||||
|  | ||||
|      %MIBS    = (%SNMP::Info::Layer2::MIBS, | ||||
|                  %SNMP::Info::CiscoVTP::MIBS, | ||||
|                  'SUPER-DOOPER-MIB'  => 'supermibobject' | ||||
|                  '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' | ||||
|                  'favorite_movie'    => 'supermib_fav_movie_val', | ||||
|                  ); | ||||
|  | ||||
|      %FUNCS   = (%SNMP::Info::Layer2::FUNCS, | ||||
| @@ -1819,16 +1848,16 @@ EXTENDING SNMP::INFO | ||||
|                  # Super Dooper MIB - Super Hero Table | ||||
|                  'super_hero_index'  => 'SuperHeroIfIndex', | ||||
|                  'super_hero_name'   => 'SuperHeroIfName', | ||||
|                  'super_hero_powers' => 'SuperHeroIfPowers' | ||||
|                  'super_hero_powers' => 'SuperHeroIfPowers', | ||||
|                 ); | ||||
|  | ||||
|  | ||||
|      %MUNGE   = (%SNMP::Info::Layer2::MUNGE, | ||||
|                  %SNMP::Info::CiscoVTP::MUNGE, | ||||
|                  'super_hero_powers' => \&munge_powers | ||||
|                  'super_hero_powers' => \&munge_powers, | ||||
|                 ); | ||||
|  | ||||
|      # OverRide uptime() method from %SNMP::Info::GLOBALS | ||||
|      # Override uptime() method from %SNMP::Info::GLOBALS | ||||
|      sub uptime { | ||||
|          my $sample = shift; | ||||
|  | ||||
| @@ -1895,7 +1924,7 @@ SNMP::INFO INTERNALS | ||||
|  | ||||
|     $REPEATERS | ||||
|         Default 20. MaxRepeaters for BULKWALK operations. See "perldoc SNMP" | ||||
|         for more info. Can change by passing BulkRepeaters option in new() | ||||
|         for more info. Can change by passing "BulkRepeaters" option in new() | ||||
|  | ||||
|   Data Munging Callback Subroutines | ||||
|     munge_speed() | ||||
| @@ -1984,7 +2013,7 @@ SNMP::INFO INTERNALS | ||||
|         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 figured out. Hierarchy/precedence of MIBS in SNMP::Info. | ||||
|  | ||||
|     munge_port_list() | ||||
|         Takes an octet string representing a set of ports and returns a | ||||
| @@ -2004,7 +2033,7 @@ SNMP::INFO INTERNALS | ||||
|     resolve_desthost() | ||||
|         Takes the SNMP::Session "DestHost" argument and determines if it is | ||||
|         an 'IPv4' or 'IPv6' host. 'IPv6' hosts are prefixed with the "udp6:" | ||||
|         "transport-specifier" as required by the undelying "Net-SNMP" | ||||
|         "transport-specifier" as required by the underlying "Net-SNMP" | ||||
|         library. If unable to determine the type of address or resolve a DNS | ||||
|         name, dies with "croak". | ||||
|  | ||||
|   | ||||
							
								
								
									
										172
									
								
								lib/SNMP/Info.pm
									
									
									
									
									
								
							
							
						
						
									
										172
									
								
								lib/SNMP/Info.pm
									
									
									
									
									
								
							| @@ -21,11 +21,11 @@ use NetAddr::IP::Lite ':lower'; | ||||
| @SNMP::Info::ISA       = qw/Exporter/; | ||||
| @SNMP::Info::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars | ||||
|     qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP | ||||
|     $NOSUCH $BIGINT $REPEATERS/; | ||||
| our | ||||
|     ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP, | ||||
|      $NOSUCH, $BIGINT, $REPEATERS); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| =head1 NAME | ||||
|  | ||||
| @@ -33,7 +33,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP | ||||
|  | ||||
| =head1 VERSION | ||||
|  | ||||
| SNMP::Info - Version 3.66 | ||||
| SNMP::Info - Version 3.69 | ||||
|  | ||||
| =head1 AUTHOR | ||||
|  | ||||
| @@ -338,6 +338,18 @@ F<CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB> | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoVTP> for details. | ||||
|  | ||||
| =item SNMP::Info::DocsisHE | ||||
|  | ||||
| SNMP Interface for DOCSIS CMTS | ||||
|  | ||||
| See documentation in L<SNMP::Info::DocsisHE> for details. | ||||
|  | ||||
| =item SNMP::Info::DocsisCM | ||||
|  | ||||
| SNMP Interface for DOCSIS Cable Modems | ||||
|  | ||||
| See documentation in L<SNMP::Info::DocsisCM> for details. | ||||
|  | ||||
| =item SNMP::Info::EDP | ||||
|  | ||||
| Extreme Discovery Protocol.  F<EXTREME-EDP-MIB> | ||||
| @@ -363,14 +375,6 @@ Foundry (Brocade) Discovery Protocol.  F<FOUNDRY-SN-SWITCH-GROUP-MIB> | ||||
|  | ||||
| See documentation in L<SNMP::Info::FDP> for details. | ||||
|  | ||||
| =item SNMP::Info::IPv6 | ||||
|  | ||||
| SNMP Interface for obtaining configured IPv6 addresses and mapping IPv6 | ||||
| addresses to MAC addresses and interfaces, using information from F<IP-MIB>, | ||||
| F<IPV6-MIB> and/or F<CISCO-IETF-IP-MIB>. | ||||
|  | ||||
| See documentation in L<SNMP::Info::IPv6> for details. | ||||
|  | ||||
| =item SNMP::Info::IEEE802dot11 | ||||
|  | ||||
| F<IEEE802dot11-MIB>.  A collection of OIDs providing information about | ||||
| @@ -384,6 +388,14 @@ SNMP Interface to IEEE Aggregated Links.  F<IEEE8023-LAG-MIB> | ||||
|  | ||||
| See documentation in L<SNMP::Info::IEEE802dot3ad> for details. | ||||
|  | ||||
| =item SNMP::Info::IPv6 | ||||
|  | ||||
| SNMP Interface for obtaining configured IPv6 addresses and mapping IPv6 | ||||
| addresses to MAC addresses and interfaces, using information from F<IP-MIB>, | ||||
| F<IPV6-MIB> and/or F<CISCO-IETF-IP-MIB>. | ||||
|  | ||||
| See documentation in L<SNMP::Info::IPv6> for details. | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| F<LLDP-MIB>, F<LLDP-EXT-DOT1-MIB>, and F<LLDP-EXT-DOT3-MIB>.  Link Layer | ||||
| @@ -577,7 +589,7 @@ See documentation in L<SNMP::Info::Layer2::Centillion> for details. | ||||
| =item 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 | ||||
| in more specific subclasses and the base layer 2 Cisco class for | ||||
| other device specific layer 2 Cisco classes. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2::Cisco> for details. | ||||
| @@ -645,7 +657,7 @@ See documentation in L<SNMP::Info::Layer2::Netgear> for details. | ||||
|  | ||||
| Subclass for Nexans switches | ||||
|  | ||||
| See documetion in L<SNMP::Info::Layer2::Nexans> for details. | ||||
| See documentation in L<SNMP::Info::Layer2::Nexans> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer2::NWSS2300 | ||||
|  | ||||
| @@ -698,8 +710,6 @@ See documentation in L<SNMP::Info::Layer3> for details. | ||||
| Subclass for Cisco Aironet wireless access points (AP) not running IOS. These | ||||
| are usually older devices. | ||||
|  | ||||
| MIBs for these devices now included in v2.tar.gz available from ftp.cisco.com. | ||||
|  | ||||
| Note L<SNMP::Info::Layer2::Aironet> | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Aironet> for details. | ||||
| @@ -758,8 +768,9 @@ See documentation in L<SNMP::Info::Layer3::C4000> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::C6500 | ||||
|  | ||||
| This class covers Catalyst 6500s in native mode, hybrid mode.  Catalyst | ||||
| 3750's, 2970's and probably others. | ||||
| This class covers Catalyst 6500 series running CatOS or IOS, as well as | ||||
| Catalyst 2960, 2970, 3750 and 3850 series, including blade switches | ||||
| CBS30x0 and CBS31x0 series, all running IOS. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::C6500> for details. | ||||
|  | ||||
| @@ -769,6 +780,12 @@ Subclass for CheckPoint devices. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::CheckPoint> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Ciena | ||||
|  | ||||
| Subclass for Ciena devices. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Ciena> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Cisco | ||||
|  | ||||
| This is a simple wrapper around layer 3 for IOS devices and the base layer 3 | ||||
| @@ -906,6 +923,12 @@ Subclass for Lantronix devices. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Lantronix> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Lenovo | ||||
|  | ||||
| Subclass for Lenovo switches running CNOS. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Lenovo> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Microsoft | ||||
|  | ||||
| Subclass for Generic Microsoft Routers running Microsoft Windows OS. | ||||
| @@ -979,6 +1002,18 @@ Subclass for Pica8 devices. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Pica8> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Redlion | ||||
|  | ||||
| Subclass for redlion routers. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Redlion> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Scalance | ||||
|  | ||||
| Subclass for Siemens Scalance devices. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Scalance> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::SonicWALL | ||||
|  | ||||
| Subclass for generic SonicWALL devices. | ||||
| @@ -987,7 +1022,7 @@ See documentation in L<SNMP::Info::Layer3::SonicWALL> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer3::Steelhead | ||||
|  | ||||
| Subclass for  Riverbed Steelhead WAN optimization appliances. | ||||
| Subclass for Riverbed Steelhead WAN optimization appliances. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::Steelhead> for details. | ||||
|  | ||||
| @@ -1067,7 +1102,7 @@ See documentation in L<SNMP::Info::Layer7::Liebert> for details. | ||||
|  | ||||
| =item SNMP::Info::Layer7::Neoteris | ||||
|  | ||||
| Subclass for Juniper SSL VPN appliances. | ||||
| Subclass for Pulse Secure / Juniper SSL VPN appliances. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer7::Neoteris> for details. | ||||
|  | ||||
| @@ -1243,7 +1278,7 @@ 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 | ||||
| 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. | ||||
| @@ -1376,7 +1411,15 @@ sub new { | ||||
|     $new_obj->{snmp_comm} = $sess->{Community} || $args{Community} || 'public'; | ||||
|     $new_obj->{snmp_user} = $sess->{SecName}   || $args{SecName}   || 'initial'; | ||||
|  | ||||
|     return $auto_specific ? $new_obj->specify() : $new_obj; | ||||
|     my $info = $auto_specific ? $new_obj->specify() : $new_obj; | ||||
|  | ||||
|     if (defined $info and ($info->debug() > 1)) { | ||||
|         require mro; | ||||
|         print STDERR (ref $info) ." has resolution order: \n"; | ||||
|         print STDERR "  $_\n" foreach @{ mro::get_linear_isa( ref $info ) }; | ||||
|     } | ||||
|  | ||||
|     return $info; | ||||
| } | ||||
|  | ||||
| =item update() | ||||
| @@ -1633,6 +1676,7 @@ sub device_type { | ||||
|         674  => 'SNMP::Info::Layer3::Dell', | ||||
|         1588 => 'SNMP::Info::Layer3::Foundry', | ||||
|         1872 => 'SNMP::Info::Layer3::AlteonAD', | ||||
|         1890 => 'SNMP::Info::Layer3::Redlion', | ||||
|         1916 => 'SNMP::Info::Layer3::Extreme', | ||||
|         1991 => 'SNMP::Info::Layer3::Foundry', | ||||
|         2011 => 'SNMP::Info::Layer3::Huawei', | ||||
| @@ -1646,10 +1690,12 @@ sub device_type { | ||||
|         3375 => 'SNMP::Info::Layer3::F5', | ||||
|         3417 => 'SNMP::Info::Layer3::BlueCoatSG', | ||||
|         3717 => 'SNMP::Info::Layer3::Genua', | ||||
|         4413 => 'SNMP::Info::Layer2::Ubiquiti', | ||||
|         4526 => 'SNMP::Info::Layer2::Netgear', | ||||
|         4874 => 'SNMP::Info::Layer3::ERX', | ||||
|         5624 => 'SNMP::Info::Layer3::Enterasys', | ||||
|         6027 => 'SNMP::Info::Layer3::Force10', | ||||
|         6141 => 'SNMP::Info::Layer3::Ciena', | ||||
|         6486 => 'SNMP::Info::Layer3::AlcatelLucent', | ||||
|         6527 => 'SNMP::Info::Layer3::Timetra', | ||||
|         6876 => 'SNMP::Info::Layer3::VMware', | ||||
| @@ -1665,18 +1711,18 @@ sub device_type { | ||||
|         14823 => 'SNMP::Info::Layer3::Aruba', | ||||
|         14988 => 'SNMP::Info::Layer3::Mikrotik', | ||||
|         17163 => 'SNMP::Info::Layer3::Steelhead', | ||||
|         19046 => 'SNMP::Info::Layer3::Lenovo', | ||||
|         21091 => 'SNMP::Info::Layer2::Exinda', | ||||
|         25506 => 'SNMP::Info::Layer3::H3C', | ||||
|         25461 => 'SNMP::Info::Layer3::PaloAlto', | ||||
|         25506 => 'SNMP::Info::Layer3::H3C', | ||||
|         26543 => 'SNMP::Info::Layer3::IBMGbTor', | ||||
|         30065 => 'SNMP::Info::Layer3::Arista', | ||||
|         35098 => 'SNMP::Info::Layer3::Pica8', | ||||
|         41112 => 'SNMP::Info::Layer2::Ubiquiti', | ||||
|         4413 => 'SNMP::Info::Layer2::Ubiquiti', | ||||
|         26928 => 'SNMP::Info::Layer2::Aerohive', | ||||
|         30065 => 'SNMP::Info::Layer3::Arista', | ||||
|         30803 => 'SNMP::Info::Layer3::VyOS', | ||||
| 	44641 => 'SNMP::Info::Layer3::VyOS', | ||||
|         35098 => 'SNMP::Info::Layer3::Pica8', | ||||
|         40310 => 'SNMP::Info::Layer3::Cumulus', | ||||
|         41112 => 'SNMP::Info::Layer2::Ubiquiti', | ||||
|         44641 => 'SNMP::Info::Layer3::VyOS', | ||||
|     ); | ||||
|  | ||||
|     my %l2sysoidmap = ( | ||||
| @@ -1690,6 +1736,7 @@ sub device_type { | ||||
|         664   => 'SNMP::Info::Layer2::Adtran', | ||||
|         674   => 'SNMP::Info::Layer3::Dell', | ||||
|         1872  => 'SNMP::Info::Layer3::AlteonAD', | ||||
|         1890  => 'SNMP::Info::Layer3::Redlion', | ||||
|         1916  => 'SNMP::Info::Layer3::Extreme', | ||||
|         1991  => 'SNMP::Info::Layer3::Foundry', | ||||
|         2011  => 'SNMP::Info::Layer3::Huawei', | ||||
| @@ -1699,6 +1746,7 @@ sub device_type { | ||||
|         3375  => 'SNMP::Info::Layer3::F5', | ||||
|         4526  => 'SNMP::Info::Layer2::Netgear', | ||||
|         5624  => 'SNMP::Info::Layer3::Enterasys', | ||||
|         6141 => 'SNMP::Info::Layer3::Ciena', | ||||
|         6486  => 'SNMP::Info::Layer3::AlcatelLucent', | ||||
|         9303  => 'SNMP::Info::Layer3::PacketFront', | ||||
|         10418 => 'SNMP::Info::Layer1::Cyclades', | ||||
| @@ -1724,8 +1772,8 @@ sub device_type { | ||||
|         476   => 'SNMP::Info::Layer7::Liebert', | ||||
|         5951  => 'SNMP::Info::Layer7::Netscaler', | ||||
|         9694  => 'SNMP::Info::Layer7::Arbor', | ||||
|         14525 => 'SNMP::Info::Layer2::Trapeze', | ||||
|         12532 => 'SNMP::Info::Layer7::Neoteris', | ||||
|         14525 => 'SNMP::Info::Layer2::Trapeze', | ||||
|         26866 => 'SNMP::Info::Layer7::Gigamon', | ||||
|     ); | ||||
|  | ||||
| @@ -1758,7 +1806,7 @@ sub device_type { | ||||
|         $objtype = 'SNMP::Info::Layer3::Aironet' | ||||
|             if ( $desc =~ /Aironet/ and $desc =~ /\D(AP4800)\D/ ); | ||||
|  | ||||
| 	# Override voice gateway device (VG350) showing up as Aironet | ||||
|         # Override voice gateway device (VG350) showing up as Aironet | ||||
|         $objtype = 'SNMP::Info::Layer3::Cisco' if $desc =~ /VG350/; | ||||
|  | ||||
|         # Cat6k with older SUPs (hybrid CatOS/IOS?) | ||||
| @@ -1867,6 +1915,14 @@ sub device_type { | ||||
|         $objtype = 'SNMP::Info::Layer2::NWSS2300' | ||||
|             if ( | ||||
|             $desc =~ /^(Nortel\s)??Wireless\sSecurity\sSwitch\s23[568][012]\b/); | ||||
| 	 | ||||
| 	# Siemens Simatic Scalance  | ||||
|         # Scalance overwrites layers later,  | ||||
|         # so if we don't add it here (layer3) and at other | ||||
|         # it would flip/flop between those | ||||
|         $objtype = 'SNMP::Info::Layer3::Scalance' | ||||
| 	    if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.4329\.6\.1\.2/i ); | ||||
|  | ||||
|  | ||||
|         # Generic device classification based upon sysObjectID | ||||
|         if (    ( $objtype eq 'SNMP::Info::Layer3' ) | ||||
| @@ -1875,7 +1931,6 @@ sub device_type { | ||||
|         { | ||||
|             $objtype = $l3sysoidmap{$id}; | ||||
|         } | ||||
|  | ||||
|         # Layer 2 Supported | ||||
|     } | ||||
|     elsif ( $info->has_layer(2) ) { | ||||
| @@ -1997,6 +2052,11 @@ sub device_type { | ||||
|         $objtype = 'SNMP::Info::Layer2::ZyXEL_DSLAM' | ||||
|             if ( $desc =~ /8-port .DSL Module\(Annex .\)/i ); | ||||
|  | ||||
|         # Generic DOCSIS Cable Modem override | ||||
|         # If sysDesc follows the DOCSIS standard | ||||
|         $objtype = 'SNMP::Info::DocsisCM' | ||||
|             if ( $desc =~ /<<HW_REV: .*; VENDOR: .*; BOOTR: .*; SW_REV: .*; MODEL: .*>>/i); | ||||
|  | ||||
|         # Generic device classification based upon sysObjectID | ||||
|         if (    ( $objtype eq 'SNMP::Info::Layer2' ) | ||||
|             and ( defined($id) ) | ||||
| @@ -2067,6 +2127,13 @@ sub device_type { | ||||
|         $objtype = 'SNMP::Info::Layer7::CiscoIPS' | ||||
|             if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.9\.1\.1545/i ); | ||||
|  | ||||
| 	# Siemens Simatic Scalance  | ||||
|         # Scalance overwrites layers later,  | ||||
|         # so if we don't add it here (layer3) and at other | ||||
|         # it would flip/flop between those | ||||
|         $objtype = 'SNMP::Info::Layer3::Scalance' | ||||
| 	    if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.4329\.6\.1\.2/i ); | ||||
|  | ||||
|         # Generic device classification based upon sysObjectID | ||||
|         if ( defined($id) and $objtype eq 'SNMP::Info') { | ||||
|             if ( defined $l3sysoidmap{$id} ) { | ||||
| @@ -2152,7 +2219,7 @@ Returns an object of a more-specific subclass. | ||||
|  | ||||
|  my $info = new SNMP::Info(...); | ||||
|  # Returns more specific object type | ||||
|  $info = $info->specific(); | ||||
|  my $specific = $info->specify(); | ||||
|  | ||||
| Usually this method is called internally from new(AutoSpecify => 1) | ||||
|  | ||||
| @@ -2195,6 +2262,7 @@ sub specify { | ||||
|  | ||||
|     $self->debug() | ||||
|         and print "SNMP::Info::specify() - Changed Class to $device_type.\n"; | ||||
|  | ||||
|     return $sub_obj; | ||||
| } | ||||
|  | ||||
| @@ -2213,7 +2281,7 @@ sub cisco_comm_indexing { | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Globals (Scalar Methods) | ||||
| =head2 GLOBALS (Scalar Methods) | ||||
|  | ||||
| These are methods to return scalar data from RFC1213. | ||||
|  | ||||
| @@ -3204,7 +3272,7 @@ A class inheriting this class must implement these data structures : | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item  $INIT | ||||
| =item $INIT | ||||
|  | ||||
| Used to flag if the MIBs have been loaded yet. | ||||
|  | ||||
| @@ -3351,10 +3419,10 @@ $info->init() will throw an exception if a MIB does not load. | ||||
| %MIBS = ( | ||||
|  | ||||
|     # Include these here for cases where the Net-SNMP default MIB list has | ||||
|     # been overridden during the compliation of the local Net-SNMP library. | ||||
|     # been overridden during the compilation of the local Net-SNMP library. | ||||
|     # These cover the globals and funcs defined in this file. | ||||
|     'SNMPv2-MIB'  => 'sysObjectID', | ||||
|     'RFC1213-MIB' => 'ipRouteIfIndex', | ||||
|     # (#325) 'RFC1213-MIB' => 'ipRouteIfIndex', | ||||
|     'IP-MIB'      => 'ipAdEntAddr', | ||||
|     'IF-MIB'      => 'ifIndex', | ||||
| ); | ||||
| @@ -3408,6 +3476,7 @@ will inherit the Cisco Vlan module as an example. | ||||
|  $VERSION = 0.1; | ||||
|  | ||||
|  use strict; | ||||
|  use warnings; | ||||
|  | ||||
|  use Exporter; | ||||
|  use SNMP::Info::Layer2; | ||||
| @@ -3417,18 +3486,18 @@ will inherit the Cisco Vlan module as an example. | ||||
|                                        SNMP::Info::CiscoVTP Exporter/; | ||||
|  @SNMP::Info::Layer2::Sample::EXPORT_OK = qw//; | ||||
|  | ||||
|  use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; | ||||
|  our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG); | ||||
|  | ||||
|  %MIBS    = (%SNMP::Info::Layer2::MIBS, | ||||
|              %SNMP::Info::CiscoVTP::MIBS, | ||||
|              'SUPER-DOOPER-MIB'  => 'supermibobject' | ||||
|              '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' | ||||
|              'favorite_movie'    => 'supermib_fav_movie_val', | ||||
|              ); | ||||
|  | ||||
|  %FUNCS   = (%SNMP::Info::Layer2::FUNCS, | ||||
| @@ -3436,16 +3505,16 @@ will inherit the Cisco Vlan module as an example. | ||||
|              # Super Dooper MIB - Super Hero Table | ||||
|              'super_hero_index'  => 'SuperHeroIfIndex', | ||||
|              'super_hero_name'   => 'SuperHeroIfName', | ||||
|              'super_hero_powers' => 'SuperHeroIfPowers' | ||||
|              'super_hero_powers' => 'SuperHeroIfPowers', | ||||
|             ); | ||||
|  | ||||
|  | ||||
|  %MUNGE   = (%SNMP::Info::Layer2::MUNGE, | ||||
|              %SNMP::Info::CiscoVTP::MUNGE, | ||||
|              'super_hero_powers' => \&munge_powers | ||||
|              'super_hero_powers' => \&munge_powers, | ||||
|             ); | ||||
|  | ||||
|  # OverRide uptime() method from %SNMP::Info::GLOBALS | ||||
|  # Override uptime() method from %SNMP::Info::GLOBALS | ||||
|  sub uptime { | ||||
|      my $sample = shift; | ||||
|  | ||||
| @@ -3533,7 +3602,7 @@ $NOSUCH = 1; | ||||
| =item $REPEATERS | ||||
|  | ||||
| Default 20.  MaxRepeaters for BULKWALK operations.  See C<perldoc SNMP> for | ||||
| more info.  Can change by passing L<BulkRepeaters> option in new() | ||||
| more info.  Can change by passing L</BulkRepeaters> option in new() | ||||
|  | ||||
| =cut | ||||
|  | ||||
| @@ -3796,7 +3865,7 @@ updated enumeration for C<ifOperStatus> in C<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. | ||||
| figured out.  Hierarchy/precedence of MIBS in SNMP::Info. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| @@ -3868,7 +3937,7 @@ sub munge_e_type { | ||||
|  | ||||
| Takes the SNMP::Session C<DestHost> argument and determines if it is an | ||||
| 'IPv4' or 'IPv6' host. 'IPv6' hosts are prefixed with the C<udp6:> | ||||
| C<transport-specifier> as required by the undelying C<Net-SNMP> library. | ||||
| C<transport-specifier> as required by the underlying C<Net-SNMP> library. | ||||
| If unable to determine the type of address or resolve a DNS name, dies with | ||||
| C<croak>. | ||||
|  | ||||
| @@ -4581,7 +4650,7 @@ sub _load_attr { | ||||
|  | ||||
|          # Another check for SNMPv1 - noSuchName return may results in an $iid | ||||
|          # we've already seen and $val an empty string.  If we don't catch | ||||
|          # this here we erronously report a loop below. | ||||
|          # this here we erroneously report a loop below. | ||||
|             if ( defined $seen{$iid} and $seen{$iid} and $val eq '' ) { | ||||
|                 last; | ||||
|             } | ||||
| @@ -4822,6 +4891,11 @@ sub _validate_autoload_method { | ||||
|         return [1,(exists $self->{store}->{$method} ? 1: 0)]; | ||||
|     } | ||||
|  | ||||
|     # (#325) lazy load legacy RFC1213-MIB only if needed | ||||
|     SNMP::loadModules('RFC1213-MIB') | ||||
|       if $leaf_name =~ m/^(?:RFC1213-MIB::|ipr_|ipRoute)/ | ||||
|          and not SNMP::translateObj($leaf_name); | ||||
|  | ||||
|     # Translate MIB leaf node name to OID | ||||
|     my $oid = SNMP::translateObj($leaf_name); | ||||
|  | ||||
| @@ -4851,7 +4925,7 @@ sub _validate_autoload_method { | ||||
|         || ($method !~ /^set/ && $access eq 'NoAccess')) { | ||||
|  | ||||
|             print | ||||
|                 "SNMP::Info::_validate_autoload_method($attr : $oid) Not accessable for requested operation.\n" | ||||
|                 "SNMP::Info::_validate_autoload_method($attr : $oid) Not accessible for requested operation.\n" | ||||
|                 if $self->debug(); | ||||
|             return; | ||||
|  | ||||
| @@ -4984,8 +5058,6 @@ subclass. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| our $AUTOLOAD; | ||||
|  | ||||
| sub AUTOLOAD { | ||||
|     my $self = shift; | ||||
|     my ($sub_name) = $AUTOLOAD =~ /::(\w+)$/; | ||||
|   | ||||
| @@ -30,26 +30,27 @@ | ||||
| package SNMP::Info::AMAP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::AMAP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::AMAP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS | ||||
|     = ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', ); | ||||
| %MIBS = ( | ||||
|   'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|  | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|  | ||||
|     # EXTREME-EDP-MIB::extremeEdpTable | ||||
|     # ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB::aipAMAPRemHostname | ||||
|     'amap_rem_sysname' => 'aipAMAPRemHostname', | ||||
| ); | ||||
|  | ||||
| @@ -91,7 +92,7 @@ sub _conn_table_mac { | ||||
| # address since they should all originate from the same device, but we don't | ||||
| # know if they would all be reachable from the network management application. | ||||
| # | ||||
| # We don't inplement partials since this is private index function | ||||
| # We don't implement partials since this is private index function | ||||
| sub _amap_index { | ||||
|     my $amap = shift; | ||||
|  | ||||
| @@ -253,7 +254,7 @@ Eric Miller | ||||
|  | ||||
|  $hasamap   = $amap->hasAMAP() ? 'yes' : 'no'; | ||||
|  | ||||
|  # Print out a map of device ports with LLDP neighbors: | ||||
|  # Print out a map of device ports with AMAP neighbors: | ||||
|  my $interfaces    = $amap->interfaces(); | ||||
|  my $amap_if       = $amap->amap_if(); | ||||
|  my $amap_ip       = $amap->amap_ip(); | ||||
| @@ -291,7 +292,7 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::AdslLine; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::AdslLine::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::AdslLine::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' ); | ||||
|  | ||||
| @@ -105,8 +106,6 @@ none. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Aggregate; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::Aggregate::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::Aggregate::EXPORT_OK = qw/agg_ports_ifstack/; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # Load MIB for leafs referenced within class | ||||
| %MIBS = ('IF-MIB' => 'ifIndex',); | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Airespace | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::Airespace; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::Airespace::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::Airespace::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Bridge | ||||
| # $Id$ | ||||
| # | ||||
| # Changes since Version 0.7 Copyright (c) 2004 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -34,15 +33,16 @@ | ||||
| package SNMP::Info::Bridge; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::Bridge::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::Bridge::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/; | ||||
| our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'BRIDGE-MIB'   => 'dot1dBaseBridgeAddress', | ||||
| @@ -242,8 +242,10 @@ sub qb_fdb_index { | ||||
| sub fw_mac { | ||||
|     my $bridge = shift; | ||||
|  | ||||
|     my $qb = $bridge->qb_fw_mac(); | ||||
|     return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     unless ($bridge->can('cisco_comm_indexing') && $bridge->cisco_comm_indexing()){ | ||||
|         my $qb = $bridge->qb_fw_mac(); | ||||
|         return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     } | ||||
|  | ||||
|     return $bridge->SUPER::fw_mac(); | ||||
| } | ||||
| @@ -251,8 +253,10 @@ sub fw_mac { | ||||
| sub fw_port { | ||||
|     my $bridge = shift; | ||||
|  | ||||
|     my $qb = $bridge->qb_fw_port(); | ||||
|     return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     unless ($bridge->can('cisco_comm_indexing') && $bridge->cisco_comm_indexing()){ | ||||
|         my $qb = $bridge->qb_fw_port(); | ||||
|         return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     } | ||||
|  | ||||
|     return $bridge->SUPER::fw_port(); | ||||
| } | ||||
| @@ -260,8 +264,10 @@ sub fw_port { | ||||
| sub fw_status { | ||||
|     my $bridge = shift; | ||||
|  | ||||
|     my $qb = $bridge->qb_fw_status(); | ||||
|     return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     unless ($bridge->can('cisco_comm_indexing') && $bridge->cisco_comm_indexing()){ | ||||
|         my $qb = $bridge->qb_fw_status(); | ||||
|         return $qb if (ref {} eq ref $qb and scalar keys %$qb); | ||||
|     } | ||||
|  | ||||
|     return $bridge->SUPER::fw_status(); | ||||
| } | ||||
| @@ -296,11 +302,11 @@ sub i_stp_port { | ||||
|     my %i_stp_port; | ||||
|  | ||||
|     foreach my $index ( keys %$stp_p_port ) { | ||||
|         my $bridge = $stp_p_port->{$index}; | ||||
|         my $bport  = $stp_p_port->{$index}; | ||||
|         my $iid    = $bp_index->{$index}; | ||||
|         next unless defined $iid; | ||||
|         next unless defined $bridge; | ||||
|         $i_stp_port{$iid} = $bridge; | ||||
|         next unless defined $bport; | ||||
|         $i_stp_port{$iid} = $bport; | ||||
|     } | ||||
|     return \%i_stp_port; | ||||
| } | ||||
| @@ -315,11 +321,11 @@ sub i_stp_id { | ||||
|     my %i_stp_id; | ||||
|  | ||||
|     foreach my $index ( keys %$stp_p_id ) { | ||||
|         my $bridge = $stp_p_id->{$index}; | ||||
|         my $bport  = $stp_p_id->{$index}; | ||||
|         my $iid    = $bp_index->{$index}; | ||||
|         next unless defined $iid; | ||||
|         next unless defined $bridge; | ||||
|         $i_stp_id{$iid} = $bridge; | ||||
|         next unless defined $bport; | ||||
|         $i_stp_id{$iid} = $bport; | ||||
|     } | ||||
|     return \%i_stp_id; | ||||
| } | ||||
| @@ -334,11 +340,11 @@ sub i_stp_bridge { | ||||
|     my %i_stp_bridge; | ||||
|  | ||||
|     foreach my $index ( keys %$stp_p_bridge ) { | ||||
|         my $bridge = $stp_p_bridge->{$index}; | ||||
|         my $bport  = $stp_p_bridge->{$index}; | ||||
|         my $iid    = $bp_index->{$index}; | ||||
|         next unless defined $iid; | ||||
|         next unless defined $bridge; | ||||
|         $i_stp_bridge{$iid} = $bridge; | ||||
|         next unless defined $bport; | ||||
|         $i_stp_bridge{$iid} = $bport; | ||||
|     } | ||||
|     return \%i_stp_bridge; | ||||
| } | ||||
| @@ -609,12 +615,11 @@ None. | ||||
|  | ||||
| =item F<Q-BRIDGE-MIB> | ||||
|  | ||||
| =item F<RSTP-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| F<BRIDGE-MIB> needs to be extracted from | ||||
| ftp://ftp.cisco.com/pub/mibs/v1/v1.tar.gz | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CDP | ||||
| # $Id$ | ||||
| # | ||||
| # Changes since Version 0.7 Copyright (c) 2004 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -34,16 +33,17 @@ | ||||
| package SNMP::Info::CDP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CDP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CDP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars | ||||
|     qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/; | ||||
| our | ||||
|     ($VERSION, $DEBUG, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $INIT, %CDP_CAPABILITIES); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # Five data structures required by SNMP::Info | ||||
| %MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' ); | ||||
| @@ -82,7 +82,6 @@ $VERSION = '3.66'; | ||||
|     'cdp_ver'          => \&SNMP::Info::munge_null, | ||||
|     'cdp_ip'           => \&SNMP::Info::munge_ip, | ||||
|     'cdp_power'        => \&munge_power, | ||||
|  | ||||
| ); | ||||
|  | ||||
| %CDP_CAPABILITIES = ( | ||||
| @@ -222,11 +221,17 @@ sub cdp_port { | ||||
|  | ||||
|     my $ch = $cdp->cdp_dev_port($partial) || {}; | ||||
|  | ||||
|     # most devices return a string with the interface name here (Port-ID TLV) | ||||
|     # see https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/cdp/command/cdp-cr-book/cdp-cr-a1.html | ||||
|     # it seems however that some devices report hex encoded mac addresses for this, see | ||||
|     # https://github.com/netdisco/snmp-info/issues/252 | ||||
|     # once these bad devices get known we can figure out workarounds for them | ||||
|  | ||||
|     my %cdp_port; | ||||
|     foreach my $key ( sort keys %$ch ) { | ||||
|         my $port = $ch->{$key}; | ||||
|         next unless $port; | ||||
|         $port = SNMP::Info::munge_mac($port) || SNMP::Info::munge_null($port); | ||||
|         $port = SNMP::Info::munge_null($port); | ||||
|         $cdp_port{$key} = $port; | ||||
|     } | ||||
|     return \%cdp_port; | ||||
| @@ -259,7 +264,7 @@ Max Baker | ||||
|  $hascdp   = $cdp->hasCDP() ? 'yes' : 'no'; | ||||
|  | ||||
|  # Print out a map of device ports with CDP neighbors: | ||||
|  my $interfaces = $cdp->interfaces(); | ||||
|  my $interfaces   = $cdp->interfaces(); | ||||
|  my $cdp_if       = $cdp->cdp_if(); | ||||
|  my $cdp_ip       = $cdp->cdp_ip(); | ||||
|  my $cdp_port     = $cdp->cdp_port(); | ||||
| @@ -278,8 +283,8 @@ SNMP::Info::CDP is a subclass of SNMP::Info that provides an object oriented | ||||
| interface to CDP information through SNMP. | ||||
|  | ||||
| CDP is a Layer 2 protocol that supplies topology information of devices that | ||||
| also speak CDP, mostly switches and routers.  CDP is implemented in Cisco and | ||||
| some HP devices. | ||||
| also speak CDP, mostly switches and routers.  CDP is implemented by Cisco and | ||||
| several other vendors. | ||||
|  | ||||
| Create or use a device subclass that inherits this class.  Do not use | ||||
| directly. | ||||
| @@ -299,9 +304,7 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
| @@ -479,9 +482,10 @@ Returns remote platform id | ||||
|  | ||||
| =item $cdp->cdp_port() | ||||
|  | ||||
| Returns remote port ID | ||||
| Returns remote Port-ID. Most of the time this is a string with the port name, but this | ||||
| is not guaranteed to be so. | ||||
|  | ||||
| (C<cdpDevicePort>) | ||||
| (C<cdpCacheDevicePort>) | ||||
|  | ||||
| =item  $cdp->cdp_proto() | ||||
|  | ||||
|   | ||||
| @@ -30,7 +30,7 @@ | ||||
| package SNMP::Info::CiscoAgg; | ||||
|  | ||||
| use strict; | ||||
| #use warnings; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::IEEE802dot3ad; | ||||
|  | ||||
| @@ -46,9 +46,9 @@ use SNMP::Info::IEEE802dot3ad; | ||||
|   agg_ports_pagp | ||||
| /; | ||||
|  | ||||
| use vars qw/$DEBUG $VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($DEBUG, $VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|   %SNMP::Info::IEEE802dot3ad::MIBS, | ||||
| @@ -191,9 +191,7 @@ L<SNMP::Info::IEEE802dot3ad> | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 METHODS | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| =over 4 | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoConfig | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::CiscoConfig; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoConfig::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoConfig::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable', | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoPortSecurity | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::CiscoPortSecurity; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoPortSecurity::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoPortSecurity::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PAECAPABILITIES); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB', | ||||
| @@ -110,7 +110,7 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %PAECAPABILITIES = ( | ||||
|     0 => 'dot1xPaePortAuthCapable', | ||||
|     1 => 'dot1xPaePortSuppCapable' | ||||
|     1 => 'dot1xPaePortSuppCapable', | ||||
| ); | ||||
|  | ||||
| sub munge_pae_capabilities { | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoPower | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bill Fenner | ||||
| # All rights reserved. | ||||
| @@ -31,18 +30,20 @@ | ||||
| package SNMP::Info::CiscoPower; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoPower::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoPower::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex', | ||||
|           'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' ); | ||||
|           'CISCO-CDP-MIB' => 'cdpCachePowerConsumption', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = (); | ||||
|  | ||||
| @@ -153,6 +154,8 @@ Note that it requires that the device inherits from Info::Entity. | ||||
|  | ||||
| =item F<CISCO-POWER-ETHERNET-EXT-MIB> | ||||
|  | ||||
| =item F<CISCO-CDP-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoQOS | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2005 Alexander Hartmaier | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::CiscoQOS; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoQOS::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoQOS::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', ); | ||||
|  | ||||
| @@ -118,8 +118,6 @@ none. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoRTT | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2005 Alexander Hartmaier | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::CiscoRTT; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoRTT::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoRTT::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', ); | ||||
|  | ||||
| @@ -99,8 +99,6 @@ none. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| =over | ||||
| @@ -113,7 +111,7 @@ None | ||||
|  | ||||
| =head2 Overall Control Group Table | ||||
|  | ||||
| This table is from C<CISCO-RTTMAN-MIB::rttMonCtrlAdminTable> | ||||
| This table is from C<CISCO-RTTMON-MIB::rttMonCtrlAdminTable> | ||||
|  | ||||
| =over | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoStack | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -31,14 +30,15 @@ | ||||
| package SNMP::Info::CiscoStack; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
|  | ||||
| @SNMP::Info::CiscoStack::ISA       = qw/Exporter/; | ||||
| @SNMP::Info::CiscoStack::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', ); | ||||
|  | ||||
| @@ -106,7 +106,7 @@ $VERSION = '3.66'; | ||||
|     1 => 'other', | ||||
|     2 => 'ok', | ||||
|     3 => 'minorFault', | ||||
|     4 => 'majorFault' | ||||
|     4 => 'majorFault', | ||||
| ); | ||||
|  | ||||
| # Changes binary byte describing each port into ascii, and returns | ||||
| @@ -286,8 +286,7 @@ __END__ | ||||
|  | ||||
| =head1 NAME | ||||
|  | ||||
| SNMP::Info::CiscoStack - SNMP Interface to data from F<CISCO-STACK-MIB> and | ||||
| F<CISCO-PORT-SECURITY-MIB> | ||||
| SNMP::Info::CiscoStack - SNMP Interface to data from F<CISCO-STACK-MIB> | ||||
|  | ||||
| =head1 AUTHOR | ||||
|  | ||||
| @@ -296,7 +295,7 @@ Max Baker | ||||
| =head1 SYNOPSIS | ||||
|  | ||||
|  # Let SNMP::Info determine the correct subclass for you. | ||||
|  my $ciscostats = new SNMP::Info( | ||||
|  my $ciscostack = new SNMP::Info( | ||||
|                           AutoSpecify => 1, | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myswitch', | ||||
| @@ -305,7 +304,7 @@ Max Baker | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
|  my $class = $ciscostats->class(); | ||||
|  my $class = $ciscostack->class(); | ||||
|  print "SNMP::Info determined this device to fall under subclass : $class\n"; | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoStats | ||||
| # $Id$ | ||||
| # | ||||
| # Changes since Version 0.7 Copyright (c) 2008-2009 Max Baker and SNMP::Info Developers | ||||
| # All rights reserved. | ||||
| @@ -34,15 +33,16 @@ | ||||
| package SNMP::Info::CiscoStats; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoStats::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoStats::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'SNMPv2-MIB'            => 'sysDescr', | ||||
| @@ -105,6 +105,10 @@ sub os { | ||||
|  | ||||
|     # order here matters - there are Catalysts that run IOS and have catalyst | ||||
|     # in their description field, as well as Catalysts that run IOS-XE. | ||||
|     return 'ios-xe'   if ( $descr =~ /Denali/ ); | ||||
|     return 'ios-xe'   if ( $descr =~ /Fuji/ ); | ||||
|     return 'ios-xe'   if ( $descr =~ /Everest/ ); | ||||
|     return 'ios-xe'   if ( $descr =~ /Gibraltar/ ); | ||||
|     return 'ios-xe'   if ( $descr =~ /IOS-XE/ ); | ||||
|     return 'ios-xr'   if ( $descr =~ /IOS XR/ ); | ||||
|     return 'ios'      if ( $descr =~ /IOS/ ); | ||||
| @@ -385,8 +389,6 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -29,14 +29,14 @@ | ||||
| package SNMP::Info::CiscoStpExtensions; | ||||
|  | ||||
| use strict; | ||||
|  | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
|  | ||||
| use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/; | ||||
| our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT, $INIT); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| @SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//; | ||||
| @@ -317,9 +317,7 @@ For debugging you can call new() directly as you would in SNMP::Info | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::CiscoVTP | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::CiscoVTP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::CiscoVTP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::CiscoVTP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'CISCO-VTP-MIB'                       => 'vtpVlanName', | ||||
| @@ -565,8 +565,6 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| =over | ||||
|   | ||||
							
								
								
									
										126
									
								
								lib/SNMP/Info/DocsisCM.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								lib/SNMP/Info/DocsisCM.pm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| # SNMP::Info::DocsisCM - SNMP Interface to DOCSIS Cable Modems | ||||
| # | ||||
| # Copyright (c) 2019 by The Netdisco Developer Team. | ||||
| # | ||||
| # Redistribution and use in source and binary forms, with or without | ||||
| # modification, are permitted provided that the following conditions are met: | ||||
| # | ||||
| #     * Redistributions of source code must retain the above copyright notice, | ||||
| #       this list of conditions and the following disclaimer. | ||||
| #     * Redistributions in binary form must reproduce the above copyright | ||||
| #       notice, this list of conditions and the following disclaimer in the | ||||
| #       documentation and/or other materials provided with the distribution. | ||||
| #     * Neither the name of the University of California, Santa Cruz nor the | ||||
| #       names of its contributors may be used to endorse or promote products | ||||
| #       derived from this software without specific prior written permission. | ||||
| # | ||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
| # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||||
| # LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||||
| # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||||
| # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
| # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
| # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
| # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
| # POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| package SNMP::Info::DocsisCM; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
|  | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::DocsisCM::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::DocsisCM::EXPORT_OK = qw//; | ||||
|  | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.69'; | ||||
|   | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS | ||||
| ); | ||||
|  | ||||
| %FUNCS  = ( | ||||
|     %SNMP::Info::Layer2::FUNCS | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer2::MUNGE | ||||
| ); | ||||
|  | ||||
| sub vendor { | ||||
|     my $cm = shift; | ||||
|     my $descr = $cm->description(); | ||||
|     return $1 if $descr =~ /VENDOR: (.*?);/; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
|     my $cm = shift; | ||||
|     my $descr = $cm->description(); | ||||
|     return $1 if $descr =~ /MODEL: (.*?)>>/; | ||||
| } | ||||
|  | ||||
| sub os { | ||||
|     return "CM"; | ||||
| } | ||||
|  | ||||
| sub os_ver { | ||||
|     my $cm = shift; | ||||
|     my $descr = $cm->description(); | ||||
|     return $1 if $descr =~ /SW_REV: (.*?);/; | ||||
| } | ||||
|  | ||||
| 1; | ||||
| __END__ | ||||
|  | ||||
| =head1 NAME | ||||
|  | ||||
| SNMP::Info::DocsisCM - SNMP Interface for DOCSIS Cable Modems | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
| SNMP::Info::DocsisCM is a subclass of SNMP::Info that provides info | ||||
| about a given cable modem. Extracts data from the sysDescr, which is  | ||||
| mandated in the DOCSIS specification to match | ||||
| "HW_REV: <value>; VENDOR: <value>; BOOTR: <value>; SW_REV: <value>; MODEL: <value>" | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| None. | ||||
|  | ||||
| =head2 Required MIBs | ||||
|  | ||||
| None. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar value from SNMP | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $cm->vendor() | ||||
|  | ||||
| Returns the vendor of the cable modem. | ||||
|  | ||||
| =item $cm->model() | ||||
|  | ||||
| Returns the model of the cable modem. | ||||
|  | ||||
| =item $cm->os() | ||||
|  | ||||
| Returns 'cm', as the actual os is vendor and model dependent. | ||||
|  | ||||
| =item $cm->os_ver() | ||||
|  | ||||
| Returns the version of the software, extracted from the SW_REV field. | ||||
|  | ||||
| =back | ||||
|  | ||||
							
								
								
									
										124
									
								
								lib/SNMP/Info/DocsisHE.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								lib/SNMP/Info/DocsisHE.pm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,124 @@ | ||||
| package SNMP::Info::DocsisHE; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
|  | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::DocsisHE::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::DocsisHE::EXPORT_OK = qw//; | ||||
|  | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'DOCS-IF3-MIB' => 'docsIf3Mib', | ||||
|     'DOCS-IF-MIB'  => 'docsIfMib', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = (); | ||||
|  | ||||
| %FUNCS  = ( | ||||
|     # DOCSIS 3.0 (DOCS-IF3-MIB) from CableLabs | ||||
|     'docs_if3_cmts_cm_status_md_if_index'=> 'docsIf3CmtsCmRegStatusMdIfIndex', | ||||
|     # DOCSIS (1.1, etc) from IETF | ||||
|     'docs_if_cmts_cm_status_inet_address_type' => 'docsIfCmtsCmStatusInetAddressType', | ||||
|     'docs_if_cmts_cm_status_inet_address'      => 'docsIfCmtsCmStatusInetAddress', | ||||
|     'docs_cmts_cm_down_channel_if_index'       => 'docsIfCmtsCmStatusDownChannelIfIndex', | ||||
|     'docs_cmts_cm_up_channel_if_index'         => 'docsIfCmtsCmStatusUpChannelIfIndex', | ||||
| ); | ||||
|  | ||||
| %MUNGE = (); | ||||
|  | ||||
| 1; | ||||
| __END__ | ||||
|  | ||||
| =head1 NAME | ||||
|  | ||||
| SNMP::Info::DocsisHE - SNMP Interface for F<DOCS-IF-MIB> and F<DOCS-IF3-MIB> | ||||
|  | ||||
| =head1 AUTHOR | ||||
|  | ||||
| Ryan Gasik | ||||
|  | ||||
| =head1 SYNOPSIS | ||||
|  | ||||
|  my $cmts = new SNMP::Info( | ||||
|                              AutoSpecify => 1, | ||||
|                              Debug       => 1, | ||||
|                              DestHost    => 'cmts', | ||||
|                              Community   => 'public', | ||||
|                              Version     => 2 | ||||
|                           ); | ||||
|  # Get a list of modems off the DOCSIS CMTS | ||||
|  my $modems = $cmts->docs_if_cmts_cm_status_inet_address() | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
| SNMP::Info::DocsisHE is a subclass of SNMP::Info that provides information | ||||
| about the cable modems of a DOCSIS CMTS. | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| None. | ||||
|  | ||||
| =head2 Required MIBs | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<DOCS-IF-MIB> | ||||
| Standard IETF MIBs for DOCSIS 1.1 | ||||
|  | ||||
| =item F<DOCS-IF3-MIB> | ||||
| CableLabs MIBs for DOCSIS 3 | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| None. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $info->docs_if3_cmts_cm_status_md_if_index() | ||||
|  | ||||
| Returns reference to hash of the IfIndex associated with each cable modem. | ||||
|  | ||||
| (C<docsIf3CmtsCmRegStatusMdIfIndex>) | ||||
|  | ||||
| =item $info->docs_if_cmts_cm_status_inet_address_type() | ||||
|  | ||||
| Returns reference to hash of the type of IP address (ie, IPv4, IPv6) | ||||
| associated with each cable modem | ||||
|  | ||||
| (C<docsIfCmtsCmStatusInetAddressType>) | ||||
|  | ||||
| =item $info->docs_if_cmts_cm_status_inet_address() | ||||
|  | ||||
| Returns reference to hash of the IP address associated with each | ||||
| cable modem. | ||||
|  | ||||
| (C<docsIfCmtsCmStatusInetAddress>) | ||||
|  | ||||
| =item $info->docs_cmts_cm_down_channel_if_index() | ||||
|  | ||||
| Returns reference to hash of the IfIndex of the down channel | ||||
| (for DOCSIS 1.1) or a down channel (DOCSIS 3+) associated with each | ||||
| cable modem. | ||||
|  | ||||
| (C<docsIfCmtsCmStatusDownChannelIfIndex>) | ||||
|  | ||||
| =item $info->docs_cmts_cm_up_channel_if_index() | ||||
|  | ||||
| Returns reference to hash of the IfIndex of the up channel | ||||
| (for DOCSIS 1.1) or a up channel (DOCSIS 3+) associated with each | ||||
| cable modem. | ||||
|  | ||||
| (C<docsIfCmtsCmStatusUpChannelIfIndex>) | ||||
|  | ||||
| =back | ||||
|  | ||||
| =cut | ||||
| @@ -31,15 +31,16 @@ | ||||
| package SNMP::Info::EDP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::EDP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::EDP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'EXTREME-EDP-MIB'   => 'extremeEdpPortIfIndex', | ||||
| @@ -75,7 +76,7 @@ sub hasEDP { | ||||
| # address since they should all originate from the same device, but we don't | ||||
| # know if they would all be reachable from the network management application. | ||||
| # | ||||
| # We don't inplement partials since this is private index function | ||||
| # We don't implement partials since this is private index function | ||||
| sub _edp_index { | ||||
|     my $edp = shift; | ||||
|  | ||||
| @@ -204,10 +205,10 @@ Eric Miller | ||||
|  my $class = $edp->class(); | ||||
|  print " Using device sub class : $class\n"; | ||||
|  | ||||
|  $haslldp   = $edp->hasLLDP() ? 'yes' : 'no'; | ||||
|  $hasedp   = $edp->hasEDP() ? 'yes' : 'no'; | ||||
|  | ||||
|  # Print out a map of device ports with LLDP neighbors: | ||||
|  my $interfaces    = $edp->interfaces(); | ||||
|  # Print out a map of device ports with EDP neighbors: | ||||
|  my $interfaces   = $edp->interfaces(); | ||||
|  my $edp_if       = $edp->edp_if(); | ||||
|  my $edp_ip       = $edp->edp_ip(); | ||||
|  my $edp_port     = $edp->edp_port(); | ||||
| @@ -243,7 +244,7 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
| @@ -251,7 +252,7 @@ These are methods that return scalar values from SNMP | ||||
|  | ||||
| =item $edp->hasEDP() | ||||
|  | ||||
| Is EDP is active in this device? | ||||
| Is EDP active on this device? | ||||
|  | ||||
| =back | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Entity | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Entity; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::Entity::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::Entity::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' ); | ||||
|  | ||||
| @@ -75,7 +75,7 @@ sub e_index { | ||||
|     my $entity  = shift; | ||||
|     my $partial = shift; | ||||
|  | ||||
|     # Force use of MIB leaf to avoid inheritance issues in psuedo classes | ||||
|     # Force use of MIB leaf to avoid inheritance issues in pseudo classes | ||||
|     my $e_descr = $entity->entPhysicalDescr($partial); | ||||
|  | ||||
|     return unless ($e_descr); | ||||
| @@ -213,8 +213,6 @@ none. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| none. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::EtherLike | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::EtherLike; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::EtherLike::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::EtherLike::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'EtherLike-MIB' => 'etherMIB' ); | ||||
|  | ||||
| @@ -68,7 +68,7 @@ $VERSION = '3.66'; | ||||
|     'el_xmit_defer'      => 'dot3StatsDeferredTransmissions', | ||||
|  | ||||
|     # Ethernet-like Collision Statistics Group | ||||
|     'el_coll_freq'  => 'dot3CollFrequencies' | ||||
|     'el_coll_freq'  => 'dot3CollFrequencies', | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::MUNGE, 'el_duplex' => \&munge_el_duplex, ); | ||||
| @@ -103,7 +103,7 @@ Max Baker | ||||
|                              Version     => 2 | ||||
|                            ); | ||||
|  | ||||
|  my $class = $cdp->class(); | ||||
|  my $class = $el->class(); | ||||
|  print " Using device sub class : $class\n"; | ||||
|  | ||||
|  # Find the duplex setting for a port on a device that implements | ||||
| @@ -143,8 +143,6 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::FDP | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bruce Rodger, Max Baker | ||||
| # All rights reserved. | ||||
| @@ -34,15 +33,16 @@ | ||||
| package SNMP::Info::FDP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::FDP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::FDP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' ); | ||||
|  | ||||
| @@ -65,7 +65,7 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %MUNGE = ( | ||||
|     'fdp_capabilities' => \&SNMP::Info::munge_bits, | ||||
|     'fdp_ip'           => \&SNMP::Info::munge_ip | ||||
|     'fdp_ip'           => \&SNMP::Info::munge_ip, | ||||
| ); | ||||
|  | ||||
| sub fdp_run { | ||||
| @@ -146,7 +146,7 @@ Bruce Rodger, Max Baker | ||||
|  $hasfdp   = $fdp->hasFDP() ? 'yes' : 'no'; | ||||
|  | ||||
|  # Print out a map of device ports with FDP neighbors: | ||||
|  my $interfaces = $fdp->interfaces(); | ||||
|  my $interfaces   = $fdp->interfaces(); | ||||
|  my $fdp_if       = $fdp->fdp_if(); | ||||
|  my $fdp_ip       = $fdp->fdp_ip(); | ||||
|  my $fdp_port     = $fdp->fdp_port(); | ||||
| @@ -190,7 +190,7 @@ work with B2R07600C. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::IEEE802dot11 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::IEEE802dot11; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::IEEE802dot11::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::IEEE802dot11::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', ); | ||||
|  | ||||
|   | ||||
| @@ -30,6 +30,7 @@ | ||||
| package SNMP::Info::IEEE802dot3ad; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Aggregate; | ||||
|  | ||||
| @@ -41,9 +42,9 @@ use SNMP::Info::Aggregate; | ||||
|   agg_ports_lag | ||||
| /; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|   %SNMP::Info::Aggregate::MIBS, | ||||
|   | ||||
| @@ -30,13 +30,14 @@ | ||||
| package SNMP::Info::IPv6; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::IPv6::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::IPv6::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE $METHOD/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $METHOD); | ||||
|  | ||||
| use constant { | ||||
|     IPMIB   => 1, | ||||
| @@ -44,7 +45,7 @@ use constant { | ||||
|     IPV6MIB => 3, | ||||
| }; | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -479,7 +480,9 @@ none. | ||||
| =over | ||||
|  | ||||
| =item F<IP-MIB> | ||||
|  | ||||
| =item F<IPV6-MIB> | ||||
|  | ||||
| =item F<CISCO-IETF-IP-MIB> | ||||
|  | ||||
| =back | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::LLDP | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2018 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::LLDP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::LLDP::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::LLDP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     'LLDP-MIB'          => 'lldpLocSysCapEnabled', | ||||
| @@ -512,7 +512,7 @@ None. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBAL METHODS | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar values from SNMP | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1 - SNMP Interface to Layer1 Devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Layer1; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
|  | ||||
| @SNMP::Info::Layer1::ISA       = qw/SNMP::Info Exporter/; | ||||
| @SNMP::Info::Layer1::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' ); | ||||
|  | ||||
| @@ -49,7 +49,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     'ports_managed' => 'ifNumber', | ||||
|     'rptr_slots'    => 'rptrGroupCapacity', | ||||
|     'slots'         => 'rptrGroupCapacity' | ||||
|     'slots'         => 'rptrGroupCapacity', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
| @@ -86,7 +86,7 @@ sub ports { | ||||
| } | ||||
|  | ||||
| # $l1->model() - Looks at sysObjectID which gives the oid of the system | ||||
| #       name, contained in a propriatry MIB. | ||||
| #       name, contained in a proprietary MIB. | ||||
| sub model { | ||||
|     my $l1    = shift; | ||||
|     my $id    = $l1->id(); | ||||
| @@ -178,7 +178,7 @@ Max Baker | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myswitch', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -227,12 +227,9 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =back | ||||
|  | ||||
| MIBs required for L<SNMP::Info/"Required MIBs"> | ||||
| MIBs required for L<SNMP::Info/"REQUIREMENTS"> | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| F<SNMP-REPEATER-MIB> needs to be extracted from | ||||
| ftp://ftp.cisco.com/pub/mibs/v1/v1.tar.gz | ||||
| See L<SNMP::Info/"REQUIREMENTS"> for its MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| @@ -278,7 +275,7 @@ Number of 'groups' in the Repeater MIB | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| @@ -341,6 +338,6 @@ Group (slot) Number for given port. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1::Allied | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Layer1::Allied; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer1; | ||||
|  | ||||
| @SNMP::Info::Layer1::Allied::ISA       = qw/SNMP::Info::Layer1 Exporter/; | ||||
| @SNMP::Info::Layer1::Allied::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # Set for No CDP | ||||
| %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', ); | ||||
| @@ -52,9 +52,14 @@ $VERSION = '3.66'; | ||||
|     'ati_up'     => 'linkTestLED', | ||||
| ); | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::Layer1::MIBS, 'ATI-MIB' => 'atiPortGroupIndex' ); | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer1::MIBS, | ||||
|     'ATI-MIB' => 'atiPortGroupIndex', | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer1::MUNGE, ); | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer1::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'allied'; | ||||
| @@ -68,7 +73,7 @@ sub os_ver { | ||||
|     my $allied = shift; | ||||
|     my $descr  = $allied->description(); | ||||
|  | ||||
|     if ( $descr =~ m/version (\d+\.\d+)/ ) { | ||||
|     if ( defined ($descr) && $descr =~ m/version (\d+\.\d+)/ ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -79,7 +84,7 @@ sub model { | ||||
|  | ||||
|     my $desc = $allied->description(); | ||||
|  | ||||
|     if ( $desc =~ /(AT-\d{4}\S{1})/ ) { | ||||
|     if ( defined ($desc) && $desc =~ /(AT-\d{4}\S{1})/ ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1::Asante | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Layer1::Asante; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer1; | ||||
|  | ||||
| @SNMP::Info::Layer1::Asante::ISA       = qw/SNMP::Info::Layer1 Exporter/; | ||||
| @SNMP::Info::Layer1::Asante::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # Set for No CDP | ||||
| %GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, ); | ||||
| @@ -81,7 +81,7 @@ sub os_ver { | ||||
|     my $asante = shift; | ||||
|     my $descr  = $asante->description(); | ||||
|  | ||||
|     if ( $descr =~ /software v(\d+\.\d+)/ ) { | ||||
|     if ( defined ($descr) && $descr =~ /software v(\d+\.\d+)/ ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -188,7 +188,7 @@ Max Baker | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
|  | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| Provides abstraction to the configuration information obtainable from an | ||||
| Asante device through SNMP. | ||||
|  | ||||
| =head2 Inherited Classes | ||||
| @@ -227,7 +227,7 @@ Culls software version from description() | ||||
|  | ||||
| =item $asante->vendor() | ||||
|  | ||||
| Returns 'asante' :) | ||||
| Returns 'asante' | ||||
|  | ||||
| =item $asante->model() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1::Bayhub | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller, Max Baker | ||||
| # All rights reserved. | ||||
| @@ -31,18 +30,19 @@ | ||||
| package SNMP::Info::Layer1::Bayhub; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::SONMP; | ||||
| use SNMP::Info::NortelStack; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer1::Bayhub::ISA | ||||
|     = qw/SNMP::Info::SONMP SNMP::Info::NortelStack  SNMP::Info::Layer2 Exporter/; | ||||
|     = qw/SNMP::Info::SONMP SNMP::Info::NortelStack SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer1::Bayhub::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -505,11 +505,6 @@ Provides abstraction to the configuration information obtainable from a | ||||
| Bay hub device through SNMP.  Also provides device MAC to port mapping through | ||||
| the proprietary MIB. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $bayhub = new SNMP::Info::Layer1::Bayhub(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1::Cyclades | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2018 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::Layer1::Cyclades; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer1; | ||||
|  | ||||
| @SNMP::Info::Layer1::Cyclades::ISA       = qw/SNMP::Info::Layer1 Exporter/; | ||||
| @SNMP::Info::Layer1::Cyclades::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer1::MIBS, | ||||
| @@ -498,11 +498,6 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| Cyclades/Avocent device through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $cyclades = new SNMP::Info::Layer1::Cyclades(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -515,6 +510,10 @@ my $cyclades = new SNMP::Info::Layer1::Cyclades(...); | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<ACS-MIB> | ||||
|  | ||||
| =item F<ACS6000-MIB> | ||||
|  | ||||
| =item F<CYCLADES-ACS-SYS-MIB> | ||||
|  | ||||
| =item F<CYCLADES-ACS-CONF-MIB> | ||||
| @@ -527,8 +526,6 @@ my $cyclades = new SNMP::Info::Layer1::Cyclades(...); | ||||
|  | ||||
| =item F<CYCLADES-ACS5K-INFO-MIB> | ||||
|  | ||||
| =item F<ACS6000-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Inherited MIBs | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer1::S3000 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::Layer1::S3000; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer1::S3000::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer1::S3000::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -386,11 +386,6 @@ Provides abstraction to the configuration information obtainable from a | ||||
| Bay hub device through SNMP.  Also provides device MAC to port mapping through | ||||
| the proprietary MIB. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $s3000 = new SNMP::Info::Layer1::S3000(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2 - SNMP Interface to Layer2 Devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker -- All changes from Version 0.7 on | ||||
| # | ||||
| @@ -33,30 +32,33 @@ | ||||
| package SNMP::Info::Layer2; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::Entity; | ||||
| use SNMP::Info::PowerEthernet; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::DocsisHE; | ||||
|  | ||||
| @SNMP::Info::Layer2::ISA | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::Entity SNMP::Info::PowerEthernet SNMP::Info::LLDP Exporter/; | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::Entity SNMP::Info::PowerEthernet SNMP::Info::LLDP SNMP::Info::DocsisHE Exporter/; | ||||
| @SNMP::Info::Layer2::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS,         %SNMP::Info::Bridge::MIBS, | ||||
|     %SNMP::Info::Entity::MIBS, %SNMP::Info::PowerEthernet::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS,   %SNMP::Info::DocsisHE::MIBS, | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     %SNMP::Info::Bridge::GLOBALS, | ||||
|     %SNMP::Info::DocsisHE::GLOBALS, | ||||
|     %SNMP::Info::Entity::GLOBALS, | ||||
|     %SNMP::Info::PowerEthernet::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
| @@ -67,7 +69,7 @@ $VERSION = '3.66'; | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS,         %SNMP::Info::Bridge::FUNCS, | ||||
|     %SNMP::Info::Entity::FUNCS, %SNMP::Info::PowerEthernet::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS,   %SNMP::Info::DocsisHE::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
| @@ -75,6 +77,7 @@ $VERSION = '3.66'; | ||||
|     # Inherit all the built in munging | ||||
|     %SNMP::Info::MUNGE, | ||||
|     %SNMP::Info::Bridge::MUNGE, | ||||
|     %SNMP::Info::DocsisHE::MUNGE, | ||||
|     %SNMP::Info::Entity::MUNGE, | ||||
|     %SNMP::Info::PowerEthernet::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| @@ -83,7 +86,7 @@ $VERSION = '3.66'; | ||||
| # Method OverRides | ||||
|  | ||||
| # $l2->model() - Looks at sysObjectID which gives the oid of the system | ||||
| #       name, contained in a propriatry MIB. | ||||
| #       name, contained in a proprietary MIB. | ||||
| sub model { | ||||
|     my $l2    = shift; | ||||
|     my $id    = $l2->id(); | ||||
| @@ -142,15 +145,25 @@ sub interfaces { | ||||
|     # Replace the Index with the ifDescr field. | ||||
|     # Check for duplicates in ifDescr, if so uniquely identify by adding | ||||
|     # ifIndex to repeated values | ||||
|     my %seen; | ||||
|     foreach my $iid ( keys %$i_descr ) { | ||||
|     my (%seen, %first_seen_as); | ||||
|     foreach my $iid ( sort keys %$i_descr ) { | ||||
|         my $port = $i_descr->{$iid}; | ||||
|         next unless defined $port; | ||||
|  | ||||
|         $port = SNMP::Info::munge_null($port); | ||||
|         $port =~ s/^\s+//; $port =~ s/\s+$//; | ||||
|         next unless length $port; | ||||
|  | ||||
|         if ( $seen{$port}++ ) { | ||||
|             # (#320) also fixup the port this is a duplicate of | ||||
|             $interfaces->{ $first_seen_as{$port} } | ||||
|               = sprintf( "%s (%d)", $port, $first_seen_as{$port} ); | ||||
|  | ||||
|             $interfaces->{$iid} = sprintf( "%s (%d)", $port, $iid ); | ||||
|         } | ||||
|         else { | ||||
|             $interfaces->{$iid} = $port; | ||||
|             $first_seen_as{$port} = $iid; | ||||
|         } | ||||
|     } | ||||
|     return $interfaces; | ||||
| @@ -215,10 +228,14 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =item SNMP::Info::Bridge | ||||
|  | ||||
| =item SNMP::Info::DocsisHE | ||||
|  | ||||
| =item SNMP::Info::Entity | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::PowerEthernet | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
| @@ -262,7 +279,7 @@ Returns a serial number if found from F<ENTITY-MIB> and F<OLD-CISCO->... MIB. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| @@ -296,7 +313,7 @@ Defaults to C<ifDescr> but checks and overrides with C<ifName> | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
|   | ||||
| @@ -29,40 +29,35 @@ | ||||
| package SNMP::Info::Layer2::3Com; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::CDP; | ||||
|  | ||||
| @SNMP::Info::Layer2::3Com::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::3Com::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::3Com::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     'A3Com-products-MIB' => 'wlanAP7760', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| ); | ||||
|  | ||||
|  | ||||
| sub os { | ||||
|     return '3Com'; | ||||
| } | ||||
| @@ -94,17 +89,19 @@ sub os_ver { | ||||
| } | ||||
|  | ||||
| sub vendor { | ||||
|     return '3Com'; | ||||
|     return '3com'; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
|  | ||||
|     my $dsmodel = shift; | ||||
|     my $descr = $dsmodel->description(); | ||||
|     if ( $descr =~ /^([\S ]+) Software.*/){ | ||||
|  | ||||
|     if (defined ($descr)) { | ||||
|       if ($descr =~ /^([\S ]+) Software.*/) { | ||||
|         return $1; | ||||
|     } else { | ||||
|       } else { | ||||
|         return $descr; | ||||
|       } | ||||
|     } | ||||
|     return; | ||||
| } | ||||
| @@ -128,7 +125,7 @@ Max Kosmach | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myrouter', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -169,7 +166,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $device->vendor() | ||||
|  | ||||
| Returns '3Com' | ||||
| Returns '3com' | ||||
|  | ||||
| =item $device->os() | ||||
|  | ||||
|   | ||||
| @@ -29,17 +29,17 @@ | ||||
| package SNMP::Info::Layer2::Adtran; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer2::Adtran::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Adtran::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Adtran::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # This will be filled in with the device's index into the EntPhysicalEntry | ||||
| # table by the serial() function. | ||||
| @@ -58,14 +58,12 @@ our $index = undef; | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'serial'    => 'adProdSerialNumber', | ||||
|     'ad_mgmtevcvid' => 'adGenEVCSysMgmtEVCSTagVID', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( %SNMP::Info::Layer2::FUNCS, | ||||
|            %SNMP::Info::Layer3::FUNCS, | ||||
|            %SNMP::Info::LLDP::FUNCS, | ||||
|            'ad_evcstag' => 'adGenEVCLookupName', | ||||
|            'ad_menport' => 'adGenMenPortRowStatus', | ||||
|            'ad_evcnamevid' => 'adGenEVCSTagVID', | ||||
| @@ -75,7 +73,7 @@ our $index = undef; | ||||
|            'ad_genportcustuse' => 'adGenPortCustomerUse', | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::LLDP::MUNGE, %SNMP::Info::Layer3::MUNGE ); | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::Layer3::MUNGE ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'adtran'; | ||||
| @@ -130,8 +128,8 @@ sub i_name { | ||||
|     my $adname = $adtran->ad_genportcustuse() || undef; | ||||
|     if (defined $adname) { | ||||
|         foreach my $port (keys %$adname) { | ||||
|             my @split = split(/\./,$port); | ||||
|             $i_name->{@split[1]} = $adname->{$port}; | ||||
|             my @splitout = split(/\./,$port); | ||||
|             $i_name->{$splitout[1]} = $adname->{$port}; | ||||
|         } | ||||
|     } | ||||
|     return $i_name; | ||||
| @@ -170,9 +168,9 @@ sub i_vlan_membership { | ||||
|         } | ||||
|         my $if_vlans = {}; | ||||
|         foreach my $entry (keys %$i_vlan) { | ||||
|             my @split = split(/(\.0)+\./,$entry); | ||||
|             my $name = pack("C*", split(/\./,@split[0])); | ||||
|             push @{$if_vlans->{@split[2]}}, $vlans->{$name}; | ||||
|             my @splitout = split(/(\.0)+\./,$entry); | ||||
|             my $name = pack("C*", split(/\./,$splitout[0])); | ||||
|             push @{$if_vlans->{$splitout[2]}}, $vlans->{$name}; | ||||
|         } | ||||
|         my $mgmtevcports = $adtran->ad_mgmtevcports(); | ||||
|         my $mgmtevcid = $adtran->ad_mgmtevcvid(); | ||||
| @@ -223,17 +221,17 @@ Subclass for adtran Devices running JUNOS | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
| =item SNMP::Info::Layer2 | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| @@ -273,10 +271,6 @@ Returns serial number. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -303,12 +297,12 @@ IDs.  These are the VLANs which are members of the egress list for the port. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Layer2::Aerohive; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Aerohive::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Aerohive::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -83,6 +84,7 @@ $VERSION = '3.66'; | ||||
| %MUNGE | ||||
|     = ( %SNMP::Info::Layer2::MUNGE, 'at_paddr' => \&SNMP::Info::munge_mac, ); | ||||
|  | ||||
| # hiveos does not have sysServices | ||||
| sub layers { | ||||
|     return '00000111'; | ||||
| } | ||||
| @@ -106,13 +108,12 @@ sub os_ver { | ||||
|     my $aerohive = shift; | ||||
|     my $descr    = $aerohive->description(); | ||||
|  | ||||
|     if ( $descr =~ m/\bHiveOS\s(\d\.\w+)\b/ix ) { | ||||
|     if ( defined ($descr) && $descr =~ m/\bHiveOS\s(\d\.\w+)\b/ix ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| } | ||||
|  | ||||
|  | ||||
| sub mac { | ||||
|     my $aerohive = shift; | ||||
|     my $ahmac = $aerohive->ah_mac(); | ||||
| @@ -136,12 +137,11 @@ sub mac { | ||||
|     return $macs[0]; | ||||
| } | ||||
|  | ||||
|  | ||||
| sub model { | ||||
|     my $aerohive = shift; | ||||
|     my $descr    = $aerohive->description(); | ||||
|  | ||||
|     if ( $descr =~ m/\b(?:Hive|)(AP\d+)\b/ix ) { | ||||
|     if ( defined ($descr) && $descr =~ m/\b(?:Hive|)(AP\d+)\b/ix ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -221,7 +221,10 @@ sub bp_index { | ||||
|     my $aerohive = shift; | ||||
|     my $partial  = shift; | ||||
|  | ||||
|     my $i_index = $aerohive->i_index($partial) || {}; | ||||
|     # somewhere caching is doing something strange, without load_ | ||||
|     # netdisco can't find bp_index mappings & will not registerer | ||||
|     # any clients. netdisco/netdisco#496 | ||||
|     my $i_index = $aerohive->load_i_index($partial) || {}; | ||||
|  | ||||
|     my %bp_index; | ||||
|     foreach my $iid ( keys %$i_index ) { | ||||
| @@ -341,11 +344,6 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from an | ||||
| Aerohive wireless Access Point through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $aerohive = new SNMP::Info::Layer2::Aerohive(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -29,8 +29,8 @@ | ||||
| package SNMP::Info::Layer2::Airespace; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::CDP; | ||||
| use SNMP::Info::Airespace; | ||||
|  | ||||
| @@ -38,9 +38,9 @@ use SNMP::Info::Airespace; | ||||
|     = qw/SNMP::Info::Airespace SNMP::Info::CDP SNMP::Info::Bridge Exporter/; | ||||
| @SNMP::Info::Layer2::Airespace::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS,      %SNMP::Info::Bridge::MIBS, | ||||
| @@ -272,11 +272,6 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from | ||||
| Cisco (Airespace) Wireless Controllers through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $airespace = new SNMP::Info::Layer2::Airespace(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Aironet | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008-2009 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,9 +32,9 @@ | ||||
| package SNMP::Info::Layer2::Aironet; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::Entity; | ||||
| use SNMP::Info::EtherLike; | ||||
| use SNMP::Info::CiscoStats; | ||||
| use SNMP::Info::CiscoConfig; | ||||
| @@ -43,30 +42,28 @@ use SNMP::Info::CDP; | ||||
| use SNMP::Info::IEEE802dot11; | ||||
|  | ||||
| @SNMP::Info::Layer2::Aironet::ISA | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::Entity SNMP::Info::EtherLike | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::EtherLike | ||||
|     SNMP::Info::CiscoStats SNMP::Info::CiscoConfig SNMP::Info::CDP Exporter/; | ||||
| @SNMP::Info::Layer2::Aironet::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::IEEE802dot11::GLOBALS, | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::Entity::GLOBALS, | ||||
|     %SNMP::Info::EtherLike::GLOBALS, | ||||
|     %SNMP::Info::CiscoStats::GLOBALS, | ||||
|     %SNMP::Info::CiscoConfig::GLOBALS, | ||||
|     %SNMP::Info::CDP::GLOBALS, | ||||
|     'serial' => 'entPhysicalSerialNum.1', | ||||
|     'ps1_type' => 'cpoePdCurrentPowerSource' | ||||
|     'ps1_type' => 'cpoePdCurrentPowerSource', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::IEEE802dot11::FUNCS, | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::Entity::FUNCS, | ||||
|     %SNMP::Info::EtherLike::FUNCS, | ||||
|     %SNMP::Info::CiscoStats::FUNCS, | ||||
|     %SNMP::Info::CiscoConfig::FUNCS, | ||||
| @@ -88,7 +85,6 @@ $VERSION = '3.66'; | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::IEEE802dot11::MIBS, | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     %SNMP::Info::Entity::MIBS, | ||||
|     %SNMP::Info::EtherLike::MIBS, | ||||
|     %SNMP::Info::CiscoStats::MIBS, | ||||
|     %SNMP::Info::CiscoConfig::MIBS, | ||||
| @@ -103,7 +99,6 @@ $VERSION = '3.66'; | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::IEEE802dot11::MUNGE, | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     %SNMP::Info::Entity::MUNGE, | ||||
|     %SNMP::Info::EtherLike::MUNGE, | ||||
|     %SNMP::Info::CiscoStats::MUNGE, | ||||
|     %SNMP::Info::CiscoConfig::MUNGE, | ||||
| @@ -118,7 +113,6 @@ $VERSION = '3.66'; | ||||
|     = \&SNMP::Info::IEEE802dot11::dot11_cur_tx_pwr_mw; | ||||
|  | ||||
| sub vendor { | ||||
|  | ||||
|     # Sorry, but it's true. | ||||
|     return 'cisco'; | ||||
| } | ||||
| @@ -138,8 +132,13 @@ sub description { | ||||
|     my $descr   = $aironet->SUPER::description(); | ||||
|     my $e_descr = $aironet->e_descr(); | ||||
|  | ||||
|     $descr = "$e_descr->{1}  $descr" if defined $e_descr->{1}; | ||||
|  | ||||
|     if (defined $e_descr->{1}) { | ||||
|       if (defined $descr) { | ||||
|         $descr = "$e_descr->{1}  $descr" | ||||
|       } else { | ||||
|         $descr = "$e_descr->{1}" | ||||
|       } | ||||
|     } | ||||
|     return $descr; | ||||
| } | ||||
|  | ||||
| @@ -527,8 +526,6 @@ my $aironet = new SNMP::Info::Layer2::Aironet(...); | ||||
|  | ||||
| =item SNMP::Info::Layer2 | ||||
|  | ||||
| =item SNMP::Info::Entity | ||||
|  | ||||
| =item SNMP::Info::EtherLike | ||||
|  | ||||
| =item SNMP::Info::CiscoStats | ||||
| @@ -541,6 +538,16 @@ my $aironet = new SNMP::Info::Layer2::Aironet(...); | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<CISCO-DOT11-ASSOCIATION-MIB> | ||||
|  | ||||
| =item F<CISCO-DOT11-IF-MIB> | ||||
|  | ||||
| =item F<CISCO-DOT11-SSID-SECURITY-MIB> | ||||
|  | ||||
| =item F<CISCO-POE-PD-MIB> | ||||
|  | ||||
| =item F<CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB> | ||||
|  | ||||
| =item Inherited Classes | ||||
|  | ||||
| MIBs required by the inherited classes listed above. | ||||
| @@ -567,10 +574,6 @@ System description. Adds info from method e_descr() from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::EtherLike | ||||
|  | ||||
| See documentation in L<SNMP::Info::EtherLike/"GLOBALS"> for details. | ||||
| @@ -668,10 +671,6 @@ C<cpoePdSupportedPowerMode>. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::EtherLike | ||||
|  | ||||
| See documentation in L<SNMP::Info::EtherLike/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Allied | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -31,6 +30,7 @@ | ||||
| package SNMP::Info::Layer2::Allied; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::Layer1; | ||||
| @@ -38,9 +38,9 @@ use SNMP::Info::Layer1; | ||||
| @SNMP::Info::Layer2::Allied::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Allied::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); | ||||
|  | ||||
| @@ -70,7 +70,7 @@ sub os_ver { | ||||
|     my $allied = shift; | ||||
|     my $descr  = $allied->description(); | ||||
|  | ||||
|     if ( $descr =~ m/version (\d+\.\d+)/ ) { | ||||
|     if ( defined ($descr) && $descr =~ m/version (\d+\.\d+)/ ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -78,10 +78,9 @@ sub os_ver { | ||||
|  | ||||
| sub model { | ||||
|     my $allied = shift; | ||||
|  | ||||
|     my $desc = $allied->description(); | ||||
|  | ||||
|     if ( $desc =~ /(AT-80\d{2}\S*)/ ) { | ||||
|     if ( defined ($desc) &&  $desc =~ /(AT-80\d{2}\S*)/ ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -191,7 +190,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $allied->vendor() | ||||
|  | ||||
| Returns 'allied' :) | ||||
| Returns 'allied' | ||||
|  | ||||
| =item $allied->os() | ||||
|  | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Layer2::Atmedia; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Atmedia::ISA       = qw/SNMP::Info::Layer2/; | ||||
| @SNMP::Info::Layer2::Atmedia::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::Layer2::MIBS ); | ||||
|  | ||||
| @@ -68,10 +69,12 @@ sub model { | ||||
|     my $atmedia = shift; | ||||
|  | ||||
|     my $atmedia_model = $atmedia->atm_model(); | ||||
|     $atmedia_model =~ s/\<|\>//g; | ||||
|     $atmedia_model =~ s/\//_/g; | ||||
|  | ||||
|     return $atmedia_model; | ||||
|     if (defined $atmedia_model) { | ||||
|       $atmedia_model =~ s/\<|\>//g; | ||||
|       $atmedia_model =~ s/\//_/g; | ||||
|       return $atmedia_model; | ||||
|     } | ||||
|     return; | ||||
| } | ||||
|  | ||||
| sub vendor { | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Baystack | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # All rights reserved. | ||||
| @@ -31,38 +30,38 @@ | ||||
| package SNMP::Info::Layer2::Baystack; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::SONMP; | ||||
| use SNMP::Info::NortelStack; | ||||
| use SNMP::Info::RapidCity; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer2::Baystack::ISA | ||||
|     = qw/SNMP::Info::SONMP SNMP::Info::NortelStack | ||||
|     SNMP::Info::RapidCity SNMP::Info::LLDP | ||||
|     SNMP::Info::RapidCity | ||||
|     SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer2::Baystack::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS,    %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::RapidCity::MIBS, %SNMP::Info::NortelStack::MIBS, | ||||
|     %SNMP::Info::SONMP::MIBS, | ||||
|     'BAY-STACK-PETH-EXT-MIB' => 'bspePethPsePortExtMeasuredPower', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS,    %SNMP::Info::LLDP::GLOBALS, | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::RapidCity::GLOBALS, %SNMP::Info::NortelStack::GLOBALS, | ||||
|     %SNMP::Info::SONMP::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS,    %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::RapidCity::FUNCS, %SNMP::Info::NortelStack::FUNCS, | ||||
|     %SNMP::Info::SONMP::FUNCS, | ||||
|     'peth_port_power' => 'bspePethPsePortExtMeasuredPower', | ||||
| @@ -74,7 +73,7 @@ $SNMP::Info::SPEED_MAP{200_000_000}   = '100 Mbps'; | ||||
| $SNMP::Info::SPEED_MAP{2_000_000_000} = '1.0 Gbps'; | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE,    %SNMP::Info::LLDP::MUNGE, | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::RapidCity::MUNGE, %SNMP::Info::NortelStack::MUNGE, | ||||
|     %SNMP::Info::SONMP::MUNGE, | ||||
| ); | ||||
| @@ -429,11 +428,6 @@ Provides abstraction to the configuration information obtainable from an | ||||
| Avaya Ethernet Switch (formerly Nortel/Bay Baystack) and VSP 7000 series | ||||
| through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $baystack = new SNMP::Info::Layer2::Baystack(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -444,8 +438,6 @@ my $baystack = new SNMP::Info::Layer2::Baystack(...); | ||||
|  | ||||
| =item SNMP::Info::RapidCity | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =back | ||||
| @@ -454,7 +446,7 @@ my $baystack = new SNMP::Info::Layer2::Baystack(...); | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<BAY-STACK-PETH-EXT-MIBB> | ||||
| =item F<BAY-STACK-PETH-EXT-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -466,8 +458,6 @@ See L<SNMP::Info::NortelStack/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::RapidCity/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -537,10 +527,6 @@ See L<SNMP::Info::NortelStack/"GLOBALS"> for details. | ||||
|  | ||||
| See L<SNMP::Info::RapidCity/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
| @@ -700,10 +686,6 @@ See L<SNMP::Info::NortelStack/"TABLE METHODS"> for details. | ||||
|  | ||||
| See L<SNMP::Info::RapidCity/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::C1900 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,6 +32,7 @@ | ||||
| package SNMP::Info::Layer2::C1900; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::CDP; | ||||
| use SNMP::Info::CiscoStats; | ||||
| @@ -46,9 +46,9 @@ use SNMP::Info::Layer2; | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer2::C1900::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
| @@ -311,11 +311,6 @@ Catalyst 1900 device through SNMP.  See SNMP::Info for full documentation | ||||
|  | ||||
| Note that most of these devices only talk SNMP version 1, but not all. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $c1900 = new SNMP::Info::Layer2::C1900(...); | ||||
|  | ||||
| =head2 Inherited classes | ||||
|  | ||||
| =over | ||||
| @@ -342,8 +337,6 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| F<ESSWITCH-MIB> is included in the Version 1 MIBs from Cisco. | ||||
|  | ||||
| They can be found at ftp://ftp.cisco.com/pub/mibs/v1/v1.tar.gz | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Inherited MIBs | ||||
| @@ -386,7 +379,7 @@ the version from there. | ||||
|  | ||||
| =item $c1900->vendor() | ||||
|  | ||||
| Returns 'cisco' :) | ||||
| Returns 'cisco' | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -420,10 +413,6 @@ See L<SNMP::Info::CiscoConfig/"GLOBALS"> for details. | ||||
|  | ||||
| See L<SNMP::Info::CiscoStpExtensions/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::CiscoAgg | ||||
|  | ||||
| See L<SNMP::Info::CiscoAgg/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::C2900 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Layer2::C2900; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2::Cisco; | ||||
|  | ||||
| @SNMP::Info::Layer2::C2900::ISA = qw/SNMP::Info::Layer2::Cisco Exporter/; | ||||
| @SNMP::Info::Layer2::C2900::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::Cisco::GLOBALS, | ||||
| @@ -244,11 +244,6 @@ Max Baker | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| C2900 device through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $c2900 = new SNMP::Info::Layer2::C2900(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -281,7 +276,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $c2900->vendor() | ||||
|  | ||||
| Returns 'cisco' :) | ||||
| Returns 'cisco' | ||||
|  | ||||
| =item $c2900->cisco_comm_indexing() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Catalyst | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2002,2003 Regents of the University of California | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond | ||||
| @@ -32,6 +31,7 @@ | ||||
| package SNMP::Info::Layer2::Catalyst; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::CiscoStack; | ||||
| use SNMP::Info::Layer2::Cisco; | ||||
| @@ -40,9 +40,9 @@ use SNMP::Info::Layer2::Cisco; | ||||
|     = qw/SNMP::Info::CiscoStack SNMP::Info::Layer2::Cisco Exporter/; | ||||
| @SNMP::Info::Layer2::Catalyst::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::Cisco::MIBS, | ||||
| @@ -64,7 +64,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::CiscoStack::MUNGE, | ||||
| ); | ||||
|  | ||||
| # Overidden Methods | ||||
| # Overridden Methods | ||||
|  | ||||
| # i_physical sets a hash entry as true if the iid is a physical port | ||||
| sub i_physical { | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Centillion | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,9 +30,9 @@ | ||||
| package SNMP::Info::Layer2::Centillion; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::NortelStack; | ||||
| use SNMP::Info::SONMP; | ||||
|  | ||||
| @@ -41,9 +40,9 @@ use SNMP::Info::SONMP; | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::NortelStack SNMP::Info::SONMP Exporter/; | ||||
| @SNMP::Info::Layer2::Centillion::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
| @@ -292,11 +291,6 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| Centillion device through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $centillion = new SNMP::Info::Layer2::centillion(...); | ||||
|  | ||||
| Note:  This class supports version 4.X and 5.X which are VLAN based rather | ||||
| than bridge group based. | ||||
|  | ||||
| @@ -328,7 +322,7 @@ than bridge group based. | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info/"REQUIREMENTS"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| @@ -346,7 +340,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $centillion->vendor() | ||||
|  | ||||
| Returns 'Nortel' | ||||
| Returns 'nortel' | ||||
|  | ||||
| =item $centillion->model() | ||||
|  | ||||
| @@ -357,7 +351,7 @@ Removes C<sreg-> from the model name | ||||
|  | ||||
| =item $centillion->os() | ||||
|  | ||||
| Returns 'Centillion' | ||||
| Returns 'centillion' | ||||
|  | ||||
| =item $centillion->tftp_action() | ||||
|  | ||||
| @@ -399,7 +393,7 @@ start at 0.  Returns 0. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| @@ -513,7 +507,7 @@ Returns reference to hash.  Key: Table entry, Value: VLAN Type | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Cisco | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -31,6 +30,7 @@ | ||||
| package SNMP::Info::Layer2::Cisco; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::CiscoVTP; | ||||
| use SNMP::Info::CDP; | ||||
| @@ -50,9 +50,9 @@ use SNMP::Info::Layer2; | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer2::Cisco::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -194,7 +194,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $cisco->vendor() | ||||
|  | ||||
|     Returns 'cisco' | ||||
| Returns 'cisco' | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -226,10 +226,6 @@ See documentation in L<SNMP::Info::CiscoPortSecurity/"GLOBALS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoStpExtensions/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::CiscoAgg | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoAgg/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|   | ||||
| @@ -34,61 +34,60 @@ | ||||
| package SNMP::Info::Layer2::CiscoSB; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::Entity; | ||||
| use SNMP::Info::EtherLike; | ||||
| use SNMP::Info::CiscoStats; | ||||
| use SNMP::Info::CiscoConfig; | ||||
| use SNMP::Info::CDP; | ||||
|  | ||||
| @SNMP::Info::Layer2::CiscoSB::ISA | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::Entity SNMP::Info::EtherLike | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::EtherLike | ||||
|     SNMP::Info::CiscoStats SNMP::Info::CiscoConfig SNMP::Info::CDP Exporter/; | ||||
| @SNMP::Info::Layer2::CiscoSB::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::Entity::GLOBALS, | ||||
|     %SNMP::Info::EtherLike::GLOBALS, | ||||
|     %SNMP::Info::CiscoStats::GLOBALS, | ||||
|     %SNMP::Info::CiscoConfig::GLOBALS, | ||||
|     %SNMP::Info::CDP::GLOBALS, | ||||
|     'descr'  => 'sysDescr' | ||||
|     'descr'  => 'sysDescr', | ||||
|     'mac'    => 'rndBasePhysicalAddress', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::Entity::FUNCS, | ||||
|     %SNMP::Info::EtherLike::FUNCS, | ||||
|     %SNMP::Info::CiscoStats::FUNCS, | ||||
|     %SNMP::Info::CiscoConfig::FUNCS, | ||||
|     %SNMP::Info::CDP::FUNCS, | ||||
|     'peth_port_power' => 'rlPethPsePortOutputPower', | ||||
| ); | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     %SNMP::Info::Entity::MIBS, | ||||
|     %SNMP::Info::EtherLike::MIBS, | ||||
|     %SNMP::Info::CiscoStats::MIBS, | ||||
|     %SNMP::Info::CiscoConfig::MIBS, | ||||
|     %SNMP::Info::CDP::MIBS, | ||||
|     'CISCOSB-POE-MIB'          => 'rlPethPsePortOutputPower', | ||||
|     'CISCOSB-DEVICEPARAMS-MIB' => 'rndBasePhysicalAddress', | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     %SNMP::Info::Entity::MUNGE, | ||||
|     %SNMP::Info::EtherLike::MUNGE, | ||||
|     %SNMP::Info::CiscoStats::MUNGE, | ||||
|     %SNMP::Info::CiscoConfig::MUNGE, | ||||
|     %SNMP::Info::CDP::MUNGE, | ||||
| ); | ||||
|  | ||||
|  | ||||
| sub vendor { | ||||
|     return 'cisco'; | ||||
| } | ||||
| @@ -137,6 +136,26 @@ sub model { | ||||
|     return $ciscosb->description(); | ||||
| } | ||||
|  | ||||
| # CISCOSBinterfaces.mib also contains duplex info if needed | ||||
| sub i_duplex { | ||||
|     my $ciscosb = shift; | ||||
|     my $partial = shift; | ||||
|  | ||||
|     my $el_duplex = $ciscosb->el_duplex($partial); | ||||
|  | ||||
|     if ( defined $el_duplex and scalar( keys %$el_duplex ) ) { | ||||
|         my %i_duplex; | ||||
|         foreach my $el_port ( keys %$el_duplex ) { | ||||
|             my $duplex = $el_duplex->{$el_port}; | ||||
|             next unless defined $duplex; | ||||
|  | ||||
|             $i_duplex{$el_port} = 'half' if $duplex =~ /half/i; | ||||
|             $i_duplex{$el_port} = 'full' if $duplex =~ /full/i; | ||||
|         } | ||||
|         return \%i_duplex; | ||||
|     } | ||||
| } | ||||
|  | ||||
| # ifDescr is the same for all interfaces in a class, but the ifName is | ||||
| # unique, so let's use that for port name. | ||||
| sub interfaces { | ||||
| @@ -189,8 +208,6 @@ managed switches. [i.e. those matching enterprises(1).cisco(9).otherEnterprises( | ||||
|  | ||||
| =item SNMP::Info::CiscoStats | ||||
|  | ||||
| =item SNMP::Info::Entity | ||||
|  | ||||
| =item SNMP::Info::EtherLike | ||||
|  | ||||
| =item SNMP::Info::Layer2 | ||||
| @@ -201,6 +218,10 @@ managed switches. [i.e. those matching enterprises(1).cisco(9).otherEnterprises( | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<CISCOSB-DEVICEPARAMS-MIB> | ||||
|  | ||||
| =item F<CISCOSB-POE-MIB> | ||||
|  | ||||
| =item Inherited Classes | ||||
|  | ||||
| MIBs required by the inherited classes listed above. | ||||
| @@ -213,6 +234,10 @@ These are methods that return scalar value from SNMP. | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $ciscosb->mac() | ||||
|  | ||||
| Returns mac from (C<rndBasePhysicalAddress>) | ||||
|  | ||||
| =item $ciscosb->os_ver() | ||||
|  | ||||
| Returns software version (C<entPhysicalSoftwareRev>) | ||||
| @@ -246,16 +271,25 @@ Returns 'ros'. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::EtherLike | ||||
|  | ||||
| See documentation in L<SNMP::Info::EtherLike/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $ciscosb->peth_port_power() | ||||
|  | ||||
| Power supplied by PoE ports, in milliwatts. | ||||
| (C<rlPethPsePortOutputPower>) | ||||
|  | ||||
| =item $ciscosb->i_duplex() | ||||
|  | ||||
| Return duplex based upon the result of EtherLike->el_duplex(). | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Overrides | ||||
|  | ||||
| =over | ||||
| @@ -270,10 +304,6 @@ Uses the i_name() field. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::EtherLike | ||||
|  | ||||
| See documentation in L<SNMP::Info::EtherLike/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -30,6 +30,7 @@ | ||||
| package SNMP::Info::Layer2::Exinda; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
|  | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| @@ -40,9 +41,9 @@ use SNMP::Info::Layer2; | ||||
| /; | ||||
| @SNMP::Info::Layer2::Exinda::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -52,9 +53,10 @@ $VERSION = '3.66'; | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     # EXINDA-MIB | ||||
|     'uptime' => 'systemUptime', | ||||
|     'os_ver' => 'systemVersion', | ||||
|     'serial1' => 'systemHostId', | ||||
|     'exinda_model' => 'hardwareSeries', | ||||
|     'serial1'      => 'systemHostId', | ||||
|     'uptime'       => 'systemUptime', | ||||
|     'os_ver'       => 'systemVersion', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
| @@ -65,10 +67,11 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
| ); | ||||
|  | ||||
|  | ||||
| # layer 2: bridged shaping and failopen interfaces | ||||
| # layer 3/4: ip and layer 4 protocol fiddling and accell | ||||
| # layer 7: wccp support | ||||
| sub layers { | ||||
|     # layer 2: bridged shaping and failopen interfaces | ||||
|     # layer 3/4: ip and layer 4 protocol fiddling and accell | ||||
|     # layer 7: wccp supprt | ||||
|     return '01001110'; | ||||
| } | ||||
|  | ||||
| @@ -76,21 +79,19 @@ sub vendor { | ||||
|     return 'exinda'; | ||||
| } | ||||
|  | ||||
| # overwrite l2->model, hardwareSeries returns a plain string | ||||
| sub model { | ||||
|     my $exinda = shift; | ||||
|  | ||||
|     return $exinda->hardwareSeries(); | ||||
|     return $exinda->exinda_model; | ||||
| } | ||||
|  | ||||
| # systemHostId (and thus serial1) is actually also a mac address | ||||
| sub mac { | ||||
|     # systemHostId is actually also a mac address | ||||
|     my $exinda = shift; | ||||
|     my $exinda_mac = $exinda->systemHostId(); | ||||
|     my $exinda_mac = $exinda->serial1; | ||||
|  | ||||
|     $exinda_mac =~ s/(..)/$1:/g; | ||||
|     chop $exinda_mac; | ||||
|  | ||||
|     return $exinda_mac; | ||||
|     return unless (defined $exinda_mac && (length $exinda_mac) == 12); | ||||
|     return join(":", $exinda_mac =~ m/\w{2}/g); | ||||
| } | ||||
|  | ||||
| sub os { | ||||
| @@ -164,7 +165,7 @@ Returns a mac address extracted from C<systemHostId>. | ||||
|  | ||||
| =item $exinda->model() | ||||
|  | ||||
| Returns the model extracted from C<hardwareSeries>. | ||||
| Returns C<hardwareSeries>. | ||||
|  | ||||
| =item $exinda->os() | ||||
|  | ||||
| @@ -172,11 +173,7 @@ Returns 'exos'. | ||||
|  | ||||
| =item $exinda->os_ver() | ||||
|  | ||||
| Returns the os version extracted from C<systemVersion>. | ||||
|  | ||||
| =item $exinda->serial1() | ||||
|  | ||||
| Returns the serial extracted from C<systemHostId>. | ||||
| Returns C<systemVersion>. | ||||
|  | ||||
| =item $exinda->uptime() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::HP - SNMP Interface to HP ProCurve Switches | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008-2009 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,6 +32,7 @@ | ||||
| package SNMP::Info::Layer2::HP; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::MAU; | ||||
| @@ -48,9 +48,9 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack'; | ||||
| /; | ||||
| @SNMP::Info::Layer2::HP::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|   | ||||
| @@ -32,6 +32,7 @@ | ||||
| package SNMP::Info::Layer2::HP4000; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::MAU; | ||||
| @@ -42,14 +43,13 @@ use SNMP::Info::CDP; | ||||
|     SNMP::Info::CDP Exporter/; | ||||
| @SNMP::Info::Layer2::HP4000::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::CDP::MIBS, | ||||
|     'RFC1271-MIB'    => 'logDescription', | ||||
|     'HP-ICF-OID'     => 'hpSwitch4000', | ||||
| @@ -427,7 +427,7 @@ sub set_i_vlan { | ||||
|                     $hp->error_throw("Error removing previous untagged vlan from port, should never happen...\n") unless defined $rv; | ||||
|                 } | ||||
|             } else { | ||||
|                 # If vlan change was not succesful, try to revert to the old situation. | ||||
|                 # If vlan change was not successful, try to revert to the old situation. | ||||
|                 if (defined $old_untagged) { | ||||
|                     $rv = $hp->set_hp_v_if_tag(2, $old_untagged) if defined $old_untagged; | ||||
|                     if (defined $rv) { | ||||
| @@ -504,11 +504,6 @@ Note:  Some HP Switches will connect via SNMP version 1, but a lot of config | ||||
| data will not be available.  Make sure you try and connect with Version 2 | ||||
| first, and then fail back to version 1. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $hp = new SNMP::Info::Layer2::HP4000(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -31,21 +31,20 @@ | ||||
| package SNMP::Info::Layer2::HPVC; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer2::HPVC::ISA | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::LLDP Exporter/; | ||||
|     = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::HPVC::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'HPVC-MIB'       => 'vcDomainName', | ||||
|     'CPQSINFO-MIB'   => 'cpqSiSysSerialNum', | ||||
|     'HPVCMODULE-MIB' => 'vcModuleDomainName', | ||||
| @@ -53,7 +52,6 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'serial1'      => 'cpqSiSysSerialNum.0', | ||||
|     'os_ver'       => 'cpqHoSWRunningVersion.1', | ||||
|     'os_bin'       => 'cpqHoFwVerVersion.1', | ||||
| @@ -62,17 +60,13 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|  | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     # Inherit all the built in munging | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| ); | ||||
|  | ||||
|  | ||||
| # Method Overrides | ||||
|  | ||||
| sub os { | ||||
| @@ -120,11 +114,6 @@ Jeroen van Ingen | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| HP Virtual Connect Switch via SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $hp = new SNMP::Info::Layer2::HPVC(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -28,15 +28,16 @@ package SNMP::Info::Layer2::Kentrox; | ||||
| # POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Kentrox::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Kentrox::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -57,13 +58,13 @@ $VERSION = '3.66'; | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, ); | ||||
|  | ||||
| sub os { | ||||
|     return 'Kentrox'; | ||||
|     return 'kentrox'; | ||||
| } | ||||
|  | ||||
| sub os_ver { | ||||
|     my $dsver = shift; | ||||
|     my $descr = $dsver->description(); | ||||
|     if ( $descr =~ /^\S+\s\S+\s\S+\s(\S+)/){ | ||||
|     if ( defined ($descr) && $descr =~ /^\S+\s\S+\s\S+\s(\S+)/){ | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -72,20 +73,20 @@ sub os_ver { | ||||
| sub serial { | ||||
|     my $dsserial = shift; | ||||
|     my $serial = $dsserial->ds_sysinfo(); | ||||
|     if ( $serial =~ /SERIAL\s(\S+)/){ | ||||
|     if ( defined ($serial) && $serial =~ /SERIAL\s(\S+)/){ | ||||
|         my $str = substr($1,8,10); | ||||
|         return $str; | ||||
|     } | ||||
|     return; | ||||
| } | ||||
| sub vendor { | ||||
|     return 'Kentrox'; | ||||
|     return 'kentrox'; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
|     my $dsmodel = shift; | ||||
|     my $descr = $dsmodel->description(); | ||||
|     if ( $descr =~ /^(\S+\s\S+)/){ | ||||
|     if ( defined ($descr) && $descr =~ /^(\S+\s\S+)/){ | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -110,7 +111,7 @@ phishphreek@gmail.com | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myrouter', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::N2270 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,38 +30,42 @@ | ||||
| package SNMP::Info::Layer2::N2270; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::SONMP; | ||||
| use SNMP::Info::Airespace; | ||||
|  | ||||
| @SNMP::Info::Layer2::N2270::ISA | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::SONMP SNMP::Info::Airespace Exporter/; | ||||
|     = qw/SNMP::Info::Layer2 SNMP::Info::SONMP SNMP::Info::Airespace Exporter/; | ||||
| @SNMP::Info::Layer2::N2270::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS,        %SNMP::Info::Bridge::MIBS, | ||||
|     %SNMP::Info::SONMP::MIBS, %SNMP::Info::Airespace::MIBS, | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     %SNMP::Info::SONMP::MIBS, | ||||
|     %SNMP::Info::Airespace::MIBS, | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS,        %SNMP::Info::Bridge::GLOBALS, | ||||
|     %SNMP::Info::SONMP::GLOBALS, %SNMP::Info::Airespace::GLOBALS, | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     %SNMP::Info::SONMP::GLOBALS, | ||||
|     %SNMP::Info::Airespace::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS,        %SNMP::Info::Bridge::FUNCS, | ||||
|     %SNMP::Info::SONMP::FUNCS, %SNMP::Info::Airespace::FUNCS, | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::SONMP::FUNCS, | ||||
|     %SNMP::Info::Airespace::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::MUNGE,        %SNMP::Info::Bridge::MUNGE, | ||||
|     %SNMP::Info::SONMP::MUNGE, %SNMP::Info::Airespace::MUNGE, | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     %SNMP::Info::SONMP::MUNGE, | ||||
|     %SNMP::Info::Airespace::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub os { | ||||
| @@ -126,18 +129,11 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from a | ||||
| Nortel 2270 Series Wireless Switch through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $n2270 = new SNMP::Info::Layer2::N2270(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info | ||||
|  | ||||
| =item SNMP::Info::Bridge | ||||
| =item SNMP::Info::Layer2 | ||||
|  | ||||
| =item SNMP::Info::SONMP | ||||
|  | ||||
| @@ -151,9 +147,7 @@ my $n2270 = new SNMP::Info::Layer2::N2270(...); | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::SONMP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| @@ -200,13 +194,9 @@ start at 0.  Returns 0. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
| =head2 Globals imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::SONMP | ||||
|  | ||||
| @@ -229,13 +219,9 @@ to a hash. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
| =head2 Table Methods imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::SONMP | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::NAP222x | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,6 +30,7 @@ | ||||
| package SNMP::Info::Layer2::NAP222x; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::SONMP; | ||||
| use SNMP::Info::IEEE802dot11; | ||||
| @@ -40,9 +40,9 @@ use SNMP::Info::Layer2; | ||||
|     = qw/SNMP::Info::SONMP SNMP::Info::IEEE802dot11 SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::NAP222x::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS, | ||||
| @@ -393,11 +393,6 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from a Nortel | ||||
| 2220 series wireless Access Points through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $nap222x = new SNMP::Info::Layer2::NAP222x(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -29,21 +29,20 @@ | ||||
| package SNMP::Info::Layer2::NWSS2300; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::NWSS2300::ISA | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge Exporter/; | ||||
|     = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::NWSS2300::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
|     %SNMP::Info::Bridge::MIBS, | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     'NTWS-REGISTRATION-DEVICES-MIB' => 'ntwsSwitch2380', | ||||
|     'NTWS-AP-STATUS-MIB'            => 'ntwsApStatNumAps', | ||||
|     'NTWS-CLIENT-SESSION-MIB'       => 'ntwsClSessTotalSessions', | ||||
| @@ -53,16 +52,14 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     %SNMP::Info::Bridge::GLOBALS, | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     'os_ver' => 'ntwsVersionString', | ||||
|     'serial' => 'ntwsSerialNumber', | ||||
|     'mac'    => 'dot1dBaseBridgeAddress', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS, | ||||
|     %SNMP::Info::Bridge::FUNCS, | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|  | ||||
|     # NTWS-AP-STATUS-MIB::ntwsApStatApStatusTable | ||||
|     'nwss2300_ap_mac'      => 'ntwsApStatApStatusBaseMac', | ||||
| @@ -125,8 +122,7 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::MUNGE, | ||||
|     %SNMP::Info::Bridge::MUNGE, | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     'nwss2300_apif_mac'      => \&SNMP::Info::munge_mac, | ||||
|     'nwss2300_apif_bssid'    => \&SNMP::Info::munge_mac, | ||||
| ); | ||||
| @@ -813,18 +809,11 @@ This class emulates bridge functionality for the wireless switch. This enables | ||||
| end station MAC addresses collection and correlation to the thin access point | ||||
| the end station is using for communication. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $nwss2300 = new SNMP::Info::Layer2::NWSS2300(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info | ||||
|  | ||||
| =item SNMP::Info::Bridge | ||||
| =item SNMP::Info::Layer2 | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -846,9 +835,7 @@ my $nwss2300 = new SNMP::Info::Layer2::NWSS2300(...); | ||||
|  | ||||
| =head2 Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| @@ -895,13 +882,9 @@ proprietary MIBs. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info | ||||
| =head2 Global Methods imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| @@ -1141,13 +1124,9 @@ These emulate the F<CISCO-DOT11-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
| =head2 Table Methods imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Overrides | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Netgear | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bill Fenner | ||||
| # All rights reserved. | ||||
| @@ -31,33 +30,33 @@ | ||||
| package SNMP::Info::Layer2::Netgear; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer2::Netgear::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Netgear::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Netgear::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # This will be filled in with the device's index into the EntPhysicalEntry | ||||
| # table by the serial() function. | ||||
| our $index = undef; | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::Layer2::MIBS, %SNMP::Info::LLDP::MIBS, ); | ||||
| %MIBS = ( %SNMP::Info::Layer2::MIBS, ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer2::GLOBALS, %SNMP::Info::LLDP::GLOBALS, | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     ng_fsosver   => '.1.3.6.1.4.1.4526.11.11.1.0', | ||||
|     ng_gsmserial => '.1.3.6.1.4.1.4526.10.1.1.1.4.0', | ||||
|     ng_gsmosver  => '.1.3.6.1.4.1.4526.10.1.1.1.13.0', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( %SNMP::Info::Layer2::FUNCS, %SNMP::Info::LLDP::FUNCS, ); | ||||
| %FUNCS = ( %SNMP::Info::Layer2::FUNCS, ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::LLDP::MUNGE, ); | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'netgear'; | ||||
| @@ -87,7 +86,7 @@ sub serial { | ||||
|         return $e_serial->{$index} if defined $index; | ||||
|     } | ||||
|  | ||||
|     # Without Enitity-MIB, we've got to work our way through a bunch of | ||||
|     # Without Entity-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/[FG]SM\d/i;; | ||||
|     return 'none'; | ||||
| @@ -109,7 +108,7 @@ sub model { | ||||
|  | ||||
| # ifDescr is the same for all interfaces in a class, but the ifName is | ||||
| # unique, so let's use that for port name.  If all else fails, | ||||
| # concatentate ifDesc and ifIndex. | ||||
| # concatenate ifDesc and ifIndex. | ||||
| sub interfaces { | ||||
|     my $netgear = shift; | ||||
|     my $partial = shift; | ||||
| @@ -192,8 +191,6 @@ inherited methods. | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info::Layer2 | ||||
| =item SNMP::Info::Entity | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -206,10 +203,6 @@ inherited methods. | ||||
| MIBs listed in L<SNMP::Info::Layer2/"Required MIBs"> and its inherited | ||||
| classes. | ||||
|  | ||||
| See L<SNMP::Info::Entity/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -248,14 +241,6 @@ serial number). | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of | ||||
| @@ -275,12 +260,4 @@ Uses the i_name() field. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Layer2::Nexans; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Nexans::ISA = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Nexans::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -157,11 +158,6 @@ tested devices: | ||||
|     gigaSwitch641DeskSfpTp version 3.68, 4.14W | ||||
|     gigaSwitchV3d2SfpSfp version 3.68, 4.02, 4.02B, 4.10C, 4,14W | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|     my $nexans = new SNMP::Info::Layer2::Nexans(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::Orinoco | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,6 +30,7 @@ | ||||
| package SNMP::Info::Layer2::Orinoco; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::IEEE802dot11; | ||||
| use SNMP::Info::Layer2; | ||||
| @@ -39,9 +39,9 @@ use SNMP::Info::Layer2; | ||||
|     = qw/SNMP::Info::IEEE802dot11 SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Orinoco::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
| @@ -189,11 +189,6 @@ Provides abstraction to the configuration information obtainable from | ||||
| Orinoco Access Point through SNMP.  Orinoco devices have been manufactured | ||||
| by Proxim, Agere, and Lucent. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $orinoco = new SNMP::Info::Layer2::Orinoco(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -234,7 +229,7 @@ Returns the model extracted from C<sysDescr>. | ||||
|  | ||||
| =item $orinoco->os() | ||||
|  | ||||
| Returns 'Orinoco' | ||||
| Returns 'orinoco' | ||||
|  | ||||
| =item $orinoco->os_ver() | ||||
|  | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Layer2::Sixnet; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Sixnet::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Sixnet::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',); | ||||
|  | ||||
| @@ -108,11 +109,6 @@ Eric Miller | ||||
| SNMP::Info::Layer2::Sixnet is a subclass of SNMP::Info that provides an | ||||
| interface to Sixnet industrial switches. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $sixnet = new SNMP::Info::Layer2::Sixnet(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -29,23 +29,20 @@ | ||||
| package SNMP::Info::Layer2::Trapeze; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::Trapeze::ISA | ||||
|     = qw/SNMP::Info SNMP::Info::Bridge SNMP::Info::LLDP Exporter/; | ||||
|     = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Trapeze::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
|     %SNMP::Info::Bridge::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     'TRAPEZE-NETWORKS-REGISTRATION-DEVICES-MIB' => 'wirelessLANController', | ||||
|     'TRAPEZE-NETWORKS-AP-STATUS-MIB'            => 'trpzApStatNumAps', | ||||
|     'TRAPEZE-NETWORKS-CLIENT-SESSION-MIB'       => 'trpzClSessTotalSessions', | ||||
| @@ -55,18 +52,14 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     %SNMP::Info::Bridge::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     %SNMP::Info::Layer2::GLOBALS, | ||||
|     'os_ver' => 'trpzVersionString', | ||||
|     'serial' => 'trpzSerialNumber', | ||||
|     'mac'    => 'dot1dBaseBridgeAddress', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS, | ||||
|     %SNMP::Info::Bridge::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     # TRAPEZE-NETWORKS-AP-STATUS-MIB::trpzApStatApStatusTable | ||||
|     'trapeze_ap_mac'      => 'trpzApStatApStatusBaseMac', | ||||
|     'trapeze_ap_name'     => 'trpzApStatApStatusApName', | ||||
| @@ -128,9 +121,7 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::MUNGE, | ||||
|     %SNMP::Info::Bridge::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
|     %SNMP::Info::Layer2::MUNGE, | ||||
|     'trapeze_apif_mac'      => \&SNMP::Info::munge_mac, | ||||
|     'trapeze_apif_bssid'    => \&SNMP::Info::munge_mac, | ||||
| ); | ||||
| @@ -817,18 +808,11 @@ This class emulates bridge functionality for the wireless switch. This enables | ||||
| end station MAC addresses collection and correlation to the thin access point | ||||
| the end station is using for communication. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $trapeze = new SNMP::Info::Layer2::Trapeze(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info | ||||
|  | ||||
| =item SNMP::Info::Bridge | ||||
| =item SNMP::Info::Layer2 | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -850,9 +834,7 @@ my $trapeze = new SNMP::Info::Layer2::Trapeze(...); | ||||
|  | ||||
| =head2 Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its own MIB requirements. | ||||
| See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| @@ -899,13 +881,9 @@ proprietary MIBs. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info | ||||
| =head2 Global Methods imported from SNMP::Info::Layer2 | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| @@ -1147,11 +1125,7 @@ These emulate the F<CISCO-DOT11-MIB> | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details. | ||||
| See documentation in L<SNMP::Info::Layer2/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Overrides | ||||
|  | ||||
|   | ||||
| @@ -29,6 +29,7 @@ | ||||
| package SNMP::Info::Layer2::Ubiquiti; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::IEEE802dot11; | ||||
| use SNMP::Info::Layer2; | ||||
| @@ -40,23 +41,23 @@ use SNMP::Info::Layer3;  # only used in sub mac() | ||||
|     = qw/SNMP::Info::IEEE802dot11 SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::Ubiquiti::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, | ||||
|     %SNMP::Info::IEEE802dot11::MIBS, | ||||
|  | ||||
| ); | ||||
|  | ||||
| %GLOBALS | ||||
|     = ( %SNMP::Info::Layer2::GLOBALS, %SNMP::Info::IEEE802dot11::GLOBALS, ); | ||||
| %GLOBALS = ( | ||||
|   %SNMP::Info::Layer2::GLOBALS, | ||||
|   %SNMP::Info::IEEE802dot11::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer2::FUNCS, | ||||
|     %SNMP::Info::IEEE802dot11::FUNCS, | ||||
|  | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::IEEE802dot11::MUNGE, ); | ||||
| @@ -70,14 +71,14 @@ sub os { | ||||
|         my $prod = $names->{$iid}; | ||||
|         next unless defined $prod; | ||||
|         # Product names that match AirOS products | ||||
|                 if((lc $prod) =~ /station/ or (lc $prod) =~ /beam/ or (lc $prod) =~ /grid/){ | ||||
|                         return 'AirOS'; | ||||
|                 # Product names that match UAP | ||||
|                 }elsif((lc $prod) =~ /uap/){ | ||||
|                         return 'UniFi'; | ||||
|                 }else{ | ||||
|                     # Continue below to find OS name | ||||
|                 } | ||||
|         if((lc $prod) =~ /station/ or (lc $prod) =~ /beam/ or (lc $prod) =~ /grid/){ | ||||
|                 return 'AirOS'; | ||||
|         # Product names that match UAP | ||||
|         }elsif((lc $prod) =~ /uap/){ | ||||
|                 return 'UniFi'; | ||||
|         }else{ | ||||
|             # Continue below to find OS name | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     ## EdgeMAX OS (EdgeSwitch and EdgeRouter) name is first field split by space | ||||
| @@ -89,35 +90,54 @@ sub os { | ||||
| } | ||||
|  | ||||
| sub os_ver { | ||||
|     my $dot11 = shift; | ||||
|     my $ubnt = shift; | ||||
|  | ||||
|     my $versions = $dot11->dot11_prod_ver(); | ||||
|     my $versions = $ubnt->dot11_prod_ver(); | ||||
|  | ||||
|     foreach my $iid ( keys %$versions ) { | ||||
|         my $ver = $versions->{$iid}; | ||||
|         next unless defined $ver; | ||||
|         my $os = $ubnt->os; | ||||
|         if($os == 'AirOS'){ | ||||
|             ## pretty up the version reporting for AirOS to include hardware (XW, XM, etc) and three major groups of firmware | ||||
|             my @firmware =  split(/v/, $ver); | ||||
|             my @firmwareSplit = split(/\./, $firmware[1]); | ||||
|             my @prefix = split(/\./, $ver); | ||||
|             $ver = $prefix[0] . '-v' . join('.', @firmwareSplit[0,1,2]); | ||||
|         } | ||||
|         return $ver; | ||||
|         ## Not sure what this function does, it seems to be extraneous being in the same code block after a return statement? | ||||
|         if ( $ver =~ /([\d\.]+)/ ) { | ||||
|             return $1; | ||||
|         } | ||||
|         #if ( $ver =~ /([\d\.]+)/ ) { | ||||
|         #    return $1; | ||||
|         #} | ||||
|     } | ||||
|     my $ver = $dot11->description() || ''; | ||||
|     if($ver =~ /^edgeswitch/){ | ||||
|         ## EdgeSwitch OS version is second field split by comma | ||||
|         my @myver = split(/, /, $ver); | ||||
|  | ||||
|         return $myver[1]; | ||||
|     my $ver = $ubnt->description() || ''; | ||||
|     if((lc $ver) =~ /^edgeswitch/){ | ||||
|         ## EdgeSwitch OS version is second field split by comma and bootcode version is last | ||||
|         my @myver = split(/, /, $ver); | ||||
|         my @firmware = split(/\./, $myver[1]); | ||||
|         my @bootcode = split(/\./, $myver[-1]); | ||||
|  | ||||
|         ## Return only three major version groupings and include bootcode version | ||||
|         return join('.', @firmware[0,1,2]) . '.-b' . join('.', @bootcode[0,1,2]); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     ## EdgeRouter OS version is second field split by space | ||||
|     my @myver = split(/ /, $ver); | ||||
|     my @firmware = split(/\./, $myver[1]); | ||||
|  | ||||
|     return $myver[1]; | ||||
|     if($firmware[2] =~ /hotfix$/){ | ||||
|         # edge case where EdgeOS has hotfix versions in format "EdgeOS v1.9.7+hotfix.4.5024004.171005.0403" | ||||
|         $firmware[2] = $firmware[2] . '.' . $firmware[3] | ||||
|     } | ||||
|     ## Return only three major version groupings | ||||
|     return join('.', @firmware[0,1,2]); | ||||
| } | ||||
|  | ||||
| sub vendor { | ||||
|     return 'Ubiquiti Networks, Inc.'; | ||||
|     return 'ubiquiti'; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
| @@ -142,7 +162,7 @@ sub model { | ||||
|     if(!((lc $desc) =~ /edgeos/)){ | ||||
|         # Not sure what type of device this is to get Model | ||||
|         # Wireless devices report dot11_prod_name | ||||
|         # EdgeSwitch includes mode directly and edgeos logic is in else statement | ||||
|         # EdgeSwitch includes model directly and edgeos logic is in else statement | ||||
|         return ; | ||||
|     }else{ | ||||
|         ## do some logic to determine ER model based on tech specs from ubnt: | ||||
| @@ -304,11 +324,6 @@ Max Kosmach | ||||
| Provides abstraction to the configuration information obtainable from | ||||
| Ubiquiti Access Point through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $ubnt = new SNMP::Info::Layer2::Ubiquiti(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -337,11 +352,11 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $ubnt->vendor() | ||||
|  | ||||
| Returns 'Ubiquiti Networks, Inc.' | ||||
| Returns 'ubiquiti' | ||||
|  | ||||
| =item $ubnt->model() | ||||
|  | ||||
| Returns the model extracted from C<dot11manufacturerProductName>, with failback to some complex logic for EdgeMax devices | ||||
| Returns the model extracted from C<dot11manufacturerProductName>, with fallback to some complex logic for EdgeMax devices | ||||
|  | ||||
| =item $ubnt->serial() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer2::ZyXEL_DSLAM | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::Layer2::ZyXEL_DSLAM; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer2; | ||||
|  | ||||
| @SNMP::Info::Layer2::ZyXEL_DSLAM::ISA       = qw/SNMP::Info::Layer2 Exporter/; | ||||
| @SNMP::Info::Layer2::ZyXEL_DSLAM::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # Set for No CDP | ||||
| %GLOBALS = ( %SNMP::Info::Layer2::GLOBALS ); | ||||
| @@ -77,7 +77,7 @@ sub os_ver { | ||||
|     my $zyxel = shift; | ||||
|     my $descr = $zyxel->description(); | ||||
|  | ||||
|     if ( $descr =~ m/version (\S+) / ) { | ||||
|     if ( defined ($descr) && $descr =~ m/version (\S+) / ) { | ||||
|         return $1; | ||||
|     } | ||||
|     return; | ||||
| @@ -88,11 +88,13 @@ sub model { | ||||
|  | ||||
|     my $desc = $zyxel->description(); | ||||
|  | ||||
|     if ( $desc =~ /8-port ADSL Module\(Annex A\)/ ) { | ||||
|     if (defined $desc) { | ||||
|       if ($desc =~ /8-port ADSL Module\(Annex A\)/) { | ||||
|         return "AAM1008-61"; | ||||
|     } | ||||
|     elsif ( $desc =~ /8-port ADSL Module\(Annex B\)/ ) { | ||||
|       } | ||||
|       elsif ($desc =~ /8-port ADSL Module\(Annex B\)/) { | ||||
|         return "AAM1008-63"; | ||||
|       } | ||||
|     } | ||||
|     return; | ||||
| } | ||||
| @@ -130,11 +132,11 @@ Dmitry Sergienko (C<dmitry@trifle.net>) | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myhub', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
|  my $class      = $l2->class(); | ||||
|  my $class      = $zyxel->class(); | ||||
|  print "SNMP::Info determined this device to fall under subclass : $class\n"; | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
| @@ -174,11 +176,11 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $zyxel->vendor() | ||||
|  | ||||
| Returns 'ZyXEL' :) | ||||
| Returns 'zyxel' | ||||
|  | ||||
| =item $zyxel->os() | ||||
|  | ||||
| Returns 'ZyXEL' | ||||
| Returns 'zyxel' | ||||
|  | ||||
| =item $zyxel->os_ver() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3 - SNMP Interface to Layer3 devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker -- All changes from Version 0.7 on | ||||
| # | ||||
| @@ -33,6 +32,7 @@ | ||||
| package SNMP::Info::Layer3; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Bridge; | ||||
| @@ -42,23 +42,25 @@ use SNMP::Info::PowerEthernet; | ||||
| use SNMP::Info::IPv6; | ||||
| use SNMP::Info::AdslLine; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::DocsisHE; | ||||
|  | ||||
| @SNMP::Info::Layer3::ISA = qw/ | ||||
|     SNMP::Info::PowerEthernet SNMP::Info::IPv6 | ||||
|     SNMP::Info::Entity SNMP::Info::EtherLike | ||||
|     SNMP::Info::Bridge SNMP::Info::AdslLine | ||||
|     SNMP::Info::LLDP | ||||
|     SNMP::Info::LLDP SNMP::Info::DocsisHE | ||||
|     SNMP::Info Exporter/; | ||||
| @SNMP::Info::Layer3::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
|     %SNMP::Info::AdslLine::MIBS, | ||||
|     %SNMP::Info::Bridge::MIBS, | ||||
|     %SNMP::Info::DocsisHE::MIBS, | ||||
|     %SNMP::Info::EtherLike::MIBS, | ||||
|     %SNMP::Info::Entity::MIBS, | ||||
|     %SNMP::Info::PowerEthernet::MIBS, | ||||
| @@ -76,6 +78,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     %SNMP::Info::AdslLine::GLOBALS, | ||||
|     %SNMP::Info::Bridge::GLOBALS, | ||||
|     %SNMP::Info::DocsisHE::GLOBALS, | ||||
|     %SNMP::Info::EtherLike::GLOBALS, | ||||
|     %SNMP::Info::Entity::GLOBALS, | ||||
|     %SNMP::Info::PowerEthernet::GLOBALS, | ||||
| @@ -93,6 +96,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::FUNCS, | ||||
|     %SNMP::Info::AdslLine::FUNCS, | ||||
|     %SNMP::Info::Bridge::FUNCS, | ||||
|     %SNMP::Info::DocsisHE::FUNCS, | ||||
|     %SNMP::Info::EtherLike::FUNCS, | ||||
|     %SNMP::Info::Entity::FUNCS, | ||||
|     %SNMP::Info::PowerEthernet::FUNCS, | ||||
| @@ -167,6 +171,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::AdslLine::MUNGE, | ||||
|     %SNMP::Info::Bridge::MUNGE, | ||||
|     %SNMP::Info::EtherLike::MUNGE, | ||||
|     %SNMP::Info::DocsisHE::MUNGE, | ||||
|     %SNMP::Info::Entity::MUNGE, | ||||
|     %SNMP::Info::PowerEthernet::MUNGE, | ||||
|     %SNMP::Info::IPv6::MUNGE, | ||||
| @@ -325,15 +330,25 @@ sub interfaces { | ||||
|  | ||||
|     # Check for duplicates in ifDescr, if so uniquely identify by adding | ||||
|     # ifIndex to repeated values | ||||
|     my %seen; | ||||
|     foreach my $iid ( keys %$i_descr ) { | ||||
|     my (%seen, %first_seen_as); | ||||
|     foreach my $iid ( sort keys %$i_descr ) { | ||||
|         my $port = $i_descr->{$iid}; | ||||
|         next unless defined $port; | ||||
|  | ||||
|         $port = SNMP::Info::munge_null($port); | ||||
|         $port =~ s/^\s+//; $port =~ s/\s+$//; | ||||
|         next unless length $port; | ||||
|  | ||||
|         if ( $seen{$port}++ ) { | ||||
|             # (#320) also fixup the port this is a duplicate of | ||||
|             $interfaces->{ $first_seen_as{$port} } | ||||
|               = sprintf( "%s (%d)", $port, $first_seen_as{$port} ); | ||||
|  | ||||
|             $interfaces->{$iid} = sprintf( "%s (%d)", $port, $iid ); | ||||
|         } | ||||
|         else { | ||||
|             $interfaces->{$iid} = $port; | ||||
|             $first_seen_as{$port} = $iid; | ||||
|         } | ||||
|     } | ||||
|     return $interfaces; | ||||
| @@ -448,6 +463,10 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::DocsisHE | ||||
|  | ||||
| =item SNMP::Info::AdslLine | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
| @@ -466,7 +485,7 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =head2 Inherited MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its MIB requirements. | ||||
| See L<SNMP::Info/"REQUIREMENTS"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| @@ -480,6 +499,10 @@ See L<SNMP::Info::IPv6/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::DocsisHE/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::AdslLine/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar value from SNMP | ||||
| @@ -538,7 +561,7 @@ found:  OSPF Router ID (C<ospfRouterId>) or any OSPF Host IP Address | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
|  | ||||
| See L<SNMP::Info/"GLOBALS"> for details. | ||||
| See L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| @@ -564,6 +587,14 @@ See L<SNMP::Info::IPv6/"GLOBALS"> for details. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::DocsisHE | ||||
|  | ||||
| See L<SNMP::Info::DocsisHE/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::AdslLine | ||||
|  | ||||
| See L<SNMP::Info::AdslLine/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -593,7 +624,7 @@ Returns reference to hash of iid to current link duplex setting. | ||||
| Maps $l3->el_index() to $l3->el_duplex, then culls out | ||||
| full,half, or auto and sets the map to that value. | ||||
|  | ||||
| See L<SNMP::Info::Etherlike> for the el_index() and el_duplex() methods. | ||||
| See L<SNMP::Info::EtherLike> for the el_index() and el_duplex() methods. | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -880,14 +911,14 @@ Note this returns hash-strings, for IPs, use $l3->isis_peers() | ||||
| =item $l3->isis_peers() | ||||
|  | ||||
| Returns reference to hash of addresses (IPv4, IPv6) on adjacencies. | ||||
| Convers hash strings from isis_adj to proper | ||||
| Convert hash strings from isis_adj to proper | ||||
| IP (v4 and v6) formatting. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See L<SNMP::Info/"TABLE METHODS"> for details. | ||||
| See L<SNMP::Info/"USAGE"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| @@ -913,4 +944,12 @@ See L<SNMP::Info::IPv6/"TABLE METHODS"> for details. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::DocsisHE | ||||
|  | ||||
| See L<SNMP::Info::DocsisHE/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::AdslLine | ||||
|  | ||||
| See L<SNMP::Info::AdslLine/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Aironet | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker changes from version 0.8 and beyond. | ||||
| # | ||||
| @@ -33,15 +32,16 @@ | ||||
| package SNMP::Info::Layer3::Aironet; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::Aironet::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Aironet::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/; | ||||
| our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| @@ -279,9 +279,6 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =back | ||||
|  | ||||
| These MIBs are now included in the v2.tar.gz archive available from | ||||
| ftp.cisco.com.  Make sure you have a current version. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar value from SNMP | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::AlcatelLucent | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bill Fenner | ||||
| # | ||||
| @@ -30,6 +29,7 @@ | ||||
| package SNMP::Info::Layer3::AlcatelLucent; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
|  | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| @@ -47,9 +47,9 @@ use SNMP::Info::LLDP; | ||||
|     SNMP::Info::MAU SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::AlcatelLucent::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| @@ -115,7 +115,9 @@ sub os_ver { | ||||
|    my $alu = shift; | ||||
|  | ||||
|    my $descr = $alu->description(); | ||||
|    return $1 if $descr =~ m/\b(\d[\.\d]+R\d+) (?:GA|Service Release), /; | ||||
|    if (defined ($descr)) { | ||||
|      return $1 if $descr =~ m/\b(\d[\.\d]+R\d+) (?:GA|Service Release), /; | ||||
|    } | ||||
|  | ||||
|    # No clue what this will try but hey | ||||
|    return $alu->SUPER::os_ver(); | ||||
| @@ -370,7 +372,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $alu->vendor() | ||||
|  | ||||
|     Returns 'alcatel-lucent' | ||||
| Returns 'alcatel-lucent' | ||||
|  | ||||
| =item $alu->model() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::AlteonAD | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All Rights Reserved | ||||
| @@ -31,15 +30,16 @@ | ||||
| package SNMP::Info::Layer3::AlteonAD; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::AlteonAD::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::AlteonAD::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| @@ -450,11 +450,6 @@ Eric Miller | ||||
| Abstraction subclass for Radware Alteon Series ADC switches and | ||||
| Nortel BladeCenter Layer2-3 GbE Switch Modules. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $alteon = new SNMP::Info::Layer3::AlteonAD(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Altiga | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Jeroen van Ingen Schenau | ||||
| # All rights reserved. | ||||
| @@ -31,16 +30,17 @@ | ||||
| package SNMP::Info::Layer3::Altiga; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::Altiga::ISA = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Altiga::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE | ||||
|             $int_include_vpn $fake_idx $type_class/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE, | ||||
|             $int_include_vpn, $fake_idx, $type_class); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|             %SNMP::Info::Layer3::MIBS, | ||||
| @@ -281,7 +281,7 @@ Jeroen van Ingen Schenau | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'my_vpn_host', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -304,6 +304,12 @@ Subclass for Cisco (formerly Altiga) VPN concentrators | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<ALTIGA-VERSION-STATS-MIB> | ||||
|  | ||||
| =item F<ALTIGA-SESSION-STATS-MIB> | ||||
|  | ||||
| =item F<ALTIGA-HARDWARE-STATS-MIB> | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Arista | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Arista Networks, Inc. | ||||
| # All rights reserved. | ||||
| @@ -31,29 +30,27 @@ | ||||
| package SNMP::Info::Layer3::Arista; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
|  | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::MAU; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::Aggregate 'agg_ports_ifstack'; | ||||
|  | ||||
| @SNMP::Info::Layer3::Arista::ISA = qw/ | ||||
|     SNMP::Info::Aggregate | ||||
|     SNMP::Info::LLDP | ||||
|     SNMP::Info::MAU | ||||
|     SNMP::Info::Layer3 Exporter | ||||
|     SNMP::Info::Layer3 | ||||
|     Exporter | ||||
| /; | ||||
| @SNMP::Info::Layer3::Arista::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::Aggregate::MIBS, | ||||
|     'ARISTA-PRODUCTS-MIB' => 'aristaDCS7124S', | ||||
| ); | ||||
| @@ -61,19 +58,16 @@ $VERSION = '3.66'; | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::MAU::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::MAU::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::MAU::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| ); | ||||
|  | ||||
| # use MAU-MIB for admin. duplex and admin. speed | ||||
| @@ -92,11 +86,14 @@ sub os { | ||||
|  | ||||
| sub os_ver { | ||||
|     my $arista = shift; | ||||
|     my $descr   = $arista->description(); | ||||
|     my $os_ver  = undef; | ||||
|     my $descr  = $arista->description(); | ||||
|  | ||||
|     $os_ver = $1 if ( $descr =~ /\s+EOS\s+version\s+(\S+)\s+/ ); | ||||
|     return $os_ver; | ||||
|     if (defined ($descr)) { | ||||
|       my $os_ver = undef; | ||||
|       $os_ver = $1 if ($descr =~ /\s+EOS\s+version\s+(\S+)\s+/); | ||||
|       return $os_ver; | ||||
|     } | ||||
|     return; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
| @@ -174,8 +171,6 @@ Subclass for Arista Networks EOS-based devices | ||||
|  | ||||
| =item SNMP::Info::MAU | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
| @@ -192,8 +187,6 @@ See L<SNMP::Info::Aggregate/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::MAU/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -204,7 +197,7 @@ These are methods that return scalar values from SNMP | ||||
|  | ||||
| =item $arista->vendor() | ||||
|  | ||||
|     Returns 'Arista Networks, Inc.' | ||||
| Returns 'arista' | ||||
|  | ||||
| =item $arista->model() | ||||
|  | ||||
| @@ -230,10 +223,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -269,8 +258,4 @@ See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Aruba | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2013 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,20 +30,19 @@ | ||||
| package SNMP::Info::Layer3::Aruba; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::Aruba::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Aruba::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Aruba::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/; | ||||
| our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'WLSR-AP-MIB'        => 'wlsrHideSSID', | ||||
|     'WLSX-IFEXT-MIB'     => 'ifExtVlanName', | ||||
|     'WLSX-POE-MIB'       => 'wlsxPseSlotPowerAvailable', | ||||
| @@ -58,7 +56,6 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'aruba_serial_old' => 'wlsxSwitchLicenseSerialNumber', | ||||
|     'aruba_serial_new' => 'wlsxSysExtLicenseSerialNumber', | ||||
|     'aruba_model'      => 'wlsxModelName', | ||||
| @@ -67,7 +64,6 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|  | ||||
|     # WLSR-AP-MIB::wlsrConfigTable | ||||
|     'aruba_ap_ssidbcast' => 'wlsrHideSSID', | ||||
| @@ -143,7 +139,6 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
|     'aruba_ap_fqln'       => \&munge_aruba_fqln, | ||||
|     'aruba_ap_type'       => \&SNMP::Info::munge_e_type, | ||||
|     'aruba_card_type'     => \&SNMP::Info::munge_e_type, | ||||
| @@ -170,10 +165,9 @@ sub vendor { | ||||
|     $id = $1 if ( defined($id) && $id =~ /^\.1\.3\.6\.1\.4\.1\.(\d+)/ ); | ||||
|  | ||||
|     if ( defined($id) and exists( $oidmap{$id} ) ) { | ||||
| 	return $oidmap{$id}; | ||||
|     } | ||||
|     else { | ||||
| 	return 'aruba'; | ||||
|       return $oidmap{$id}; | ||||
|     } else { | ||||
|       return 'aruba'; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -183,7 +177,7 @@ sub os_ver { | ||||
|     return unless defined $descr; | ||||
|  | ||||
|     if ( $descr =~ m/Version\s+(\d+\.\d+\.\d+\.\d+)/ ) { | ||||
| 	return $1; | ||||
|       return $1; | ||||
|     } | ||||
|  | ||||
|     return; | ||||
| @@ -1421,11 +1415,6 @@ This class emulates bridge functionality for the wireless switch. This enables | ||||
| end station MAC addresses collection and correlation to the thin access point | ||||
| the end station is using for communication. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $aruba = new SNMP::Info::Layer3::Aruba(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::BayRS | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,24 +30,21 @@ | ||||
| package SNMP::Info::Layer3::BayRS; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::Bridge; | ||||
|  | ||||
| @SNMP::Info::Layer3::BayRS::ISA = qw/SNMP::Info SNMP::Info::Layer3 | ||||
|     SNMP::Info::Bridge Exporter/; | ||||
| @SNMP::Info::Layer3::BayRS::ISA = qw/SNMP::Info::Layer3 | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer3::BayRS::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP | ||||
|     %MODID_MAP %PROCID_MAP/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE, %MODEL_MAP, | ||||
|     %MODID_MAP, %PROCID_MAP); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::Bridge::MIBS, | ||||
|     'Wellfleet-HARDWARE-MIB'        => 'wfHwBpIdOpt', | ||||
|     'Wellfleet-OSPF-MIB'            => 'wfOspfRouterId', | ||||
|     'Wellfleet-DOT1QTAG-CONFIG-MIB' => 'wfDot1qTagCfgVlanName', | ||||
| @@ -57,18 +53,14 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS, | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::Bridge::GLOBALS, | ||||
|     'bp_id'       => 'wfHwBpIdOpt', | ||||
|     'bp_serial'   => 'wfHwBpSerialNumber', | ||||
|     'ospf_rtr_id' => 'wfOspfRouterId', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS, | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::Bridge::FUNCS, | ||||
|  | ||||
|     # From Wellfleet-CSMACD-MIB::wfCSMACDTable | ||||
|     'wf_csmacd_cct'  => 'wfCSMACDCct', | ||||
| @@ -107,9 +99,7 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::MUNGE, | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::Bridge::MUNGE, | ||||
|     'wf_hw_boot'     => \&munge_hw_rev, | ||||
|     'wf_hw_diag'     => \&munge_hw_rev, | ||||
|     'wf_hw_mobo_ser' => \&munge_wf_serial, | ||||
| @@ -541,7 +531,10 @@ sub model { | ||||
|     my $bayrs = shift; | ||||
|     my $bp_id = $bayrs->bp_id(); | ||||
|  | ||||
|     return defined $MODEL_MAP{$bp_id} ? $MODEL_MAP{$bp_id} : $bp_id; | ||||
|     if (defined $bp_id) { | ||||
|       return defined $MODEL_MAP{$bp_id} ? $MODEL_MAP{$bp_id} : $bp_id; | ||||
|     } | ||||
|     return; | ||||
| } | ||||
|  | ||||
| sub vendor { | ||||
| @@ -776,7 +769,7 @@ sub e_index { | ||||
|     my $bp_id = $bayrs->bp_id(); | ||||
|  | ||||
|     # Don't like polling all these columns to build the index, can't think of | ||||
|     # a better way right now.  Luckly all this data will be cached for the | ||||
|     # a better way right now.  Luckily all this data will be cached for the | ||||
|     # rest of the e_* methods | ||||
|  | ||||
|     # Using mib leafs so we don't have to define everything in FUNCS | ||||
| @@ -805,7 +798,7 @@ sub e_index { | ||||
|     my @slots = ( $wf_mb, $wf_db, $wf_bb, $wf_mod, $wf_mod1, $wf_mod2 ); | ||||
|     my @mods = ( $wf_mm, $wf_dm ); | ||||
|  | ||||
|     # We're going to hack an index: Slot/Module/Postion | ||||
|     # We're going to hack an index: Slot/Module/Position | ||||
|     my %wf_e_index; | ||||
|  | ||||
|     # Chassis on BN types | ||||
| @@ -1406,19 +1399,10 @@ Eric Miller | ||||
|  | ||||
| Abstraction subclass for routers running Avaya/Nortel BayRS. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $bayrs = new SNMP::Info::Layer3::BayRS(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info | ||||
|  | ||||
| =item SNMP::Info::Bridge | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =back | ||||
| @@ -1441,10 +1425,6 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =head2 Inherited MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Bridge/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -1500,14 +1480,6 @@ undefined. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
| @@ -1625,14 +1597,6 @@ is not contained in any other entity. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Bridge | ||||
|  | ||||
| See documentation in L<SNMP::Info::Bridge/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -28,15 +28,16 @@ package SNMP::Info::Layer3::BlueCoatSG; | ||||
| # POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::BlueCoatSG::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::BlueCoatSG::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS, | ||||
| @@ -55,7 +56,7 @@ $VERSION = '3.66'; | ||||
| %MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::Layer3::MUNGE, ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'Blue Coat'; | ||||
|     return 'bluecoat'; | ||||
| } | ||||
|  | ||||
| sub os { | ||||
| @@ -65,7 +66,7 @@ sub os { | ||||
| sub os_ver { | ||||
|     my $sg = shift; | ||||
|     my $os_string = $sg->sw_ver(); | ||||
|     if ($os_string =~ /^Version:\s(\w+)\s([\d\.]+)/) { | ||||
|     if (defined ($os_string) && $os_string =~ /^Version:\s(\w+)\s([\d\.]+)/) { | ||||
|         return $2; | ||||
|     } else { | ||||
|         return ''; # perhaps we can try sysDescr or some other object... | ||||
| @@ -92,7 +93,7 @@ Jeroen van Ingen | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myrouter', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -113,10 +114,10 @@ Subclass for Blue Coat SG Series proxy devices | ||||
|  | ||||
| =head2 Required MIBs | ||||
|  | ||||
|  BLUECOAT-SG-PROXY-MIB | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<BLUECOAT-SG-PROXY-MIB> | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
| @@ -133,7 +134,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $router->vendor() | ||||
|  | ||||
| Returns C<'Blue Coat'> | ||||
| Returns C<'bluecoat'> | ||||
|  | ||||
| =item $router->os() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::C3550 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008-2009 Max Baker changes from version 0.8 and beyond. | ||||
| # Copyright (c) 2004 Regents of the University of California | ||||
| @@ -37,7 +36,7 @@ use Exporter; | ||||
| use SNMP::Info::CiscoStack; | ||||
| use SNMP::Info::Layer3::CiscoSwitch; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| # NOTE : Top-most items gets precedence for @ISA | ||||
| @SNMP::Info::Layer3::C3550::ISA = qw/ | ||||
| @@ -47,7 +46,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
|  | ||||
| @SNMP::Info::Layer3::C3550::EXPORT_OK = qw//; | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # NOTE: Order creates precedence | ||||
| #       Example: v_name exists in Bridge.pm and CiscoVTP.pm | ||||
| @@ -105,7 +104,7 @@ sub ports { | ||||
|     return $ports; | ||||
| } | ||||
|  | ||||
| #  Verions prior to 12.1(22)EA1a use the older CiscoStack method | ||||
| #  Versions prior to 12.1(22)EA1a use the older CiscoStack method | ||||
| #  Newer versions use the ETHERLIKE-MIB to report operational duplex. | ||||
| #  See http://www.ciscosystems.com/en/US/products/hw/switches/ps646/prod_release_note09186a00802a08ee.html | ||||
|  | ||||
| @@ -228,11 +227,6 @@ These devices run IOS but have some of the same characteristics as the | ||||
| Catalyst WS-C family (5xxx,6xxx).  For example, forwarding tables are held in | ||||
| VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $c3550 = new SNMP::Info::Layer3::C3550(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -304,7 +298,7 @@ Software version 12.1(22)EA1a or greater returns duplex based upon the | ||||
| result of $c3550->el_duplex().  Otherwise it uses the result of | ||||
| the call to CiscoStack::i_duplex(). | ||||
|  | ||||
| See L<SNMP::Info::Etherlike> for el_duplex() method and | ||||
| See L<SNMP::Info::EtherLike> for el_duplex() method and | ||||
| L<SNMP::Info::CiscoStack> for its i_duplex() method. | ||||
|  | ||||
| =item $c3550->i_duplex_admin() | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::C4000 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bill Fenner | ||||
| # All rights reserved. | ||||
| @@ -42,9 +41,9 @@ use SNMP::Info::MAU; | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer3::C4000::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
| @@ -129,11 +128,6 @@ Bill Fenner | ||||
|  | ||||
| Abstraction subclass for Cisco Catalyst 4000 Layer 2/3 Switches. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $c4000 = new SNMP::Info::Layer3::C4000(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::C6500 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008-2009 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -37,7 +36,7 @@ use SNMP::Info::CiscoStack; | ||||
| use SNMP::Info::Layer3::CiscoSwitch; | ||||
| use SNMP::Info::MAU; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| # NOTE : Top-most items gets precedence for @ISA | ||||
| @SNMP::Info::Layer3::C6500::ISA = qw/ | ||||
| @@ -49,9 +48,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
|  | ||||
| @SNMP::Info::Layer3::C6500::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| # NOTE: Order creates precedence | ||||
| #       Example: v_name exists in Bridge.pm and CiscoVTP.pm | ||||
| @@ -188,7 +185,7 @@ sub set_i_duplex_admin { | ||||
|         # 2. Disable ifMauAutoNegAdminStatus | ||||
|         # If the second set is not done, this is not going to be | ||||
|         # working... Cisco Bug id CSCty97033. | ||||
|         # SXI is not working (up to at least relase SXI9). | ||||
|         # SXI is not working (up to at least release SXI9). | ||||
|         # SXJ is working at SXJ3 (not before). | ||||
|  | ||||
|         return $c6500->mau_set_i_duplex_admin( $duplex, $iid ); | ||||
| @@ -226,7 +223,7 @@ sub set_i_speed_admin { | ||||
|         # 2. Disable ifMauAutoNegAdminStatus | ||||
|         # If the second set is not done, this is not going to be working... | ||||
|         # Cisco Bug id CSCty97033. | ||||
|         # SXI is not working (at least up to relase SXI9). | ||||
|         # SXI is not working (at least up to release SXI9). | ||||
|         # SXJ is working at SXJ3 (not before). | ||||
|  | ||||
|         return $c6500->mau_set_i_speed_admin( $speed, $iid ); | ||||
| @@ -244,7 +241,8 @@ __END__ | ||||
| =head1 NAME | ||||
|  | ||||
| SNMP::Info::Layer3::C6500 - SNMP Interface to Cisco Catalyst 6500 Layer 2/3 | ||||
| Switches running IOS and/or CatOS | ||||
| Switches running IOS and/or CatOS. Also Cisco Catalyst 2960, 2970, 3750 and | ||||
| 3850 series and blade switch CBS30x0 and CBS31x0 series running IOS. | ||||
|  | ||||
| =head1 AUTHOR | ||||
|  | ||||
| @@ -274,10 +272,9 @@ These devices run IOS but have some of the same characteristics as the | ||||
| Catalyst WS-C family (5xxx). For example, forwarding tables are held in | ||||
| VLANs, and extended interface information is gleaned from F<CISCO-SWITCH-MIB>. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $c6500 = new SNMP::Info::Layer3::C6500(...); | ||||
| It also supports the following IOS only series switches: Cisco Catalyst 2960, | ||||
| 2970, 3750 and 3850 series. Also blade switches from the CBS30x0 and CBS31x0 | ||||
| series. | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| @@ -295,6 +292,8 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<CISCO-VIRTUAL-SWITCH-MIB> | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info::CiscoStack/"Required MIBs"> for its own MIB requirements. | ||||
| @@ -314,7 +313,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $c6500->vendor() | ||||
|  | ||||
|     Returns 'cisco' | ||||
| Returns 'cisco' | ||||
|  | ||||
| =item $c6500->cvsSwitchMode() | ||||
|  | ||||
| @@ -359,7 +358,7 @@ Newer software versions return duplex based upon the result of | ||||
| $c6500->el_duplex().  Otherwise it uses the result of the call to | ||||
| CiscoStack::i_duplex(). | ||||
|  | ||||
| See L<SNMP::Info::Etherlike> for el_duplex() method and | ||||
| See L<SNMP::Info::EtherLike> for el_duplex() method and | ||||
| L<SNMP::Info::CiscoStack> for its i_duplex() method. | ||||
|  | ||||
| =item $c6500->i_duplex_admin() | ||||
| @@ -399,13 +398,11 @@ Crosses $c6500->p_port() with $c6500->p_speed() to utilize port C<ifIndex>. | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoStack/"TABLE METHODS"> for details. | ||||
|  | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3::CiscoSwitch | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3::CiscoSwitch/"TABLE METHODS"> for | ||||
| details. | ||||
|  | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::MAU | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::CheckPoint | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Bill Fenner | ||||
| # All rights reserved. | ||||
| @@ -31,20 +30,19 @@ | ||||
| package SNMP::Info::Layer3::CheckPoint; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::CheckPoint::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::CheckPoint::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::CheckPoint::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'CHECKPOINT-MIB'      => 'fwProduct', | ||||
|     'UCD-SNMP-MIB'        => 'versionTag', | ||||
|     'NET-SNMP-TC'         => 'netSnmpAliasDomain', | ||||
| @@ -54,15 +52,16 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'netsnmp_vers'   => 'versionTag', | ||||
|     'hrSystemUptime' => 'hrSystemUptime', | ||||
|  | ||||
|     'serial_number'  => 'svnApplianceSerialNumber', | ||||
|     'product_name'   => 'svnApplianceProductName', | ||||
|     'manufacturer'   => 'svnApplianceManufacturer', | ||||
|     'version'        => 'svnVersion', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|  | ||||
|     # Net-SNMP Extend table that could but customize to add a the CheckPoint version | ||||
|     'extend_output_table' => 'nsExtendOutputFull', | ||||
| @@ -70,11 +69,16 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'checkpoint'; | ||||
|     my $ckp = shift; | ||||
|  | ||||
|     if (defined $ckp->manufacturer) { | ||||
|         return lc $ckp->manufacturer; | ||||
|     } else { | ||||
|         return 'checkpoint'; | ||||
|     } | ||||
| } | ||||
|  | ||||
| sub model { | ||||
| @@ -83,7 +87,9 @@ sub model { | ||||
|  | ||||
|     my $model = &SNMP::translateObj($id); | ||||
|  | ||||
|     if (defined $model) { | ||||
|     if (defined $ckp->product_name) { | ||||
|         return $ckp->product_name; | ||||
|     } elsif (defined $model) { | ||||
|         $model =~ s/^checkPoint//; | ||||
|         return $model; | ||||
|     } else { | ||||
| @@ -97,41 +103,48 @@ sub os { | ||||
|  | ||||
| sub os_ver { | ||||
|     my $ckp = shift; | ||||
|     my $extend_table = $ckp->extend_output_table() || {}; | ||||
|     if (defined $ckp->version) { | ||||
|         return $ckp->version; | ||||
|     } else { | ||||
|         my $extend_table = $ckp->extend_output_table() || {}; | ||||
|  | ||||
|     my $descr   = $ckp->description(); | ||||
|     my $vers    = $ckp->netsnmp_vers(); | ||||
|     my $os_ver  = undef; | ||||
|         my $descr   = $ckp->description(); | ||||
|         my $vers    = $ckp->netsnmp_vers(); | ||||
|         my $os_ver  = undef; | ||||
|  | ||||
|     foreach my $ex (keys %$extend_table) { | ||||
|         (my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g; | ||||
|         if ($name eq 'ckpVersion') { | ||||
|             return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/); | ||||
|             last; | ||||
|         foreach my $ex (keys %$extend_table) { | ||||
|             (my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g; | ||||
|             if ($name eq 'ckpVersion') { | ||||
|                 return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/); | ||||
|                 last; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     $os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ ); | ||||
|     if ($vers) { | ||||
|         $os_ver = "???" unless defined($os_ver); | ||||
|         $os_ver .= " / Net-SNMP " . $vers; | ||||
|         $os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ ); | ||||
|         if ($vers) { | ||||
|             $os_ver = "???" unless defined($os_ver); | ||||
|             $os_ver .= " / Net-SNMP " . $vers; | ||||
|         } | ||||
|         return $os_ver; | ||||
|     } | ||||
|  | ||||
|     return $os_ver; | ||||
| } | ||||
|  | ||||
| sub serial { | ||||
|     my $ckp = shift; | ||||
|     my $extend_table = $ckp->extend_output_table() || {}; | ||||
|  | ||||
|     foreach my $ex (keys %$extend_table) { | ||||
|         (my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g; | ||||
|         if ($name eq 'ckpAsset') { | ||||
|             return $1 if ($extend_table->{$ex} =~ /Serial Number: (\S+)/); | ||||
|             last; | ||||
|     if (defined $ckp->serial_number) { | ||||
|         return $ckp->serial_number; | ||||
|     } else { | ||||
|         my $extend_table = $ckp->extend_output_table() || {}; | ||||
|  | ||||
|         foreach my $ex (keys %$extend_table) { | ||||
|             (my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g; | ||||
|             if ($name eq 'ckpAsset') { | ||||
|                 return $1 if ($extend_table->{$ex} =~ /Serial Number: (\S+)/); | ||||
|                 last; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     return ''; | ||||
| } | ||||
|  | ||||
| @@ -199,11 +212,13 @@ Ambroise Rosset | ||||
|  | ||||
| =head1 DESCRIPTION | ||||
|  | ||||
| Subclass for Generic Net-SNMP devices | ||||
| Subclass for CheckPoint Devices. | ||||
|  | ||||
| =head2 WARNING | ||||
|  | ||||
| To correctly and completelly work, you should add the following line in the file C</etc/snmp/snmpd.local.conf> on each of your CheckPoint devices: | ||||
| To correctly and completely work on IPSO based devices, you should | ||||
| add the following line in the file C</etc/snmp/snmpd.local.conf> on each | ||||
| of your CheckPoint devices: | ||||
|  | ||||
|  # Netdisco SNMP configuration | ||||
|  extend  ckpVersion /opt/CPsuite-R77/fw1/bin/fw ver | ||||
| @@ -221,8 +236,12 @@ To correctly and completelly work, you should add the following line in the file | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<CHECKPOINT-MIB> | ||||
|  | ||||
| =item F<UCD-SNMP-MIB> | ||||
|  | ||||
| =item F<NET-SNMP-EXTEND-MIB> | ||||
|  | ||||
| =item F<NET-SNMP-TC> | ||||
|  | ||||
| =item F<HOST-RESOURCES-MIB> | ||||
| @@ -231,8 +250,6 @@ To correctly and completelly work, you should add the following line in the file | ||||
|  | ||||
| See L<SNMP::Info::Layer3> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP> for its own MIB requirements. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -243,11 +260,12 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $ckp->vendor() | ||||
|  | ||||
| Returns 'checkpoint'. | ||||
| Returns C<svnApplianceManufacturer> in lowercase, else 'checkpoint'. | ||||
|  | ||||
| =item $ckp->model() | ||||
|  | ||||
| Return the model type of the CheckPoint device (Based on the sysObjectOID translation). | ||||
| Returns C<svnApplianceProductName>, else the model type based on the | ||||
| sysObjectOID translation. | ||||
|  | ||||
| =item $ckp->os() | ||||
|  | ||||
| @@ -255,8 +273,8 @@ Returns the OS extracted from C<sysDescr>. | ||||
|  | ||||
| =item $ckp->os_ver() | ||||
|  | ||||
| Returns the software version extracted from C<sysDescr>, along | ||||
| with the Net-SNMP version. | ||||
| Returns C<svnVersion>, else the software version is extracted from | ||||
| C<sysDescr>, along with the Net-SNMP version. | ||||
|  | ||||
| =item $ckp->uptime() | ||||
|  | ||||
| @@ -266,8 +284,9 @@ are based on agent uptime, so use orig_uptime(). | ||||
|  | ||||
| =item $ckp->serial() | ||||
|  | ||||
| Return the serial number of the device if the SNMP server is configured as indicated previously. | ||||
| Return '' in other case. | ||||
| Returns <svnApplianceSerialNumber>, else the serial number of the | ||||
| device if the SNMP server is configured as indicated previously. | ||||
| Returns '' in other case. | ||||
|  | ||||
| =item $ckp->layers() | ||||
|  | ||||
| @@ -279,10 +298,6 @@ Return '01001100'. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP> for details. | ||||
|  | ||||
| =head1 TABLE ENTRIES | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -304,12 +319,12 @@ Ignores loopback | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP> for details. | ||||
|  | ||||
| =head1 NOTES | ||||
|  | ||||
| If your device is not recognized by SNMP::Info as being in the class | ||||
| L<SNMP::Info::Layer3::CheckPoint> you might need additional snmp | ||||
| configuration on the CheckPoint device. | ||||
|  | ||||
| In order to cause SNMP::Info to classify your device into this class, it | ||||
| may be necessary to put a configuration line into your F<snmpd.conf> | ||||
| similar to | ||||
|   | ||||
							
								
								
									
										325
									
								
								lib/SNMP/Info/Layer3/Ciena.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										325
									
								
								lib/SNMP/Info/Layer3/Ciena.pm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,325 @@ | ||||
| # SNMP::Info::Layer3::Ciena - SNMP Interface to Ciena Devices | ||||
| # | ||||
| # Copyright (c) 2019 by The Netdisco Developer Team. | ||||
| # | ||||
| # Redistribution and use in source and binary forms, with or without | ||||
| # modification, are permitted provided that the following conditions are met: | ||||
| # | ||||
| #     * Redistributions of source code must retain the above copyright notice, | ||||
| #       this list of conditions and the following disclaimer. | ||||
| #     * Redistributions in binary form must reproduce the above copyright | ||||
| #       notice, this list of conditions and the following disclaimer in the | ||||
| #       documentation and/or other materials provided with the distribution. | ||||
| #     * Neither the name of the University of California, Santa Cruz nor the | ||||
| #       names of its contributors may be used to endorse or promote products | ||||
| #       derived from this software without specific prior written permission. | ||||
| # | ||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
| # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||||
| # LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||||
| # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||||
| # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
| # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
| # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
| # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
| # POSSIBILITY OF SUCH DAMAGE. | ||||
|  | ||||
|  | ||||
| package SNMP::Info::Layer3::Ciena; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::Ciena::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Ciena::EXPORT_OK = qw//; | ||||
|  | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     'WWP-LEOS-SW-XGRADE-MIB' => 'wwpLeosBladeRunPackageVer', | ||||
|     'WWP-LEOS-BLADE-MIB'     => 'wwpLeosBladeId', | ||||
|     'WWP-LEOS-CHASSIS-MIB'   => 'wwpLeosChassisDeviceId', | ||||
|     'WWP-LEOS-FLOW-MIB'      => 'wwpLeosFlowLearnType', | ||||
|     'WWP-LEOS-PORT-MIB'      => 'wwpLeosEtherIngressPvid', | ||||
|     'WWP-LEOS-VLAN-TAG-MIB'  => 'wwpLeosNumVlans', | ||||
|     'WWP-PRODUCTS-MIB'       => 'wwpProductsMIB' | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     'ciena_serial' => 'wwpLeosSystemSerialNumber', | ||||
|     'mac'          => 'dot1dBaseBridgeAddress' | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     'v_name'     => 'wwpLeosVlanName', | ||||
|     'ps_type'    => 'wwpLeosChassisPowerSupplyType', | ||||
|     'ps_status'  => 'wwpLeosChassisPowerSupplyState', | ||||
|     'ps_name'    => 'wwpLeosChassisPowerSupplyModuleLabel', | ||||
|     'fan_type'   => 'wwpLeosChassisFanModuleType', | ||||
|     'fan_status' => 'wwpLeosChassisFanModuleStatus', | ||||
|     'fan_name'   => 'wwpLeosChassisFanModuleNum' | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE | ||||
| ); | ||||
|  | ||||
| sub vendor { | ||||
|     return 'ciena'; | ||||
| } | ||||
|  | ||||
| sub os { | ||||
|     return 'saos'; | ||||
| } | ||||
|  | ||||
| sub os_ver { | ||||
|     my $ciena = shift; | ||||
|     my $version = $ciena->wwpLeosBladeRunPackageVer || {}; | ||||
|     return values(%$version); | ||||
| } | ||||
|  | ||||
| sub serial { | ||||
|     my $ciena = shift; | ||||
|     return $ciena->ciena_serial(); | ||||
| } | ||||
|  | ||||
| # Override lldp_if function to translate the port with bp_index | ||||
| sub lldp_if { | ||||
|     my $ciena = shift; | ||||
|     my $lldp = $ciena->SUPER::lldp_if; | ||||
|     my $bp_index = $ciena->bp_index; | ||||
|     foreach my $iface (keys %$lldp) { | ||||
|         my $orig_iface = $lldp->{$iface}; | ||||
|         $lldp->{$iface} = $bp_index->{$orig_iface}; | ||||
|     } | ||||
|     return $lldp; | ||||
| } | ||||
|  | ||||
| sub i_vlan { | ||||
|     my $ciena = shift; | ||||
|     my $i_vlan = {}; | ||||
|     my $pvid = $ciena->wwpLeosEtherIngressPvid() || undef; | ||||
|  | ||||
|     # bp_index needed to resolve correct port id | ||||
|     my $bp_index = $ciena->bp_index; | ||||
|     if (defined $pvid) { | ||||
|         foreach my $i (keys %$pvid) { | ||||
|             $i_vlan->{$bp_index->{$i}} = $pvid->{$i}; | ||||
|         } | ||||
|     } | ||||
|     return $i_vlan; | ||||
| } | ||||
|  | ||||
| sub i_vlan_membership { | ||||
|     my $ciena = shift; | ||||
|     my $i_vlan_membership = {}; | ||||
|  | ||||
|     my $vlans = $ciena->wwpLeosVlanMemberPortId(); | ||||
|     # bp_index needed to resolve correct port id | ||||
|     my $bp_index = $ciena->bp_index; | ||||
|     foreach my $vlan (keys %$vlans) { | ||||
|         push @{$i_vlan_membership->{$bp_index->{$vlans->{$vlan}}}} , (split(/\./,$vlan))[0]; | ||||
|     } | ||||
|     return $i_vlan_membership; | ||||
| } | ||||
|  | ||||
| sub qb_fw_vlan { | ||||
|     my $ciena = shift; | ||||
|     my $qb_fw_vlan = {}; | ||||
|     my $learn_entries = $ciena->wwpLeosFlowLearnType(); | ||||
|     foreach my $entry (keys %$learn_entries) { | ||||
|         my @params = (split(/\./, $entry)); | ||||
|         $qb_fw_vlan->{join('.', @params[1..6])} = $params[8]; | ||||
|     } | ||||
|     return $qb_fw_vlan; | ||||
| } | ||||
|  | ||||
| sub fan { | ||||
|     my $ciena = shift; | ||||
|  | ||||
|     my $fan_status = $ciena->fan_status || {}; | ||||
|     my $fan_type = $ciena->fan_type; | ||||
|     my $fan_name = $ciena->fan_name; | ||||
|     my @messages; | ||||
|  | ||||
|     foreach my $fan (keys %$fan_status) { | ||||
|         if ($fan_status->{$fan} ne "ok") { | ||||
|             push @messages, sprintf("%s fan %s failed.", $fan_type->{$fan}, $fan_name->{$fan}); | ||||
|         } | ||||
|     } | ||||
|     return sprintf("%s fans OK", scalar keys %$fan_status) if scalar @messages  == 0; | ||||
|  | ||||
|     return join(", ", @messages); | ||||
| } | ||||
| sub ps1_type { | ||||
|     my $ciena = shift; | ||||
|     my $ps_type = $ciena->ps_type; | ||||
|     return $ps_type->{'1'} if defined $ps_type->{'1'}; | ||||
| } | ||||
|  | ||||
| sub ps1_status { | ||||
|     my $ciena = shift; | ||||
|     my $ps_status = $ciena->ps_status; | ||||
|     return $ps_status->{'1'} if defined $ps_status->{'1'}; | ||||
| } | ||||
| sub ps2_type { | ||||
|     my $ciena = shift; | ||||
|     my $ps_type = $ciena->ps_type; | ||||
|     return $ps_type->{'2'} if defined $ps_type->{'2'}; | ||||
| } | ||||
|  | ||||
| sub ps2_status { | ||||
|     my $ciena = shift; | ||||
|     my $ps_status = $ciena->ps_status; | ||||
|     return $ps_status->{'2'} if defined $ps_status->{'2'}; | ||||
| } | ||||
| =head1 DESCRIPTION | ||||
| Subclass for Ciena Devices running SAOS | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<WWP-LEOS-SW-XGRADE-MIB> | ||||
|  | ||||
| =item F<WWP-LEOS-BLADE-MIB> | ||||
|  | ||||
| =item F<WWP-LEOS-CHASSIS-MIB> | ||||
|  | ||||
| =item F<WWP-LEOS-FLOW-MIB> | ||||
|  | ||||
| =item F<WWP-LEOS-PORT-MIB> | ||||
|  | ||||
| =item F<WWP-LEOS-VLAN-TAG-MIB> | ||||
|  | ||||
| =item F<WWP-PRODUCTS-MIB> | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar value from SNMP | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $ciena->vendor() | ||||
|  | ||||
| Returns 'ciena' | ||||
|  | ||||
| =item $ciena->os() | ||||
|  | ||||
| Returns 'saos' | ||||
|  | ||||
| =item $ciena->os_ver() | ||||
|  | ||||
| Returns the running software package extracted with C<wwpLeosBladeRunPackageVer> | ||||
|  | ||||
| =item $ciena->serial() | ||||
|  | ||||
| Returns serial number | ||||
| (C<wwpLeosSystemSerialNumber>) | ||||
|  | ||||
| =item $ciena->mac() | ||||
|  | ||||
| Returns the MAC address used by this bridge when it must be referred | ||||
| to in a unique fashion. | ||||
|  | ||||
| (C<dot1dBaseBridgeAddress>) | ||||
|  | ||||
| =item $huawei->fan() | ||||
|  | ||||
| Return the status of all fans. Returns a string indicating the number of fans 'OK'  or | ||||
| identification of any fan without a 'normal' operating status. | ||||
|  | ||||
| =item $ciena->ps1_status() | ||||
|  | ||||
| Return the status of the first power supply | ||||
|  | ||||
| =item $ciena->ps1_type() | ||||
|  | ||||
| Return the type of the first power supply | ||||
|  | ||||
| =item $ciena->ps2_status() | ||||
|  | ||||
| Return the status of the second power supply | ||||
|  | ||||
| =item $ciena->ps2_type() | ||||
|  | ||||
| Return the type of the second power supply | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| to a hash. | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $ciena->lldp_if() | ||||
|  | ||||
| Returns the mapping to the SNMP Interface Table. Overridden to translate to correct ethernet port with bp_index | ||||
|  | ||||
| =item $ciena->i_vlan() | ||||
|  | ||||
| Returns a mapping between C<ifIndex> and the PVID or default VLAN. | ||||
|  | ||||
| =item $ciena->i_vlan_membership() | ||||
|  | ||||
| Returns reference to hash of arrays: key = C<ifIndex>, value = array of VLAN | ||||
| IDs. | ||||
|  | ||||
| =item $ciena->qb_fw_vlan() | ||||
|  | ||||
| Returns reference to hash of forwarding table entries VLAN ID, using C<wwpLeosFlowLearnType> | ||||
|  | ||||
| =item $ciena->ps_name() | ||||
|  | ||||
| Returns reference to hash of the power supplies and their names. | ||||
|  | ||||
| =item $ciena->ps_type() | ||||
|  | ||||
| Returns reference to hash of the power supplies and their type (ex. AC, DC, etc.) | ||||
|  | ||||
| =item $ciena->ps_status() | ||||
|  | ||||
| Returns reference to hash of the power supplies and their status. | ||||
|  | ||||
| =item $ciena->fan_name() | ||||
|  | ||||
| Returns reference to hash of fans and their names. In this case, it is simply a number. | ||||
|  | ||||
| =item $ciena->fan_type() | ||||
|  | ||||
| Returns reference to hash of fans and their types (ex. fixed, modular, etc.) | ||||
|  | ||||
| =item $ciena->fan_status) | ||||
|  | ||||
| Returns reference to hash of fans and their status | ||||
|  | ||||
| =back | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Cisco | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Max Baker | ||||
| # All rights reserved. | ||||
| @@ -34,7 +33,6 @@ use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::CiscoVTP; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::CDP; | ||||
| use SNMP::Info::CiscoStats; | ||||
| use SNMP::Info::CiscoRTT; | ||||
| @@ -45,7 +43,7 @@ use SNMP::Info::CiscoStpExtensions; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::Cisco::ISA = qw/SNMP::Info::CiscoVTP | ||||
|     SNMP::Info::LLDP SNMP::Info::CDP | ||||
|     SNMP::Info::CDP | ||||
|     SNMP::Info::CiscoStats SNMP::Info::CiscoRTT | ||||
|     SNMP::Info::CiscoQOS SNMP::Info::CiscoConfig | ||||
|     SNMP::Info::CiscoPower SNMP::Info::CiscoStpExtensions | ||||
| @@ -53,9 +51,9 @@ use SNMP::Info::Layer3; | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer3::Cisco::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| @@ -66,7 +64,6 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::CiscoRTT::MIBS, | ||||
|     %SNMP::Info::CiscoStats::MIBS, | ||||
|     %SNMP::Info::CDP::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::CiscoVTP::MIBS, | ||||
|     'CISCO-EIGRP-MIB' => 'cEigrpAsRouterId', | ||||
| ); | ||||
| @@ -80,7 +77,6 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::CiscoRTT::GLOBALS, | ||||
|     %SNMP::Info::CiscoStats::GLOBALS, | ||||
|     %SNMP::Info::CDP::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     %SNMP::Info::CiscoVTP::GLOBALS, | ||||
|     'eigrp_id' => 'cEigrpAsRouterId', | ||||
| ); | ||||
| @@ -94,13 +90,11 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::CiscoRTT::FUNCS, | ||||
|     %SNMP::Info::CiscoStats::FUNCS, | ||||
|     %SNMP::Info::CDP::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::CiscoVTP::FUNCS, | ||||
|  | ||||
|     # CISCO-EIGRP-MIB::cEigrpPeerTable | ||||
|     'c_eigrp_peer_types' => 'cEigrpPeerAddrType', | ||||
|     'c_eigrp_peers'      => 'cEigrpPeerAddr', | ||||
|  | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
| @@ -108,7 +102,7 @@ $VERSION = '3.66'; | ||||
|     %SNMP::Info::CiscoPower::MUNGE, %SNMP::Info::CiscoConfig::MUNGE, | ||||
|     %SNMP::Info::CiscoQOS::MUNGE,   %SNMP::Info::CiscoRTT::MUNGE, | ||||
|     %SNMP::Info::CiscoStats::MUNGE, %SNMP::Info::CDP::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE,       %SNMP::Info::CiscoVTP::MUNGE, | ||||
|     %SNMP::Info::CiscoVTP::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub i_vlan { | ||||
| @@ -214,8 +208,6 @@ for other device specific L3 Cisco classes. | ||||
|  | ||||
| =item SNMP::Info::CiscoVTP | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::CDP | ||||
|  | ||||
| =item SNMP::Info::CiscoStats | ||||
| @@ -244,8 +236,6 @@ for other device specific L3 Cisco classes. | ||||
|  | ||||
| See L<SNMP::Info::CiscoVTP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::CDP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::CiscoStats/"Required MIBs"> for its own MIB requirements. | ||||
| @@ -285,10 +275,6 @@ Determined by checking C<vtpVersion>. | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoVTP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::CDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::CDP/"GLOBALS"> for details. | ||||
| @@ -344,10 +330,6 @@ Returns a mapping between C<ifIndex> and the PVID or default VLAN. | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoVTP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::CDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::CDP/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::CiscoASA | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2013 Moe Kraus | ||||
| # All rights reserved. | ||||
| @@ -43,9 +42,9 @@ use SNMP::Info::Layer3; | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer3::CiscoASA::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); | ||||
|  | ||||
| @@ -113,7 +112,7 @@ Moe Kraus | ||||
| =head1 SYNOPSIS | ||||
|  | ||||
|  # Let SNMP::Info determine the correct subclass for you. | ||||
|  my $cisco = new SNMP::Info( | ||||
|  my $asa = new SNMP::Info( | ||||
|                         AutoSpecify => 1, | ||||
|                         Debug       => 1, | ||||
|                         # These arguments are passed directly to SNMP::Session | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::CiscoFWSM | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2010 Brian De Wolf | ||||
| # All rights reserved. | ||||
| @@ -41,9 +40,9 @@ use SNMP::Info::Layer3; | ||||
| 	Exporter/; | ||||
| @SNMP::Info::Layer3::CiscoFWSM::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, ); | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::CiscoSwitch | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2014 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -37,7 +36,7 @@ use SNMP::Info::CiscoAgg; | ||||
| use SNMP::Info::CiscoPortSecurity; | ||||
| use SNMP::Info::Layer3::Cisco; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| @SNMP::Info::Layer3::CiscoSwitch::ISA = qw/ | ||||
|     SNMP::Info::CiscoAgg | ||||
| @@ -48,9 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
|  | ||||
| @SNMP::Info::Layer3::CiscoSwitch::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::Cisco::MIBS, | ||||
| @@ -157,10 +154,6 @@ Returns 1.  Use vlan indexing. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::CiscoAgg | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoAgg/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::CiscoPortSecurity | ||||
|  | ||||
| See documentation in L<SNMP::Info::CiscoPortSecurity/"GLOBALS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Contivity | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2010 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,36 +30,32 @@ | ||||
| package SNMP::Info::Layer3::Contivity; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::Entity; | ||||
|  | ||||
| @SNMP::Info::Layer3::Contivity::ISA | ||||
|     = qw/SNMP::Info SNMP::Info::Layer3 SNMP::Info::Entity Exporter/; | ||||
|     = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Contivity::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS, | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::GLOBALS, %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::Entity::GLOBALS, | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::FUNCS, %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::Entity::FUNCS, | ||||
|   %SNMP::Info::Layer3::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::MUNGE, %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::Entity::MUNGE, | ||||
|   %SNMP::Info::Layer3::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub layers { | ||||
| @@ -189,21 +184,12 @@ Eric Miller | ||||
| Abstraction subclass for Avaya/Nortel VPN Routers (formerly Contivity | ||||
| Extranet Switch). | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $contivity = new SNMP::Info::Layer3::Contivity(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =item SNMP::Info::Entity | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
| @@ -212,12 +198,8 @@ after determining a more specific class using the method above. | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See L<SNMP::Info/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Entity/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -238,7 +220,7 @@ Returns the chassis name. | ||||
|  | ||||
| =item $contivity->os() | ||||
|  | ||||
| Returns C<'CES'> | ||||
| Returns C<'contivity'> | ||||
|  | ||||
| =item $contivity->os_ver() | ||||
|  | ||||
| @@ -267,18 +249,10 @@ layers. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -299,16 +273,8 @@ Interface Name field.  Skips loopback and tunnel interfaces. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info | ||||
|  | ||||
| See documentation in L<SNMP::Info/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Entity | ||||
|  | ||||
| See documentation in L<SNMP::Info::Entity/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Cumulus | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2018 Bill Fenner and Oliver Gorwits | ||||
| # All rights reserved. | ||||
| @@ -31,26 +30,24 @@ | ||||
| package SNMP::Info::Layer3::Cumulus; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::IEEE802dot3ad 'agg_ports_lag'; | ||||
|  | ||||
| @SNMP::Info::Layer3::Cumulus::ISA = qw/ | ||||
|   SNMP::Info::IEEE802dot3ad | ||||
|   SNMP::Info::LLDP | ||||
|   SNMP::Info::Layer3 | ||||
|   Exporter | ||||
| /; | ||||
| @SNMP::Info::Layer3::Cumulus::EXPORT_OK = qw/ agg_ports /; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::IEEE802dot3ad::MIBS, | ||||
|     'UCD-SNMP-MIB'       => 'versionTag', | ||||
|     'NET-SNMP-TC'        => 'netSnmpAliasDomain', | ||||
| @@ -59,7 +56,6 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'netsnmp_vers'   => 'versionTag', | ||||
|     'hrSystemUptime' => 'hrSystemUptime', | ||||
|     'chassis'    => 'entPhysicalDescr.1', | ||||
| @@ -67,17 +63,15 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::IEEE802dot3ad::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
|     %SNMP::Info::IEEE802dot3ad::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub vendor { return 'Cumulus Networks' } | ||||
| sub vendor { return 'cumulus networks' } | ||||
|  | ||||
| sub os { return 'cumulus' } | ||||
|  | ||||
| @@ -86,7 +80,7 @@ sub os_ver { | ||||
|     my $descr   = $netsnmp->description(); | ||||
|  | ||||
| # STRING: "Cumulus Linux version 3.5.1 running on innotek GmbH VirtualBox" | ||||
|     return $1 if ( $descr =~ /^Cumulus Linux.+(\d+\.\d+\.\d+)\s/ ); | ||||
|     return $1 if ( defined ($descr) && $descr =~ /^Cumulus Linux.+(\d+\.\d+\.\d+)\s/ ); | ||||
|     return; | ||||
| } | ||||
|  | ||||
| @@ -95,7 +89,9 @@ sub model { | ||||
|     my $chassis = $netsnmp->chassis(); | ||||
|  | ||||
| # STRING: "Cumulus Networks  VX Chassis" | ||||
|     return $1 if ( $chassis =~ /^Cumulus Networks\s+(.+)/ ); | ||||
|     if (defined ($chassis)) { | ||||
|       return $1 if ($chassis =~ /^Cumulus Networks\s+(.+)/); | ||||
|     } | ||||
|     return $netsnmp->SUPER::model(); | ||||
| } | ||||
|  | ||||
| @@ -116,7 +112,7 @@ sub uptime { | ||||
|  | ||||
| # ifDescr is the same for all interfaces in a class, but the ifName is | ||||
| # unique, so let's use that for port name.  If all else fails, | ||||
| # concatentate ifDesc and ifIndex. | ||||
| # concatenate ifDesc and ifIndex. | ||||
| # (code from SNMP/Info/Layer2/Netgear.pm) | ||||
| sub interfaces { | ||||
|     my $netsnmp = shift; | ||||
| @@ -218,8 +214,6 @@ Subclass for Cumulus Networks devices | ||||
|  | ||||
| See L<SNMP::Info::Layer3> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::IEEE802dot3ad> for its own MIB requirements. | ||||
|  | ||||
| =back | ||||
| @@ -232,7 +226,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $cumulus->vendor() | ||||
|  | ||||
| Returns 'Cumulus Networks'. | ||||
| Returns 'cumulus networks'. | ||||
|  | ||||
| =item $cumulus->os() | ||||
|  | ||||
| @@ -258,10 +252,6 @@ Returns the chassis type. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::IEEE802dot3ad | ||||
|  | ||||
| See documentation in L<SNMP::Info::IEEE802dot3ad> for details. | ||||
| @@ -295,10 +285,6 @@ ifIndex of the corresponding master ports. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::IEEE802dot3ad | ||||
|  | ||||
| See documentation in L<SNMP::Info::IEEE802dot3ad> for details. | ||||
|   | ||||
| @@ -29,20 +29,19 @@ | ||||
| package SNMP::Info::Layer3::DLink; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::DLink::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::DLink::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::DLink::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'DLINK-ID-REC-MIB' => 'dlink', | ||||
|     'SWPRIMGMT-DES3200-MIB' => 'dlink-des3200SeriesProd', | ||||
|     'SWPRIMGMT-DES30XXP-MIB' => 'dlink-des30xxproductProd', | ||||
| @@ -54,17 +53,14 @@ $VERSION = '3.66'; | ||||
|     'DES-1210-52-BX' => 'des-1210-52bx', | ||||
|     'DES-1210-52-CX' => 'des-1210-52-cx', | ||||
|     'DGS-1210-24-AX' => 'dgs-1210-24ax', | ||||
|  | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     'dlink_fw' => 'probeSoftwareRev', | ||||
|     'dlink_hw' => 'probeHardwareRev', | ||||
|     # Replaced with OID since these MIBs are no longer in the netdisco-mibs | ||||
| @@ -76,7 +72,7 @@ $VERSION = '3.66'; | ||||
|     # replaced similarly and use the library getter methods | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer3::MUNGE, %SNMP::Info::LLDP::MUNGE, ); | ||||
| %MUNGE = ( %SNMP::Info::Layer3::MUNGE, ); | ||||
|  | ||||
| sub model { | ||||
|     my $dlink=shift; | ||||
| @@ -91,6 +87,16 @@ sub model { | ||||
|     } | ||||
| } | ||||
|  | ||||
| # ifDescr is the same for all interfaces in a class, but the ifName is | ||||
| # unique, so let's use that for port name. | ||||
| sub interfaces { | ||||
|     my $dlink = shift; | ||||
|     my $partial = shift; | ||||
|  | ||||
|     my $interfaces = $dlink->orig_i_name($partial); | ||||
|     return $interfaces; | ||||
| } | ||||
|  | ||||
|  | ||||
| sub vendor { | ||||
|     return 'dlink'; | ||||
| @@ -187,7 +193,33 @@ Subclass for DLink devices. | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<DLINK-ID-REC-MIB> | ||||
|  | ||||
| =item F<SWPRIMGMT-DES3200-MIB> | ||||
|  | ||||
| =item F<SWPRIMGMT-DES30XXP-MIB> | ||||
|  | ||||
| =item F<SWPRIMGMT-DES1228ME-MIB> | ||||
|  | ||||
| =item F<SWDES3528-52PRIMGMT-MIB> | ||||
|  | ||||
| =item F<DES-1210-28-AX> | ||||
|  | ||||
| =item F<DES-1210-10MEbx> | ||||
|  | ||||
| =item F<DES-1210-26MEbx> | ||||
|  | ||||
| =item F<DES-1210-52-BX> | ||||
|  | ||||
| =item F<DES-1210-52-CX> | ||||
|  | ||||
| =item F<DGS-1210-24-AX> | ||||
|  | ||||
| =back | ||||
|  | ||||
| @@ -195,8 +227,6 @@ Subclass for DLink devices. | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =head1 GLOBALS | ||||
|  | ||||
| These are methods that return scalar value from SNMP | ||||
| @@ -233,14 +263,21 @@ Returns the STP root port. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| to a hash. | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item $dlink->interfaces(); | ||||
|  | ||||
| Returns the map between SNMP Interface Identifier (iid) and C<ifName>. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Dell - SNMP Interface to Dell devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,20 +30,19 @@ | ||||
| package SNMP::Info::Layer3::Dell; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::Dell::ISA       = qw/SNMP::Info::LLDP SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Dell::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Dell::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'RADLAN-COPY-MIB'                => 'rlCopySourceLocation', | ||||
|     'RADLAN-Physicaldescription-MIB' => 'rlPhdStackReorder', | ||||
|     'RADLAN-rlInterfaces'            => 'rlIfNumOfLoopbackPorts', | ||||
| @@ -55,14 +53,12 @@ $VERSION = '3.66'; | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     'dell_os_ver'  => 'productIdentificationVersion', | ||||
|     'dell_id_name' => 'productIdentificationDisplayName', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|  | ||||
|     # RADLAN-rlInterfaces:swIfTable | ||||
|     'dell_duplex_admin' => 'swIfDuplexAdminMode', | ||||
| @@ -108,7 +104,7 @@ $VERSION = '3.66'; | ||||
|     'dell_fan_desc'  => 'rlEnvMonFanStatusDescr', | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( %SNMP::Info::Layer3::MUNGE, %SNMP::Info::LLDP::MUNGE, ); | ||||
| %MUNGE = ( %SNMP::Info::Layer3::MUNGE, ); | ||||
|  | ||||
| # Method OverRides | ||||
|  | ||||
| @@ -336,7 +332,7 @@ Eric Miller | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myswitch', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -367,14 +363,18 @@ my $dell = new SNMP::Info::Layer3::Dell(...); | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item F<DELL-REF-MIB> | ||||
|  | ||||
| =item F<Dell-Vendor-MIB> | ||||
|  | ||||
| =item F<RADLAN-COPY-MIB> | ||||
|  | ||||
| =item F<RADLAN-HWENVIROMENT> | ||||
|  | ||||
| =item F<RADLAN-Physicaldescription-MIB> | ||||
|  | ||||
| =item F<RADLAN-rlInterfaces> | ||||
|  | ||||
| =item F<RADLAN-HWENVIROMENT> | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See classes listed above for their required MIBs. | ||||
| @@ -448,10 +448,6 @@ otherwise uses the Layer3 serial method. | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -524,8 +520,4 @@ Returns nothing to work around incorrect indexing of C<dot1qTpFdbTable> | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
| @@ -30,6 +30,7 @@ | ||||
| package SNMP::Info::Layer3::ERX; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @@ -39,9 +40,9 @@ use SNMP::Info::Layer3; | ||||
| /; | ||||
| @SNMP::Info::Layer3::ERX::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS | ||||
| @@ -60,7 +61,7 @@ $VERSION = '3.66'; | ||||
| ); | ||||
|  | ||||
| sub vendor { | ||||
|   return "Juniper"; | ||||
|   return "juniper"; | ||||
| } | ||||
|  | ||||
| sub model { | ||||
| @@ -82,7 +83,7 @@ sub os_ver { | ||||
|   my $descr  = $ERX->description(); | ||||
|   my $os_ver = undef; | ||||
|  | ||||
|   if ( $descr =~ /Version : \((.+)\) .+:/ ) { | ||||
|   if ( defined ($descr) && $descr =~ /Version : \((.+)\) .+:/ ) { | ||||
|     $os_ver = $1; | ||||
|   } | ||||
|  | ||||
| @@ -110,7 +111,7 @@ __END__ | ||||
|  | ||||
| =head1 NAME | ||||
|  | ||||
| SNMP::Info::Layer3::ERX - SNMP Interface to ERX Layer 3 routers. | ||||
| SNMP::Info::Layer3::ERX - SNMP Interface to Juniper ERX Layer 3 routers. | ||||
|  | ||||
| =head1 AUTHORS | ||||
|  | ||||
| @@ -161,7 +162,7 @@ These are methods that return scalar value from SNMP | ||||
|  | ||||
| =item $ERX->vendor() | ||||
|  | ||||
| Returns 'Juniper'. | ||||
| Returns 'juniper'. | ||||
|  | ||||
| =item $ERX->os() | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Enterasys - SNMP Interface to Enterasys devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2008 Eric Miller | ||||
| # All rights reserved. | ||||
| @@ -31,41 +30,41 @@ | ||||
| package SNMP::Info::Layer3::Enterasys; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::MAU; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::CDP; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::Enterasys::ISA = qw/SNMP::Info::MAU SNMP::Info::LLDP | ||||
| @SNMP::Info::Layer3::Enterasys::ISA = qw/SNMP::Info::MAU | ||||
|     SNMP::Info::CDP SNMP::Info::Layer3 | ||||
|     Exporter/; | ||||
| @SNMP::Info::Layer3::Enterasys::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/; | ||||
| our ($VERSION, $DEBUG, %GLOBALS, %FUNCS, $INIT, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, %SNMP::Info::MAU::MIBS, | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
|     'ENTERASYS-OIDS-MIB' => 'etsysOidDevice', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, %SNMP::Info::CDP::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS,   %SNMP::Info::MAU::GLOBALS, | ||||
|     %SNMP::Info::MAU::GLOBALS, | ||||
|     'mac' => 'dot1dBaseBridgeAddress', | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, %SNMP::Info::CDP::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS,   %SNMP::Info::MAU::FUNCS, | ||||
|     %SNMP::Info::MAU::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, %SNMP::Info::CDP::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE,   %SNMP::Info::MAU::MUNGE, | ||||
|     %SNMP::Info::MAU::MUNGE, | ||||
| ); | ||||
|  | ||||
| sub model { | ||||
| @@ -267,7 +266,7 @@ Eric Miller | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myswitch', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -280,19 +279,12 @@ Eric Miller | ||||
| Provides abstraction to the configuration information obtainable from an | ||||
| Enterasys device through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $enterasys = new SNMP::Info::Layer3::Enterasys(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|  | ||||
| =item SNMP::Info::MAU | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::CDP | ||||
|  | ||||
| =item SNMP::Info::Layer3 | ||||
| @@ -311,8 +303,6 @@ my $enterasys = new SNMP::Info::Layer3::Enterasys(...); | ||||
|  | ||||
| See L<SNMP::Info::MAU/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::CDP/"Required MIBs"> for its MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::Layer3/"Required MIBs"> for its MIB requirements. | ||||
| @@ -352,10 +342,6 @@ Returns base mac | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::CDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::CDP/"GLOBALS"> for details. | ||||
| @@ -427,10 +413,6 @@ supply a partial value of zero which means no time filter. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::CDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::CDP/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Extreme - SNMP Interface to Extreme devices | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2012 Eric Miller | ||||
| # | ||||
| @@ -33,25 +32,24 @@ | ||||
| package SNMP::Info::Layer3::Extreme; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::MAU; | ||||
| use SNMP::Info::LLDP; | ||||
| use SNMP::Info::EDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::Extreme::ISA | ||||
|     = qw/SNMP::Info::Layer3 SNMP::Info::MAU SNMP::Info::LLDP | ||||
|     = qw/SNMP::Info::Layer3 SNMP::Info::MAU | ||||
|     SNMP::Info::EDP Exporter/; | ||||
| @SNMP::Info::Layer3::Extreme::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     %SNMP::Info::EDP::MIBS, | ||||
|     'EXTREME-BASE-MIB'           => 'extremeAgent', | ||||
|     'EXTREME-SYSTEM-MIB'         => 'extremeSystem', | ||||
| @@ -64,7 +62,6 @@ $VERSION = '3.66'; | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::MAU::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
|     %SNMP::Info::EDP::GLOBALS, | ||||
|     'serial1'        => 'extremeSystemID.0', | ||||
|     'temp'           => 'extremeCurrentTemperature', | ||||
| @@ -78,7 +75,6 @@ $VERSION = '3.66'; | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::MAU::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
|     %SNMP::Info::EDP::FUNCS, | ||||
|     'fan_state' => 'extremeFanOperational', | ||||
|     # EXTREME-FDB-MIB:extremeFdbMacFdbTable | ||||
| @@ -119,7 +115,6 @@ $VERSION = '3.66'; | ||||
|     # Inherit all the built in munging | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::MAU::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
|     %SNMP::Info::EDP::MUNGE, | ||||
|     'ex_fw_mac'        => \&SNMP::Info::munge_mac, | ||||
|     'ps1_status_old'   => \&munge_true_ok, | ||||
| @@ -166,7 +161,6 @@ sub vendor { | ||||
|  | ||||
| sub os { | ||||
|     my $extreme = shift; | ||||
|  | ||||
|     my $desc = $extreme->description(); | ||||
|  | ||||
|     if ( $desc =~ /xos/i ) { | ||||
| @@ -307,8 +301,8 @@ sub _slot_factor { | ||||
| sub fw_mac { | ||||
|     my $extreme = shift; | ||||
|  | ||||
|     my $b = $extreme->SUPER::fw_mac(); | ||||
|     return $b if (keys %$b); | ||||
|     my $fw_m = $extreme->SUPER::fw_mac(); | ||||
|     return $fw_m if (keys %$fw_m); | ||||
|  | ||||
|     return $extreme->ex_fw_mac(); | ||||
| } | ||||
| @@ -316,8 +310,8 @@ sub fw_mac { | ||||
| sub fw_port { | ||||
|     my $extreme = shift; | ||||
|  | ||||
|     my $b = $extreme->SUPER::fw_port(); | ||||
|     return $b if (keys %$b); | ||||
|     my $fw_p = $extreme->SUPER::fw_port(); | ||||
|     return $fw_p if (keys %$fw_p); | ||||
|  | ||||
|     return $extreme->ex_fw_port(); | ||||
| } | ||||
| @@ -325,8 +319,8 @@ sub fw_port { | ||||
| sub fw_status { | ||||
|     my $extreme   = shift; | ||||
|  | ||||
|     my $b = $extreme->SUPER::fw_status(); | ||||
|     return $b if (keys %$b); | ||||
|     my $fw_s = $extreme->SUPER::fw_status(); | ||||
|     return $fw_s if (keys %$fw_s); | ||||
|  | ||||
|     return $extreme->ex_fw_status(); | ||||
| } | ||||
| @@ -892,7 +886,7 @@ Eric Miller, Bill Fenner | ||||
|                           Debug       => 1, | ||||
|                           DestHost    => 'myswitch', | ||||
|                           Community   => 'public', | ||||
|                           Version     => 1 | ||||
|                           Version     => 2 | ||||
|                         ) | ||||
|     or die "Can't connect to DestHost.\n"; | ||||
|  | ||||
| @@ -905,11 +899,6 @@ Eric Miller, Bill Fenner | ||||
| Provides abstraction to the configuration information obtainable from an | ||||
| Extreme device through SNMP. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
| my $extreme = new SNMP::Info::Layer3::Extreme(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
| @@ -918,8 +907,6 @@ my $extreme = new SNMP::Info::Layer3::Extreme(...); | ||||
|  | ||||
| =item SNMP::Info::MAU | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =item SNMP::Info::EDP | ||||
|  | ||||
| =back | ||||
| @@ -938,6 +925,8 @@ my $extreme = new SNMP::Info::Layer3::Extreme(...); | ||||
|  | ||||
| =item F<EXTREME-POE-MIB> | ||||
|  | ||||
| =item F<EXTREME-STP-EXTENSIONS-MIB> | ||||
|  | ||||
| =item Inherited Classes' MIBs | ||||
|  | ||||
| See classes listed above for their required MIBs. | ||||
| @@ -956,11 +945,11 @@ Returns model type.  Checks $extreme->id() against the F<EXTREME-BASE-MIB>. | ||||
|  | ||||
| =item $extreme->vendor() | ||||
|  | ||||
| Returns extreme | ||||
| Returns C<extreme> | ||||
|  | ||||
| =item $extreme->os() | ||||
|  | ||||
| Returns extreme | ||||
| Returns C<xos> or C<extremeware> depending on description() | ||||
|  | ||||
| =item $extreme->os_ver() | ||||
|  | ||||
| @@ -1012,10 +1001,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Globals imported from SNMP::Info::EDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::EDP/"GLOBALS"> for details. | ||||
| @@ -1226,10 +1211,6 @@ See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::EDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::EDP/"TABLE METHODS"> for details. | ||||
|   | ||||
| @@ -30,15 +30,16 @@ | ||||
| package SNMP::Info::Layer3::F5; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
| use SNMP::Info::Layer3; | ||||
|  | ||||
| @SNMP::Info::Layer3::F5::ISA       = qw/SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::F5::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/; | ||||
| our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
| @@ -321,11 +322,6 @@ Eric Miller | ||||
|  | ||||
| Abstraction subclass for F5 network devices. | ||||
|  | ||||
| For speed or debugging purposes you can call the subclass directly, but not | ||||
| after determining a more specific class using the method above. | ||||
|  | ||||
|  my $f5 = new SNMP::Info::Layer3::F5(...); | ||||
|  | ||||
| =head2 Inherited Classes | ||||
|  | ||||
| =over | ||||
|   | ||||
| @@ -1,5 +1,4 @@ | ||||
| # SNMP::Info::Layer3::Force10 | ||||
| # $Id$ | ||||
| # | ||||
| # Copyright (c) 2012 William Bulley | ||||
| # All rights reserved. | ||||
| @@ -31,43 +30,39 @@ | ||||
| package SNMP::Info::Layer3::Force10; | ||||
|  | ||||
| use strict; | ||||
| use warnings; | ||||
| use Exporter; | ||||
|  | ||||
| use SNMP::Info::Layer3; | ||||
| use SNMP::Info::MAU; | ||||
| use SNMP::Info::LLDP; | ||||
|  | ||||
| @SNMP::Info::Layer3::Force10::ISA = qw/SNMP::Info::LLDP SNMP::Info::MAU | ||||
| @SNMP::Info::Layer3::Force10::ISA = qw/SNMP::Info::MAU | ||||
|     SNMP::Info::Layer3 Exporter/; | ||||
| @SNMP::Info::Layer3::Force10::EXPORT_OK = qw//; | ||||
|  | ||||
| use vars qw/$VERSION $DEBUG %GLOBALS %MIBS %FUNCS %MUNGE/; | ||||
| our ($VERSION, $DEBUG, %GLOBALS, %MIBS, %FUNCS, %MUNGE); | ||||
|  | ||||
| $VERSION = '3.66'; | ||||
| $VERSION = '3.69'; | ||||
|  | ||||
| %MIBS = ( | ||||
|     %SNMP::Info::Layer3::MIBS, | ||||
|     %SNMP::Info::MAU::MIBS, | ||||
|     %SNMP::Info::LLDP::MIBS, | ||||
|     'F10-PRODUCTS-MIB' => 'f10ESeriesProducts', | ||||
| ); | ||||
|  | ||||
| %GLOBALS = ( | ||||
|     %SNMP::Info::Layer3::GLOBALS, | ||||
|     %SNMP::Info::MAU::GLOBALS, | ||||
|     %SNMP::Info::LLDP::GLOBALS, | ||||
| ); | ||||
|  | ||||
| %FUNCS = ( | ||||
|     %SNMP::Info::Layer3::FUNCS, | ||||
|     %SNMP::Info::MAU::FUNCS, | ||||
|     %SNMP::Info::LLDP::FUNCS, | ||||
| ); | ||||
|  | ||||
| %MUNGE = ( | ||||
|     %SNMP::Info::Layer3::MUNGE, | ||||
|     %SNMP::Info::MAU::MUNGE, | ||||
|     %SNMP::Info::LLDP::MUNGE, | ||||
| ); | ||||
|  | ||||
| # use MAU-MIB for admin. duplex and admin. speed | ||||
| @@ -202,8 +197,6 @@ Subclass for Force10 Networks FTOS-based devices. | ||||
|  | ||||
| =item SNMP::Info::MAU | ||||
|  | ||||
| =item SNMP::Info::LLDP | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head2 Required MIBs | ||||
| @@ -218,8 +211,6 @@ See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::MAU/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| See L<SNMP::Info::LLDP/"Required MIBs"> for its own MIB requirements. | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 GLOBALS | ||||
| @@ -254,10 +245,6 @@ See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"GLOBALS"> for details. | ||||
|  | ||||
| =head2 Global Methods imported from SNMP::Info::Layer3 | ||||
|  | ||||
| See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details. | ||||
|  | ||||
| =head1 TABLE METHODS | ||||
|  | ||||
| These are methods that return tables of information in the form of a reference | ||||
| @@ -291,8 +278,4 @@ See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details. | ||||
|  | ||||
| See documentation in L<SNMP::Info::MAU/"TABLE METHODS"> for details. | ||||
|  | ||||
| =head2 Table Methods imported from SNMP::Info::LLDP | ||||
|  | ||||
| See documentation in L<SNMP::Info::LLDP/"TABLE METHODS"> for details. | ||||
|  | ||||
| =cut | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user