Compare commits
	
		
			88 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					6505e7e85f | ||
| 
						 | 
					ffd80722b8 | ||
| 
						 | 
					6bd5bb3dda | ||
| 
						 | 
					83dec3c1d6 | ||
| 
						 | 
					82f2a83eec | ||
| 
						 | 
					5194af9d91 | ||
| 
						 | 
					a4c76d2fb9 | ||
| 
						 | 
					57a35075fa | ||
| 
						 | 
					fb69a60b45 | ||
| 
						 | 
					2625381e5b | ||
| 
						 | 
					1c048320a6 | ||
| 
						 | 
					c5c25cee7f | ||
| 
						 | 
					dee8177a67 | ||
| 
						 | 
					abbe040351 | ||
| 
						 | 
					29a0f849f1 | ||
| 
						 | 
					7e524f46c6 | ||
| 
						 | 
					1146e99de2 | ||
| 
						 | 
					6740929d41 | ||
| 
						 | 
					831788c1c9 | ||
| 
						 | 
					7e9d4520af | ||
| 
						 | 
					c4317e6e6b | ||
| 
						 | 
					e4e3debce0 | ||
| 
						 | 
					a5b7431070 | ||
| 
						 | 
					054808f59d | ||
| 
						 | 
					0b313d627e | ||
| 
						 | 
					9813b9db90 | ||
| 
						 | 
					9a4e024abb | ||
| 
						 | 
					04a669157f | ||
| 
						 | 
					a364c1512d | ||
| 
						 | 
					0451e6f0a6 | ||
| 
						 | 
					b7f87d9e82 | ||
| 
						 | 
					e2713fb57a | ||
| 
						 | 
					c8eff78d34 | ||
| 
						 | 
					04ca5793fa | ||
| 
						 | 
					83d00ee9c7 | ||
| 
						 | 
					bf56ed2540 | ||
| 
						 | 
					e75aba14b4 | ||
| 
						 | 
					5d2d2d416f | ||
| 
						 | 
					62799bfc9d | ||
| 
						 | 
					df8fbc3c03 | ||
| 
						 | 
					604de81ab8 | ||
| 
						 | 
					ed14b09567 | ||
| 
						 | 
					800758815c | ||
| 
						 | 
					058b74bd63 | ||
| 
						 | 
					02a52a4e09 | ||
| 
						 | 
					74ddc93f7f | ||
| 
						 | 
					eb8af0c81b | ||
| 
						 | 
					bd49274808 | ||
| 
						 | 
					8b1547c589 | ||
| 
						 | 
					c093f83848 | ||
| 
						 | 
					c0b28c38c5 | ||
| 
						 | 
					4621a0898f | ||
| 
						 | 
					6f02e1035f | ||
| 
						 | 
					d4ae9237a6 | ||
| 
						 | 
					914eb05a60 | ||
| 
						 | 
					4da17227c1 | ||
| 
						 | 
					20014cab29 | ||
| 
						 | 
					9d62361c8a | ||
| 
						 | 
					260992b7bf | ||
| 
						 | 
					b9cd429551 | ||
| 
						 | 
					2d18a75ad7 | ||
| 
						 | 
					0cfc501f83 | ||
| 
						 | 
					44b19153f1 | ||
| 
						 | 
					433b87b9df | ||
| 
						 | 
					f9464bcd6c | ||
| 
						 | 
					f5c5ec202a | ||
| 
						 | 
					4b64a70830 | ||
| 
						 | 
					4c8f7e298e | ||
| 
						 | 
					2d539be214 | ||
| 
						 | 
					c35d5814b4 | ||
| 
						 | 
					7d19ad401b | ||
| 
						 | 
					985577ce79 | ||
| 
						 | 
					24e20101d5 | ||
| 
						 | 
					76c884eb9f | ||
| 
						 | 
					7041dbab27 | ||
| 
						 | 
					661051fde4 | ||
| 
						 | 
					36cba5ce18 | ||
| 
						 | 
					4753f30c53 | ||
| 
						 | 
					d719e240d2 | ||
| 
						 | 
					e35faee278 | ||
| 
						 | 
					fd3417a09a | ||
| 
						 | 
					1719709648 | ||
| 
						 | 
					d37aa3378e | ||
| 
						 | 
					f017d32860 | ||
| 
						 | 
					7b23edcb29 | ||
| 
						 | 
					e48c4b4e84 | ||
| 
						 | 
					aeca44c7aa | ||
| 
						 | 
					af6ae8e419 | 
							
								
								
									
										31
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
<!--- Provide a general summary of the issue in the Title above -->
 | 
			
		||||
<!--- https://guides.github.com/features/mastering-markdown/#examples -->
 | 
			
		||||
 | 
			
		||||
## Expected Behavior
 | 
			
		||||
<!--- If you're describing a bug, tell us what should happen -->
 | 
			
		||||
<!--- If you're suggesting a change/improvement, tell us how it should work -->
 | 
			
		||||
 | 
			
		||||
## Current Behavior
 | 
			
		||||
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
 | 
			
		||||
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
 | 
			
		||||
 | 
			
		||||
## Possible Solution
 | 
			
		||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
 | 
			
		||||
<!--- or ideas how to implement the addition or change -->
 | 
			
		||||
 | 
			
		||||
## Steps to Reproduce (for bugs)
 | 
			
		||||
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
 | 
			
		||||
<!--- reproduce this bug. Include code to reproduce, if relevant, or attach screenshots -->
 | 
			
		||||
1. 
 | 
			
		||||
2. 
 | 
			
		||||
3. 
 | 
			
		||||
4. 
 | 
			
		||||
 | 
			
		||||
## Context
 | 
			
		||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
 | 
			
		||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
 | 
			
		||||
 | 
			
		||||
## Your Environment
 | 
			
		||||
<!--- Include as many relevant details about the environment you experienced the bug in -->
 | 
			
		||||
* SNMP::Info version used: 
 | 
			
		||||
* Netdisco version (if used): 
 | 
			
		||||
							
								
								
									
										19
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,12 @@
 | 
			
		||||
*.db
 | 
			
		||||
SNMP
 | 
			
		||||
*.komodo*
 | 
			
		||||
blib/
 | 
			
		||||
META.*
 | 
			
		||||
*.swp
 | 
			
		||||
*.pid
 | 
			
		||||
test.pl
 | 
			
		||||
MYMETA.*
 | 
			
		||||
Makefile
 | 
			
		||||
Makefile.old
 | 
			
		||||
pm_to_blib
 | 
			
		||||
*.tar.gz
 | 
			
		||||
MANIFEST.*
 | 
			
		||||
*.komodo*
 | 
			
		||||
Makefile*
 | 
			
		||||
Build
 | 
			
		||||
_build
 | 
			
		||||
blib
 | 
			
		||||
README
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								.travis.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
language: perl
 | 
			
		||||
addons:
 | 
			
		||||
  apt:
 | 
			
		||||
    packages:
 | 
			
		||||
      - jq
 | 
			
		||||
      - libsnmp-dev
 | 
			
		||||
branches:
 | 
			
		||||
  only:
 | 
			
		||||
    - /^3\.\d{2}$/
 | 
			
		||||
    - 'master'
 | 
			
		||||
before_install:
 | 
			
		||||
  - mkdir ~/netdisco-mibs
 | 
			
		||||
  - cd ~/netdisco-mibs
 | 
			
		||||
install:
 | 
			
		||||
  - >
 | 
			
		||||
    curl -sL https://downloads.sourceforge.net/project/netdisco/netdisco-mibs/latest-snapshot/netdisco-mibs-snapshot.tar.gz |
 | 
			
		||||
      tar --strip-components=1 -zxf -
 | 
			
		||||
  - cpanm --quiet --notest PkgConfig Test::CChecker Alien::zlib::Static Alien::OpenSSL::Static Alien::SNMP::MAXTC
 | 
			
		||||
before_script:
 | 
			
		||||
  - 'cd ${TRAVIS_BUILD_DIR}'
 | 
			
		||||
script:
 | 
			
		||||
  - >
 | 
			
		||||
    perl Build.PL &&
 | 
			
		||||
    PERL_MM_USE_DEFAULT=1 ./Build installdeps --cpan_client 'cpanm --quiet --notest' &&
 | 
			
		||||
    ./Build test --test_files t/ --test_files xt/
 | 
			
		||||
notifications:
 | 
			
		||||
  irc:
 | 
			
		||||
    on_success: change
 | 
			
		||||
    on_failure: always
 | 
			
		||||
    channels:
 | 
			
		||||
      - 'chat.freenode.net#netdisco'
 | 
			
		||||
							
								
								
									
										43
									
								
								Build.PL
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								Build.PL
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
use Module::Build;
 | 
			
		||||
 | 
			
		||||
Module::Build->new(
 | 
			
		||||
  module_name => 'SNMP::Info',
 | 
			
		||||
  license     => 'bsd',
 | 
			
		||||
  dist_author => 'Eric A. Miller <emiller@cpan.org>',
 | 
			
		||||
  # dynamic_config => 1,
 | 
			
		||||
  create_readme => 1,
 | 
			
		||||
  configure_requires => {
 | 
			
		||||
    'Module::Build' => '0.42',
 | 
			
		||||
  },
 | 
			
		||||
  # build_requires => {
 | 
			
		||||
  # },
 | 
			
		||||
  requires => {
 | 
			
		||||
    'SNMP' => '0',
 | 
			
		||||
    'Math::BigInt' => '0',
 | 
			
		||||
  },
 | 
			
		||||
  recommends => {
 | 
			
		||||
    'PPI' => '0',
 | 
			
		||||
    'Class::ISA' => '0',
 | 
			
		||||
    'Module::Info' => '0',
 | 
			
		||||
    'Module::Load' => '0',
 | 
			
		||||
    'File::Slurp' => '0',
 | 
			
		||||
  },
 | 
			
		||||
  test_requires => {
 | 
			
		||||
    'Test::More' => '0.88',
 | 
			
		||||
    'Test::Distribution' => '0',
 | 
			
		||||
  },
 | 
			
		||||
  # script_files => [
 | 
			
		||||
  # ],
 | 
			
		||||
  # share_dir => 'share',
 | 
			
		||||
  meta_merge => {
 | 
			
		||||
    resources => {
 | 
			
		||||
      homepage => 'http://netdisco.org/',
 | 
			
		||||
      bugtracker => 'https://github.com/netdisco/snmp-info/issues',
 | 
			
		||||
      repository => 'https://github.com/netdisco/snmp-info',
 | 
			
		||||
      MailingList => 'https://lists.sourceforge.net/lists/listinfo/snmp-info-users',
 | 
			
		||||
      IRC => 'irc://irc.freenode.org/#netdisco',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
)->create_build_script;
 | 
			
		||||
@@ -1,4 +1,80 @@
 | 
			
		||||
SNMP::Info - Friendly OO-style interface to Network devices using SNMP.
 | 
			
		||||
version 3.41 (2018-02-01)
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * Fixes to distriution metadata
 | 
			
		||||
 | 
			
		||||
version 3.40 (2018-01-28)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * #240 Support for CheckPoint devies through SNMP
 | 
			
		||||
  * #240 Cisco SB switches fixup
 | 
			
		||||
  * #244 Add Adtran support
 | 
			
		||||
  * #241 Vyatta/VyOS support
 | 
			
		||||
  * #246 Nexus VRF support (works with Netdisco)
 | 
			
		||||
  * #244 Improve Juniper model reporting
 | 
			
		||||
  * #240 Improve H3C reporting
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * #243 Nexus additional debug lines should be hidden
 | 
			
		||||
 | 
			
		||||
version 3.39 (2017-12-17)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * #236 Enhanced Ubiquiti device support (L. Begnaud)
 | 
			
		||||
  * add HP J9774A model (H. Teulahti)
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * fix scripts (F. Mass)
 | 
			
		||||
  * fix CiscoASA typos (laelly)
 | 
			
		||||
 | 
			
		||||
version 3.38 (2017-10-23)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * Layer2::Airespace several newer 802.11 data rates added
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * #232 Improve generic Info::Layer3 serial number detection
 | 
			
		||||
 | 
			
		||||
version 3.37 (2017-07-11)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * Layer3::Juniper fixed to return os_ver for JUNOS 14.x and higher
 | 
			
		||||
 | 
			
		||||
version 3.36 (2017-06-28)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * Migrate to Module::Build for distribution maintenance
 | 
			
		||||
 | 
			
		||||
version 3.35 (2017-06-28)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * Include loading of LLDP-EXT-MED-MIB in LLDP.pm
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * #180 support CiscoConfig on Nexus (sf.net:scratchfury)
 | 
			
		||||
  * #50 remove interface specific part from vrf interfaces on IOS (W. Vandersmissen)
 | 
			
		||||
  * #211 f5 class should respect UseEnums when faking i_type
 | 
			
		||||
 | 
			
		||||
version 3.34 (2016-11-20)
 | 
			
		||||
 | 
			
		||||
  [ENHANCEMENTS]
 | 
			
		||||
 | 
			
		||||
  * Support Cisco IPS Modules homed on the Cisco ASA (M. Kraus)
 | 
			
		||||
 | 
			
		||||
  [BUG FIXES]
 | 
			
		||||
 | 
			
		||||
  * Serial number on Nexus 9372 (genereic check for ID before using) (M. Caines)
 | 
			
		||||
 | 
			
		||||
version 3.33 (2016-04-27)
 | 
			
		||||
 | 
			
		||||
@@ -711,7 +787,7 @@ version 1.05 (11/25/07) - CVS only. No official release
 | 
			
		||||
    + Added support for Cisco (Airespace) wireless controllers as new class
 | 
			
		||||
      L2::Airespace
 | 
			
		||||
    + Added support for Nortel Ethernet Routing Switch 2500 series and
 | 
			
		||||
      Business Ethernet Switches (David Siebörger)
 | 
			
		||||
      Business Ethernet Switches (David Siebörger)
 | 
			
		||||
    + Update of L3::Foundry to support all Foundry devices including newer
 | 
			
		||||
      switches.  Depreciate L2::Foundry.
 | 
			
		||||
    + Added generic device type detection using IANA assigned enterpise
 | 
			
		||||
@@ -1,9 +0,0 @@
 | 
			
		||||
# SNMP Device Compatibility Matrix
 | 
			
		||||
# SNMP::Info - (C) 2004 Max Baker
 | 
			
		||||
 | 
			
		||||
# THIS FILE IS NO LONGER MAINTAINED
 | 
			
		||||
 | 
			
		||||
# THERE ARE NOW GENERIC CLASSES FOR MOST DEVICES, SIMPLY LOAD SNMP::Info AND
 | 
			
		||||
# TRY YOUR DEVICE, THEN REPORT TO THE MAIL LIST ANY MISSING FUNCTIONALITY.
 | 
			
		||||
 | 
			
		||||
# THANK YOU
 | 
			
		||||
@@ -1,177 +0,0 @@
 | 
			
		||||
# SNMP::Info::Layer2::Ubiquiti
 | 
			
		||||
# $Id$
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
package SNMP::Info::Layer2::Ubiquiti;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use Exporter;
 | 
			
		||||
use SNMP::Info::IEEE802dot11;
 | 
			
		||||
use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
@SNMP::Info::Layer2::Ubiquiti::ISA
 | 
			
		||||
    = qw/SNMP::Info::IEEE802dot11 SNMP::Info::Layer2 Exporter/;
 | 
			
		||||
@SNMP::Info::Layer2::Ubiquiti::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
    %SNMP::Info::IEEE802dot11::MIBS,
 | 
			
		||||
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%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, );
 | 
			
		||||
 | 
			
		||||
sub os {
 | 
			
		||||
    return 'Ubiquiti';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub os_ver {
 | 
			
		||||
    my $dot11 = shift;
 | 
			
		||||
 | 
			
		||||
    my $versions = $dot11->dot11_prod_ver();
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$versions ) {
 | 
			
		||||
        my $ver = $versions->{$iid};
 | 
			
		||||
        next unless defined $ver;
 | 
			
		||||
	return $ver;
 | 
			
		||||
        if ( $ver =~ /([\d\.]+)/ ) {
 | 
			
		||||
            return $1;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub vendor {
 | 
			
		||||
    return 'Ubiquiti Networks, Inc.';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub model {
 | 
			
		||||
    my $dot11 = shift;
 | 
			
		||||
 | 
			
		||||
    my $names = $dot11->dot11_prod_name();
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$names ) {
 | 
			
		||||
        my $prod = $names->{$iid};
 | 
			
		||||
        next unless defined $prod;
 | 
			
		||||
        return $prod;
 | 
			
		||||
    }
 | 
			
		||||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
__END__
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
SNMP::Info::Layer2::Ubiquiti - SNMP Interface to Ubiquiti Access Points
 | 
			
		||||
 | 
			
		||||
=head1 AUTHOR
 | 
			
		||||
 | 
			
		||||
Max Kosmach
 | 
			
		||||
 | 
			
		||||
=head1 SYNOPSIS
 | 
			
		||||
 | 
			
		||||
 # Let SNMP::Info determine the correct subclass for you. 
 | 
			
		||||
 my $ubnt = new SNMP::Info(
 | 
			
		||||
                          AutoSpecify => 1,
 | 
			
		||||
                          Debug       => 1,
 | 
			
		||||
                          DestHost    => 'myswitch',
 | 
			
		||||
                          Community   => 'public',
 | 
			
		||||
                          Version     => 2
 | 
			
		||||
                        ) 
 | 
			
		||||
    or die "Can't connect to DestHost.\n";
 | 
			
		||||
 | 
			
		||||
 my $class = $ubnt->class();
 | 
			
		||||
 print "SNMP::Info determined this device to fall under subclass : $class\n";
 | 
			
		||||
 | 
			
		||||
=head1 DESCRIPTION
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Required MIBs
 | 
			
		||||
 | 
			
		||||
None.
 | 
			
		||||
 | 
			
		||||
=head2 Inherited MIBs
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its MIB requirements.
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"Required MIBs"> for its MIB requirements.
 | 
			
		||||
 | 
			
		||||
=head1 GLOBALS
 | 
			
		||||
 | 
			
		||||
These are methods that return scalar value from SNMP
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $ubnt->vendor()
 | 
			
		||||
 | 
			
		||||
Returns 'Ubiquiti Networks, Inc.'
 | 
			
		||||
 | 
			
		||||
=item $ubnt->model()
 | 
			
		||||
 | 
			
		||||
Returns the model extracted from C<dot11manufacturerProductName>.
 | 
			
		||||
 | 
			
		||||
=item $ubnt->os()
 | 
			
		||||
 | 
			
		||||
Returns 'Ubiquiti'
 | 
			
		||||
 | 
			
		||||
=item $ubnt->os_ver()
 | 
			
		||||
 | 
			
		||||
Returns the software version extracted from C<dot11manufacturerProductVersion>.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Global Methods imported from SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
=head2 Global Methods imported from SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
=head1 TABLE METHODS
 | 
			
		||||
 | 
			
		||||
These are methods that return tables of information in the form of a reference
 | 
			
		||||
to a hash.
 | 
			
		||||
 | 
			
		||||
=head2 Table Methods imported from SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
 | 
			
		||||
 | 
			
		||||
=head2 Table Methods imported from SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"TABLE METHODS"> for details.
 | 
			
		||||
 | 
			
		||||
=cut
 | 
			
		||||
							
								
								
									
										267
									
								
								MANIFEST
									
									
									
									
									
								
							
							
						
						
									
										267
									
								
								MANIFEST
									
									
									
									
									
								
							@@ -1,128 +1,143 @@
 | 
			
		||||
ChangeLog
 | 
			
		||||
COPYRIGHT
 | 
			
		||||
DEVELOP
 | 
			
		||||
DeviceMatrix.txt
 | 
			
		||||
Info.pm
 | 
			
		||||
Info/AdslLine.pm
 | 
			
		||||
Info/Aggregate.pm
 | 
			
		||||
Info/Airespace.pm
 | 
			
		||||
Info/AMAP.pm
 | 
			
		||||
Info/Bridge.pm
 | 
			
		||||
Info/CDP.pm
 | 
			
		||||
Info/CiscoAgg.pm
 | 
			
		||||
Info/CiscoConfig.pm
 | 
			
		||||
Info/CiscoPortSecurity.pm
 | 
			
		||||
Info/CiscoPower.pm
 | 
			
		||||
Info/CiscoQOS.pm
 | 
			
		||||
Info/CiscoRTT.pm
 | 
			
		||||
Info/CiscoStack.pm
 | 
			
		||||
Info/CiscoStats.pm
 | 
			
		||||
Info/CiscoStpExtensions.pm
 | 
			
		||||
Info/CiscoVTP.pm
 | 
			
		||||
Info/EDP.pm
 | 
			
		||||
Info/Entity.pm
 | 
			
		||||
Info/EtherLike.pm
 | 
			
		||||
Info/FDP.pm
 | 
			
		||||
Info/IEEE802dot11.pm
 | 
			
		||||
Info/IEEE802dot3ad.pm
 | 
			
		||||
Info/IPv6.pm
 | 
			
		||||
Info/Layer1.pm
 | 
			
		||||
Info/Layer1/Allied.pm
 | 
			
		||||
Info/Layer1/Asante.pm
 | 
			
		||||
Info/Layer1/Bayhub.pm
 | 
			
		||||
Info/Layer1/Cyclades.pm
 | 
			
		||||
Info/Layer1/S3000.pm
 | 
			
		||||
Info/Layer2.pm
 | 
			
		||||
Info/Layer2/3Com.pm
 | 
			
		||||
Info/Layer2/Airespace.pm
 | 
			
		||||
Info/Layer2/Aironet.pm
 | 
			
		||||
Info/Layer2/Allied.pm
 | 
			
		||||
Info/Layer2/Baystack.pm
 | 
			
		||||
Info/Layer2/C1900.pm
 | 
			
		||||
Info/Layer2/C2900.pm
 | 
			
		||||
Info/Layer2/Catalyst.pm
 | 
			
		||||
Info/Layer2/Centillion.pm
 | 
			
		||||
Info/Layer2/Cisco.pm
 | 
			
		||||
Info/Layer2/CiscoSB.pm
 | 
			
		||||
Info/Layer2/HP.pm
 | 
			
		||||
Info/Layer2/HP4000.pm
 | 
			
		||||
Info/Layer2/HPVC.pm
 | 
			
		||||
Info/Layer2/Kentrox.pm
 | 
			
		||||
Info/Layer2/N2270.pm
 | 
			
		||||
Info/Layer2/NAP222x.pm
 | 
			
		||||
Info/Layer2/Netgear.pm
 | 
			
		||||
Info/Layer2/NWSS2300.pm
 | 
			
		||||
Info/Layer2/Orinoco.pm
 | 
			
		||||
Info/Layer2/Trapeze.pm
 | 
			
		||||
Info/Layer2/Ubiquiti.pm
 | 
			
		||||
Info/Layer2/ZyXEL_DSLAM.pm
 | 
			
		||||
Info/Layer3.pm
 | 
			
		||||
Info/Layer3/Aironet.pm
 | 
			
		||||
Info/Layer3/AlcatelLucent.pm
 | 
			
		||||
Info/Layer3/AlteonAD.pm
 | 
			
		||||
Info/Layer3/Altiga.pm
 | 
			
		||||
Info/Layer3/Arista.pm
 | 
			
		||||
Info/Layer3/Aruba.pm
 | 
			
		||||
Info/Layer3/BayRS.pm
 | 
			
		||||
Info/Layer3/BlueCoatSG.pm
 | 
			
		||||
Info/Layer3/C3550.pm
 | 
			
		||||
Info/Layer3/C4000.pm
 | 
			
		||||
Info/Layer3/C6500.pm
 | 
			
		||||
Info/Layer3/Cisco.pm
 | 
			
		||||
Info/Layer3/CiscoASA.pm
 | 
			
		||||
Info/Layer3/CiscoFWSM.pm
 | 
			
		||||
Info/Layer3/CiscoSwitch.pm
 | 
			
		||||
Info/Layer3/Contivity.pm
 | 
			
		||||
Info/Layer3/Dell.pm
 | 
			
		||||
Info/Layer3/Enterasys.pm
 | 
			
		||||
Info/Layer3/Extreme.pm
 | 
			
		||||
Info/Layer3/F5.pm
 | 
			
		||||
Info/Layer3/Force10.pm
 | 
			
		||||
Info/Layer3/Fortinet.pm
 | 
			
		||||
Info/Layer3/Foundry.pm
 | 
			
		||||
Info/Layer3/H3C.pm
 | 
			
		||||
Info/Layer3/HP9300.pm
 | 
			
		||||
Info/Layer3/Huawei.pm
 | 
			
		||||
Info/Layer3/IBMGbTor.pm
 | 
			
		||||
Info/Layer3/Juniper.pm
 | 
			
		||||
Info/Layer3/Lantronix.pm
 | 
			
		||||
Info/Layer3/Microsoft.pm
 | 
			
		||||
Info/Layer3/Mikrotik.pm
 | 
			
		||||
Info/Layer3/N1600.pm
 | 
			
		||||
Info/Layer3/Netscreen.pm
 | 
			
		||||
Info/Layer3/NetSNMP.pm
 | 
			
		||||
Info/Layer3/Nexus.pm
 | 
			
		||||
Info/Layer3/PacketFront.pm
 | 
			
		||||
Info/Layer3/PaloAlto.pm
 | 
			
		||||
Info/Layer3/Passport.pm
 | 
			
		||||
Info/Layer3/Pf.pm
 | 
			
		||||
Info/Layer3/Pica8.pm
 | 
			
		||||
Info/Layer3/SonicWALL.pm
 | 
			
		||||
Info/Layer3/Steelhead.pm
 | 
			
		||||
Info/Layer3/Sun.pm
 | 
			
		||||
Info/Layer3/Tasman.pm
 | 
			
		||||
Info/Layer3/Timetra.pm
 | 
			
		||||
Info/Layer3/VMware.pm
 | 
			
		||||
Info/Layer7.pm
 | 
			
		||||
Info/Layer7/APC.pm
 | 
			
		||||
Info/Layer7/Neoteris.pm
 | 
			
		||||
Info/Layer7/Netscaler.pm
 | 
			
		||||
Info/LLDP.pm
 | 
			
		||||
Info/MAU.pm
 | 
			
		||||
Info/MRO.pm
 | 
			
		||||
Info/NortelStack.pm
 | 
			
		||||
Info/PowerEthernet.pm
 | 
			
		||||
Info/RapidCity.pm
 | 
			
		||||
Info/SONMP.pm
 | 
			
		||||
Makefile.PL
 | 
			
		||||
Build.PL
 | 
			
		||||
Changes
 | 
			
		||||
contrib/DEVELOP
 | 
			
		||||
contrib/util/docmunge
 | 
			
		||||
contrib/util/make_dev_matrix.pl
 | 
			
		||||
contrib/util/make_snmpdata.pl
 | 
			
		||||
contrib/util/push_ver
 | 
			
		||||
contrib/util/run_test
 | 
			
		||||
contrib/util/test_class.pl
 | 
			
		||||
contrib/util/test_class_mocked.pl
 | 
			
		||||
lib/SNMP/Info.pm
 | 
			
		||||
lib/SNMP/Info/AdslLine.pm
 | 
			
		||||
lib/SNMP/Info/Aggregate.pm
 | 
			
		||||
lib/SNMP/Info/Airespace.pm
 | 
			
		||||
lib/SNMP/Info/AMAP.pm
 | 
			
		||||
lib/SNMP/Info/Bridge.pm
 | 
			
		||||
lib/SNMP/Info/CDP.pm
 | 
			
		||||
lib/SNMP/Info/CiscoAgg.pm
 | 
			
		||||
lib/SNMP/Info/CiscoConfig.pm
 | 
			
		||||
lib/SNMP/Info/CiscoPortSecurity.pm
 | 
			
		||||
lib/SNMP/Info/CiscoPower.pm
 | 
			
		||||
lib/SNMP/Info/CiscoQOS.pm
 | 
			
		||||
lib/SNMP/Info/CiscoRTT.pm
 | 
			
		||||
lib/SNMP/Info/CiscoStack.pm
 | 
			
		||||
lib/SNMP/Info/CiscoStats.pm
 | 
			
		||||
lib/SNMP/Info/CiscoStpExtensions.pm
 | 
			
		||||
lib/SNMP/Info/CiscoVTP.pm
 | 
			
		||||
lib/SNMP/Info/EDP.pm
 | 
			
		||||
lib/SNMP/Info/Entity.pm
 | 
			
		||||
lib/SNMP/Info/EtherLike.pm
 | 
			
		||||
lib/SNMP/Info/FDP.pm
 | 
			
		||||
lib/SNMP/Info/IEEE802dot11.pm
 | 
			
		||||
lib/SNMP/Info/IEEE802dot3ad.pm
 | 
			
		||||
lib/SNMP/Info/IPv6.pm
 | 
			
		||||
lib/SNMP/Info/Layer1.pm
 | 
			
		||||
lib/SNMP/Info/Layer1/Allied.pm
 | 
			
		||||
lib/SNMP/Info/Layer1/Asante.pm
 | 
			
		||||
lib/SNMP/Info/Layer1/Bayhub.pm
 | 
			
		||||
lib/SNMP/Info/Layer1/Cyclades.pm
 | 
			
		||||
lib/SNMP/Info/Layer1/S3000.pm
 | 
			
		||||
lib/SNMP/Info/Layer2.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/3Com.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Adtran.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Airespace.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Aironet.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Allied.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Baystack.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/C1900.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/C2900.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Catalyst.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Centillion.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Cisco.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/CiscoSB.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/HP.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/HP4000.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/HPVC.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Kentrox.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/N2270.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/NAP222x.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Netgear.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/NWSS2300.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Orinoco.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Trapeze.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/Ubiquiti.pm
 | 
			
		||||
lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
 | 
			
		||||
lib/SNMP/Info/Layer3.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Aironet.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/AlcatelLucent.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/AlteonAD.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Altiga.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Arista.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Aruba.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/BayRS.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/BlueCoatSG.pm
 | 
			
		||||
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/Cisco.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/CiscoASA.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/CiscoFWSM.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/CiscoSwitch.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Contivity.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Dell.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/DLink.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Enterasys.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Extreme.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/F5.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Force10.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Fortinet.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Foundry.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/H3C.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/HP9300.pm
 | 
			
		||||
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/Microsoft.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Mikrotik.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/N1600.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Netscreen.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/NetSNMP.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Nexus.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/PacketFront.pm
 | 
			
		||||
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/SonicWALL.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Steelhead.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Sun.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Tasman.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/Timetra.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/VMware.pm
 | 
			
		||||
lib/SNMP/Info/Layer3/VyOS.pm
 | 
			
		||||
lib/SNMP/Info/Layer7.pm
 | 
			
		||||
lib/SNMP/Info/Layer7/APC.pm
 | 
			
		||||
lib/SNMP/Info/Layer7/CiscoIPS.pm
 | 
			
		||||
lib/SNMP/Info/Layer7/Neoteris.pm
 | 
			
		||||
lib/SNMP/Info/Layer7/Netscaler.pm
 | 
			
		||||
lib/SNMP/Info/LLDP.pm
 | 
			
		||||
lib/SNMP/Info/MAU.pm
 | 
			
		||||
lib/SNMP/Info/MRO.pm
 | 
			
		||||
lib/SNMP/Info/NortelStack.pm
 | 
			
		||||
lib/SNMP/Info/PowerEthernet.pm
 | 
			
		||||
lib/SNMP/Info/RapidCity.pm
 | 
			
		||||
lib/SNMP/Info/SONMP.pm
 | 
			
		||||
LICENSE
 | 
			
		||||
MANIFEST			This list of files
 | 
			
		||||
META.json
 | 
			
		||||
META.yml
 | 
			
		||||
README
 | 
			
		||||
t/00-load.t
 | 
			
		||||
t/docmunge
 | 
			
		||||
t/make_dev_matrix.pl
 | 
			
		||||
t/prereq.t
 | 
			
		||||
t/push_ver
 | 
			
		||||
t/run_test
 | 
			
		||||
t/test_class.pl
 | 
			
		||||
t/util/make_snmpdata.pl
 | 
			
		||||
t/util/test_class_mocked.pl
 | 
			
		||||
t/00_load.t
 | 
			
		||||
xt/.perltidyrc
 | 
			
		||||
xt/00_local_distribution.t
 | 
			
		||||
xt/00_local_docininfo.t
 | 
			
		||||
xt/00_local_perlcritic.t
 | 
			
		||||
xt/00_local_pod-coverage.t
 | 
			
		||||
xt/00_local_pod.t
 | 
			
		||||
xt/00_local_prereq.t
 | 
			
		||||
xt/00_local_spelling.t
 | 
			
		||||
xt/00_local_versionsync.t
 | 
			
		||||
xt/10_remote_snmplabs.t
 | 
			
		||||
 
 | 
			
		||||
@@ -1,28 +1,67 @@
 | 
			
		||||
# Version control files and dirs.
 | 
			
		||||
\.bak$
 | 
			
		||||
\.pid$
 | 
			
		||||
\.swp$
 | 
			
		||||
 | 
			
		||||
^SNMP-Info-
 | 
			
		||||
 | 
			
		||||
^MANIFEST\.
 | 
			
		||||
 | 
			
		||||
# Avoid version control files.
 | 
			
		||||
\bRCS\b
 | 
			
		||||
\bCVS\b
 | 
			
		||||
\bSCCS\b
 | 
			
		||||
,v$
 | 
			
		||||
\B\.svn\b
 | 
			
		||||
\B\.git\b
 | 
			
		||||
.gitignore
 | 
			
		||||
\B\.gitignore\b
 | 
			
		||||
\b_darcs\b
 | 
			
		||||
\B\.cvsignore$
 | 
			
		||||
 | 
			
		||||
# Makemaker generated files and dirs.
 | 
			
		||||
^MANIFEST\.
 | 
			
		||||
^Makefile$
 | 
			
		||||
^blib/
 | 
			
		||||
^MakeMaker-\d
 | 
			
		||||
pm_to_blib
 | 
			
		||||
MYMETA.*
 | 
			
		||||
# Avoid VMS specific MakeMaker generated files
 | 
			
		||||
\bDescrip.MMS$
 | 
			
		||||
\bDESCRIP.MMS$
 | 
			
		||||
\bdescrip.mms$
 | 
			
		||||
 | 
			
		||||
# Temp, old and emacs backup files.
 | 
			
		||||
# Avoid Makemaker generated and utility files.
 | 
			
		||||
\bMANIFEST\.bak
 | 
			
		||||
\bMakefile$
 | 
			
		||||
\bblib/
 | 
			
		||||
\bMakeMaker-\d
 | 
			
		||||
\bpm_to_blib\.ts$
 | 
			
		||||
\bpm_to_blib$
 | 
			
		||||
\bblibdirs\.ts$         # 6.18 through 6.25 generated this
 | 
			
		||||
 | 
			
		||||
# Avoid Module::Build generated and utility files.
 | 
			
		||||
\bBuild$
 | 
			
		||||
\b_build/
 | 
			
		||||
\bBuild.bat$
 | 
			
		||||
\bBuild.COM$
 | 
			
		||||
\bBUILD.COM$
 | 
			
		||||
\bbuild.com$
 | 
			
		||||
 | 
			
		||||
# Avoid temp and backup files.
 | 
			
		||||
~$
 | 
			
		||||
\.old$
 | 
			
		||||
^#.*#$
 | 
			
		||||
^\.#
 | 
			
		||||
\#$
 | 
			
		||||
\b\.#
 | 
			
		||||
\.bak$
 | 
			
		||||
\.tmp$
 | 
			
		||||
\.#
 | 
			
		||||
\.rej$
 | 
			
		||||
 | 
			
		||||
# Private Regression Tests
 | 
			
		||||
\d+_local_
 | 
			
		||||
\.?perl\w+\.?rc$
 | 
			
		||||
# Avoid OS-specific files/dirs
 | 
			
		||||
# Mac OSX metadata
 | 
			
		||||
\B\.DS_Store
 | 
			
		||||
# Mac OSX SMB mount metadata files
 | 
			
		||||
\B\._
 | 
			
		||||
 | 
			
		||||
# Komodo project file
 | 
			
		||||
\.kpf$
 | 
			
		||||
# Avoid Devel::Cover and Devel::CoverX::Covered files.
 | 
			
		||||
\bcover_db\b
 | 
			
		||||
\bcovered\b
 | 
			
		||||
 
 | 
			
		||||
# Avoid MYMETA files
 | 
			
		||||
^MYMETA\.
 | 
			
		||||
 | 
			
		||||
.github
 | 
			
		||||
.travis
 | 
			
		||||
README.md
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										529
									
								
								META.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										529
									
								
								META.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,529 @@
 | 
			
		||||
{
 | 
			
		||||
   "abstract" : "OO Interface to Network devices and MIBs through SNMP",
 | 
			
		||||
   "author" : [
 | 
			
		||||
      "Eric A. Miller <emiller@cpan.org>"
 | 
			
		||||
   ],
 | 
			
		||||
   "dynamic_config" : 1,
 | 
			
		||||
   "generated_by" : "Module::Build version 0.4224",
 | 
			
		||||
   "license" : [
 | 
			
		||||
      "bsd"
 | 
			
		||||
   ],
 | 
			
		||||
   "meta-spec" : {
 | 
			
		||||
      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
 | 
			
		||||
      "version" : 2
 | 
			
		||||
   },
 | 
			
		||||
   "name" : "SNMP-Info",
 | 
			
		||||
   "prereqs" : {
 | 
			
		||||
      "configure" : {
 | 
			
		||||
         "requires" : {
 | 
			
		||||
            "Module::Build" : "0.42"
 | 
			
		||||
         }
 | 
			
		||||
      },
 | 
			
		||||
      "runtime" : {
 | 
			
		||||
         "recommends" : {
 | 
			
		||||
            "Class::ISA" : "0",
 | 
			
		||||
            "File::Slurp" : "0",
 | 
			
		||||
            "Module::Info" : "0",
 | 
			
		||||
            "Module::Load" : "0",
 | 
			
		||||
            "PPI" : "0"
 | 
			
		||||
         },
 | 
			
		||||
         "requires" : {
 | 
			
		||||
            "Math::BigInt" : "0",
 | 
			
		||||
            "SNMP" : "0"
 | 
			
		||||
         }
 | 
			
		||||
      },
 | 
			
		||||
      "test" : {
 | 
			
		||||
         "requires" : {
 | 
			
		||||
            "Test::Distribution" : "0",
 | 
			
		||||
            "Test::More" : "0.88"
 | 
			
		||||
         }
 | 
			
		||||
      }
 | 
			
		||||
   },
 | 
			
		||||
   "provides" : {
 | 
			
		||||
      "SNMP::Info" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::AMAP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/AMAP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::AdslLine" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/AdslLine.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Aggregate" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Aggregate.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Airespace" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Airespace.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Bridge" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Bridge.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CDP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CDP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoAgg" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoAgg.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoConfig" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoConfig.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoPortSecurity" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoPortSecurity.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoPower" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoPower.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoQOS" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoQOS.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoRTT" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoRTT.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoStack" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoStack.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoStats" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoStats.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoStpExtensions" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoStpExtensions.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::CiscoVTP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/CiscoVTP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::EDP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/EDP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Entity" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Entity.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::EtherLike" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/EtherLike.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::FDP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/FDP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::IEEE802dot11" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/IEEE802dot11.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::IEEE802dot3ad" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/IEEE802dot3ad.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::IPv6" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/IPv6.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::LLDP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/LLDP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1::Allied" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1/Allied.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1::Asante" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1/Asante.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1::Bayhub" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1/Bayhub.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1::Cyclades" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1/Cyclades.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer1::S3000" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer1/S3000.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::3Com" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/3Com.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Adtran" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Adtran.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Airespace" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Airespace.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Aironet" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Aironet.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Allied" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Allied.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Baystack" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Baystack.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::C1900" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/C1900.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::C2900" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/C2900.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Catalyst" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Catalyst.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Centillion" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Centillion.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Cisco" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Cisco.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::CiscoSB" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/CiscoSB.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::HP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/HP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::HP4000" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/HP4000.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::HPVC" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/HPVC.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Kentrox" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Kentrox.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::N2270" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/N2270.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::NAP222x" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/NAP222x.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::NWSS2300" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/NWSS2300.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Netgear" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Netgear.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Orinoco" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Orinoco.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Trapeze" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Trapeze.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::Ubiquiti" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/Ubiquiti.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer2::ZyXEL_DSLAM" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Aironet" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Aironet.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::AlcatelLucent" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/AlcatelLucent.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::AlteonAD" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/AlteonAD.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Altiga" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Altiga.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Arista" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Arista.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Aruba" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Aruba.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::BayRS" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/BayRS.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::BlueCoatSG" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/BlueCoatSG.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::C3550" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/C3550.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::C4000" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/C4000.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::C6500" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/C6500.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::CheckPoint" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/CheckPoint.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Cisco" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Cisco.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::CiscoASA" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/CiscoASA.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::CiscoFWSM" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/CiscoFWSM.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::CiscoSwitch" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/CiscoSwitch.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Contivity" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Contivity.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::DLink" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/DLink.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Dell" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Dell.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Enterasys" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Enterasys.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Extreme" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Extreme.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::F5" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/F5.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Force10" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Force10.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Fortinet" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Fortinet.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Foundry" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Foundry.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::H3C" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/H3C.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::HP9300" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/HP9300.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Huawei" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Huawei.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::IBMGbTor" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/IBMGbTor.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Juniper" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Juniper.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Lantronix" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Lantronix.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Microsoft" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Microsoft.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Mikrotik" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Mikrotik.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::N1600" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/N1600.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::NetSNMP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/NetSNMP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Netscreen" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Netscreen.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Nexus" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Nexus.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::PacketFront" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/PacketFront.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::PaloAlto" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/PaloAlto.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Passport" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Passport.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Pf" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Pf.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Pica8" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Pica8.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::SonicWALL" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/SonicWALL.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Steelhead" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Steelhead.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Sun" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Sun.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Tasman" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Tasman.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::Timetra" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/Timetra.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::VMware" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/VMware.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer3::VyOS" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer3/VyOS.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer7" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer7.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer7::APC" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer7/APC.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer7::CiscoIPS" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer7/CiscoIPS.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer7::Neoteris" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer7/Neoteris.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::Layer7::Netscaler" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/Layer7/Netscaler.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::MAU" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/MAU.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::MRO" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/MRO.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::NortelStack" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/NortelStack.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::PowerEthernet" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/PowerEthernet.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::RapidCity" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/RapidCity.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      },
 | 
			
		||||
      "SNMP::Info::SONMP" : {
 | 
			
		||||
         "file" : "lib/SNMP/Info/SONMP.pm",
 | 
			
		||||
         "version" : "3.41"
 | 
			
		||||
      }
 | 
			
		||||
   },
 | 
			
		||||
   "release_status" : "stable",
 | 
			
		||||
   "resources" : {
 | 
			
		||||
      "bugtracker" : {
 | 
			
		||||
         "web" : "https://github.com/netdisco/snmp-info/issues"
 | 
			
		||||
      },
 | 
			
		||||
      "homepage" : "http://netdisco.org/",
 | 
			
		||||
      "license" : [
 | 
			
		||||
         "http://opensource.org/licenses/bsd-license.php"
 | 
			
		||||
      ],
 | 
			
		||||
      "repository" : {
 | 
			
		||||
         "url" : "https://github.com/netdisco/snmp-info"
 | 
			
		||||
      },
 | 
			
		||||
      "x_IRC" : "irc://irc.freenode.org/#netdisco",
 | 
			
		||||
      "x_MailingList" : "https://lists.sourceforge.net/lists/listinfo/snmp-info-users"
 | 
			
		||||
   },
 | 
			
		||||
   "version" : "3.41",
 | 
			
		||||
   "x_serialization_backend" : "JSON::PP version 2.94"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										386
									
								
								META.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										386
									
								
								META.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,386 @@
 | 
			
		||||
---
 | 
			
		||||
abstract: 'OO Interface to Network devices and MIBs through SNMP'
 | 
			
		||||
author:
 | 
			
		||||
  - 'Eric A. Miller <emiller@cpan.org>'
 | 
			
		||||
build_requires:
 | 
			
		||||
  Test::Distribution: '0'
 | 
			
		||||
  Test::More: '0.88'
 | 
			
		||||
configure_requires:
 | 
			
		||||
  Module::Build: '0.42'
 | 
			
		||||
dynamic_config: 1
 | 
			
		||||
generated_by: 'Module::Build version 0.4224, CPAN::Meta::Converter version 2.150010'
 | 
			
		||||
license: bsd
 | 
			
		||||
meta-spec:
 | 
			
		||||
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
 | 
			
		||||
  version: '1.4'
 | 
			
		||||
name: SNMP-Info
 | 
			
		||||
provides:
 | 
			
		||||
  SNMP::Info:
 | 
			
		||||
    file: lib/SNMP/Info.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::AMAP:
 | 
			
		||||
    file: lib/SNMP/Info/AMAP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::AdslLine:
 | 
			
		||||
    file: lib/SNMP/Info/AdslLine.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Aggregate:
 | 
			
		||||
    file: lib/SNMP/Info/Aggregate.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Airespace:
 | 
			
		||||
    file: lib/SNMP/Info/Airespace.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Bridge:
 | 
			
		||||
    file: lib/SNMP/Info/Bridge.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CDP:
 | 
			
		||||
    file: lib/SNMP/Info/CDP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoAgg:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoAgg.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoConfig:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoConfig.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoPortSecurity:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoPortSecurity.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoPower:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoPower.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoQOS:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoQOS.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoRTT:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoRTT.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoStack:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoStack.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoStats:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoStats.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoStpExtensions:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoStpExtensions.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::CiscoVTP:
 | 
			
		||||
    file: lib/SNMP/Info/CiscoVTP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::EDP:
 | 
			
		||||
    file: lib/SNMP/Info/EDP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Entity:
 | 
			
		||||
    file: lib/SNMP/Info/Entity.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::EtherLike:
 | 
			
		||||
    file: lib/SNMP/Info/EtherLike.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::FDP:
 | 
			
		||||
    file: lib/SNMP/Info/FDP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::IEEE802dot11:
 | 
			
		||||
    file: lib/SNMP/Info/IEEE802dot11.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::IEEE802dot3ad:
 | 
			
		||||
    file: lib/SNMP/Info/IEEE802dot3ad.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::IPv6:
 | 
			
		||||
    file: lib/SNMP/Info/IPv6.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::LLDP:
 | 
			
		||||
    file: lib/SNMP/Info/LLDP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1::Allied:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1/Allied.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1::Asante:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1/Asante.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1::Bayhub:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1/Bayhub.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1::Cyclades:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1/Cyclades.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer1::S3000:
 | 
			
		||||
    file: lib/SNMP/Info/Layer1/S3000.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::3Com:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/3Com.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Adtran:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Adtran.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Airespace:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Airespace.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Aironet:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Aironet.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Allied:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Allied.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Baystack:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Baystack.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::C1900:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/C1900.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::C2900:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/C2900.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Catalyst:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Catalyst.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Centillion:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Centillion.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Cisco:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Cisco.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::CiscoSB:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/CiscoSB.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::HP:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/HP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::HP4000:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/HP4000.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::HPVC:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/HPVC.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Kentrox:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Kentrox.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::N2270:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/N2270.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::NAP222x:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/NAP222x.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::NWSS2300:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/NWSS2300.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Netgear:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Netgear.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Orinoco:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Orinoco.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Trapeze:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Trapeze.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::Ubiquiti:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/Ubiquiti.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer2::ZyXEL_DSLAM:
 | 
			
		||||
    file: lib/SNMP/Info/Layer2/ZyXEL_DSLAM.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Aironet:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Aironet.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::AlcatelLucent:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/AlcatelLucent.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::AlteonAD:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/AlteonAD.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Altiga:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Altiga.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Arista:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Arista.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Aruba:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Aruba.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::BayRS:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/BayRS.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::BlueCoatSG:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/BlueCoatSG.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::C3550:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/C3550.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::C4000:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/C4000.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::C6500:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/C6500.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::CheckPoint:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/CheckPoint.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Cisco:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Cisco.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::CiscoASA:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/CiscoASA.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::CiscoFWSM:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/CiscoFWSM.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::CiscoSwitch:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/CiscoSwitch.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Contivity:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Contivity.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::DLink:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/DLink.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Dell:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Dell.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Enterasys:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Enterasys.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Extreme:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Extreme.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::F5:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/F5.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Force10:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Force10.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Fortinet:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Fortinet.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Foundry:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Foundry.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::H3C:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/H3C.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::HP9300:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/HP9300.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Huawei:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Huawei.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::IBMGbTor:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/IBMGbTor.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Juniper:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Juniper.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Lantronix:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Lantronix.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Microsoft:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Microsoft.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Mikrotik:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Mikrotik.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::N1600:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/N1600.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::NetSNMP:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/NetSNMP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Netscreen:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Netscreen.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Nexus:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Nexus.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::PacketFront:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/PacketFront.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::PaloAlto:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/PaloAlto.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Passport:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Passport.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Pf:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Pf.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Pica8:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Pica8.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::SonicWALL:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/SonicWALL.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Steelhead:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Steelhead.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Sun:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Sun.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Tasman:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Tasman.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::Timetra:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/Timetra.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::VMware:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/VMware.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer3::VyOS:
 | 
			
		||||
    file: lib/SNMP/Info/Layer3/VyOS.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer7:
 | 
			
		||||
    file: lib/SNMP/Info/Layer7.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer7::APC:
 | 
			
		||||
    file: lib/SNMP/Info/Layer7/APC.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer7::CiscoIPS:
 | 
			
		||||
    file: lib/SNMP/Info/Layer7/CiscoIPS.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer7::Neoteris:
 | 
			
		||||
    file: lib/SNMP/Info/Layer7/Neoteris.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::Layer7::Netscaler:
 | 
			
		||||
    file: lib/SNMP/Info/Layer7/Netscaler.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::MAU:
 | 
			
		||||
    file: lib/SNMP/Info/MAU.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::MRO:
 | 
			
		||||
    file: lib/SNMP/Info/MRO.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::NortelStack:
 | 
			
		||||
    file: lib/SNMP/Info/NortelStack.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::PowerEthernet:
 | 
			
		||||
    file: lib/SNMP/Info/PowerEthernet.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::RapidCity:
 | 
			
		||||
    file: lib/SNMP/Info/RapidCity.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
  SNMP::Info::SONMP:
 | 
			
		||||
    file: lib/SNMP/Info/SONMP.pm
 | 
			
		||||
    version: '3.41'
 | 
			
		||||
recommends:
 | 
			
		||||
  Class::ISA: '0'
 | 
			
		||||
  File::Slurp: '0'
 | 
			
		||||
  Module::Info: '0'
 | 
			
		||||
  Module::Load: '0'
 | 
			
		||||
  PPI: '0'
 | 
			
		||||
requires:
 | 
			
		||||
  Math::BigInt: '0'
 | 
			
		||||
  SNMP: '0'
 | 
			
		||||
resources:
 | 
			
		||||
  IRC: irc://irc.freenode.org/#netdisco
 | 
			
		||||
  MailingList: https://lists.sourceforge.net/lists/listinfo/snmp-info-users
 | 
			
		||||
  bugtracker: https://github.com/netdisco/snmp-info/issues
 | 
			
		||||
  homepage: http://netdisco.org/
 | 
			
		||||
  license: http://opensource.org/licenses/bsd-license.php
 | 
			
		||||
  repository: https://github.com/netdisco/snmp-info
 | 
			
		||||
version: '3.41'
 | 
			
		||||
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
 | 
			
		||||
							
								
								
									
										39
									
								
								Makefile.PL
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								Makefile.PL
									
									
									
									
									
								
							@@ -1,39 +0,0 @@
 | 
			
		||||
# Module makefile for SNMP::Info (using ExtUtils::MakeMaker)
 | 
			
		||||
# $Id$
 | 
			
		||||
 | 
			
		||||
require 5.006;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use warnings;
 | 
			
		||||
use ExtUtils::MakeMaker;
 | 
			
		||||
 | 
			
		||||
WriteMakefile(
 | 
			
		||||
    NAME          => 'SNMP::Info',
 | 
			
		||||
    AUTHOR        => 'Eric A. Miller <emiller@cpan.org>',
 | 
			
		||||
    VERSION_FROM  => 'Info.pm',
 | 
			
		||||
    ABSTRACT_FROM => 'Info.pm',
 | 
			
		||||
    PREREQ_PM     => {
 | 
			
		||||
        'Test::More'   => 0,
 | 
			
		||||
        'Math::BigInt' => 0,
 | 
			
		||||
        'SNMP'         => 0,
 | 
			
		||||
    },
 | 
			
		||||
    PMLIBDIRS => [ 'Info', '$(BASEEXT)' ],
 | 
			
		||||
    dist      => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
 | 
			
		||||
    clean     => { FILES    => 'SNMP-Info-*' },
 | 
			
		||||
    realclean => { FILES    => 'Makefile.old' },
 | 
			
		||||
    (     ( ExtUtils::MakeMaker->VERSION() lt '6.25' ) ? ( 'PL_FILES' => {} )
 | 
			
		||||
        : ()
 | 
			
		||||
    ),
 | 
			
		||||
    (   ( ExtUtils::MakeMaker->VERSION() gt '6.30' ) ? ( 'LICENSE' => 'bsd' )
 | 
			
		||||
        : ()
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
sub MY::postamble {
 | 
			
		||||
    "
 | 
			
		||||
.PHONY: readme
 | 
			
		||||
readme: README
 | 
			
		||||
README: Info.pm
 | 
			
		||||
	pod2text -l Info.pm > README";
 | 
			
		||||
}
 | 
			
		||||
@@ -3,9 +3,9 @@
 | 
			
		||||
 | 
			
		||||
use File::Glob qw/bsd_glob/;
 | 
			
		||||
 | 
			
		||||
my @pms = glob_rec("../Info");
 | 
			
		||||
my @pms = glob_rec("../../lib");
 | 
			
		||||
 | 
			
		||||
$new_version = shift @ARGV || '3.01';
 | 
			
		||||
$new_version = shift @ARGV || die "missing new version\n";
 | 
			
		||||
 | 
			
		||||
foreach my $p (@pms) {
 | 
			
		||||
    print "$p\n";
 | 
			
		||||
@@ -16,6 +16,7 @@ foreach my $p (@pms) {
 | 
			
		||||
 | 
			
		||||
    while (<O>) {
 | 
			
		||||
        s/^\s*\$VERSION\s+=\s*'[^']+'\s*;/\$VERSION = '$new_version';/;
 | 
			
		||||
        s/^SNMP::Info - Version [\d.]+$/SNMP::Info - Version $new_version/;
 | 
			
		||||
        print P;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -24,7 +24,7 @@ use vars
 | 
			
		||||
    qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG %SPEED_MAP
 | 
			
		||||
    $NOSUCH $BIGINT $REPEATERS/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +32,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
 | 
			
		||||
 | 
			
		||||
=head1 VERSION
 | 
			
		||||
 | 
			
		||||
SNMP::Info - Version 3.33
 | 
			
		||||
SNMP::Info - Version 3.41
 | 
			
		||||
 | 
			
		||||
=head1 AUTHOR
 | 
			
		||||
 | 
			
		||||
@@ -501,6 +501,12 @@ SNMP::Info::Layer2::3Com - SNMP Interface to L2 3Com Switches
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer2::3Com> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer2::Adtran
 | 
			
		||||
 | 
			
		||||
Subclass for Adtran devices.
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer2::Adtran> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer2::Airespace
 | 
			
		||||
 | 
			
		||||
Subclass for Cisco (Airespace) wireless controllers.
 | 
			
		||||
@@ -634,7 +640,7 @@ See documentation in L<SNMP::Info::Layer2::Trapeze> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer2::Ubiquiti
 | 
			
		||||
 | 
			
		||||
SNMP Interface to Ubiquiti Access Points
 | 
			
		||||
SNMP Interface to Ubiquiti Access Points and other devices
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer2::Ubiquiti> for details.
 | 
			
		||||
 | 
			
		||||
@@ -724,6 +730,12 @@ This class covers Catalyst 6500s in native mode, hybrid mode.  Catalyst
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::C6500> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::CheckPoint
 | 
			
		||||
 | 
			
		||||
Subclass for CheckPoint devices
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::CheckPoint> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::Cisco
 | 
			
		||||
 | 
			
		||||
This is a simple wrapper around layer 3 for IOS devices and the base layer 3
 | 
			
		||||
@@ -754,6 +766,12 @@ Subclass for Avaya/Nortel Contivity/VPN Routers.
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::Contivity> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::DLink
 | 
			
		||||
 | 
			
		||||
Subclass for DLink devices.  
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::DLink> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::Dell
 | 
			
		||||
 | 
			
		||||
Subclass for Dell PowerConnect switches. D-Link, the IBM BladeCenter
 | 
			
		||||
@@ -931,6 +949,12 @@ Alcatel-Lucent SR Class.
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::Timetra> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::VyOS
 | 
			
		||||
 | 
			
		||||
Subclass for VyOS routers.
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3::VyOS> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3::VMware
 | 
			
		||||
 | 
			
		||||
Subclass for VMware ESXi hosts.
 | 
			
		||||
@@ -957,6 +981,12 @@ SNMP Interface to APC UPS devices
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer7::APC> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer7::CiscoIPS
 | 
			
		||||
 | 
			
		||||
SNMP Interface to Cisco IPS devices
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer7::Cisco IPS> for details.
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer7::Netscaler
 | 
			
		||||
 | 
			
		||||
SNMP Interface to Citrix Netscaler appliances
 | 
			
		||||
@@ -1512,9 +1542,10 @@ sub device_type {
 | 
			
		||||
        42   => 'SNMP::Info::Layer3::Sun',
 | 
			
		||||
        43   => 'SNMP::Info::Layer2::3Com',
 | 
			
		||||
        45   => 'SNMP::Info::Layer2::Baystack',
 | 
			
		||||
        171  => 'SNMP::Info::Layer3::Dell',
 | 
			
		||||
        171  => 'SNMP::Info::Layer3::DLink',
 | 
			
		||||
        244  => 'SNMP::Info::Layer3::Lantronix',
 | 
			
		||||
        311  => 'SNMP::Info::Layer3::Microsoft',
 | 
			
		||||
        664   => 'SNMP::Info::Layer2::Adtran',
 | 
			
		||||
        674  => 'SNMP::Info::Layer3::Dell',
 | 
			
		||||
        1872 => 'SNMP::Info::Layer3::AlteonAD',
 | 
			
		||||
        1916 => 'SNMP::Info::Layer3::Extreme',
 | 
			
		||||
@@ -1522,6 +1553,7 @@ sub device_type {
 | 
			
		||||
        2011 => 'SNMP::Info::Layer3::Huawei',
 | 
			
		||||
        2021 => 'SNMP::Info::Layer3::NetSNMP',
 | 
			
		||||
        2272 => 'SNMP::Info::Layer3::Passport',
 | 
			
		||||
        2620 => 'SNMP::Info::Layer3::CheckPoint',
 | 
			
		||||
        2636 => 'SNMP::Info::Layer3::Juniper',
 | 
			
		||||
        2925 => 'SNMP::Info::Layer1::Cyclades',
 | 
			
		||||
        3076 => 'SNMP::Info::Layer3::Altiga',
 | 
			
		||||
@@ -1550,6 +1582,8 @@ sub device_type {
 | 
			
		||||
        30065 => 'SNMP::Info::Layer3::Arista',
 | 
			
		||||
        35098 => 'SNMP::Info::Layer3::Pica8',
 | 
			
		||||
        41112 => 'SNMP::Info::Layer2::Ubiquiti',
 | 
			
		||||
        4413 => 'SNMP::Info::Layer2::Ubiquiti',
 | 
			
		||||
        30803 => 'SNMP::Info::Layer3::VyOS',
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    my %l2sysoidmap = (
 | 
			
		||||
@@ -1557,8 +1591,9 @@ sub device_type {
 | 
			
		||||
        11    => 'SNMP::Info::Layer2::HP',
 | 
			
		||||
        43    => 'SNMP::Info::Layer2::3Com',
 | 
			
		||||
        45    => 'SNMP::Info::Layer2::Baystack',
 | 
			
		||||
        171   => 'SNMP::Info::Layer3::Dell',
 | 
			
		||||
        171   => 'SNMP::Info::Layer3::DLink',
 | 
			
		||||
        207   => 'SNMP::Info::Layer2::Allied',
 | 
			
		||||
        664   => 'SNMP::Info::Layer2::Adtran',
 | 
			
		||||
        674   => 'SNMP::Info::Layer3::Dell',
 | 
			
		||||
        1872  => 'SNMP::Info::Layer3::AlteonAD',
 | 
			
		||||
        1916  => 'SNMP::Info::Layer3::Extreme',
 | 
			
		||||
@@ -1689,6 +1724,11 @@ sub device_type {
 | 
			
		||||
        $objtype = 'SNMP::Info::Layer3::CiscoFWSM'
 | 
			
		||||
            if ( $desc =~ /Cisco Firewall Services Module/i );
 | 
			
		||||
        
 | 
			
		||||
        #   Cisco Small Business (300 500) series override
 | 
			
		||||
        #   This is for enterprises(1).cisco(9).otherEnterprises(6).ciscosb(1)
 | 
			
		||||
        $objtype = 'SNMP::Info::Layer2::CiscoSB'
 | 
			
		||||
            if ( $soid =~ /^\.?1\.3\.6\.1\.4\.1\.9\.6\.1/ );
 | 
			
		||||
 | 
			
		||||
        # Avaya Secure Router
 | 
			
		||||
        $objtype = 'SNMP::Info::Layer3::Tasman'
 | 
			
		||||
            if ( $desc =~ /^(avaya|nortel)\s+(SR|secure\srouter)\s+\d{4}/i );
 | 
			
		||||
@@ -1912,6 +1952,10 @@ sub device_type {
 | 
			
		||||
        $objtype = 'SNMP::Info::Layer2::NWSS2300'    
 | 
			
		||||
            if (
 | 
			
		||||
            $desc =~ /^(Nortel\s)??Wireless\sSecurity\sSwitch\s23[568][012]\b/);
 | 
			
		||||
            
 | 
			
		||||
        # Cisco IPS, older version which doesn't report layer 3 functionality
 | 
			
		||||
        $objtype = 'SNMP::Info::Layer7::CiscoIPS'
 | 
			
		||||
            if ( $soid =~ /\.1\.3\.6\.1\.4\.1\.9\.1\.1545/i );
 | 
			
		||||
 | 
			
		||||
        # Generic device classification based upon sysObjectID
 | 
			
		||||
        if ( defined($id) and $objtype eq 'SNMP::Info') {
 | 
			
		||||
@@ -2936,7 +2980,7 @@ allows all developers to have visibility into the request.  Please include
 | 
			
		||||
pointers to the applicable platform MIBs.  For development we will need an
 | 
			
		||||
C<snmpwalk> of the device.  There is a tool now included in the SNMP::Info
 | 
			
		||||
distribution to help with this task, although you'll most likely need to
 | 
			
		||||
download the distribution from CPAN as it's included in the "C<t/util>"
 | 
			
		||||
download the distribution from CPAN as it's included in the "C<contrib/util>"
 | 
			
		||||
directory.
 | 
			
		||||
 | 
			
		||||
The utility is named C<make_snmpdata.pl>. Run it with a command line like:
 | 
			
		||||
@@ -38,7 +38,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS
 | 
			
		||||
    = ( 'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType', );
 | 
			
		||||
@@ -38,7 +38,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +38,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (); # IF-MIB
 | 
			
		||||
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE $INIT/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'BRIDGE-MIB'   => 'dot1dBaseBridgeAddress',
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info;
 | 
			
		||||
use vars
 | 
			
		||||
    qw/$VERSION $DEBUG %FUNCS %GLOBALS %MIBS %MUNGE $INIT %CDP_CAPABILITIES/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# Five data structures required by SNMP::Info
 | 
			
		||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
  %SNMP::Info::IEEE802dot3ad::MIBS,
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
 | 
			
		||||
@@ -97,6 +97,10 @@ sub copy_run_tftp {
 | 
			
		||||
        print "Using new method, row iid: $rand\n" if $ciscoconfig->debug();
 | 
			
		||||
 | 
			
		||||
        #Check each set, delete created row if any fail
 | 
			
		||||
        unless ( $ciscoconfig->set_config_row_status( 5, $rand ) ) {
 | 
			
		||||
            $ciscoconfig->error_throw("Initializing config copy instruction failed");
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        unless ( $ciscoconfig->set_config_source_type( 4, $rand ) ) {
 | 
			
		||||
            $ciscoconfig->error_throw("Setting source type failed");
 | 
			
		||||
            unless ( $ciscoconfig->set_config_row_status( 6, $rand ) ) {
 | 
			
		||||
@@ -38,7 +38,7 @@ use Exporter;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PAECAPABILITIES/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
 | 
			
		||||
          'CISCO-CDP-MIB' => 'cdpCachePowerConsumption' );
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
 | 
			
		||||
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +38,7 @@ use Exporter;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
 | 
			
		||||
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'SNMPv2-MIB'            => 'sysDescr',
 | 
			
		||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION $DEBUG %MIBS %FUNCS %GLOBALS %MUNGE %PORTSTAT $INIT/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
 | 
			
		||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'CISCO-VTP-MIB'                       => 'vtpVlanName',
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'EXTREME-EDP-MIB'   => 'extremeEdpPortIfIndex',
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
 | 
			
		||||
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
 | 
			
		||||
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +50,7 @@ $VERSION = '3.33';
 | 
			
		||||
    'fdp_run'      => 'snFdpGlobalRun',
 | 
			
		||||
    'fdp_interval' => 'snFdpGlobalMessageInterval',
 | 
			
		||||
    'fdp_holdtime' => 'snFdpGlobalHoldTime',
 | 
			
		||||
    'fdp_id'       => 'snFdpGlobalDeviceId',
 | 
			
		||||
    'fdp_gid'      => 'snFdpGlobalDeviceId',
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%FUNCS = (
 | 
			
		||||
@@ -231,7 +231,7 @@ Time in seconds that FDP messages are kept.
 | 
			
		||||
 | 
			
		||||
(C<fdpGlobalHoldTime>)
 | 
			
		||||
 | 
			
		||||
=item  $fdp->fdp_id() 
 | 
			
		||||
=item  $fdp->fdp_gid()
 | 
			
		||||
 | 
			
		||||
Returns FDP device ID.  
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +38,7 @@ use Exporter;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
 | 
			
		||||
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::Aggregate;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
  %SNMP::Info::Aggregate::MIBS,
 | 
			
		||||
@@ -44,7 +44,7 @@ use constant {
 | 
			
		||||
    IPV6MIB => 3,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -313,7 +313,9 @@ sub ipv6_addr_prefix {
 | 
			
		||||
    foreach my $row (keys %$ipv6_addr_prefix){
 | 
			
		||||
        if ($row =~ /^(\d+)\.[\d\.]+$/) {
 | 
			
		||||
            my $type = $1;
 | 
			
		||||
            if ($type == 2) { # IPv6
 | 
			
		||||
	    if (($type == 2) or ($type == 4)) { # IPv6
 | 
			
		||||
		# Remove interface specific part from vrf interfaces
 | 
			
		||||
		if ($row =~ /^((\d+\.){17}\d+)/) { $row = $1 }
 | 
			
		||||
		# Remove the OID part from the value
 | 
			
		||||
		my $val = $ipv6_addr_prefix->{$row};
 | 
			
		||||
		if ( $val =~ /^.+?((?:\d+\.){19}\d+)$/ ){
 | 
			
		||||
@@ -39,10 +39,11 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    'LLDP-MIB'          => 'lldpLocSysCapEnabled',
 | 
			
		||||
    'LLDP-EXT-MED-MIB'  => 'lldpXMedMIB',
 | 
			
		||||
    'LLDP-EXT-DOT1-MIB' => 'lldpXdot1MIB',
 | 
			
		||||
    'LLDP-EXT-DOT3-MIB' => 'lldpXdot3MIB',
 | 
			
		||||
);
 | 
			
		||||
@@ -435,6 +436,8 @@ None.
 | 
			
		||||
 | 
			
		||||
=item F<LLDP-MIB>
 | 
			
		||||
 | 
			
		||||
=item F<LLDP-EXT-MED-MIB>
 | 
			
		||||
 | 
			
		||||
=item F<LLDP-EXT-DOT1-MIB>
 | 
			
		||||
 | 
			
		||||
=item F<LLDP-EXT-DOT3-MIB>
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
 | 
			
		||||
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# Set for No CDP
 | 
			
		||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# Set for No CDP
 | 
			
		||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer1::MIBS,
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -46,7 +46,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,         %SNMP::Info::Bridge::MIBS,
 | 
			
		||||
@@ -11,7 +11,7 @@ use SNMP::Info::CDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::LLDP::MIBS,
 | 
			
		||||
@@ -73,6 +73,8 @@ sub model {
 | 
			
		||||
    my $descr = $dsmodel->description();
 | 
			
		||||
    if ( $descr =~ /^([\S ]+) Software.*/){
 | 
			
		||||
        return $1;
 | 
			
		||||
    } else {
 | 
			
		||||
        return $descr;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										286
									
								
								lib/SNMP/Info/Layer2/Adtran.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								lib/SNMP/Info/Layer2/Adtran.pm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,286 @@
 | 
			
		||||
package SNMP::Info::Layer2::Adtran;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
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::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# 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::Layer3::MIBS,
 | 
			
		||||
    'ADTRAN-GENEVC-MIB'     => 'adGenEVCMIB',
 | 
			
		||||
    'ADTRAN-GENMEF-MIB'     => 'adGenMEFMIB',
 | 
			
		||||
    'ADTRAN-GENPORT-MIB'    => 'adGenPort',
 | 
			
		||||
    'ADTRAN-MIB'            => 'adtran',
 | 
			
		||||
    'ADTRAN-AOSUNIT'     => 'adGenAOSUnitMib',
 | 
			
		||||
 );
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::Layer2::GLOBALS, 
 | 
			
		||||
    %SNMP::Info::Layer3::GLOBALS, 
 | 
			
		||||
    %SNMP::Info::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',
 | 
			
		||||
           'ad_mgmtevcports' => 'adGenSysMgmtEVCInterfaceConnectionType',
 | 
			
		||||
           'ad_evcmapuniport' => 'adGenMEFMapUNIPort',
 | 
			
		||||
           'ad_evcmapevc' => 'adGenMEFMapAssociatedEVCAlias',
 | 
			
		||||
           'ad_genportcustuse' => 'adGenPortCustomerUse',
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, %SNMP::Info::LLDP::MUNGE, %SNMP::Info::Layer3::MUNGE );
 | 
			
		||||
 | 
			
		||||
sub vendor {
 | 
			
		||||
    return 'adtran';
 | 
			
		||||
}
 | 
			
		||||
sub os {
 | 
			
		||||
    return 'aos';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub layers {
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    
 | 
			
		||||
    my $layers = $adtran->SUPER::layers();
 | 
			
		||||
    # Some netvantas don't report L2 properly 
 | 
			
		||||
    my $macs   = $adtran->fw_mac();
 | 
			
		||||
    
 | 
			
		||||
    if (keys %$macs) {
 | 
			
		||||
        my $l = substr $layers, 6, 1, "1";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return $layers;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub os_ver {
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $ver = $adtran->adProdSwVersion() || undef;
 | 
			
		||||
    return $ver if (defined $ver);
 | 
			
		||||
    my $aos_ver = $adtran->adAOSDeviceVersion();
 | 
			
		||||
    return $aos_ver;
 | 
			
		||||
}
 | 
			
		||||
sub model { 
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $id = $adtran->id();
 | 
			
		||||
    my $mod = $adtran->adProdName() || undef;
 | 
			
		||||
    return $mod if (defined $mod);
 | 
			
		||||
    my $model = $adtran->adAOSDeviceProductName() || undef;
 | 
			
		||||
    return $model;
 | 
			
		||||
}
 | 
			
		||||
sub serial { 
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $e_serial = $adtran->e_serial() || {};
 | 
			
		||||
    my $serial2 = $e_serial->{1} || undef;
 | 
			
		||||
    return $serial2 if ( defined $serial2 );
 | 
			
		||||
    return $adtran->orig_serial();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub i_name {
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $partial = shift;
 | 
			
		||||
    my $i_name = $adtran->SUPER::i_alias() || undef; 
 | 
			
		||||
    return $i_name if (defined $i_name);
 | 
			
		||||
    $i_name = {};
 | 
			
		||||
    my $adname = $adtran->ad_genportcustuse() || undef;
 | 
			
		||||
    if (defined $adname) {  
 | 
			
		||||
        foreach my $port (keys %$adname) { 
 | 
			
		||||
            my @split = split(/\./,$port);
 | 
			
		||||
            $i_name->{@split[1]} = $adname->{$port};
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return $i_name;
 | 
			
		||||
}
 | 
			
		||||
sub i_vlan { 
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $partial = shift;
 | 
			
		||||
    my $uniports = $adtran->ad_evcmapuniport() || undef;
 | 
			
		||||
    my $evcmaps = $adtran->ad_evcmapevc() || undef;
 | 
			
		||||
    my $v_names = $adtran->ad_evcnamevid() || undef;
 | 
			
		||||
    if (defined $uniports) {
 | 
			
		||||
        my $vlans = {};
 | 
			
		||||
        foreach my $oid (keys %$v_names) {
 | 
			
		||||
            my $name = pack("C*", split(/\./,$oid));
 | 
			
		||||
            $vlans->{$name} = $v_names->{$oid};
 | 
			
		||||
        }
 | 
			
		||||
        my $i_vlan = {};
 | 
			
		||||
        foreach my $evcmap (keys %$evcmaps) {
 | 
			
		||||
            $i_vlan->{$uniports->{$evcmap}} = $vlans->{$evcmaps->{$evcmap}};
 | 
			
		||||
        }
 | 
			
		||||
        return $i_vlan;
 | 
			
		||||
    }
 | 
			
		||||
    return {};
 | 
			
		||||
        
 | 
			
		||||
}
 | 
			
		||||
        
 | 
			
		||||
sub i_vlan_membership {         
 | 
			
		||||
    my $adtran  = shift;
 | 
			
		||||
    my $partial = shift;
 | 
			
		||||
    my $i_vlan = $adtran->ad_menport();
 | 
			
		||||
    if (defined $i_vlan) { 
 | 
			
		||||
        my $vlans = {};
 | 
			
		||||
        my $v_name = $adtran->v_name();
 | 
			
		||||
        foreach my $vid (keys %$v_name) {
 | 
			
		||||
            $vlans->{$v_name->{$vid}} = $vid;
 | 
			
		||||
        }
 | 
			
		||||
        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 $mgmtevcports = $adtran->ad_mgmtevcports();
 | 
			
		||||
        my $mgmtevcid = $adtran->ad_mgmtevcvid();
 | 
			
		||||
        foreach my $port (keys %$mgmtevcports) {
 | 
			
		||||
           push @{$if_vlans->{$port}}, $mgmtevcid;
 | 
			
		||||
        }
 | 
			
		||||
        return $if_vlans;
 | 
			
		||||
    }
 | 
			
		||||
    return {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub v_name {
 | 
			
		||||
    my $adtran = shift;
 | 
			
		||||
    my $partial = shift;
 | 
			
		||||
    my $v_index = $adtran->ad_evcstag();
 | 
			
		||||
    return {} unless defined $v_index;
 | 
			
		||||
    $v_index->{$adtran->ad_mgmtevcvid()} = 'system-management-evc';
 | 
			
		||||
    return $v_index;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
__END__
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
SNMP::Info::Layer2::Adtran - SNMP Interface to Adtran Devices
 | 
			
		||||
 | 
			
		||||
=head1 SYNOPSIS
 | 
			
		||||
 | 
			
		||||
 # Let SNMP::Info determine the correct subclass for you. 
 | 
			
		||||
 my $adtran = new SNMP::Info(
 | 
			
		||||
                          AutoSpecify => 1,
 | 
			
		||||
                          Debug       => 1,
 | 
			
		||||
                          DestHost    => 'myrouter',
 | 
			
		||||
                          Community   => 'public',
 | 
			
		||||
                          Version     => 2
 | 
			
		||||
                        ) 
 | 
			
		||||
    or die "Can't connect to DestHost.\n";
 | 
			
		||||
 | 
			
		||||
 my $class      = $adtran->class();
 | 
			
		||||
 print "SNMP::Info determined this device to fall under subclass : $class\n";
 | 
			
		||||
 | 
			
		||||
=head1 DESCRIPTION
 | 
			
		||||
 | 
			
		||||
Subclass for adtran Devices running JUNOS
 | 
			
		||||
 | 
			
		||||
=head2 Inherited Classes
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::LLDP
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Inherited Classes' MIBs
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $adtran->vendor()
 | 
			
		||||
 | 
			
		||||
Returns 'adtran'
 | 
			
		||||
 | 
			
		||||
=item $adtran->os()
 | 
			
		||||
 | 
			
		||||
Returns 'aos'
 | 
			
		||||
 | 
			
		||||
=item $adtran->layers()
 | 
			
		||||
 | 
			
		||||
Ensures that layer two is reported, at least.
 | 
			
		||||
 | 
			
		||||
=item $adtran->os_ver()
 | 
			
		||||
 | 
			
		||||
Returns the software version extracted first from C<adProdSwVersion> or
 | 
			
		||||
C<adAOSDeviceVersion>.
 | 
			
		||||
 | 
			
		||||
=item $adtran->model()
 | 
			
		||||
 | 
			
		||||
Returns the model extracted first from C<adProdName> or
 | 
			
		||||
C<adAOSDeviceProductName>.
 | 
			
		||||
 | 
			
		||||
=item $adtran->serial()
 | 
			
		||||
 | 
			
		||||
Returns serial number.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Globals imported from SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
to a hash.
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $adtran->v_name()
 | 
			
		||||
 | 
			
		||||
VLAN names table.
 | 
			
		||||
 | 
			
		||||
=item $adtran->i_name()
 | 
			
		||||
 | 
			
		||||
Interface names table.
 | 
			
		||||
 | 
			
		||||
=item $adtran->i_vlan()
 | 
			
		||||
 | 
			
		||||
Returns a mapping between C<ifIndex> and the PVID or default VLAN.
 | 
			
		||||
 | 
			
		||||
=item $adtran->i_vlan_membership()
 | 
			
		||||
 | 
			
		||||
Returns reference to hash of arrays: key = C<ifIndex>, value = array of VLAN
 | 
			
		||||
IDs.  These are the VLANs which are members of the egress list for the port.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=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
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::Airespace;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,      %SNMP::Info::Bridge::MIBS,
 | 
			
		||||
@@ -97,6 +97,14 @@ my $mcs_index = {
 | 
			
		||||
	m13 => '104',
 | 
			
		||||
	m14 => '117',
 | 
			
		||||
	m15 => '130',
 | 
			
		||||
	m16 => '19.5',
 | 
			
		||||
	m17 => '39',
 | 
			
		||||
	m18 => '58.5',
 | 
			
		||||
	m19 => '78',
 | 
			
		||||
	m20 => '117',
 | 
			
		||||
	m21 => '156',
 | 
			
		||||
	m22 => '175.5',
 | 
			
		||||
	m23 => '195',
 | 
			
		||||
	# This is a cheat for 802.11a bonded
 | 
			
		||||
	m108 => '108',
 | 
			
		||||
    },
 | 
			
		||||
@@ -117,6 +125,14 @@ my $mcs_index = {
 | 
			
		||||
	m13 => '240',
 | 
			
		||||
	m14 => '270',
 | 
			
		||||
	m15 => '300',
 | 
			
		||||
	m16 => '45',
 | 
			
		||||
	m17 => '90',
 | 
			
		||||
	m18 => '135',
 | 
			
		||||
	m19 => '180',
 | 
			
		||||
	m20 => '270',
 | 
			
		||||
	m21 => '360',
 | 
			
		||||
	m22 => '405',
 | 
			
		||||
	m23 => '450',
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -165,6 +181,7 @@ sub cd11_txrate {
 | 
			
		||||
	elsif ( $rate =~ /^m/ ) {
 | 
			
		||||
	    my $band = $protos->{$idx};
 | 
			
		||||
	    my $bw   = $bws->{$band};
 | 
			
		||||
	    # FIXME throw some kind of error if we get an index/rate that we haven't implemented yet? Now we simply return "0.0"...
 | 
			
		||||
	    $cd11_txrate->{$idx} = [ $mcs_index->{$bw}->{$rate} || '0.0' ];
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
@@ -49,7 +49,7 @@ use SNMP::Info::IEEE802dot11;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::IEEE802dot11::GLOBALS,
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +46,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,    %SNMP::Info::LLDP::MIBS,
 | 
			
		||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::Layer2::GLOBALS,
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::Layer2::Cisco::GLOBALS,
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::Cisco::MIBS,
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::SONMP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -50,7 +50,7 @@ use SNMP::Info::CDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::Layer2::GLOBALS,
 | 
			
		||||
@@ -130,8 +130,9 @@ sub model {
 | 
			
		||||
 | 
			
		||||
    foreach my $e ( sort keys %$e_model ) {
 | 
			
		||||
        if (defined $e_model->{$e} and $e_model->{$e} !~ /^\s*$/) {
 | 
			
		||||
            my $model = "$e_model->{$e} $e_hwver->{$e}";
 | 
			
		||||
            return $model;
 | 
			
		||||
            return $e_model->{$e};
 | 
			
		||||
            #my $model = "$e_model->{$e} $e_hwver->{$e}";
 | 
			
		||||
            #return $model;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return $ciscosb->description();
 | 
			
		||||
@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -215,6 +215,7 @@ $VERSION = '3.33';
 | 
			
		||||
    'J9085A' => '2610-24',
 | 
			
		||||
    'J8762A' => '2600-8-PWR',
 | 
			
		||||
    'J9780A' => '2530-8-PoE+',
 | 
			
		||||
    'J9774A' => '2530-8G-PoEP',
 | 
			
		||||
    'J9777A' => '2530-8G',
 | 
			
		||||
    'J9783A' => '2530-8',
 | 
			
		||||
    'J9778A' => '2530-48-PoE+',
 | 
			
		||||
@@ -44,7 +44,7 @@ use SNMP::Info::CDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %PORTSTAT %MODEL_MAP %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::Airespace;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE $AUTOLOAD $INIT $DEBUG/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,        %SNMP::Info::Bridge::MIBS,
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info::Bridge;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# This will be filled in with the device's index into the EntPhysicalEntry
 | 
			
		||||
# table by the serial() function.
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
							
								
								
									
										319
									
								
								lib/SNMP/Info/Layer2/Ubiquiti.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								lib/SNMP/Info/Layer2/Ubiquiti.pm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,319 @@
 | 
			
		||||
# SNMP::Info::Layer2::Ubiquiti
 | 
			
		||||
# $Id$
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
package SNMP::Info::Layer2::Ubiquiti;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
use Exporter;
 | 
			
		||||
use SNMP::Info::IEEE802dot11;
 | 
			
		||||
use SNMP::Info::Layer2;
 | 
			
		||||
use SNMP::Info::Layer3;  # only used in sub mac()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@SNMP::Info::Layer2::Ubiquiti::ISA
 | 
			
		||||
    = qw/SNMP::Info::IEEE802dot11 SNMP::Info::Layer2 Exporter/;
 | 
			
		||||
@SNMP::Info::Layer2::Ubiquiti::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS,
 | 
			
		||||
    %SNMP::Info::IEEE802dot11::MIBS,
 | 
			
		||||
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%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, );
 | 
			
		||||
 | 
			
		||||
sub os {
 | 
			
		||||
    my $ubnt = shift;
 | 
			
		||||
 | 
			
		||||
    my $names = $ubnt->dot11_prod_name();
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$names ) {
 | 
			
		||||
        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
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ## EdgeMAX OS (EdgeSwitch and EdgeRouter) name is first field split by space
 | 
			
		||||
    my $ver = $ubnt->description() || '';
 | 
			
		||||
 | 
			
		||||
    my @myver = split(/ /, $ver);
 | 
			
		||||
 | 
			
		||||
    return $myver[0];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub os_ver {
 | 
			
		||||
    my $dot11 = shift;
 | 
			
		||||
 | 
			
		||||
    my $versions = $dot11->dot11_prod_ver();
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$versions ) {
 | 
			
		||||
        my $ver = $versions->{$iid};
 | 
			
		||||
        next unless defined $ver;
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    my $ver = $dot11->description() || '';
 | 
			
		||||
    if($ver =~ /^edgeswitch/){
 | 
			
		||||
        ## EdgeSwitch OS version is second field split by comma
 | 
			
		||||
        my @myver = split(/, /, $ver);
 | 
			
		||||
 | 
			
		||||
        return $myver[1];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ## EdgeRouter OS version is second field split by space
 | 
			
		||||
    my @myver = split(/ /, $ver);
 | 
			
		||||
 | 
			
		||||
    return $myver[1];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub vendor {
 | 
			
		||||
    return 'Ubiquiti Networks, Inc.';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub model {
 | 
			
		||||
    my $ubnt = shift;
 | 
			
		||||
 | 
			
		||||
    my $names = $ubnt->dot11_prod_name();
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$names ) {
 | 
			
		||||
        my $prod = $names->{$iid};
 | 
			
		||||
        next unless defined $prod;
 | 
			
		||||
        return $prod;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    my $desc = $ubnt->description() || '';
 | 
			
		||||
    
 | 
			
		||||
    ## Pull Model from beginning of description, separated by comma (EdgeSwitch)
 | 
			
		||||
    if((lc $desc) =~ /^edgeswitch/){    
 | 
			
		||||
        my @mydesc = split(/, /, $desc);
 | 
			
		||||
        return $mydesc[0];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
        return ;
 | 
			
		||||
    }else{
 | 
			
		||||
        ## do some logic to determine ER model based on tech specs from ubnt:
 | 
			
		||||
        ## https://help.ubnt.com/hc/en-us/articles/219652227--EdgeRouter-Which-EdgeRouter-Should-I-Use-#tech%20specs
 | 
			
		||||
        ## Would be nice if UBNT simply adds the model string to their SNMP daemon directly
 | 
			
		||||
        my $ethCount = 0;
 | 
			
		||||
        my $switchCount = 0;
 | 
			
		||||
        #my $sfpCount = 0;
 | 
			
		||||
        #my $poeCount = 0;  
 | 
			
		||||
        my $memTotalReal = $ubnt->memTotalReal;   
 | 
			
		||||
        my $cpuLoad = $ubnt->hrProcessorLoad;
 | 
			
		||||
        my $cpuCount = 0;
 | 
			
		||||
        ## My perl is lacking. Not sure if there's a more efficient way to find the cpu count
 | 
			
		||||
        foreach my $iid ( keys %$cpuLoad ) {
 | 
			
		||||
            $cpuCount++;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        my $ifDescs = $ubnt->ifDescr;
 | 
			
		||||
        foreach my $iid ( keys %$ifDescs ) {
 | 
			
		||||
            my $ifDesc = $ifDescs->{$iid};
 | 
			
		||||
            next unless defined $ifDesc;
 | 
			
		||||
 | 
			
		||||
            if((lc $ifDesc) =~ /^eth\d+$/){ # exclude vlan interfaces. Ex: eth1.5
 | 
			
		||||
                $ethCount++;
 | 
			
		||||
            }elsif((lc $ifDesc) =~ /^switch/){
 | 
			
		||||
                $switchCount++;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ## If people have other models to further fine-tune this logic that would be great. 
 | 
			
		||||
        if($ethCount eq 9){
 | 
			
		||||
            ## Should be ER Infinity
 | 
			
		||||
            return "EdgeRouter Infinity"
 | 
			
		||||
        }if($ethCount eq 8){
 | 
			
		||||
            ## Could be ER-8 Pro, ER-8, or EP-R8
 | 
			
		||||
            return "EdgeRouter 8-Port"
 | 
			
		||||
        }elsif($ethCount eq 5 and $cpuCount eq 4){
 | 
			
		||||
            ## Could be ER-X or ER-X-SFP
 | 
			
		||||
            return "EdgeRouter X 5-Port"
 | 
			
		||||
        }elsif($ethCount eq 5){
 | 
			
		||||
            return "EdgeRouter PoE 5-Port"
 | 
			
		||||
        }elsif($ethCount eq 3 and $cpuCount eq 2){
 | 
			
		||||
            return "EdgeRouter LITE 3-Port"
 | 
			
		||||
        }else{
 | 
			
		||||
            ## failback string
 | 
			
		||||
            return "EdgeRouter eth-$ethCount switch-$switchCount mem-$memTotalReal cpuNum-$cpuCount";
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## simply take the MAC and clean it up
 | 
			
		||||
sub serial {
 | 
			
		||||
    my $ubnt = shift;
 | 
			
		||||
 | 
			
		||||
    my $serial = $ubnt->mac();
 | 
			
		||||
    if($serial){
 | 
			
		||||
        $serial =~ s/://g;
 | 
			
		||||
        return uc $serial;
 | 
			
		||||
    }
 | 
			
		||||
    return ;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## UBNT doesn't put the primary-mac interface at index 1
 | 
			
		||||
sub mac {
 | 
			
		||||
    my $ubnt = shift;
 | 
			
		||||
    my $ifDescs = $ubnt->ifDescr;
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$ifDescs ) {
 | 
			
		||||
        my $ifDesc = $ifDescs->{$iid};
 | 
			
		||||
        next unless defined $ifDesc;
 | 
			
		||||
        ## CPU Interface will have the primary MAC for EdgeSwitch
 | 
			
		||||
        ## eth0 will have primary MAC for linux-based UBNT devices
 | 
			
		||||
        if($ifDesc =~ /CPU/ or $ifDesc eq 'eth0'){
 | 
			
		||||
            my $mac = $ubnt->ifPhysAddress->{$iid};
 | 
			
		||||
 | 
			
		||||
            # syntax stolen from sub munge_mac in SNMP::Info
 | 
			
		||||
            $mac = lc join( ':', map { sprintf "%02x", $_ } unpack( 'C*', $mac ) );
 | 
			
		||||
            return $mac if $mac =~ /^([0-9A-F][0-9A-F]:){5}[0-9A-F][0-9A-F]$/i;  
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    # MAC malformed or missing
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
__END__
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
SNMP::Info::Layer2::Ubiquiti - SNMP Interface to Ubiquiti Access Points
 | 
			
		||||
 | 
			
		||||
=head1 AUTHOR
 | 
			
		||||
 | 
			
		||||
Max Kosmach
 | 
			
		||||
 | 
			
		||||
=head1 SYNOPSIS
 | 
			
		||||
 | 
			
		||||
 # Let SNMP::Info determine the correct subclass for you. 
 | 
			
		||||
 my $ubnt = new SNMP::Info(
 | 
			
		||||
                          AutoSpecify => 1,
 | 
			
		||||
                          Debug       => 1,
 | 
			
		||||
                          DestHost    => 'myswitch',
 | 
			
		||||
                          Community   => 'public',
 | 
			
		||||
                          Version     => 2
 | 
			
		||||
                        ) 
 | 
			
		||||
    or die "Can't connect to DestHost.\n";
 | 
			
		||||
 | 
			
		||||
 my $class = $ubnt->class();
 | 
			
		||||
 print "SNMP::Info determined this device to fall under subclass : $class\n";
 | 
			
		||||
 | 
			
		||||
=head1 DESCRIPTION
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Required MIBs
 | 
			
		||||
 | 
			
		||||
None.
 | 
			
		||||
 | 
			
		||||
=head2 Inherited MIBs
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its MIB requirements.
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"Required MIBs"> for its MIB requirements.
 | 
			
		||||
 | 
			
		||||
=head1 GLOBALS
 | 
			
		||||
 | 
			
		||||
These are methods that return scalar value from SNMP
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $ubnt->vendor()
 | 
			
		||||
 | 
			
		||||
Returns 'Ubiquiti Networks, Inc.'
 | 
			
		||||
 | 
			
		||||
=item $ubnt->model()
 | 
			
		||||
 | 
			
		||||
Returns the model extracted from C<dot11manufacturerProductName>, with failback to some complex logic for EdgeMax devices
 | 
			
		||||
 | 
			
		||||
=item $ubnt->serial()
 | 
			
		||||
 | 
			
		||||
Serial Number.
 | 
			
		||||
 | 
			
		||||
=item $ubnt->mac()
 | 
			
		||||
 | 
			
		||||
Bridge MAC address.
 | 
			
		||||
 | 
			
		||||
=item $ubnt->os()
 | 
			
		||||
 | 
			
		||||
Returns 'Ubiquiti Networks, Inc.'
 | 
			
		||||
 | 
			
		||||
=item $ubnt->os_ver()
 | 
			
		||||
 | 
			
		||||
Returns the software version extracted from C<dot11manufacturerProductVersion>, with failback to description splitting for EdgeMax devices
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Global Methods imported from SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
=head2 Global Methods imported from SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
=head1 TABLE METHODS
 | 
			
		||||
 | 
			
		||||
These are methods that return tables of information in the form of a reference
 | 
			
		||||
to a hash.
 | 
			
		||||
 | 
			
		||||
=head2 Table Methods imported from SNMP::Info::Layer2
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
 | 
			
		||||
 | 
			
		||||
=head2 Table Methods imported from SNMP::Info::IEEE802dot11
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::IEEE802dot11/"TABLE METHODS"> for details.
 | 
			
		||||
 | 
			
		||||
=cut
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# Set for No CDP
 | 
			
		||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
 | 
			
		||||
@@ -53,7 +53,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
@@ -196,12 +196,15 @@ sub serial {
 | 
			
		||||
 | 
			
		||||
    my $serial1 = $l3->serial1();
 | 
			
		||||
    my $e_parent = $l3->e_parent() || {};
 | 
			
		||||
    my $e_class  = $l3->e_class() || {};
 | 
			
		||||
 | 
			
		||||
    foreach my $iid ( keys %$e_parent ) {
 | 
			
		||||
        my $parent = $e_parent->{$iid};
 | 
			
		||||
        if ( $parent eq '0' ) {
 | 
			
		||||
        my $class = $e_class->{$iid} || '';
 | 
			
		||||
        # Only consider serial numbers for entries without a parent, or if they are of type "chassis"
 | 
			
		||||
        if ( $parent eq '0' or $class eq 'chassis') {
 | 
			
		||||
            my $serial = $l3->e_serial($iid);
 | 
			
		||||
            if ( $serial ) {
 | 
			
		||||
            if ( $serial && $serial->{$iid} ) {
 | 
			
		||||
                return $serial->{$iid};
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE 
 | 
			
		||||
            $int_include_vpn $fake_idx $type_class/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
            %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -48,7 +48,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::Bridge;
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE %MODEL_MAP
 | 
			
		||||
    %MODID_MAP %PROCID_MAP/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS,
 | 
			
		||||
@@ -36,7 +36,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -47,7 +47,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# NOTE: Order creates precedence
 | 
			
		||||
#       Example: v_name exists in Bridge.pm and CiscoVTP.pm
 | 
			
		||||
@@ -44,7 +44,7 @@ use SNMP::Info::MAU;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MAU::MIBS,
 | 
			
		||||
@@ -51,7 +51,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
# NOTE: Order creates precedence
 | 
			
		||||
#       Example: v_name exists in Bridge.pm and CiscoVTP.pm
 | 
			
		||||
							
								
								
									
										330
									
								
								lib/SNMP/Info/Layer3/CheckPoint.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										330
									
								
								lib/SNMP/Info/Layer3/CheckPoint.pm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,330 @@
 | 
			
		||||
# SNMP::Info::Layer3::CheckPoint
 | 
			
		||||
# $Id$
 | 
			
		||||
#
 | 
			
		||||
# Copyright (c) 2008 Bill Fenner
 | 
			
		||||
# All rights reserved.
 | 
			
		||||
#
 | 
			
		||||
# Redistribution and use in source and binary forms, with or without
 | 
			
		||||
# modification, are permitted provided that the following conditions are met:
 | 
			
		||||
#
 | 
			
		||||
#     * Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
#       this list of conditions and the following disclaimer.
 | 
			
		||||
#     * Redistributions in binary form must reproduce the above copyright
 | 
			
		||||
#       notice, this list of conditions and the following disclaimer in the
 | 
			
		||||
#       documentation and/or other materials provided with the distribution.
 | 
			
		||||
#     * Neither the name of the University of California, Santa Cruz nor the
 | 
			
		||||
#       names of its contributors may be used to endorse or promote products
 | 
			
		||||
#       derived from this software without specific prior written permission.
 | 
			
		||||
#
 | 
			
		||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
			
		||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 | 
			
		||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | 
			
		||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
			
		||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | 
			
		||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | 
			
		||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
			
		||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
			
		||||
# POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
package SNMP::Info::Layer3::CheckPoint;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
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::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
    %SNMP::Info::LLDP::MIBS,
 | 
			
		||||
    'CHECKPOINT-MIB'      => 'fwProduct',
 | 
			
		||||
    'UCD-SNMP-MIB'        => 'versionTag',
 | 
			
		||||
    'NET-SNMP-TC'         => 'netSnmpAgentOIDs',
 | 
			
		||||
    'NET-SNMP-EXTEND-MIB' => 'nsExtendNumEntries',
 | 
			
		||||
    'HOST-RESOURCES-MIB'  => 'hrSystem',
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%GLOBALS = (
 | 
			
		||||
    %SNMP::Info::Layer3::GLOBALS,
 | 
			
		||||
    %SNMP::Info::LLDP::GLOBALS,
 | 
			
		||||
    'netsnmp_vers'   => 'versionTag',
 | 
			
		||||
    'hrSystemUptime' => 'hrSystemUptime',
 | 
			
		||||
    
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%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',
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%MUNGE = (
 | 
			
		||||
    %SNMP::Info::Layer3::MUNGE,
 | 
			
		||||
    %SNMP::Info::LLDP::MUNGE,
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
sub vendor {
 | 
			
		||||
    return 'checkpoint';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub model {
 | 
			
		||||
    my $ckp = shift;
 | 
			
		||||
    my $id = $ckp->id;
 | 
			
		||||
 | 
			
		||||
    my $model = &SNMP::translateObj($id);
 | 
			
		||||
 | 
			
		||||
    if (defined $model) {
 | 
			
		||||
        $model =~ s/^checkPoint//;
 | 
			
		||||
        return $model;
 | 
			
		||||
    } else {
 | 
			
		||||
        return $id;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub os {
 | 
			
		||||
    return 'checkpoint';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub os_ver {
 | 
			
		||||
    my $ckp = shift;
 | 
			
		||||
    my $extend_table = $ckp->extend_output_table() || {};
 | 
			
		||||
 | 
			
		||||
    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;
 | 
			
		||||
        }
 | 
			
		||||
    } 
 | 
			
		||||
 | 
			
		||||
    $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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return '';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub layers {
 | 
			
		||||
    return '01001100';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# sysUptime gives us the time since the SNMP daemon has restarted,
 | 
			
		||||
# so return the system uptime since that's probably what the user
 | 
			
		||||
# wants.  (Caution: this could cause trouble if using
 | 
			
		||||
# sysUptime-based discontinuity timers or other TimeStamp
 | 
			
		||||
# objects.
 | 
			
		||||
sub uptime {
 | 
			
		||||
    my $ckp = shift;
 | 
			
		||||
    my $uptime;
 | 
			
		||||
 | 
			
		||||
    $uptime = $ckp->hrSystemUptime();
 | 
			
		||||
    return $uptime if defined $uptime;
 | 
			
		||||
 | 
			
		||||
    return $ckp->SUPER::uptime();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub i_ignore {
 | 
			
		||||
    my $l3      = shift;
 | 
			
		||||
    my $partial = shift;
 | 
			
		||||
 | 
			
		||||
    my $interfaces = $l3->interfaces($partial) || {};
 | 
			
		||||
 | 
			
		||||
    my %i_ignore;
 | 
			
		||||
    foreach my $if ( keys %$interfaces ) {
 | 
			
		||||
 | 
			
		||||
        # lo0 etc
 | 
			
		||||
        if ( $interfaces->{$if} =~ /\blo\d*\b/i ) {
 | 
			
		||||
            $i_ignore{$if}++;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return \%i_ignore;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
__END__
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
SNMP::Info::Layer3::CheckPoint - SNMP Interface to CheckPoint Devices
 | 
			
		||||
 | 
			
		||||
=head1 AUTHORS
 | 
			
		||||
 | 
			
		||||
Ambroise Rosset
 | 
			
		||||
 | 
			
		||||
=head1 SYNOPSIS
 | 
			
		||||
 | 
			
		||||
 # Let SNMP::Info determine the correct subclass for you. 
 | 
			
		||||
 my $ckp = new SNMP::Info(
 | 
			
		||||
                          AutoSpecify => 1,
 | 
			
		||||
                          Debug       => 1,
 | 
			
		||||
                          DestHost    => 'myrouter',
 | 
			
		||||
                          Community   => 'public',
 | 
			
		||||
                          Version     => 2
 | 
			
		||||
                        ) 
 | 
			
		||||
    or die "Can't connect to DestHost.\n";
 | 
			
		||||
 | 
			
		||||
 my $class      = $ckp->class();
 | 
			
		||||
 print "SNMP::Info determined this device to fall under subclass : $class\n";
 | 
			
		||||
 | 
			
		||||
=head1 DESCRIPTION
 | 
			
		||||
 | 
			
		||||
Subclass for Generic Net-SNMP 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:
 | 
			
		||||
 | 
			
		||||
 # Netdisco SNMP configuration
 | 
			
		||||
 extend  ckpVersion /opt/CPsuite-R77/fw1/bin/fw ver
 | 
			
		||||
 extend  ckpAsset /bin/clish -c 'show asset all'
 | 
			
		||||
 | 
			
		||||
=head2 Inherited Classes
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Required MIBs
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item F<UCD-SNMP-MIB>
 | 
			
		||||
 | 
			
		||||
=item F<NET-SNMP-TC>
 | 
			
		||||
 | 
			
		||||
=item F<HOST-RESOURCES-MIB>
 | 
			
		||||
 | 
			
		||||
=item Inherited Classes' MIBs
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::Layer3> for its own MIB requirements.
 | 
			
		||||
 | 
			
		||||
See L<SNMP::Info::LLDP> for its own MIB requirements.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head1 GLOBALS
 | 
			
		||||
 | 
			
		||||
These are methods that return scalar value from SNMP
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $ckp->vendor()
 | 
			
		||||
 | 
			
		||||
Returns 'checkpoint'.
 | 
			
		||||
 | 
			
		||||
=item $ckp->model()
 | 
			
		||||
 | 
			
		||||
Return the model type of the CheckPoint device (Based on the sysObjectOID translation).
 | 
			
		||||
 | 
			
		||||
=item $ckp->os()
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
=item $ckp->uptime()
 | 
			
		||||
 | 
			
		||||
Returns the system uptime instead of the agent uptime.
 | 
			
		||||
NOTE: discontinuity timers and other Time Stamp based objects
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
=item $ckp->layers()
 | 
			
		||||
 | 
			
		||||
Return '01001100'.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Globals imported from SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3> for details.
 | 
			
		||||
 | 
			
		||||
=head2 Globals imported from SNMP::Info::LLDP
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::LLDP> for details.
 | 
			
		||||
 | 
			
		||||
=head1 TABLE ENTRIES
 | 
			
		||||
 | 
			
		||||
These are methods that return tables of information in the form of a reference
 | 
			
		||||
to a hash.
 | 
			
		||||
 | 
			
		||||
=head2 Overrides
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $ckp->i_ignore()
 | 
			
		||||
 | 
			
		||||
Returns reference to hash.  Increments value of IID if port is to be ignored.
 | 
			
		||||
 | 
			
		||||
Ignores loopback
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Table Methods imported from SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
  sysobjectid .1.3.6.1.4.1.8072.3.2.N
 | 
			
		||||
 | 
			
		||||
where N is the object ID for your OS from the C<NET-SNMP-TC> MIB (or
 | 
			
		||||
255 if not listed).  Some Net-SNMP installations default to an
 | 
			
		||||
incorrect return value for C<system.sysObjectId>.
 | 
			
		||||
 | 
			
		||||
In order to recognize a Net-SNMP device as Layer3, it may be necessary
 | 
			
		||||
to put a configuration line similar to
 | 
			
		||||
 | 
			
		||||
  sysservices 76
 | 
			
		||||
 | 
			
		||||
in your F<snmpd.conf>.
 | 
			
		||||
 | 
			
		||||
=cut
 | 
			
		||||
@@ -55,7 +55,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
 | 
			
		||||
 | 
			
		||||
@@ -73,8 +73,8 @@ sub b_mac {
 | 
			
		||||
    foreach my $i ( keys %$macs ) {
 | 
			
		||||
        my $mac = $macs->{$i};
 | 
			
		||||
 | 
			
		||||
        # don't catch the bad macs with zeroed OUI
 | 
			
		||||
        if ( $mac !~ m/(0{1,2}:){3}/ ) {
 | 
			
		||||
        # don't catch the bad macs with bogus OUI
 | 
			
		||||
        if ( $mac !~ m/(0{1,2}:){2}(00|01)/ ) {
 | 
			
		||||
            push( @macs, $mac );
 | 
			
		||||
        }
 | 
			
		||||
        @macs = sort(@macs);
 | 
			
		||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +50,7 @@ use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %MIBS %FUNCS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::Cisco::MIBS,
 | 
			
		||||
@@ -42,7 +42,7 @@ use SNMP::Info::Entity;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::MIBS, %SNMP::Info::Layer3::MIBS, %SNMP::Info::Entity::MIBS,
 | 
			
		||||
							
								
								
									
										213
									
								
								lib/SNMP/Info/Layer3/DLink.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								lib/SNMP/Info/Layer3/DLink.pm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,213 @@
 | 
			
		||||
package SNMP::Info::Layer3::DLink;
 | 
			
		||||
 | 
			
		||||
use strict;
 | 
			
		||||
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::EXPORT_OK = qw//;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
    %SNMP::Info::LLDP::MIBS,
 | 
			
		||||
    'DLINK-ID-REC-MIB' => 'dlink',
 | 
			
		||||
    'SWPRIMGMT-DES3200-MIB' => 'dlink-des3200SeriesProd',
 | 
			
		||||
    'SWPRIMGMT-DES30XXP-MIB' => 'dlink-des30xxproductProd',
 | 
			
		||||
    'SWPRIMGMT-DES1228ME-MIB' => 'dlink-des1228MEproductProd',
 | 
			
		||||
    'SWDES3528-52PRIMGMT-MIB' => 'dlink-Des3500Series', 
 | 
			
		||||
    'DES-1210-28-AX' => 'des-1210-28ax',
 | 
			
		||||
    'DES-1210-10MEbx' => 'des-1210-10mebx',
 | 
			
		||||
    'DES-1210-26MEbx' => 'des-1210-26mebx',
 | 
			
		||||
    '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',
 | 
			
		||||
    'dlink_stp_i_root_port' => 'MSTP_MIB__swMSTPInstRootPort',
 | 
			
		||||
    'dlink_serial_no' => 'AGENT_GENERAL_MIB__agentSerialNumber',
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, %SNMP::Info::LLDP::MUNGE, );
 | 
			
		||||
 | 
			
		||||
sub model {
 | 
			
		||||
    my $dlink=shift;
 | 
			
		||||
    my $id = $dlink->id();
 | 
			
		||||
    my $model = &SNMP::translateObj($id);
 | 
			
		||||
    return $id unless defined $model;
 | 
			
		||||
    if (defined $model && $model !~ /dlink-products/) {
 | 
			
		||||
	return $model;
 | 
			
		||||
    } else {
 | 
			
		||||
    	#If don't have a device MIB
 | 
			
		||||
	return $dlink->description();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
sub vendor {
 | 
			
		||||
    return 'dlink';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub serial {
 | 
			
		||||
    my $dlink = shift;
 | 
			
		||||
    my $model = $dlink->model();
 | 
			
		||||
    my $id = $dlink->id();
 | 
			
		||||
    my $serial;
 | 
			
		||||
    if ($model =~ /1210/) {
 | 
			
		||||
	#Due to the zoo of MIB from DLink by 1210 series
 | 
			
		||||
	$serial->{0} = $dlink->session()->get($id.'.1.30.0');
 | 
			
		||||
    } else {
 | 
			
		||||
	$serial = $dlink->dlink_serial_no();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return $serial->{0} if ( defined $serial->{0} and $serial->{0} !~ /^\s*$/ and $serial->{0} !~ 'NOSUCHOBJECT' );
 | 
			
		||||
    return $dlink->SUPER::serial();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub fwver {
 | 
			
		||||
    my $dlink=shift;
 | 
			
		||||
    my $model = $dlink->model();
 | 
			
		||||
    my $id = $dlink->id();
 | 
			
		||||
    my $fw;
 | 
			
		||||
    if ($model =~ /1210/) {
 | 
			
		||||
	#Due to the zoo of MIB from DLink by 1210 series
 | 
			
		||||
	$fw->{0} = $dlink->session()->get($id.'.1.3.0');
 | 
			
		||||
    } else {
 | 
			
		||||
	$fw = $dlink->dlink_fw();
 | 
			
		||||
    }
 | 
			
		||||
    return $fw->{0} if ( defined $fw->{0} and $fw->{0} !~ /^\s*$/ and $fw->{0} !~ 'NOSUCHOBJECT');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub hwver {
 | 
			
		||||
    my $dlink=shift;
 | 
			
		||||
    my $model = $dlink->model();
 | 
			
		||||
    my $id = $dlink->id();
 | 
			
		||||
    my $hw;
 | 
			
		||||
    if ($model =~ /1210/) {
 | 
			
		||||
	#Due to the zoo of MIB from DLink by 1210 series
 | 
			
		||||
	$hw->{0} = $dlink->session()->get($id.'.1.2.0');
 | 
			
		||||
    } else {
 | 
			
		||||
	$hw = $dlink->dlink_hw();
 | 
			
		||||
    }
 | 
			
		||||
    return $hw->{0} if ( defined $hw->{0} and $hw->{0} !~ /^\s*$/ and $hw->{0} !~ 'NOSUCHOBJECT');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
sub stp_i_root_port {
 | 
			
		||||
    my $dlink=shift;
 | 
			
		||||
    my $model = $dlink->model();
 | 
			
		||||
    my $id = $dlink->id();
 | 
			
		||||
    my $stp_i_root_port;
 | 
			
		||||
    if ($model =~ /1210-(?:10|26)/) {
 | 
			
		||||
	#Due to the zoo of MIB from DLink by 1210 series
 | 
			
		||||
	$stp_i_root_port->{0} = $dlink->session()->get($id.'.6.1.13.0');
 | 
			
		||||
    } else {
 | 
			
		||||
	$stp_i_root_port = $dlink->dlink_stp_i_root_port();
 | 
			
		||||
    }
 | 
			
		||||
    return $stp_i_root_port if ( defined $stp_i_root_port->{0} and $stp_i_root_port->{0} !~ /^\s*$/ and $stp_i_root_port->{0} !~ 'NOSUCHOBJECT');
 | 
			
		||||
    return $dlink->SUPER::stp_i_root_port();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
1;
 | 
			
		||||
__END__
 | 
			
		||||
 | 
			
		||||
=head1 NAME
 | 
			
		||||
 | 
			
		||||
SNMP::Info::Layer3::DLink - SNMP Interface to DLink Devices
 | 
			
		||||
 | 
			
		||||
=head1 SYNOPSIS
 | 
			
		||||
 | 
			
		||||
 # Let SNMP::Info determine the correct subclass for you. 
 | 
			
		||||
 my $dlink = new SNMP::Info(
 | 
			
		||||
                          AutoSpecify => 1,
 | 
			
		||||
                          Debug       => 1,
 | 
			
		||||
                          DestHost    => 'myrouter',
 | 
			
		||||
                          Community   => 'public',
 | 
			
		||||
                          Version     => 2
 | 
			
		||||
                        ) 
 | 
			
		||||
    or die "Can't connect to DestHost.\n";
 | 
			
		||||
 | 
			
		||||
 my $class      = $dlink->class();
 | 
			
		||||
 print "SNMP::Info determined this device to fall under subclass : $class\n";
 | 
			
		||||
 | 
			
		||||
=head1 DESCRIPTION
 | 
			
		||||
 | 
			
		||||
Subclass for Vyatta Devices running dlink.
 | 
			
		||||
 | 
			
		||||
=head2 Inherited Classes
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
=item SNMP::Info::LLDP
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Inherited Classes' MIBs
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
=over
 | 
			
		||||
 | 
			
		||||
=item $dlink->model()
 | 
			
		||||
 | 
			
		||||
Returns the ID or else description.
 | 
			
		||||
 | 
			
		||||
=item $dlink->vendor()
 | 
			
		||||
 | 
			
		||||
Returns 'dlink'.
 | 
			
		||||
 | 
			
		||||
=item $dlink->serial()
 | 
			
		||||
 | 
			
		||||
Returns serial number.
 | 
			
		||||
 | 
			
		||||
=item $dlink->fwver()
 | 
			
		||||
 | 
			
		||||
Returns the firmware version.
 | 
			
		||||
 | 
			
		||||
=item $dlink->hwver()
 | 
			
		||||
 | 
			
		||||
Returns the hardware version.
 | 
			
		||||
 | 
			
		||||
=item $dlink->stp_i_root_port()
 | 
			
		||||
 | 
			
		||||
Returns the STP root port.
 | 
			
		||||
 | 
			
		||||
=back
 | 
			
		||||
 | 
			
		||||
=head2 Globals imported from SNMP::Info::Layer3
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::Layer3/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
See documentation in L<SNMP::Info::LLDP/"GLOBALS"> for details.
 | 
			
		||||
 | 
			
		||||
=head1 TABLE METHODS
 | 
			
		||||
 | 
			
		||||
=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
 | 
			
		||||
@@ -40,7 +40,7 @@ use SNMP::Info::LLDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION $DEBUG %GLOBALS %FUNCS $INIT %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,
 | 
			
		||||
@@ -46,7 +46,7 @@ use SNMP::Info::EDP;
 | 
			
		||||
 | 
			
		||||
use vars qw/$VERSION %GLOBALS %FUNCS %MIBS %MUNGE/;
 | 
			
		||||
 | 
			
		||||
$VERSION = '3.33';
 | 
			
		||||
$VERSION = '3.41';
 | 
			
		||||
 | 
			
		||||
%MIBS = (
 | 
			
		||||
    %SNMP::Info::Layer3::MIBS,
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user