Added Sam's patch to support more weird cisco crap :)
This commit is contained in:
@@ -42,7 +42,7 @@ use SNMP::Info;
|
|||||||
|
|
||||||
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
use vars qw/$VERSION %MIBS %FUNCS %GLOBALS %MUNGE/;
|
||||||
|
|
||||||
$VERSION = '2.00';
|
$VERSION = '2.01';
|
||||||
|
|
||||||
%MIBS = (
|
%MIBS = (
|
||||||
'SNMPv2-MIB' => 'sysDescr',
|
'SNMPv2-MIB' => 'sysDescr',
|
||||||
@@ -50,6 +50,7 @@ $VERSION = '2.00';
|
|||||||
'CISCO-MEMORY-POOL-MIB' => 'ciscoMemoryPoolUsed',
|
'CISCO-MEMORY-POOL-MIB' => 'ciscoMemoryPoolUsed',
|
||||||
'OLD-CISCO-SYSTEM-MIB' => 'writeMem',
|
'OLD-CISCO-SYSTEM-MIB' => 'writeMem',
|
||||||
'CISCO-PRODUCTS-MIB' => 'sysName',
|
'CISCO-PRODUCTS-MIB' => 'sysName',
|
||||||
|
'ENTITY-MIB' => 'entPhysicalSoftwareRev',
|
||||||
|
|
||||||
# some older catalysts live here
|
# some older catalysts live here
|
||||||
'CISCO-STACK-MIB' => 'wsc1900sysID',
|
'CISCO-STACK-MIB' => 'wsc1900sysID',
|
||||||
@@ -59,6 +60,7 @@ $VERSION = '2.00';
|
|||||||
|
|
||||||
%GLOBALS = (
|
%GLOBALS = (
|
||||||
'description' => 'sysDescr',
|
'description' => 'sysDescr',
|
||||||
|
'ent_physical_software_rev' => 'entPhysicalSoftwareRev.1',
|
||||||
|
|
||||||
# We will use the numeric OID's so that we don't require people
|
# We will use the numeric OID's so that we don't require people
|
||||||
# to install v1 MIBs, which can conflict.
|
# to install v1 MIBs, which can conflict.
|
||||||
@@ -88,6 +90,10 @@ $VERSION = '2.00';
|
|||||||
|
|
||||||
%MUNGE = ();
|
%MUNGE = ();
|
||||||
|
|
||||||
|
sub vendor {
|
||||||
|
return 'cisco';
|
||||||
|
}
|
||||||
|
|
||||||
sub os {
|
sub os {
|
||||||
my $l2 = shift;
|
my $l2 = shift;
|
||||||
my $descr = $l2->description() || '';
|
my $descr = $l2->description() || '';
|
||||||
@@ -96,7 +102,36 @@ sub os {
|
|||||||
# in their description field.
|
# in their description field.
|
||||||
return 'ios' if ( $descr =~ /IOS/ );
|
return 'ios' if ( $descr =~ /IOS/ );
|
||||||
return 'catalyst' if ( $descr =~ /catalyst/i );
|
return 'catalyst' if ( $descr =~ /catalyst/i );
|
||||||
return;
|
return 'css' if ( $descr =~ /Content Switch SW/ );
|
||||||
|
return 'css-sca' if ( $descr =~ /Cisco Systems Inc CSS-SCA-/ );
|
||||||
|
return 'pix' if ( $descr =~ /Cisco PIX Security Appliance/ );
|
||||||
|
return 'asa' if ( $descr =~ /Cisco Adaptive Security Appliance/ );
|
||||||
|
|
||||||
|
if ( $descr =~ /Application Control Engine Service Module/ ) {
|
||||||
|
# Only the admin context implements the entity MIB
|
||||||
|
return 'ace-admin' if defined $l2->ent_physical_software_rev();
|
||||||
|
return 'ace-context';
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pre-version 3 FWSMs
|
||||||
|
return 'fwsm' if ( $descr =~ /Cisco Secure FWSM Firewall/ );
|
||||||
|
|
||||||
|
# Version 3+ FWSMs (currently untested against version 4)
|
||||||
|
if ( $descr =~ /Firewall Services Module/ ) {
|
||||||
|
|
||||||
|
my $model = $l2->model();
|
||||||
|
|
||||||
|
if ( defined $model && $model eq "WsSvcFwm1sc" ) {
|
||||||
|
# Only the admin context implements the entity MIB
|
||||||
|
return 'fwsm-admin' if defined $l2->ent_physical_software_rev();
|
||||||
|
return 'fwsm-context';
|
||||||
|
}
|
||||||
|
|
||||||
|
# Non context mode FWSM
|
||||||
|
return 'fwsm';
|
||||||
|
}
|
||||||
|
|
||||||
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub os_ver {
|
sub os_ver {
|
||||||
@@ -113,13 +148,61 @@ sub os_ver {
|
|||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os eq 'css'
|
||||||
|
and defined $descr
|
||||||
|
and $descr =~ m/Content Switch SW Version ([0-9\.\(\)]+) with SNMPv1\/v2c Agent/ )
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os eq 'css-sca'
|
||||||
|
and defined $descr
|
||||||
|
and $descr =~ m/Cisco Systems Inc CSS-SCA-2FE-K9, ([0-9\.\(\)]+) Release / )
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os eq 'pix'
|
||||||
|
and defined $descr
|
||||||
|
and $descr =~ m/Cisco PIX Security Appliance Version ([0-9\.\(\)]+)/ )
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os eq 'asa'
|
||||||
|
and defined $descr
|
||||||
|
and $descr =~ m/Cisco Adaptive Security Appliance Version ([0-9\.\(\)]+)/ )
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os =~ /^ace/ )
|
||||||
|
{
|
||||||
|
return $l2->ent_physical_software_rev();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( defined $os
|
||||||
|
and $os =~ /^fwsm/
|
||||||
|
and defined $descr
|
||||||
|
and $descr =~ m/Version (\d+\.\d+(\(\d+\)){0,1})/ )
|
||||||
|
{
|
||||||
|
return $1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Newer Catalysts and IOS devices
|
# Newer Catalysts and IOS devices
|
||||||
if ( defined $descr
|
if ( defined $descr
|
||||||
and $descr =~ m/Version (\d+\.\d+\([^)]+\)[^,\s]*)(,|\s)+/ )
|
and $descr =~ m/Version (\d+\.\d+\([^)]+\)[^,\s]*)(,|\s)+/ )
|
||||||
{
|
{
|
||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub cpu {
|
sub cpu {
|
||||||
@@ -214,7 +297,7 @@ Devices
|
|||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
Max Baker
|
Eric Miller, Max Baker, Sam Stickland
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
@@ -263,6 +346,8 @@ None.
|
|||||||
|
|
||||||
=item F<CISCO-FLASH-MIB>
|
=item F<CISCO-FLASH-MIB>
|
||||||
|
|
||||||
|
=item F<ENTITY-MIB>
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
|
MIBs can be found at ftp://ftp.cisco.com/pub/mibs/v2/v2.tar.gz
|
||||||
@@ -291,6 +376,49 @@ Returns mem_free() + mem_used()
|
|||||||
|
|
||||||
Tries to parse if device is running IOS or CatOS from description()
|
Tries to parse if device is running IOS or CatOS from description()
|
||||||
|
|
||||||
|
Available values :
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item pix
|
||||||
|
|
||||||
|
Cisco PIX
|
||||||
|
|
||||||
|
=item asa
|
||||||
|
|
||||||
|
Cisco ASA
|
||||||
|
|
||||||
|
=item fwsm
|
||||||
|
|
||||||
|
Single-mode FWSM
|
||||||
|
|
||||||
|
=item fwsm-admin
|
||||||
|
|
||||||
|
Admin context of multi-context FWSM
|
||||||
|
|
||||||
|
=item fwsm-context
|
||||||
|
|
||||||
|
Standard context of multi-context FWSM
|
||||||
|
|
||||||
|
=item ace-admin
|
||||||
|
|
||||||
|
Admin context of ACE module
|
||||||
|
|
||||||
|
=item ace-context
|
||||||
|
|
||||||
|
Standard context of ACE module (NB: No OS version detection
|
||||||
|
is available, but will be the same as it's 'ace admin')
|
||||||
|
|
||||||
|
=item css
|
||||||
|
|
||||||
|
Cisco Content Switch
|
||||||
|
|
||||||
|
=item css-sca
|
||||||
|
|
||||||
|
Cisco Content Switch Secure Content Acceleration
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=item $ciscostats->os_ver()
|
=item $ciscostats->os_ver()
|
||||||
|
|
||||||
Tries to parse device operating system version from description()
|
Tries to parse device operating system version from description()
|
||||||
|
|||||||
Reference in New Issue
Block a user