From cc935a580db85ea7e065d9a470fb1b5f8127a26b Mon Sep 17 00:00:00 2001 From: Andrey Pazychev Date: Sun, 17 May 2020 23:12:19 +0300 Subject: [PATCH] WIP. Added raisecom 41752 --- lib/SNMP/Info.pm | 4 ++- lib/SNMP/Info/Layer3/Raisecom.pm | 51 +++++++++++++++++++++++++++----- 2 files changed, 46 insertions(+), 9 deletions(-) diff --git a/lib/SNMP/Info.pm b/lib/SNMP/Info.pm index d424ad2d..1559297e 100644 --- a/lib/SNMP/Info.pm +++ b/lib/SNMP/Info.pm @@ -25,7 +25,7 @@ our ($VERSION, %FUNCS, %GLOBALS, %MIBS, %MUNGE, $AUTOLOAD, $INIT, $DEBUG, %SPEED_MAP, $NOSUCH, $BIGINT, $REPEATERS); -$VERSION = '3.70-135.20.5.3'; +$VERSION = '3.70-135.20.5.4'; =head1 NAME @@ -1731,6 +1731,7 @@ sub device_type { 40310 => 'SNMP::Info::Layer3::Cumulus', 41112 => 'SNMP::Info::Layer2::Ubiquiti', 44641 => 'SNMP::Info::Layer3::VyOS', + 41752 => 'SNMP::Info::Layer3::Raisecom', ); my %l2sysoidmap = ( @@ -1776,6 +1777,7 @@ sub device_type { 27514 => 'SNMP::Info::Layer3::Qtech', 34300 => 'SNMP::Info::Layer3::Eltex', 35265 => 'SNMP::Info::Layer3::Eltex', + 41752 => 'SNMP::Info::Layer3::Raisecom', ); my %l1sysoidmap = ( diff --git a/lib/SNMP/Info/Layer3/Raisecom.pm b/lib/SNMP/Info/Layer3/Raisecom.pm index b992abf0..4662b02c 100755 --- a/lib/SNMP/Info/Layer3/Raisecom.pm +++ b/lib/SNMP/Info/Layer3/Raisecom.pm @@ -24,11 +24,16 @@ our $index = undef; %GLOBALS = ( %SNMP::Info::Layer3::GLOBALS, - 'model_oid' => 'mib-2.47.1.1.1.1.13.1', - 'serial_oid' => 'mib-2.47.1.1.1.1.11.1', - 'os_ver_oid' => 'mib-2.47.1.1.1.1.10.1', - 'brom_oid' => 'mib-2.47.1.1.1.1.9.1', - 'hw_oid' => 'mib-2.47.1.1.1.1.8.1', + 'model_oid' => 'mib-2.47.1.1.1.1.13.1', + 'model_oid_41752' => 'enterprises.41752.6.1.1.1.19.0', + 'serial_oid' => 'mib-2.47.1.1.1.1.11.1', + 'serial_oid_41752' => 'enterprises.41752.6.1.1.1.14.0', + 'os_ver_oid' => 'mib-2.47.1.1.1.1.10.1', + 'os_ver_oid_41752' => 'enterprises.41752.6.1.1.1.1.0', + 'brom_oid' => 'mib-2.47.1.1.1.1.9.1', + 'brom_oid_41752' => 'enterprises.41752.6.1.1.1.13.0', + 'hw_oid' => 'mib-2.47.1.1.1.1.8.1', + 'hw_oid_41752' => 'enterprises.41752.6.1.1.1.2.0' ); %FUNCS = ( %SNMP::Info::Layer3::FUNCS, ); @@ -40,13 +45,28 @@ sub vendor { } sub os { + my $obj = shift; + my $id = $obj->id(); + if ($id =~ /41752\.26\.502/) { + return 'ros'; + } return 'rcios'; } sub os_ver { my $obj = shift; - my $os_ver = $obj->os_ver_oid || undef; - my $brom = $obj->brom_oid || undef; + my $os_ver; my $brom; + if ($obj->id() =~ /41752\.26\.502/) { + $obj->os_ver_oid_41752 =~ /ROS_(.*)\.(\d+)/; + $os_ver = $1 . ' (' . $2 . ')'; + $obj->brom_oid_41752 =~ /.*_BOOT_(.*)_(\d+)/; + $brom = $1 . ' (' . $2 . ')'; + } + else { + $os_ver = $obj->os_ver_oid || undef; + $brom = $obj->brom_oid || undef; + } + if (defined $os_ver and defined $brom) { return $os_ver . ' bootrom: ' . $brom; } @@ -57,6 +77,7 @@ sub os_ver { } sub model { my $obj = shift; + my $id = $obj->id(); my $model = $obj->model_oid || undef; my $hw = $obj->hw_oid || undef; if (defined $model and defined $hw) { @@ -65,15 +86,29 @@ sub model { elsif (defined $model) { return $model; } - return 'unknown'; + elsif ($id =~ /41752\.26\.502/) { + return $obj->model_oid_41752 . ' HW:' . $obj->hvver; + } + return $obj->id(); } sub serial { my $obj = shift; my $serial = $obj->serial_oid || 'unknown'; + if ($obj->id() =~ /41752\.26\.502/) { + return $obj->serial_oid_41752; + } return $serial; } +sub hvver { + my $obj = shift; + my $id = $obj->id(); + if ($id =~ /41752\.26\.502/) { + $obj->hw_oid_41752 =~ /.*\sversion\s(.*)/; + return $1; + } +} 1; __END__