$port) { $entry = isset($entries[$ifIndex]) ? $entries[$ifIndex] : []; // ifType if (isset($entry['ipeStsPortEtherLinkUp'], $entry['invMacAddress']) || str_starts($port['ifName'], ['eth', 'bcm'])) { $port_stats[$ifIndex]['ifType'] = 'ethernetCsmacd'; } elseif (isset($entry['asETHPortInterfaceType'])) { switch ($entry['ipeStsPortEtherDuplex']) { case 'fiber': $port_stats[$ifIndex]['ifType'] = 'opticalChannel'; // ?? break; case 'copper': $port_stats[$ifIndex]['ifType'] = 'ethernetCsmacd'; break; default: $port_stats[$ifIndex]['ifType'] = 'other'; } } elseif (str_starts($port['ifName'], 'lo')) { $port_stats[$ifIndex]['ifType'] = 'softwareLoopback'; } elseif (isset($entry['atpcPowerMode'])) { $port_stats[$ifIndex]['ifType'] = 'otnOdu'; // ?? } elseif (!str_starts($port['ifName'], 'lldp')) { $port_stats[$ifIndex]['ifType'] = 'other'; } else { continue; } // ifOperStatus if (isset($entry['ipeStsPortEtherLinkUp'])) { switch ($entry['ipeStsPortEtherLinkUp']) { case '1': $port_stats[$ifIndex]['ifOperStatus'] = 'up'; break; case '2': $port_stats[$ifIndex]['ifOperStatus'] = 'down'; break; default: $port_stats[$ifIndex]['ifOperStatus'] = 'unknown'; } } elseif (isset($entry['asETHPortOperStatus'])) { switch ($entry['asETHPortOperStatus']) { case 'linkDown': case '1': $port_stats[$ifIndex]['ifOperStatus'] = 'down'; break; case 'linkUp': case '2': $port_stats[$ifIndex]['ifOperStatus'] = 'up'; break; default: $port_stats[$ifIndex]['ifOperStatus'] = 'unknown'; } } elseif (isset($entry['ipeCfgPortModemEnable'])) { $port_stats[$ifIndex]['ifOperStatus'] = $entry['ipeCfgPortModemEnable'] === 'enabled' ? 'up' : 'down'; } elseif (str_starts($port['ifName'], 'lo')) { $port_stats[$ifIndex]['ifOperStatus'] = 'up'; } elseif (isset($entry['atpcPowerMode'])) { $port_stats[$ifIndex]['ifOperStatus'] = $entry['atpcPowerMode'] === 'active' ? 'up' : 'down'; } else { // Force unknown $port_stats[$ifIndex]['ifOperStatus'] = 'unknown'; } } } // EOF