. * * @package LibreNMS * @link http://librenms.org * @copyright 2018 Paul Heinrichs * @author Paul Heinrichs */ $cmm_stats = snmpwalk_group($device, 'cmmSwitchTable', 'CMM3-MIB'); $cmm_stats = snmpwalk_group($device, 'cmmPortTable', 'CMM3-MIB', 1, $cmm_stats); $required = [ 'ifInOctets' => 'rxOctets', 'ifOutOctets' => 'txOctets', 'ifInUcastPkts' => 'rxUnicastPkts', 'ifOutUcastPkts' => 'txUnicastPkts', 'ifInErrors' => 'rxDropPkts', 'ifOutErrors' => 'txDropPkts', 'ifInBroadcastPkts' => 'rxBroadcastPkts', 'ifOutBroadcastPkts' => 'txBroadcastPkts', 'ifInMulticastPkts' => 'rxMulticastPkts', 'ifOutMulticastPkts' => 'txMulticastPkts' ]; $cmm_ports = []; foreach ($cmm_stats as $index => $port) { $cmm_port = []; foreach ($required as $ifEntry => $IfxStat) { $cmm_port[$ifEntry] = $cmm_stats[$index][$IfxStat]; } $cmm_port['ifName'] = "CMM Port ". $port['portNumber']; $cmm_port['ifDescr'] = "CMM Port ". $port['portNumber']; $cmm_port['ifDuplex'] = ($cmm_stats[$index]['duplexStatus'] == 1 ? 'fullDuplex' : 'halfDuplex'); $cmm_port['ifSpeed'] = ($cmm_stats[$index]['linkSpeed'] == 1 ? '100000000' : '10000000'); $cmm_port['ifOperStatus'] = ($cmm_stats[$index]['linkStatus'] == 1 ? "up" : "down"); $cmm_port['ifType'] = 'ethernetCsmacd'; array_push($cmm_ports, $cmm_port); } $port_stats = array_replace_recursive($cmm_ports, $port_stats);