49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage poller
|
|
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
|
|
*
|
|
*/
|
|
|
|
// SW-MIB
|
|
// See: http://jira.observium.org/browse/OBSERVIUM-1043
|
|
// http://jira.observium.org/browse/OBSERVIUM-854
|
|
|
|
$port_sw = snmpwalk_cache_oid($device, "swFCPortSpecifier", array(), "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
|