= '5') { if (!isset($_GET['optb'])) { $_GET['optb'] = 'all'; } if (!isset($_GET['optc'])) { $_GET['optc'] = 'basic'; } print_optionbar_start(); echo 'VRF » '; if ($_GET['opta'] == 'vrf' && $_GET['optb'] == 'all') { echo ""; } echo 'All'; if ($_GET['opta'] == 'vrf' && $_GET['optb'] == 'all') { echo ''; } echo ' | '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'basic') { echo ""; } echo 'Basic'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'basic') { echo ''; } echo ' | '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'details') { echo ""; } echo 'Details'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'details') { echo ''; } echo ' | Graphs: ( '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'bits') { echo ""; } echo 'Bits'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'bits') { echo ''; } echo ' | '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'upkts') { echo ""; } echo 'Packets'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'upkts') { echo ''; } echo ' | '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'nupkts') { echo ""; } echo 'NU Packets'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'nupkts') { echo ''; } echo ' | '; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'errors') { echo ""; } echo 'Errors'; if ($_GET['opta'] == 'vrf' && $_GET['optc'] == 'errors') { echo ''; } echo ' )'; print_optionbar_end(); if ($_GET['optb'] == 'all') { // Pre-Cache in arrays // That's heavier on RAM, but much faster on CPU (1:40) // Specifying the fields reduces a lot the RAM used (1:4) . $vrf_fields = 'vrf_id, mplsVpnVrfRouteDistinguisher, mplsVpnVrfDescription, vrf_name'; $dev_fields = 'D.device_id as device_id, hostname, os, hardware, version, features, location, status, `ignore`, disabled'; $port_fields = 'port_id, ifvrf, device_id, ifDescr, ifAlias, ifName'; foreach (dbFetchRows("SELECT $vrf_fields, $dev_fields FROM `vrfs` AS V, `devices` AS D WHERE D.device_id = V.device_id") as $vrf_device) { if (empty($vrf_devices[$vrf_device['mplsVpnVrfRouteDistinguisher']])) { $vrf_devices[$vrf_device['mplsVpnVrfRouteDistinguisher']][0] = $vrf_device; } else { array_push($vrf_devices[$vrf_device['mplsVpnVrfRouteDistinguisher']], $vrf_device); } } foreach (dbFetchRows("SELECT $port_fields FROM `ports` WHERE ifVrf<>0") as $port) { if (empty($ports[$port['ifvrf']][$port['device_id']])) { $ports[$port['ifvrf']][$port['device_id']][0] = $port; } else { array_push($ports[$port['ifvrf']][$port['device_id']], $port); } } echo "
"; $i = '1'; foreach (dbFetchRows('SELECT * FROM `vrfs` GROUP BY `mplsVpnVrfRouteDistinguisher`') as $vrf) { if (($i % 2)) { $bg_colour = $list_colour_a; } else { $bg_colour = $list_colour_b; } echo ""; echo "'; echo ''; // echo(""); echo ''; $i++; }//end foreach echo '
".$vrf['vrf_name'].'
'.$vrf['mplsVpnVrfDescription'].'
'.$vrf['mplsVpnVrfRouteDistinguisher'].'" . $vrf['mplsVpnVrfDescription'] . "'; $x = 1; foreach ($vrf_devices[$vrf['mplsVpnVrfRouteDistinguisher']] as $device) { if (($i % 2)) { if (($x % 2)) { $dev_colour = $list_colour_a_a; } else { $dev_colour = $list_colour_a_b; } } else { if (($x % 2)) { $dev_colour = $list_colour_b_b; } else { $dev_colour = $list_colour_b_a; } } echo "'; $x++; } //end foreach echo '
".generate_device_link($device, shorthost($device['hostname'])); if ($device['vrf_name'] != $vrf['vrf_name']) { echo "Configured : '.$device['vrf_name']."', CAPTION, 'VRF Inconsistency' ,FGCOLOR,'#e5e5e5', BGCOLOR, '#c0c0c0', BORDER, 5, CELLPAD, 4, CAPCOLOR, '#050505');\" onmouseout=\"return nd();\"> "; } echo ''; unset($seperator); foreach ($ports[$device['vrf_id']][$device['device_id']] as $port) { $port = array_merge($device, $port); switch ($_GET['optc']) { case 'bits': case 'upkts': case 'nupkts': case 'errors': $port['width'] = '130'; $port['height'] = '30'; $port['from'] = $config['time']['day']; $port['to'] = $config['time']['now']; $port['bg'] = '#'.$bg; $port['graph_type'] = 'port_'.$_GET['optc']; echo "
".makeshortif($port['ifDescr']).'
'; print_port_thumbnail($port); echo "
".truncate(short_port_descr($port['ifAlias']), 22, '').'
'; break; default: echo $seperator.generate_port_link($port, makeshortif($port['ifDescr'])); $seperator = ', '; break; }//end switch }//end foreach echo '
'; } else { echo "
"; $vrf = dbFetchRow('SELECT * FROM `vrfs` WHERE mplsVpnVrfRouteDistinguisher = ?', array($_GET['optb'])); echo ""; echo "'; echo ''; echo ''; echo '
".$vrf['vrf_name'].''.$vrf['mplsVpnVrfRouteDistinguisher'].''.$vrf['mplsVpnVrfDescription'].'
'; $x = 0; $devices = dbFetchRows('SELECT * FROM `vrfs` AS V, `devices` AS D WHERE `mplsVpnVrfRouteDistinguisher` = ? AND D.device_id = V.device_id', array($vrf['mplsVpnVrfRouteDistinguisher'])); foreach ($devices as $device) { $hostname = $device['hostname']; if (($x % 2)) { $device_colour = $list_colour_a; } else { $device_colour = $list_colour_b; } echo ''; include 'includes/device-header.inc.php'; echo '
'; unset($seperator); echo '
'; $i = 1; foreach (dbFetchRows('SELECT * FROM `ports` WHERE `ifVrf` = ? AND `device_id` = ?', array($device['vrf_id'], $device['device_id'])) as $interface) { if (($x % 2)) { if (($i % 2) === 0) { $int_colour = $list_colour_a_b; } else { $int_colour = $list_colour_a_a; } } else { if (($i % 2) === 0) { $int_colour = $list_colour_b_a; } else { $int_colour = $list_colour_b_b; } } include 'includes/print-interface.inc.php'; $i++; }//end foreach $x++; echo '
'; echo "
"; }//end foreach }//end if } else { include 'includes/error-no-perm.inc.php'; } //end if