Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db3a764d49 | ||
|
|
62c7719186 | ||
|
|
daee793df6 | ||
|
|
36e8f9be61 | ||
|
|
91ce23ce4a | ||
|
|
535379b3a1 | ||
|
|
b9313c2ec0 | ||
|
|
a46f27792b | ||
|
|
43ca61299e | ||
|
|
a3f0109f06 | ||
|
|
159ab659cb | ||
|
|
82032a10e1 | ||
|
|
84c870f911 | ||
|
|
2b1b53e539 | ||
|
|
b019f3fa06 | ||
|
|
4cb3083993 | ||
|
|
bed7dac4ac | ||
|
|
316a799fdb | ||
|
|
f2cbd163c9 | ||
|
|
e756091565 | ||
|
|
02f667a05b | ||
|
|
14e9da0fb7 | ||
|
|
08a632c053 | ||
|
|
fbf0bbe880 | ||
|
|
4ce3fd8fb6 | ||
|
|
cae9878c60 | ||
|
|
cda629bf39 | ||
|
|
396eb87b57 | ||
|
|
db06c8e75b | ||
|
|
3fd9f1deda | ||
|
|
b0e9185cca | ||
|
|
b73f0d8d57 | ||
|
|
5655486b80 | ||
|
|
cc935a580d | ||
|
|
40ff825a3a | ||
|
|
4bb40483e6 | ||
|
|
8c98750541 | ||
|
|
57aa73f613 | ||
|
|
fe3bc6afe0 | ||
|
|
10e0a53b3c | ||
|
|
98d2005bae | ||
|
|
272b56d625 | ||
|
|
aa44871f83 | ||
|
|
27930d5e50 | ||
|
|
a0d3cdcf9f | ||
|
|
8317923f28 | ||
|
|
fc71e2d88d | ||
|
|
f96d0df182 | ||
|
|
1dc4baf1d9 |
@@ -25,7 +25,7 @@ our
|
||||
($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP,
|
||||
$NOSUCH, $BIGINT, $REPEATERS);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135-20.5.7';
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -33,7 +33,7 @@ SNMP::Info - OO Interface to Network devices and MIBs through SNMP
|
||||
|
||||
=head1 VERSION
|
||||
|
||||
SNMP::Info - Version 3.70
|
||||
SNMP::Info - Version 3.70-135
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
@@ -1350,7 +1350,7 @@ sub new {
|
||||
delete $sess_args{Offline};
|
||||
}
|
||||
|
||||
if ( defined $args{Cache} and ref {} eq ref $args{Cache} ) {
|
||||
if ( defined $args{Cache} and ref({}) eq ref $args{Cache} ) {
|
||||
$new_obj->{$_} = $args{Cache}->{$_} for keys %{$args{Cache}};
|
||||
delete $sess_args{Cache};
|
||||
}
|
||||
@@ -1571,7 +1571,7 @@ sub cache {
|
||||
my $self = shift;
|
||||
my $data = shift;
|
||||
|
||||
if ( defined $data and ref {} eq ref $data ) {
|
||||
if ( defined $data and ref({}) eq ref $data ) {
|
||||
$self->{$_} = $data->{$_} for keys %$data;
|
||||
}
|
||||
|
||||
@@ -1671,10 +1671,17 @@ sub device_type {
|
||||
45 => 'SNMP::Info::Layer2::Baystack',
|
||||
171 => 'SNMP::Info::Layer3::DLink',
|
||||
244 => 'SNMP::Info::Layer3::Lantronix',
|
||||
259 => 'SNMP::Info::Layer3::Accton',
|
||||
311 => 'SNMP::Info::Layer3::Microsoft',
|
||||
637 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
655 => 'SNMP::Info::Layer2::Carelink',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
674 => 'SNMP::Info::Layer3::Dell',
|
||||
776 => 'SNMP::Info::Layer2::Telindus',
|
||||
890 => 'SNMP::Info::Layer2::Zyxel',
|
||||
1286 => 'SNMP::Info::Layer2::ECI',
|
||||
1588 => 'SNMP::Info::Layer3::Foundry',
|
||||
1795 => 'SNMP::Info::Layer2::Paradyne',
|
||||
1872 => 'SNMP::Info::Layer3::AlteonAD',
|
||||
1890 => 'SNMP::Info::Layer3::Redlion',
|
||||
1916 => 'SNMP::Info::Layer3::Extreme',
|
||||
@@ -1696,10 +1703,13 @@ sub device_type {
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
6027 => 'SNMP::Info::Layer3::Force10',
|
||||
6141 => 'SNMP::Info::Layer3::Ciena',
|
||||
6339 => 'SNMP::Info::Layer3::DigitalChina',
|
||||
6486 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
6527 => 'SNMP::Info::Layer3::Timetra',
|
||||
6672 => 'SNMP::Info::Layer2::Proscend',
|
||||
6876 => 'SNMP::Info::Layer3::VMware',
|
||||
8072 => 'SNMP::Info::Layer3::NetSNMP',
|
||||
8886 => 'SNMP::Info::Layer3::Raisecom',
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10002 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
@@ -1717,12 +1727,19 @@ sub device_type {
|
||||
25506 => 'SNMP::Info::Layer3::H3C',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
27514 => 'SNMP::Info::Layer3::Qtech',
|
||||
30065 => 'SNMP::Info::Layer3::Arista',
|
||||
30803 => 'SNMP::Info::Layer3::VyOS',
|
||||
32761 => 'SNMP::Info::Layer3::Deliberant',
|
||||
34300 => 'SNMP::Info::Layer3::Eltex',
|
||||
35098 => 'SNMP::Info::Layer3::Pica8',
|
||||
35265 => 'SNMP::Info::Layer3::Eltex',
|
||||
40310 => 'SNMP::Info::Layer3::Cumulus',
|
||||
40418 => 'SNMP::Info::Layer3::Nag',
|
||||
41112 => 'SNMP::Info::Layer2::Ubiquiti',
|
||||
44641 => 'SNMP::Info::Layer3::VyOS',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek',
|
||||
42926 => 'SNMP::Info::Layer2::NSC',
|
||||
);
|
||||
|
||||
my %l2sysoidmap = (
|
||||
@@ -1732,9 +1749,16 @@ sub device_type {
|
||||
45 => 'SNMP::Info::Layer2::Baystack',
|
||||
171 => 'SNMP::Info::Layer3::DLink',
|
||||
207 => 'SNMP::Info::Layer2::Allied',
|
||||
259 => 'SNMP::Info::Layer3::Accton',
|
||||
266 => 'SNMP::Info::Layer2::Nexans',
|
||||
637 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
655 => 'SNMP::Info::Layer2::Carelink',
|
||||
664 => 'SNMP::Info::Layer2::Adtran',
|
||||
674 => 'SNMP::Info::Layer3::Dell',
|
||||
776 => 'SNMP::Info::Layer2::Telindus',
|
||||
890 => 'SNMP::Info::Layer2::Zyxel',
|
||||
1286 => 'SNMP::Info::Layer2::ECI',
|
||||
1795 => 'SNMP::Info::Layer2::Paradyne',
|
||||
1872 => 'SNMP::Info::Layer3::AlteonAD',
|
||||
1890 => 'SNMP::Info::Layer3::Redlion',
|
||||
1916 => 'SNMP::Info::Layer3::Extreme',
|
||||
@@ -1747,7 +1771,10 @@ sub device_type {
|
||||
4526 => 'SNMP::Info::Layer2::Netgear',
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
6141 => 'SNMP::Info::Layer3::Ciena',
|
||||
6339 => 'SNMP::Info::Layer3::DigitalChina',
|
||||
6486 => 'SNMP::Info::Layer3::AlcatelLucent',
|
||||
6672 => 'SNMP::Info::Layer2::Proscend',
|
||||
8886 => 'SNMP::Info::Layer3::Raisecom',
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
11898 => 'SNMP::Info::Layer2::Orinoco',
|
||||
@@ -1760,6 +1787,13 @@ sub device_type {
|
||||
21091 => 'SNMP::Info::Layer2::Exinda',
|
||||
26543 => 'SNMP::Info::Layer3::IBMGbTor',
|
||||
26928 => 'SNMP::Info::Layer2::Aerohive',
|
||||
27514 => 'SNMP::Info::Layer3::Qtech',
|
||||
32761 => 'SNMP::Info::Layer3::Deliberant',
|
||||
34300 => 'SNMP::Info::Layer3::Eltex',
|
||||
35265 => 'SNMP::Info::Layer3::Eltex',
|
||||
40418 => 'SNMP::Info::Layer3::Nag',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek',
|
||||
42926 => 'SNMP::Info::Layer2::NSC',
|
||||
);
|
||||
|
||||
my %l1sysoidmap = (
|
||||
@@ -1775,6 +1809,7 @@ sub device_type {
|
||||
12532 => 'SNMP::Info::Layer7::Neoteris',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
26866 => 'SNMP::Info::Layer7::Gigamon',
|
||||
41752 => 'SNMP::Info::Layer3::Rotek', #Rotek and Raisecom fucking crap -(
|
||||
);
|
||||
|
||||
# Get just the enterprise number for generic mapping
|
||||
@@ -2871,7 +2906,7 @@ sub ip_index {
|
||||
|
||||
my $o_ip_idx = $self->old_ip_index();
|
||||
return $o_ip_idx
|
||||
if ( ref {} eq ref $o_ip_idx and scalar keys %$o_ip_idx );
|
||||
if ( ref({}) eq ref $o_ip_idx and scalar keys %$o_ip_idx );
|
||||
|
||||
# Since callers may be using the old iid to get the IP, strip protocol
|
||||
# and length from the index
|
||||
@@ -2897,7 +2932,7 @@ sub ip_table {
|
||||
|
||||
my $o_ip_table = $self->old_ip_table();
|
||||
return $o_ip_table
|
||||
if ( ref {} eq ref $o_ip_table and scalar keys %$o_ip_table );
|
||||
if ( ref({}) eq ref $o_ip_table and scalar keys %$o_ip_table );
|
||||
|
||||
my $n_ip_idx = $self->new_ip_index() || {};
|
||||
my $n_ip_type = $self->new_ip_type() || {};
|
||||
@@ -2921,7 +2956,7 @@ sub ip_netmask {
|
||||
|
||||
my $o_ip_mask = $self->old_ip_netmask();
|
||||
return $o_ip_mask
|
||||
if ( ref {} eq ref $o_ip_mask and scalar keys %$o_ip_mask );
|
||||
if ( ref({}) eq ref $o_ip_mask and scalar keys %$o_ip_mask );
|
||||
|
||||
my $n_ip_pfx = $self->new_ip_prefix() || {};
|
||||
my $n_ip_type = $self->new_ip_type() || {};
|
||||
@@ -4802,7 +4837,7 @@ sub _cache {
|
||||
my ($attr, $data) = @_;
|
||||
my $store = $self->store();
|
||||
|
||||
if (ref {} eq ref $data) {
|
||||
if (ref({}) eq ref $data) {
|
||||
$self->{"_${attr}"}++;
|
||||
$store->{$attr} = $data;
|
||||
}
|
||||
@@ -4830,7 +4865,7 @@ sub _munge {
|
||||
|
||||
return $data unless defined $munge->{$attr};
|
||||
|
||||
if (ref {} eq ref $data) {
|
||||
if (ref({}) eq ref $data) {
|
||||
my $subref = $munge->{$attr};
|
||||
my %munged;
|
||||
foreach my $key ( keys %$data ) {
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'ALCATEL-IND1-INTERSWITCH-PROTOCOL-MIB' => 'aipAMAPRemDeviceType',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'ADSL-LINE-MIB' => 'adslLineType' );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Load MIB for leafs referenced within class
|
||||
%MIBS = ('IF-MIB' => 'ifIndex',);
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, $INIT);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'BRIDGE-MIB' => 'dot1dBaseBridgeAddress',
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info;
|
||||
our
|
||||
($VERSION, $DEBUG, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $INIT, %CDP_CAPABILITIES);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Five data structures required by SNMP::Info
|
||||
%MIBS = ( 'CISCO-CDP-MIB' => 'cdpGlobalRun' );
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot3ad;
|
||||
|
||||
our ($DEBUG, $VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::IEEE802dot3ad::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-CONFIG-COPY-MIB' => 'ccCopyTable',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PAECAPABILITIES);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-PORT-SECURITY-MIB' => 'ciscoPortSecurityMIB',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-POWER-ETHERNET-EXT-MIB' => 'cpeExtPsePortEntPhyIndex',
|
||||
'CISCO-CDP-MIB' => 'cdpCachePowerConsumption',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-CLASS-BASED-QOS-MIB' => 'cbQosIfIndex', );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-RTTMON-MIB' => 'rttMonCtrlAdminOwner', );
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ use Exporter;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'CISCO-STACK-MIB' => 'ciscoStackMIB', );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'SNMPv2-MIB' => 'sysDescr',
|
||||
|
||||
@@ -36,7 +36,7 @@ use SNMP::Info::Bridge;
|
||||
|
||||
our ($VERSION, $DEBUG, %MIBS, %FUNCS, %GLOBALS, %MUNGE, %PORTSTAT, $INIT);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
@SNMP::Info::CiscoStpExtensions::ISA = qw/SNMP::Info::Bridge SNMP::Info Exporter/;
|
||||
@SNMP::Info::CiscoStpExtensions::EXPORT_OK = qw//;
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'CISCO-VTP-MIB' => 'vtpVlanName',
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS
|
||||
|
||||
@@ -11,7 +11,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'DOCS-IF3-MIB' => 'docsIf3Mib',
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'EXTREME-EDP-MIB' => 'extremeEdpPortIfIndex',
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'ENTITY-MIB' => 'entPhysicalSerialNum' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'EtherLike-MIB' => 'etherMIB' );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'FOUNDRY-SN-SWITCH-GROUP-MIB' => 'snFdpGlobalRun' );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( 'IEEE802dot11-MIB' => 'dot11DesiredSSID', );
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Aggregate;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Aggregate::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use constant {
|
||||
IPV6MIB => 3,
|
||||
};
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
'LLDP-MIB' => 'lldpLocSysCapEnabled',
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::MIBS, 'SNMP-REPEATER-MIB' => 'rptrPortGroupIndex' );
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, 'root_ip' => 'actualIPAddr', );
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer1::GLOBALS, );
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer1::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -47,7 +47,7 @@ use SNMP::Info::DocsisHE;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS, %SNMP::Info::Bridge::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::IEEE802dot11;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::IEEE802dot11::GLOBALS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer1;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::Cisco::GLOBALS,
|
||||
|
||||
133
lib/SNMP/Info/Layer2/Carelink.pm
Executable file
133
lib/SNMP/Info/Layer2/Carelink.pm
Executable file
@@ -0,0 +1,133 @@
|
||||
# SNMP::Info::Layer2::Carelink - SNMP Interface to Carelink Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Carelink;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer2::Carelink::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Carelink::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# 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,
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'serial_oid' => 'mib-2.47.1.1.1.1.11.1',
|
||||
'os_ver_oid' => 'mib-2.47.1.1.1.1.9.1',
|
||||
'hw_oid' => 'mib-2.47.1.1.1.1.2.1',
|
||||
'fw_mac_oid' => 'mib-2.47.1.1.1.1.11.1',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'carelink';
|
||||
}
|
||||
sub os {
|
||||
return 'caos';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $carelink = shift;
|
||||
my $ver = $carelink->os_ver_oid() || undef;
|
||||
return $ver if (defined $ver);
|
||||
return 'Unknown';
|
||||
}
|
||||
sub model {
|
||||
my $carelink = shift;
|
||||
my $id = $carelink->id();
|
||||
my $mod = $carelink->hw_oid() || undef;
|
||||
return $mod if (defined $mod);
|
||||
return 'Unknown';
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Carelink - SNMP Interface to Carelink Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $carelink = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $carelink->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for carelink Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $carelink->vendor()
|
||||
|
||||
Returns 'adtran'
|
||||
|
||||
=item $carelink->os()
|
||||
|
||||
Returns 'caos'
|
||||
|
||||
=item $carelink->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $carelink->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $carelink->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $carelink->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2::Cisco;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::Cisco::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::SONMP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
@@ -52,7 +52,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
|
||||
113
lib/SNMP/Info/Layer2/ECI.pm
Executable file
113
lib/SNMP/Info/Layer2/ECI.pm
Executable file
@@ -0,0 +1,113 @@
|
||||
# SNMP::Info::Layer2::ECI - SNMP Interface to ECI Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::ECI;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::ECI::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::ECI::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'eci';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'eci-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
|
||||
return $obj->description;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::ECI - SNMP Interface to ECI Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for ECI Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'eci'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'eci-os'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -50,7 +50,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::CDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %PORTSTAT, %MODEL_MAP, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Airespace;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::IEEE802dot11::MIBS,
|
||||
|
||||
144
lib/SNMP/Info/Layer2/NSC.pm
Executable file
144
lib/SNMP/Info/Layer2/NSC.pm
Executable file
@@ -0,0 +1,144 @@
|
||||
# SNMP::Info::Layer2::NSC - SNMP Interface to NSC Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::NSC;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::NSC::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::NSC::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'model_oid' => 'enterprises.42926.2.3.1.3.0',
|
||||
'serial_oid' => 'enterprises.42926.2.3.1.8.0',
|
||||
'hw_oid' => 'enterprises.42926.2.3.1.1.0',
|
||||
'os_ver_oid' => 'enterprises.42926.2.3.1.2.0',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'nsc';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'nsc-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver = $obj->os_ver_oid || undef;
|
||||
|
||||
return $os_ver
|
||||
if defined $os_ver;
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $model = $obj->model_oid || undef;
|
||||
my $hwver = $obj->hwver || undef;
|
||||
|
||||
return $model . ' HW:' . $hwver
|
||||
if defined $model and defined $hwver;
|
||||
return $model
|
||||
if defined $model;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $hwver = $obj->hw_oid || undef;
|
||||
|
||||
return $hwver
|
||||
if defined $hwver;
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $serial = $obj->serial_oid || undef;
|
||||
|
||||
return $serial
|
||||
if defined $serial;
|
||||
return $obj->SUPER::serial();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::NSC - SNMP Interface to NSC Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for NSC Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'nsc-oem'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'nsc-oem'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# This will be filled in with the device's index into the EntPhysicalEntry
|
||||
# table by the serial() function.
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
116
lib/SNMP/Info/Layer2/Paradyne.pm
Executable file
116
lib/SNMP/Info/Layer2/Paradyne.pm
Executable file
@@ -0,0 +1,116 @@
|
||||
# SNMP::Info::Layer2::Paradyne - SNMP Interface to Paradyne Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Paradyne;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Paradyne::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Paradyne::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'paradyne';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'prdn-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /S\/W\sRelease\:\s+(.*)\;/;
|
||||
return $1 if defined($1);
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /PARADYNE\s+(.*)\;.*\;/;
|
||||
return $1 if defined($1);
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Paradyne - SNMP Interface to Paradyne Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Paradyne Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'rapadyne'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'prdn-os'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
108
lib/SNMP/Info/Layer2/Proscend.pm
Executable file
108
lib/SNMP/Info/Layer2/Proscend.pm
Executable file
@@ -0,0 +1,108 @@
|
||||
# SNMP::Info::Layer2::Proscend - SNMP Interface to Proscend Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Proscend;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Proscend::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Proscend::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'proscend';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'proscend';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Proscend - SNMP Interface to Proscend Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Proscend Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'proscend'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'proscend'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer2::MIBS, 'SIXNET-MIB' => 'sxid',);
|
||||
|
||||
|
||||
124
lib/SNMP/Info/Layer2/Telindus.pm
Executable file
124
lib/SNMP/Info/Layer2/Telindus.pm
Executable file
@@ -0,0 +1,124 @@
|
||||
# SNMP::Info::Layer2::Telindus - SNMP Interface to Telindus Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Telindus;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Telindus::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Telindus::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# 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, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'telindus';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'telind-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /\$Telindus\s(\d+)(\$\s(.*)|\s(.*)\$)\s(T\d+\/\d+)/;
|
||||
return $5
|
||||
if defined $5;
|
||||
|
||||
return $obj->SUPER::os_ver();
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
$obj->description =~ /\$Telindus\s(\d+)(\$\s(.*)|\s(.*)\$)\s(T\d+\/\d+)/;
|
||||
if (defined $1 and defined $3) {
|
||||
return $1 . ' ' . $3;
|
||||
}
|
||||
elsif (defined $1 and defined $4) {
|
||||
return $1 . ' ' . $4;
|
||||
}
|
||||
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Telindus - SNMP Interface to Telindus Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Telindus Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'zyxel'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'zynos'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3; # only used in sub mac()
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer2;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# Set for No CDP
|
||||
%GLOBALS = ( %SNMP::Info::Layer2::GLOBALS );
|
||||
|
||||
126
lib/SNMP/Info/Layer2/Zyxel.pm
Executable file
126
lib/SNMP/Info/Layer2/Zyxel.pm
Executable file
@@ -0,0 +1,126 @@
|
||||
# SNMP::Info::Layer2::Zyxel - SNMP Interface to Zyxel Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer2::Zyxel;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Zyxel::ISA = qw/SNMP::Info::Layer2 Exporter/;
|
||||
@SNMP::Info::Layer2::Zyxel::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# 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, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'serial_oid' => 'transmission.94.1.1.2.1.1.1',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer2::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer2::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'zyxel';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'zynos';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $id = $obj->id;
|
||||
if ($id =~ /890\.1\.5\.11\.11$/) {
|
||||
return 'IES-1000 AAM1212-51';
|
||||
}
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
return $obj->serial_oid;
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Zyxel - SNMP Interface to Zyxel Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Zyxel Devices running IOS-like software
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'zyxel'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'zynos'
|
||||
|
||||
=item $obj->layers()
|
||||
|
||||
Ensures that layer two is reported, at least.
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -54,7 +54,7 @@ use SNMP::Info::DocsisHE;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MIBS,
|
||||
|
||||
155
lib/SNMP/Info/Layer3/Accton.pm
Executable file
155
lib/SNMP/Info/Layer3/Accton.pm
Executable file
@@ -0,0 +1,155 @@
|
||||
# SNMP::Info::Layer3::Accton - SNMP Interface to Accton Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer3::Accton;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Accton::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::Accton::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'os_ver_oid_259_6_10_94' => 'enterprises.259.6.10.94.1.1.5.4.0',
|
||||
'os_ver_oid_259_8_1_5' => 'enterprises.259.8.1.5.1.1.5.4.0',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
%SNMP::Info::Layer3::FUNCS,
|
||||
);
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'accton';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'accton-os';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $hw = $obj->c_hw_ver() || undef;
|
||||
return $obj->SUPER::description() . ' HW:' . $hw if (defined $hw);
|
||||
return $obj->SUPER::description()
|
||||
#return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $serial = $sess->get($obj->id() . '.1.1.3.1.10.1') || undef;
|
||||
return $serial;
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $hw = $sess->get($obj->id() . '.1.1.3.1.2.1') || undef;
|
||||
return $hw;
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $sess = $obj->session();
|
||||
my $os_ver = $sess->get($obj->id() . '.1.1.5.4.0') || undef;
|
||||
my $brom = $sess->get($obj->id() . '.1.1.3.1.5.1') || undef;
|
||||
my $loader = $sess->get($obj->id() . '.1.1.3.1.4.1') || undef;
|
||||
my $full_os_ver = $os_ver if defined($os_ver) || return;
|
||||
$full_os_ver .= ' bootrom:' . $brom if defined($brom);
|
||||
$full_os_ver .= ' loader:' . $loader if defined($loader);
|
||||
return $full_os_ver;
|
||||
}
|
||||
|
||||
sub description {
|
||||
my $obj = shift;
|
||||
my $descr = undef;
|
||||
my $sess = $obj->session();
|
||||
$descr .= $obj->SUPER::description() . "\n";
|
||||
$descr .= "Serial Number: " . $sess->get($obj->id() . '.1.1.3.1.10.1') . "\n";
|
||||
$descr .= "Hardware Version: " . $sess->get($obj->id() . '.1.1.3.1.2.1') . "\n";
|
||||
$descr .= "EPLD Version: " . $sess->get($obj->id() . '.1.1.3.1.15.1') . "\n";
|
||||
$descr .= "Loader Version: " . $sess->get($obj->id() . '.1.1.3.1.4.1') . "\n";
|
||||
$descr .= "Boot ROM Version: " . $sess->get($obj->id() . '.1.1.3.1.5.1') . "\n";
|
||||
$descr .= "Operation Code Version: " . $sess->get($obj->id() . '.1.1.5.4.0') . "\n";
|
||||
return $descr;
|
||||
#$sess->get($obj->id() . '.1.1.5.4.0')
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Accton - SNMP Interface to Accton Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Accton Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'accton'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'accton-os'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %MIBS, %FUNCS, %GLOBALS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -49,7 +49,7 @@ use SNMP::Info::LLDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -96,6 +96,8 @@ sub model {
|
||||
my $id = $alu->id();
|
||||
my $model = &SNMP::translateObj($id);
|
||||
|
||||
return 'ASAM 73xx' if $id =~ /637\.61\.1$/;
|
||||
|
||||
return $id unless defined $model;
|
||||
|
||||
$model =~ s/^device//;
|
||||
@@ -108,7 +110,7 @@ sub os {
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'alcatel-lucent';
|
||||
return 'alcatel';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE,
|
||||
$int_include_vpn, $fake_idx, $type_class);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ use SNMP::Info::Aggregate 'agg_ports_ifstack';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -41,7 +41,7 @@ use SNMP::Info::Layer3;
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE, %MODEL_MAP,
|
||||
%MODID_MAP, %PROCID_MAP);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -37,7 +37,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer2::MIBS, %SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -46,7 +46,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C3550::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::MAU;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::MAU::MIBS,
|
||||
|
||||
@@ -48,7 +48,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::C6500::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
# NOTE: Order creates precedence
|
||||
# Example: v_name exists in Bridge.pm and CiscoVTP.pm
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -53,7 +53,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, %SNMP::Info::CiscoStats::MIBS, );
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
@SNMP::Info::Layer3::CiscoSwitch::EXPORT_OK = qw//;
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::Cisco::MIBS,
|
||||
|
||||
@@ -40,7 +40,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -44,7 +44,7 @@ use SNMP::Info::IEEE802dot3ad 'agg_ports_lag';
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -38,7 +38,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
@@ -74,17 +74,23 @@ $VERSION = '3.70';
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub norm($) {
|
||||
my $var = shift;
|
||||
return norm_hash($var) if ref $var eq 'HASH';
|
||||
return $var if defined $var and $var !~ /^\s*$/ and $var !~ 'NOSUCHOBJECT';
|
||||
}
|
||||
|
||||
sub norm_hash {
|
||||
my $hash = shift;
|
||||
return $hash->{0} if $hash->{0} !~ /^\s*$/ and $hash->{0} !~ 'NOSUCHOBJECT';
|
||||
print "norm_hash return undef\n";
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
my $hw = norm($dlink->hwver()) || undef;
|
||||
return $dlink->description() . ' HW:' . $hw if norm($hw);
|
||||
return $dlink->description();
|
||||
}
|
||||
|
||||
# ifDescr is the same for all interfaces in a class, but the ifName is
|
||||
@@ -102,48 +108,80 @@ sub vendor {
|
||||
return 'dlink';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'dlink-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver = undef;
|
||||
my $model = $obj->model();
|
||||
my $id = $obj->id();
|
||||
|
||||
#Due to the zoo of MIB from DLink by 1210 series
|
||||
$os_ver = norm($obj->session()->get($id.'.1.3.0')) if $model =~ /1210/;
|
||||
|
||||
while (not defined $os_ver) {
|
||||
$os_ver = norm($obj->dlink_fw());
|
||||
last if norm($os_ver);
|
||||
|
||||
$os_ver = norm($obj->session()->get('enterprises.171.10.94.89.89.2.4.0'));
|
||||
last;
|
||||
}
|
||||
|
||||
my $brom = $obj->brom();
|
||||
$os_ver .= ' bootrom:' . $brom if norm($brom) and norm($os_ver);
|
||||
|
||||
return $os_ver if norm($os_ver);
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $dlink = shift;
|
||||
my $model = $dlink->model();
|
||||
my $id = $dlink->id();
|
||||
my $obj = shift;
|
||||
my $model = $obj->model();
|
||||
my $id = $obj->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');
|
||||
$serial = norm($obj->session()->get($id.'.1.30.0'));
|
||||
} else {
|
||||
$serial = $dlink->dlink_serial_no();
|
||||
$serial = norm($obj->dlink_serial_no());
|
||||
}
|
||||
|
||||
return $serial->{0} if ( defined $serial->{0} and $serial->{0} !~ /^\s*$/ and $serial->{0} !~ 'NOSUCHOBJECT' );
|
||||
return $dlink->SUPER::serial();
|
||||
return $serial if norm($serial);
|
||||
return $obj->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 brom {
|
||||
my $obj = shift;
|
||||
my $brom = undef;
|
||||
|
||||
$brom = norm($obj->session()->get('enterprises.171.10.94.89.89.2.10.0'));
|
||||
|
||||
return $brom if norm($brom);
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $dlink=shift;
|
||||
my $model = $dlink->model();
|
||||
my $id = $dlink->id();
|
||||
my $hw;
|
||||
if ($model =~ /1210/) {
|
||||
my $obj=shift;
|
||||
my $id = $obj->id();
|
||||
my $model = &SNMP::translateObj($id);
|
||||
my $hw = undef;
|
||||
|
||||
#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();
|
||||
$hw = norm($obj->session()->get($id.'.1.2.0')) if $model =~ /1210/;
|
||||
$hw = undef if norm($hw);
|
||||
|
||||
while(! defined $hw){
|
||||
$hw = norm($obj->dlink_hw());
|
||||
last if norm($hw);
|
||||
|
||||
$hw = norm($obj->session()->get('rmon.19.3.0'));
|
||||
last if norm($hw);
|
||||
|
||||
$hw = norm($obj->session()->get('enterprises.171.10.94.89.89.2.10.0'));
|
||||
last;
|
||||
}
|
||||
return $hw->{0} if ( defined $hw->{0} and $hw->{0} !~ /^\s*$/ and $hw->{0} !~ 'NOSUCHOBJECT');
|
||||
|
||||
return $hw if norm($hw);
|
||||
}
|
||||
|
||||
sub stp_i_root_port {
|
||||
|
||||
133
lib/SNMP/Info/Layer3/Deliberant.pm
Executable file
133
lib/SNMP/Info/Layer3/Deliberant.pm
Executable file
@@ -0,0 +1,133 @@
|
||||
# SNMP::Info::Layer3::Deliberant - SNMP Interface to Deliberant Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer3::Deliberant;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Deliberant::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::Deliberant::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'model_oid' => 'enterprises.32761.3.1.1.1.3.0',
|
||||
'submodel' => 'enterprises.32761.3.1.1.1.2.0',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer3::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'deliberant';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'deliberant-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver;
|
||||
my $os_ver_oid = $obj->description;
|
||||
$os_ver_oid =~ /\,\s(.*)/;
|
||||
$os_ver = $1;
|
||||
|
||||
if (defined $os_ver) {
|
||||
return $os_ver;
|
||||
}
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $id = $obj->id();
|
||||
my $model = $obj->model_oid || undef;
|
||||
my $submodel = $obj->submodel || undef;
|
||||
$model .= ' (' . $obj->submodel . ')' if defined($submodel);
|
||||
|
||||
return $model if defined $model;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
return $obj->SUPER::serial();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Deliberant - SNMP Interface to Deliberant Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Deliberant Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'deliberant-oem'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'rotek-os'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
149
lib/SNMP/Info/Layer3/DigitalChina.pm
Executable file
149
lib/SNMP/Info/Layer3/DigitalChina.pm
Executable file
@@ -0,0 +1,149 @@
|
||||
# SNMP::Info::Layer3::DigitalChina - SNMP Interface to DigitalChina Devices
|
||||
#
|
||||
# Copyright (c) 2020 by 135.
|
||||
|
||||
package SNMP::Info::Layer3::DigitalChina;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::DigitalChina::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::DigitalChina::EXPORT_OK = qw//;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'model_oid' => 'mib-2.47.1.1.1.1.2.1',
|
||||
'serial_oid' => 'mib-2.47.1.1.1.1.11.1',
|
||||
'hw_oid' => 'mib-2.47.1.1.1.1.8.1',
|
||||
'brom_oid' => 'mib-2.47.1.1.1.1.9.1',
|
||||
'os_ver_oid' => 'mib-2.47.1.1.1.1.10.1',
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer3::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub vendor {
|
||||
return 'digital-china';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'snr-os';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver = $obj->os_ver_oid || undef;
|
||||
my $brom = $obj->brom_oid || undef;
|
||||
|
||||
|
||||
return $os_ver . ' bootrom:' . $brom
|
||||
if defined $os_ver and defined $brom;
|
||||
return $os_ver
|
||||
if defined $os_ver;
|
||||
return 'unknown';
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $model = $obj->model_oid || undef;
|
||||
my $hwver = $obj->hwver || undef;
|
||||
|
||||
return $model . ' HW:' . $hwver
|
||||
if defined $model and defined $hwver;
|
||||
return $model
|
||||
if defined $model;
|
||||
return $obj->SUPER::model();
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $hwver = $obj->hw_oid || undef;
|
||||
|
||||
return $hwver
|
||||
if defined $hwver;
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $serial = $obj->serial_oid || undef;
|
||||
|
||||
return $serial
|
||||
if defined $serial;
|
||||
return $obj->SUPER::serial();
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::DigitalChina - SNMP Interface to DigitalChina Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for DigitalChina Devices
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'digital-china'
|
||||
|
||||
=item $obj->os()
|
||||
|
||||
Returns 'snr-os'
|
||||
|
||||
=item $obj->os_ver()
|
||||
|
||||
Returns the software version.
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the model extracted.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=cut
|
||||
|
||||
=back
|
||||
@@ -42,7 +42,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %MIBS, %FUNCS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS
|
||||
|
||||
232
lib/SNMP/Info/Layer3/Eltex.pm
Normal file
232
lib/SNMP/Info/Layer3/Eltex.pm
Normal file
@@ -0,0 +1,232 @@
|
||||
# SNMP::Info::Layer3::Eltex - SNMP Interface to Eltex Devices
|
||||
#
|
||||
# Copyright (c) 2020 by The 135.
|
||||
|
||||
|
||||
package SNMP::Info::Layer3::Eltex;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Eltex::ISA = qw/SNMP::Info::Layer3 Exporter/;
|
||||
@SNMP::Info::Layer3::Eltex::EXPORT_OK = qw//;
|
||||
|
||||
our ( $VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE );
|
||||
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
#our $index = undef;
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer3::MIBS, );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'model_oid_mes' => 'mib-2.47.1.1.1.1.13.67108992',
|
||||
'hw_oid_1_81' => 'mib-2.47.1.1.1.1.8.67108992',
|
||||
'model_oid' => 'iso.0.8802.1.1.2.1.3.4.0',
|
||||
'model_oid_mxa' => 'enterprises.35265.4.2.0',
|
||||
'hw_oid' => 'iso.0.8802.1.1.2.1.5.4795.1.2.2.0',
|
||||
'hw_oid_1_30' => 'iso.0.8802.1.1.2.1.5.1.1.2.2.0',
|
||||
'serial_oid' => 'mib-2.47.1.1.1.1.11.67108992',
|
||||
'serial_oid_22' => 'enterprises.35265.1.22.1.18.4.0',
|
||||
'serial_oid_mxa' => 'enterprises.35265.4.3.0',
|
||||
'os_ver_oid' => 'mib-2.47.1.1.1.1.10.67108992',
|
||||
'os_ver_oid_mxa' => 'enterprises.35265.4.5.0',
|
||||
'bootrom_oid' => 'mib-2.47.1.1.1.1.9.67108992',
|
||||
#'serial_oid_140' => '',
|
||||
'os_ver_oid_140' => 'mib-2.47.1.1.1.1.9.1',
|
||||
#'bootrom_oid_140' => '',
|
||||
'descr_oid' => 'iso.0.8802.1.1.2.1.3.4.0',
|
||||
|
||||
);
|
||||
|
||||
%FUNCS = ( %SNMP::Info::Layer3::FUNCS, );
|
||||
|
||||
%MUNGE = ( %SNMP::Info::Layer3::MUNGE, );
|
||||
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
my $model = $obj->description() || undef;
|
||||
my $hw = $obj->hwver() || undef;
|
||||
|
||||
if (defined $model and defined $hw) {
|
||||
return $model . ' HW:' . $hw;
|
||||
}
|
||||
elsif (defined $model) {
|
||||
return $model;
|
||||
}
|
||||
else {
|
||||
return 'unknown';
|
||||
}
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'eltex';
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'eltex';
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver; my $bootrom;
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /35265\.(140|158)$/) {
|
||||
$os_ver = $obj->os_ver_oid_140;
|
||||
return $os_ver;
|
||||
}
|
||||
if ($id =~ /34300\.1\.6/ or $id =~ /35265\.1\.(28$)|(21\.)/) {
|
||||
$os_ver = $obj->os_ver_oid_mxa;
|
||||
$os_ver =~ s/^\s*Eltex\s*LTE\s*software\s*version\s*//;
|
||||
return $os_ver;
|
||||
}
|
||||
elsif ($id =~ /35265\.1\.(24|43|30|120|5[2,4]|74|8[1,9])$/) {
|
||||
$os_ver = $obj->os_ver_oid;
|
||||
$bootrom = $obj->bootrom_oid;
|
||||
}
|
||||
elsif ( $id =~ /35265\.1\.22$/ ) {
|
||||
my $descr = $obj->descr_oid;
|
||||
$descr =~ /Eltex\s(.*)\ssoftware\sversion\s(.*)\sbuild\s(\d+)/;
|
||||
return $2;
|
||||
}
|
||||
elsif ($id =~ /35265\.1\.30$/) {
|
||||
|
||||
}
|
||||
else {
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
return $os_ver . ' bootrom: ' . $bootrom;
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $serial;
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /35265\.(140|158)$/) {
|
||||
return;
|
||||
}
|
||||
elsif ($id =~ /34300\.1\.6/ or $id =~ /35265\.1\.28$/) {
|
||||
return $obj->serial_oid_mxa;
|
||||
}
|
||||
elsif ($id =~ /35265\.1\.(24|43|30|120|5[2,4]|74|8[1,9])$/) {
|
||||
$serial = $obj->serial_oid;
|
||||
}
|
||||
elsif ( $id =~ /35265\.1\.22$/ ) {
|
||||
$serial = $obj->serial_oid_22;
|
||||
}
|
||||
else {
|
||||
return 'unknown';
|
||||
}
|
||||
return $serial;
|
||||
}
|
||||
|
||||
sub hwver {
|
||||
my $obj = shift;
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /35265\.1\.30$/) {
|
||||
return $obj->hw_oid_1_30;
|
||||
}
|
||||
elsif($id =~ /35265\.1\.(74|120|30|24|8[1,9]|5[4,2]|43)$/) {
|
||||
return $obj->hw_oid_1_81;
|
||||
}
|
||||
elsif($id =~ /35265\.158/) {
|
||||
return $obj->hw_oid;
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Eltex - SNMP Interface to Eltex Devices
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $obj = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myrouter',
|
||||
Community => 'public',
|
||||
Version => 2
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $obj->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Subclass for Eltex devices.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited Classes' MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its own MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->model()
|
||||
|
||||
Returns the ID or else description.
|
||||
|
||||
=item $obj->vendor()
|
||||
|
||||
Returns 'eltex'.
|
||||
|
||||
=item $obj->serial()
|
||||
|
||||
Returns serial number.
|
||||
|
||||
=item $obj->fwver()
|
||||
|
||||
Returns the firmware version.
|
||||
|
||||
=item $obj->hwver()
|
||||
|
||||
Returns the hardware version.
|
||||
|
||||
=item $obj->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.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
These are methods that return tables of information in the form of a reference
|
||||
to a hash.
|
||||
|
||||
=over
|
||||
|
||||
=item $obj->interfaces();
|
||||
|
||||
Returns the map between SNMP Interface Identifier (iid) and C<ifName>.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer3
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
@@ -43,7 +43,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, $DEBUG, %GLOBALS, %FUNCS, $INIT, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS, %SNMP::Info::CDP::MIBS,
|
||||
|
||||
@@ -45,7 +45,7 @@ use SNMP::Info::EDP;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer3::MIBS,
|
||||
|
||||
@@ -39,7 +39,7 @@ use SNMP::Info::Layer3;
|
||||
|
||||
our ($VERSION, %GLOBALS, %FUNCS, %MIBS, %MUNGE);
|
||||
|
||||
$VERSION = '3.70';
|
||||
$VERSION = '3.70-135';
|
||||
|
||||
%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