Files
librenms-librenms/includes/discovery/sensors/pre-cache/nokia-isam.inc.php
Vitali Kari d60a0da7de Add support for Nokia ISAM (#9793)
* add mibs,first commit

* adds support for Nokia ISAM Plattform

* remove some comments

* change os polling to multi oid

* Restore file headers

* Fix discovery by sysObjectID

* first deactivate checks against IHUB (timos), It not necessary so long we can not provide more thatn one snmp community per device

* move snmp state and temperature from pre-cache

* Update os_schema.json
2019-02-12 20:23:02 -06:00

69 lines
2.5 KiB
PHP

<?php
echo 'ISAM Slot/Port Mapping ';
// Slot mapping
// FIXME Hardcoded to Num Based Slot Numbering. This should be pulled from SNMP
$slotTable = [
'4352' => 'acu:1/1/',
'4353' => 'nt-a:',
'4354' => 'nt-b:',
'4355' => 'lt:1/1/1/',
'4356' => 'lt:1/1/2/',
'4357' => 'lt:1/1/3/',
'4358' => 'lt:1/1/4/',
'4359' => 'lt:1/1/5/',
'4360' => 'lt:1/1/6/',
'4361' => 'lt:1/1/7/',
'4362' => 'lt:1/1/8/',
'4481' => '4481' // FIXME define this
];
$pre_cache['nokiaIsamSlot'] = snmpwalk_cache_multi_oid($device, 'eqptBoardContainerOffset', [], 'ASAM-EQUIP-MIB', 'nokia');
$pre_cache['nokiaIsamSlot'] = snmpwalk_cache_multi_oid($device, 'eqptBoardIfSlotId', $pre_cache['nokiaIsamSlot'], 'ASAM-EQUIP-MIB', 'nokia');
foreach ($pre_cache['nokiaIsamSlot'] as $slotId => $slot) {
$pre_cache['nokiaIsamSlot'][$slotId]['numBasedSlot'] = $slotTable[$slotId];
}
// Port mapping
// FIXME Hardcoded Port Numbering for FANT-F NT Card.
$portTable = [
'257' => 'xfp:1',
'258' => 'xfp:2',
'259' => 'xfp:3',
'260' => 'xfp:4'
];
// dbm pre cache
$pre_cache['nokiaIsamSfpPort'] = snmpwalk_cache_twopart_oid($device, 'sfpDiagAvailable', [], 'SFP-MIB', 'nokia');
foreach ($pre_cache['nokiaIsamSfpPort'] as $slotId => $slot) {
foreach ($slot as $portId => $port) {
if ($portTable[$portId]) {
$pre_cache['nokiaIsamSfpPort'][$slotId][$portId]['numBasedPort'] = $portTable[$portId];
} else {
$pre_cache['nokiaIsamSfpPort'][$slotId][$portId]['numBasedPort'] = $portId;
}
$oId = '.'.$slotId.'.'.$portId;
$oIds = [
'sfpDiagRxPower'.$oId,
'sfpDiagTxPower'.$oId,
'sfpDiagRSSIRxPowerAlmLow'.$oId,
'sfpDiagRSSIRxPowerAlmHigh'.$oId,
'sfpDiagRSSIRxPowerWarnLow'.$oId,
'sfpDiagRSSIRxPowerWarnHigh'.$oId,
'sfpDiagRSSITxPowerAlmLow'.$oId,
'sfpDiagRSSITxPowerAlmHigh'.$oId,
'sfpDiagRSSITxPowerWarnLow'.$oId,
'sfpDiagRSSITxPowerWarnHigh'.$oId
];
if ($port['sfpDiagAvailable'] == 'noError') {
$twopart_value = snmp_get_multi($device, $oIds, '-OQUs', 'SFP-MIB', 'nokia', []);
foreach ($twopart_value[$slotId.'.'.$portId] as $index => $value) {
$value = str_replace(' dBm', '', $value);
if (is_numeric($value)) {
$pre_cache['nokiaIsamSfpPort'][$slotId][$portId][$index] = $value;
}
}
unset($twopart_value);
}
}
}