$port) { if (str_contains($port['netifDescr'], ':')) { [$port['netportNode'], $port['netportPort']] = explode(':', $port['netifDescr'], 2); } else { $port['netportNode'] = ''; $port['netportPort'] = $port['netifDescr']; } $port['netportPort'] = str_ireplace('MGMT_PORT_ONLY ', '', $port['netportPort']); if (isset($netport_stat[$port['netportNode']][$port['netportPort']])) { // ifDescr $oid = 'ifDescr'; $port[$oid] = $port[$mib_def[$oid]['oid']]; $port_stats[$ifIndex][$oid] = $port[$oid]; // ifName, ifAlias $port_stats[$ifIndex]['ifName'] = strlen($port['netportNode']) ? $port['netportNode'] . ':' . $port['netportPort'] : $port['netportPort']; $port_stats[$ifIndex]['ifAlias'] = ''; // FIXME, I not found $netport = &$netport_stat[$port['netportNode']][$port['netportPort']]; // ifPhysAddress $oid = 'ifPhysAddress'; $port[$oid] = strtolower($netport[$mib_def[$oid]['oid']]); $port[$oid] = str_replace(' ', '', $port[$oid]); $port_stats[$ifIndex][$oid] = $port[$oid]; // All other data fields foreach ($data_oids_netport as $oid) { $port[$oid] = $netport[$mib_def[$oid]['oid']]; if (isset($mib_def[$oid]['transform'])) { // Translate to standard IF-MIB values $port[$oid] = string_transform($port[$oid], $mib_def[$oid]['transform']); } if ($oid === 'ifVlan' && $port[$oid] < 0) { $port[$oid] = ''; } $port_stats[$ifIndex][$oid] = $port[$oid]; } // ifEntry fields foreach ($stat_oids_ifEntry as $oid) { $oid = substr($oid, 2); // remove "if" // Use only HC counters $port_stats[$ifIndex]['ifHC' . $oid] = $port['if64' . $oid]; $port_stats[$ifIndex]['if' . $oid] = $port['if64' . $oid]; } } } // Clean unset($netif_stat, $netport_stat, $netport, $netport_oid, $flags, $ifIndex, $port, $data_oids_netport, $oid); } // EOF