Files
librenms-librenms/includes/polling/os/iosxr.inc.php
Misha Komarovskiy 25677e5edc Updated IOS-XR with NCS-5500 support for HW and version (#11044)
* Add version match for newer IOS-XR NCS hardware

* Tested with NCS-5504 and NCS5508

Signed-off-by: Misha Komarovskiy <zombah@gmail.com>

* Add test data for Cisco NCS-5504 and NCS-5508

Signed-off-by: Misha Komarovskiy <zombah@gmail.com>
2020-01-17 20:04:27 +01:00

30 lines
1.2 KiB
PHP

<?php
if (preg_match('/^Cisco IOS XR Software \(Cisco ([^\)]+)\),\s+Version ([^\[]+)\[([^\]]+)\]/', $device['sysDescr'], $regexp_result)) {
$hardware = $regexp_result[1];
$features = $regexp_result[3];
$version = $regexp_result[2];
} elseif (preg_match('/^Cisco IOS XR Software \(([^\)]+)\),\s+Version\s+([^\s]+)/', $device['sysDescr'], $regexp_result)) {
$hardware = $regexp_result[1];
$version = $regexp_result[2];
} else {
// It is not an IOS-XR ... What should we do ?
}
$oids = ['entPhysicalSoftwareRev.1', 'entPhysicalModelName.8384513', 'entPhysicalModelName.8384518'];
$data = snmp_get_multi($device, $oids, '-OQUs', 'ENTITY-MIB');
if (isset($data[1]['entPhysicalSoftwareRev']) && !empty($data[1]['entPhysicalSoftwareRev'])) {
$version = $data[1]['entPhysicalSoftwareRev'];
}
if (isset($data[8384518]['entPhysicalModelName']) && !empty($data[8384513]['entPhysicalModelName'])) {
$hardware = $data[8384513]['entPhysicalModelName'];
} elseif (isset($data[8384518]['entPhysicalModelName']) && !empty($data[8384518]['entPhysicalModelName'])) {
$hardware = $data[8384518]['entPhysicalModelName'];
}
$serial = get_main_serial($device);
echo "\n".$device['sysDescr']."\n";