From 61b4c35ab1df9c7a24c86afcc228b3ea74c113f5 Mon Sep 17 00:00:00 2001 From: Misha Komarovskiy Date: Mon, 5 Apr 2021 23:26:38 +0300 Subject: [PATCH] Update IOS with 4948 variant hardware detection (#12685) * Update IOS with 4948 variant hardware detection * Use entPhysicalModelName if Switch System match * Add test data for 4948e and 4948-10ge variants Signed-off-by: Misha Komarovskiy * Fix bracket error Signed-off-by: Misha Komarovskiy * Add json test data Signed-off-by: Misha Komarovskiy --- LibreNMS/OS/Shared/Cisco.php | 2 +- tests/data/ios_4948-10ge.json | 23 +++++++++++++++++++++++ tests/data/ios_4948e.json | 23 +++++++++++++++++++++++ tests/snmpsim/ios_4948-10ge.snmprec | 17 +++++++++++++++++ tests/snmpsim/ios_4948e.snmprec | 17 +++++++++++++++++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tests/data/ios_4948-10ge.json create mode 100644 tests/data/ios_4948e.json create mode 100644 tests/snmpsim/ios_4948-10ge.snmprec create mode 100644 tests/snmpsim/ios_4948e.snmprec diff --git a/LibreNMS/OS/Shared/Cisco.php b/LibreNMS/OS/Shared/Cisco.php index f9b9bea437..68b94e730d 100644 --- a/LibreNMS/OS/Shared/Cisco.php +++ b/LibreNMS/OS/Shared/Cisco.php @@ -100,7 +100,7 @@ class Cisco extends OS implements OSDiscovery, ProcessorDiscovery, MempoolsDisco } } - if (empty($hardware) && ! empty($data[1000]['entPhysicalModelName'])) { + if ((empty($hardware) || preg_match('/Switch System/', $hardware)) && ! empty($data[1000]['entPhysicalModelName'])) { $hardware = $data[1000]['entPhysicalModelName']; } elseif (empty($hardware) && ! empty($data[1000]['entPhysicalContainedIn'])) { $hardware = $data[$data[1000]['entPhysicalContainedIn']]['entPhysicalName']; diff --git a/tests/data/ios_4948-10ge.json b/tests/data/ios_4948-10ge.json new file mode 100644 index 0000000000..00004d864c --- /dev/null +++ b/tests/data/ios_4948-10ge.json @@ -0,0 +1,23 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.9.1.659", + "sysDescr": "Cisco IOS Software, Catalyst 4500 L3 Switch Software (cat4500-IPBASEK9-M), Version 15.0(2)SG11, RELEASE SOFTWARE (fc2)\nTechnical Support: http://www.cisco.com/techsupport\r\nCopyright (c) 1986-2016 by Cisco Systems, Inc.\r\nCompiled Mon 24-Oct-16 10:00 by pr", + "sysContact": "", + "version": "15.0(2)SG11", + "hardware": "WS-C4948-10GE", + "features": "IPBASEK9", + "os": "ios", + "type": "network", + "serial": "", + "icon": "cisco.svg", + "location": "" + } + ] + }, + "poller": "matches discovery" + } +} diff --git a/tests/data/ios_4948e.json b/tests/data/ios_4948e.json new file mode 100644 index 0000000000..0289bdac5c --- /dev/null +++ b/tests/data/ios_4948e.json @@ -0,0 +1,23 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.9.1.1178", + "sysDescr": "Cisco IOS Software, Catalyst 4500 L3 Switch Software (cat4500e-ENTSERVICESK9-M), Version 15.0(2)SG10, RELEASE SOFTWARE (fc1)\nTechnical Support: http://www.cisco.com/techsupport\r\nCopyright (c) 1986-2015 by Cisco Systems, Inc.\r\nCompiled Tue 07-Apr-15 10:40", + "sysContact": "", + "version": "15.0(2)SG10", + "hardware": "WS-C4948E", + "features": "ENTSERVICESK9", + "os": "ios", + "type": "network", + "serial": "", + "icon": "cisco.svg", + "location": "" + } + ] + }, + "poller": "matches discovery" + } +} diff --git a/tests/snmpsim/ios_4948-10ge.snmprec b/tests/snmpsim/ios_4948-10ge.snmprec new file mode 100644 index 0000000000..6754cd7b7d --- /dev/null +++ b/tests/snmpsim/ios_4948-10ge.snmprec @@ -0,0 +1,17 @@ +1.3.6.1.2.1.1.1.0|4x|436973636f20494f5320536f6674776172652c20436174616c7973742034353030204c332053776974636820536f6674776172652028636174343530302d4950424153454b392d4d292c2056657273696f6e2031352e30283229534731312c2052454c4541534520534f4654574152452028666332290a546563686e6963616c20537570706f72743a20687474703a2f2f7777772e636973636f2e636f6d2f74656368737570706f72740d0a436f707972696768742028632920313938362d3230313620627920436973636f2053797374656d732c20496e632e0d0a436f6d70696c6564204d6f6e2032342d4f63742d31362031303a3030206279207072 +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.9.1.659 +1.3.6.1.2.1.1.3.0|67|3204930739 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.5.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.2.1.47.1.1.1.1.4.1|2|0 +1.3.6.1.2.1.47.1.1.1.1.4.1000|2|2 +1.3.6.1.2.1.47.1.1.1.1.4.1001|2|1000 +1.3.6.1.2.1.47.1.1.1.1.7.1|4|Switch System +1.3.6.1.2.1.47.1.1.1.1.10.1|4| +1.3.6.1.2.1.47.1.1.1.1.11.1|4| +1.3.6.1.2.1.47.1.1.1.1.11.1001|4| +1.3.6.1.2.1.47.1.1.1.1.13.1|4| +1.3.6.1.2.1.47.1.1.1.1.13.1000|4|WS-C4948-10GE +1.3.6.1.2.1.47.1.1.1.1.13.1001|4| +1.3.6.1.6.3.10.2.1.3.0|2|117956722 diff --git a/tests/snmpsim/ios_4948e.snmprec b/tests/snmpsim/ios_4948e.snmprec new file mode 100644 index 0000000000..35b79242b3 --- /dev/null +++ b/tests/snmpsim/ios_4948e.snmprec @@ -0,0 +1,17 @@ +1.3.6.1.2.1.1.1.0|4x|436973636f20494f5320536f6674776172652c20436174616c7973742034353030204c332053776974636820536f667477617265202863617434353030652d454e5453455256494345534b392d4d292c2056657273696f6e2031352e30283229534731302c2052454c4541534520534f4654574152452028666331290a546563686e6963616c20537570706f72743a20687474703a2f2f7777772e636973636f2e636f6d2f74656368737570706f72740d0a436f707972696768742028632920313938362d3230313520627920436973636f2053797374656d732c20496e632e0d0a436f6d70696c6564205475652030372d4170722d31352031303a3430 +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.9.1.1178 +1.3.6.1.2.1.1.3.0|67|358708345 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.5.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.2.1.47.1.1.1.1.4.1|2|0 +1.3.6.1.2.1.47.1.1.1.1.4.1000|2|2 +1.3.6.1.2.1.47.1.1.1.1.4.1001|2|1000 +1.3.6.1.2.1.47.1.1.1.1.7.1|4|Switch System +1.3.6.1.2.1.47.1.1.1.1.10.1|4| +1.3.6.1.2.1.47.1.1.1.1.11.1|4| +1.3.6.1.2.1.47.1.1.1.1.11.1001|4| +1.3.6.1.2.1.47.1.1.1.1.13.1|4| +1.3.6.1.2.1.47.1.1.1.1.13.1000|4|WS-C4948E +1.3.6.1.2.1.47.1.1.1.1.13.1001|4| +1.3.6.1.6.3.10.2.1.3.0|2|132438681