mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	* Don't do uneeded snmp queries sensors discovery 26 -> 16 wrapped some poller modules in db checks. The same could be done for some others, but more work is needed. * travis fix
		
			
				
	
	
		
			54 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			2.1 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']));
 | 
						|
 | 
						|
if (!empty($db_info_list)) {
 | 
						|
    $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;
 |