Xavier Beaudouin fa29839d36 newdevice: Added Coriant support (#6026)
* Added Coriant TNMS MIB and MEF (Metro Ethernet Forum) MIB

* Coriant Logo

* Added Basic Librenms Support and MEF support

* Forgot snmpsim

* Better like this

* Spaces !

* Renamed sql file

* Space

* Fix spaces

* svgo optimized logo

* Removed modules that are by default to 0

* Added sysDescr as requested

* Fix conflict file

* Setting right severity id in the discovery log_event()

* Since MEF-EVC can be used on other devices than Coriant's one, lets this be used by the poller/discovery itself

* Fixed spaces

* Rename 173.sql to 174.sql

* Moved logo from os/  to logos/
Addd Icon

* Fix name

* minimize file

* Change l/w to viewbox and minify

* Renamed mef-evc to mef on request from @laf

* Rename 174.sql to 175.sql
2017-03-11 07:30:31 -06:00

52 lines
2.0 KiB
PHP

<?php
echo 'MEF Links: ';
/*
* Get a list of all the known MEF Links for this host.
*/
$db_info_list = dbFetchRows('SELECT id, mefID, mefType, mefIdent, mefMTU, mefAdmState, mefRowState FROM mefinfo WHERE device_id = ?', array($device['device_id']));
$current_mefinfo = snmpwalk_cache_multi_oid($device, 'MefServiceEvcCfgEntry', array(), 'MEF-UNI-EVC-MIB');
foreach ($db_info_list as $db_info) {
$mef_info = array();
$mef_info['mefType'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgServiceType'];
$mef_info['mefIdent'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgIdentifier'];
$mef_info['mefMTU'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgMtuSize'];
$mef_info['mefAdmState'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgAdminState'];
$mef_info['mefRowState'] = $current_mefinfo[$db_info['mefID']]['mefServiceEvcCfgRowStatus'];
/*
* Coriant MEF-EVC is quite strange, MTU is sometime set to 0 so we can set it into 1600 instead
* According to Coriant this should be fixed in Nov 2017
*/
if (($mef_info['mefMTU'] == 0) && ($device['os'] == 'coriant')) {
$mef_info['mefMTU'] = 1600;
}
/*
* Process all the MEF properties.
*/
foreach ($mef_info as $property => $value) {
/*
* Check the property for any modifications.
*/
if ($mef_info[$property] != $db_info[$property]) {
// FIXME - this should loop building a query and then run the query after the loop (bad geert!)
dbUpdate(array($property => mres($mef_info[$property])), 'mefinfo', '`id` = ?', array($db_info['id']));
if ($db_info['mefIdent'] != null) {
log_event("MEF Link : ".mres($db_info['mefIdent']) . ' (' . preg_replace('/^mef/', '', mres($db_info[$property])) . ') -> ' . $mef_info[$property], $device);
}
}
}
}//end foreach
/*
* Finished discovering MEF Links information.
*/
unset($db_info_list,$current_mefinfo);
echo PHP_EOL;