"); #print_r($interface); #echo(""); # This file prints a table row for each interface $interface['device_id'] = $device['device_id']; $interface['hostname'] = $device['hostname']; $if_id = $interface['interface_id']; $interface = ifLabel($interface); if(!is_integer($i/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; } if($interface['ifInErrors_delta'] > 0 || $interface['ifOutErrors_delta'] > 0) { $error_img = generateiflink($interface,"Interface Errors","port_errors"); } else { $error_img = ""; } if(mysql_result(mysql_query("SELECT count(*) FROM mac_accounting WHERE interface_id = '".$interface['interface_id']."'"),0)){ $mac = ""; } else { $mac = ""; } echo(" "); echo(" " . generateiflink($interface, $interface['ifIndex'] . ". ".$interface['label']) . " $error_img $mac
".$interface['ifAlias'].""); if($interface['ifAlias']) { echo("
"); } unset ($break); if($port_details) { $ipdata = mysql_query("SELECT * FROM `ipv4_addresses` WHERE `interface_id` = '" . $interface['interface_id'] . "'"); while($ip = mysql_fetch_Array($ipdata)) { echo("$break $ip[ipv4_address]/$ip[ipv4_prefixlen]"); $break = "
"; } $ip6data = mysql_query("SELECT * FROM `ipv6_addresses` WHERE `interface_id` = '" . $interface['interface_id'] . "'"); while($ip6 = mysql_fetch_Array($ip6data)) { echo("$break ".Net_IPv6::compress($ip6['ipv6_address'])."/".$ip6['ipv6_prefixlen'].""); $break = "
"; } } echo(""); echo(""); if($port_details) { $interface['graph_type'] = "port_bits"; echo(generateiflink($interface, "", $interface['graph_type'])); $interface['graph_type'] = "port_upkts"; echo(generateiflink($interface, "",$interface['graph_type'])); $interface['graph_type'] = "port_errors"; echo(generateiflink($interface, "",$interface['graph_type'])); } echo(""); if($interface['ifOperStatus'] == "up") { $interface['in_rate'] = $interface['ifInOctets_rate'] * 8; $interface['out_rate'] = $interface['ifOutOctets_rate'] * 8; $in_perc = @round($interface['in_rate']/$interface['ifSpeed']*100); $out_perc = @round($interface['in_rate']/$interface['ifSpeed']*100); echo(" ".formatRates($interface['in_rate'])."
".formatRates($interface['out_rate']) . "
".format_bi($interface['ifInUcastPkts_rate'])."pps

".format_bi($interface['ifOutUcastPkts_rate'])."pps
"); } echo(""); if($interface['ifSpeed'] && $interface['ifAlias'] != "") { echo("".humanspeed($interface['ifSpeed']).""); } echo("
"); # if($interface[ifDuplex] != unknown) { echo("Duplex " . $interface['ifDuplex'] . ""); } else { echo("-"); } if($device['os'] == "ios" || $device['os'] == "iosxe") { if($interface['ifTrunk']) { echo("" . $interface['ifTrunk'] . ""); } elseif ($interface['ifVlan']) { echo("VLAN " . $interface['ifVlan'] . ""); } elseif ($interface['ifVrf']) { $vrf = mysql_fetch_array(mysql_query("SELECT * FROM vrfs WHERE vrf_id = '".$interface['ifVrf']."'")); echo("" . $vrf['vrf_name'] . ""); } } echo(""); if($interface['ifType'] && $interface['ifType'] != "") { echo("" . fixiftype($interface['ifType']) . ""); } else { echo("-"); } echo("
"); if($ifHardType && $ifHardType != "") { echo("" . $ifHardType . ""); } else { echo("-"); } echo(""); if($interface['ifPhysAddress'] && $interface['ifPhysAddress'] != "") { echo("" . $interface['ifPhysAddress'] . ""); } else { echo("-"); } echo("
"); if($interface['ifMtu'] && $interface['ifMtu'] != "") { echo("MTU " . $interface['ifMtu'] . ""); } else { echo("-"); } #} echo(""); echo(""); if ( strpos($interface['label'], "oopback") === false && !$graph_type) { $link_query = mysql_query("select * from links AS L, ports AS I, devices AS D WHERE L.local_interface_id = '$if_id' AND L.remote_interface_id = I.interface_id AND I.device_id = D.device_id"); while($link = mysql_fetch_array($link_query)) { # echo("Directly Connected " . generateiflink($link, makeshortif($link['label'])) . " on " . generatedevicelink($link, shorthost($link['hostname'])) . "
"); # $br = "
"; $int_links[$link['interface_id']] = $link['interface_id']; $int_links_phys[$link['interface_id']] = 1; } unset($br); if($port_details) { ## Show which other devices are on the same subnet as this interface $sql = "SELECT `ipv4_network_id` FROM `ipv4_addresses` WHERE `interface_id` = '".$interface['interface_id']."' AND `ipv4_address` NOT LIKE '127.%'"; $nets_query = mysql_query($sql); while($net = mysql_fetch_array($nets_query)) { $ipv4_network_id = $net['ipv4_network_id']; $sql = "SELECT I.interface_id FROM ipv4_addresses AS A, ports AS I, devices AS D WHERE A.interface_id = I.interface_id AND A.ipv4_network_id = '".$net['ipv4_network_id']."' AND D.device_id = I.device_id AND D.device_id != '".$device['device_id']."'"; $new_query = mysql_query($sql); while($new = mysql_fetch_array($new_query)) { echo($new['ipv4_network_id']); $this_ifid = $new['interface_id']; $this_hostid = $new['device_id']; $this_hostname = $new['hostname']; $this_ifname = fixifName($new['label']); $int_links[$this_ifid] = $this_ifid; $int_links_v4[$this_ifid] = 1; } } $sql = "SELECT ipv6_network_id FROM ipv6_addresses WHERE interface_id = '".$interface['interface_id']."'"; $nets_query = mysql_query($sql); while($net = mysql_fetch_array($nets_query)) { $ipv6_network_id = $net['ipv6_network_id']; $sql = "SELECT I.interface_id FROM ipv6_addresses AS A, ports AS I, devices AS D WHERE A.interface_id = I.interface_id AND A.ipv6_network_id = '".$net['ipv6_network_id']."' AND D.device_id = I.device_id AND D.device_id != '".$device['device_id']."' AND A.ipv6_origin != 'linklayer' AND A.ipv6_origin != 'wellknown'"; $new_query = mysql_query($sql); while($new = mysql_fetch_array($new_query)) { echo($new['ipv6_network_id']); $this_ifid = $new['interface_id']; $this_hostid = $new['device_id']; $this_hostname = $new['hostname']; $this_ifname = fixifName($new['label']); $int_links[$this_ifid] = $this_ifid; $int_links_v6[$this_ifid] = 1; } } } foreach($int_links as $int_link) { $link_if = mysql_fetch_array(mysql_query("SELECT * from ports AS I, devices AS D WHERE I.device_id = D.device_id and I.interface_id = '".$int_link."'")); echo("$br"); if($int_links_phys[$int_link]) { echo(" "); } else { echo(" "); } echo("" . generateiflink($link_if, makeshortif($link_if['label'])) . " on " . generatedevicelink($link_if, shorthost($link_if['hostname'])) ); if($int_links_v6[$int_link]) { echo(" v6"); } if($int_links_v4[$int_link]) { echo(" v4"); } $br = "
"; } # unset($int_links, $int_links_v6, $int_links_v4, $int_links_phys, $br); } $pseudowires = mysql_query("SELECT * FROM `pseudowires` WHERE `interface_id` = '" . $interface['interface_id'] . "'"); while($pseudowire = mysql_fetch_array($pseudowires)) { #`interface_id`,`peer_device_id`,`peer_ldp_id`,`cpwVcID`,`cpwOid` $pw_peer_dev = mysql_fetch_array(mysql_query("SELECT * from `devices` WHERE `device_id` = '" . $pseudowire['peer_device_id'] . "'")); $pw_peer_int = mysql_fetch_array(mysql_query("SELECT * from `ports` AS I, pseudowires AS P WHERE I.device_id = '".$pseudowire['peer_device_id']."' AND P.cpwVcID = '".$pseudowire['cpwVcID']."' AND P.interface_id = I.interface_id")); $pw_peer_int = ifNameDescr($pw_peer_int); echo("$br " . generateiflink($pw_peer_int, makeshortif($pw_peer_int['label'])) ." on ". generatedevicelink($pw_peer_dev, shorthost($pw_peer_dev['hostname'])) . ""); $br = "
"; } $members = mysql_query("SELECT * FROM `ports` WHERE `pagpGroupIfIndex` = '".$interface['ifIndex']."' and `device_id` = '".$device['device_id']."'"); while($member = mysql_fetch_array($members)) { echo("$br " . generateiflink($member) . " (PAgP)"); $br = "
"; } if($interface['pagpGroupIfIndex'] && $interface['pagpGroupIfIndex'] != $interface['ifIndex']) { $parent = mysql_fetch_array(mysql_query("SELECT * FROM `ports` WHERE `ifIndex` = '".$interface['pagpGroupIfIndex']."' and `device_id` = '".$device['device_id']."'")); echo("$br " . generateiflink($parent) . " (PAgP)"); $br = "
"; } unset($int_links, $int_links_v6, $int_links_v4, $int_links_phys, $br); echo(""); // If we're showing graphs, generate the graph and print the img tags if($graph_type == "etherlike") { $graph_file = $config['rrd_dir'] . "/" . $device['hostname'] . "/etherlike-". safename($interface['ifIndex']) . ".rrd"; } else { $graph_file = $config['rrd_dir'] . "/" . $device['hostname'] . "/". safename($interface['ifIndex']) . ".rrd"; } if($graph_type && is_file($graph_file)) { $type = $graph_type; $daily_traffic = "graph.php?port=$if_id&type=" . $graph_type . "&from=$day&to=$now&width=210&height=100"; $daily_url = "graph.php?port=$if_id&type=" . $graph_type . "&from=$day&to=$now&width=500&height=150"; $weekly_traffic = "graph.php?port=$if_id&type=" . $graph_type . "&from=$week&to=$now&width=210&height=100"; $weekly_url = "graph.php?port=$if_id&type=" . $graph_type . "&from=$week&to=$now&width=500&height=150"; $monthly_traffic = "graph.php?port=$if_id&type=" . $graph_type . "&from=$month&to=$now&width=210&height=100"; $monthly_url = "graph.php?port=$if_id&type=" . $graph_type . "&from=$month&to=$now&width=500&height=150"; $yearly_traffic = "graph.php?port=$if_id&type=" . $graph_type . "&from=$year&to=$now&width=210&height=100"; $yearly_url = "graph.php?port=$if_id&type=" . $graph_type . "&from=$year&to=$now&width=500&height=150"; echo(""); echo("', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"> "); echo("', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"> "); echo("', LEFT, WIDTH, 350".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"> "); echo("', LEFT, WIDTH, 350".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"> "); echo(""); } ?>