. * * @package LibreNMS * @link https://www.librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\OS; use App\Models\Mempool; use LibreNMS\Interfaces\Discovery\MempoolsDiscovery; class Enterasys extends \LibreNMS\OS implements MempoolsDiscovery { public function discoverMempools() { $mempools = collect(); $mem = snmpwalk_group($this->getDeviceArray(), 'etsysResourceStorageTable', 'ENTERASYS-RESOURCE-UTILIZATION-MIB', 3); foreach ($mem as $index => $mem_data) { foreach ($mem_data['ram'] as $mem_id => $ram) { $descr = $ram['etsysResourceStorageDescr']; if ($index > 1000) { $descr = 'Slot #' . substr($index, -1) . " $descr"; } $mempools->push((new Mempool([ 'mempool_index' => $index, 'mempool_type' => 'enterasys', 'mempool_class' => 'system', 'mempool_descr' => $descr, 'mempool_precision' => 1024, 'mempool_free_oid' => ".1.3.6.1.4.1.5624.1.2.49.1.3.1.1.5.$index.2.$mem_id", 'mempool_perc_warn' => 90, ]))->fillUsage(null, $ram['etsysResourceStorageSize'], $ram['etsysResourceStorageAvailable'])); } } return $mempools; } }