47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage poller
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
// SW-MIB
|
|
// See: http://jira.observium.org/browse/OBSERVIUM-1043
|
|
// http://jira.observium.org/browse/OBSERVIUM-854
|
|
|
|
$port_sw = snmpwalk_cache_oid($device, "swFCPortSpecifier", [], "SW-MIB");
|
|
if (!$GLOBALS['snmp_status']) {
|
|
return;
|
|
} // Break walk if not exist data from SW-MIB
|
|
|
|
$port_sw = snmpwalk_cache_oid($device, "swFCPortName", $port_sw, "SW-MIB");
|
|
|
|
foreach ($port_stats as $ifIndex => $port) {
|
|
foreach ($port_sw as $key => $data) {
|
|
$port_fc = $data['swFCPortSpecifier'];
|
|
$found_fc = ($port['ifName'] == $port_fc) || preg_match('!^FC\w* port ' . $port_fc . '$!', $port['ifDescr']);
|
|
if (!$found_fc && is_numeric($port_fc)) {
|
|
// non-bladed
|
|
$port_fc = '0/' . $port_fc;
|
|
$found_fc = ($port['ifName'] == $port_fc) || preg_match('!^FC\w* port ' . $port_fc . '$!', $port['ifDescr']);
|
|
}
|
|
if ($found_fc) {
|
|
print_debug("FOUND FC ifIndex: $ifIndex, Specifier: '$port_fc', ifName: '" . $port['ifName'] . "', ifDescr: '" . $port['ifDescr'] . "', ifAlias: '" . $data['swFCPortName'] . "'");
|
|
$port_stats[$ifIndex]['ifAlias'] = $data['swFCPortName'];
|
|
|
|
unset($port_sw[$key]);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
unset($port_sw, $port_fc, $found_fc);
|
|
|
|
// EOF
|