fix BGP a bit. move CEF to routing.

git-svn-id: http://www.observium.org/svn/observer/trunk@2102 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong
2011-04-19 21:54:43 +00:00
parent a90ef76205
commit b40b218f43
9 changed files with 90 additions and 67 deletions

View File

@@ -252,7 +252,7 @@ if ($_SESSION['userlevel'] >= '5')
if ($bgp_alerts) if ($bgp_alerts)
{ {
echo(' echo('
<li><a href="bgp/alerts/"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerted BGP (' . $bgp_alerts . ')</a></li> <li><a href="routing/bgp/alerts/"><img src="images/16/link_error.png" border="0" align="absmiddle" /> Alerted BGP (' . $bgp_alerts . ')</a></li>
'); ');
} }

View File

@@ -2,8 +2,9 @@
global $config; global $config;
$graph_array['height'] = "100"; if(!$graph_array['height']) { $graph_array['height'] = "100"; }
$graph_array['width'] = "215"; if(!$graph_array['width']) { $graph_array['width'] = "215"; }
$graph_array['to'] = $now; $graph_array['to'] = $now;
$periods = array('day', 'week', 'month', 'year'); $periods = array('day', 'week', 'month', 'year');
@@ -20,4 +21,4 @@ foreach ($periods as $period)
echo(overlib_link($link, generate_graph_tag($graph_array), generate_graph_tag($graph_array_zoom), NULL)); echo(overlib_link($link, generate_graph_tag($graph_array), generate_graph_tag($graph_array_zoom), NULL));
} }
?> ?>

View File

@@ -10,7 +10,7 @@ if (strpos($_SERVER['REQUEST_URI'], "debug"))
ini_set('display_errors', 1); ini_set('display_errors', 1);
ini_set('display_startup_errors', 1); ini_set('display_startup_errors', 1);
ini_set('log_errors', 1); ini_set('log_errors', 1);
ini_set('error_reporting', E_ALL); ini_set('error_reporting', E_PARSE);
} else { } else {
$debug = FALSE; $debug = FALSE;
ini_set('display_errors', 0); ini_set('display_errors', 0);

View File

@@ -1,12 +1,17 @@
<?php <?php
$bgp_count = mysql_result(mysql_query("select count(*) from bgpPeers WHERE device_id = '" . $device['device_id'] . "'"), 0);
$datas[] = 'overview'; $datas[] = 'overview';
$bgp_count = mysql_result(mysql_query("select count(*) from bgpPeers WHERE device_id = '" . $device['device_id'] . "'"), 0);
if ($bgp_count) { $datas[] = 'bgp'; } if ($bgp_count) { $datas[] = 'bgp'; }
$bgp_count = mysql_result(mysql_query("select count(*) from cef_switching WHERE device_id = '" . $device['device_id'] . "'"), 0);
if ($cef_count) { $datas[] = 'cef'; }
$type_text['overview'] = "Overview"; $type_text['overview'] = "Overview";
$type_text['bgp'] = "BGP"; $type_text['bgp'] = "BGP";
$type_text['cef'] = "CEF";
print_optionbar_start(); print_optionbar_start();

View File

@@ -5,8 +5,7 @@
<?php <?php
print_optionbar_start(); print_optionbar_start();
echo(" echo("<span style='font-weight: bold;'>BGP</span> &#187; ");
<div style='margin: auto; text-align: left; padding-left: 11px; clear: both; display:block; height:20px;'>");
if (!isset($_GET['optb'])) { echo("<span class='pagemenu-selected'>"); } if (!isset($_GET['optb'])) { echo("<span class='pagemenu-selected'>"); }
echo("<a href='/device/" . $device['device_id'] . "/routing/bgp/'>Basic</a>"); echo("<a href='/device/" . $device['device_id'] . "/routing/bgp/'>Basic</a>");
@@ -42,15 +41,11 @@ echo("
echo("<a href='".$config['base_url']."/device/" . $device['device_id'] . "/routing/bgp/macaccounting/'>Mac Accounting</a>"); echo("<a href='".$config['base_url']."/device/" . $device['device_id'] . "/routing/bgp/macaccounting/'>Mac Accounting</a>");
if ($_GET['optb'] == "macaccounting") { echo("</span>"); } if ($_GET['optb'] == "macaccounting") { echo("</span>"); }
echo("</div>
");
print_optionbar_end(); print_optionbar_end();
?>
<div style="margin: 5px;"><table border="0" cellspacing="0" cellpadding="5" width="100%"> echo('<table border="0" cellspacing="0" cellpadding="5" width="100%">');
echo('<tr style="height: 30px"><td width=1></td><th></th><th>Peer address</th><th>Type</th><th>Remote AS</th><th>State</th><th>Uptime</th></tr>');
<?php
$i = "1"; $i = "1";
$peer_query = mysql_query("select * from bgpPeers WHERE device_id = '".$device['device_id']."' ORDER BY bgpPeerRemoteAs, bgpPeerIdentifier"); $peer_query = mysql_query("select * from bgpPeers WHERE device_id = '".$device['device_id']."' ORDER BY bgpPeerRemoteAs, bgpPeerIdentifier");
@@ -59,9 +54,14 @@ while ($peer = mysql_fetch_assoc($peer_query))
$has_macaccounting = mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_mac` AS I, mac_accounting AS M WHERE I.ipv4_address = '".$peer['bgpPeerIdentifier']."' AND M.mac = I.mac_address"),0); $has_macaccounting = mysql_result(mysql_query("SELECT COUNT(*) FROM `ipv4_mac` AS I, mac_accounting AS M WHERE I.ipv4_address = '".$peer['bgpPeerIdentifier']."' AND M.mac = I.mac_address"),0);
unset($bg_image); unset($bg_image);
if (!is_integer($i/2)) { $bg_colour = $list_colour_a; } else { $bg_colour = $list_colour_b; } if (!is_integer($i/2)) { $bg_colour = $list_colour_a; } else { $bg_colour = $list_colour_b; }
#if ($peer['bgpPeerAdminStatus'] == "start") { $img = "images/16/accept.png"; } else { $img = "images/16/delete.png"; }
if ($peer['bgpPeerState'] == "established") { $col = "green"; } else { $col = "red"; $bg_image = "images/warning-background.png"; }
if ($peer['bgpPeerAdminStatus'] == "start" || $peer['bgpPeerAdminStatus'] == "running") { $admin_col = "green"; } else { $admin_col = "red"; $bg_image = "images/warning-background.png"; } unset ($alert, $bg_image);
if (!is_integer($i/2)) { $bg_colour = $list_colour_b; } else { $bg_colour = $list_colour_a; }
if ($peer['bgpPeerState'] == "established") { $col = "green"; } else { $col = "red"; $peer['alert']=1; }
if ($peer['bgpPeerAdminStatus'] == "start" || $peer['bgpPeerAdminStatus'] == "running") { $admin_col = "green"; } else { $admin_col = "gray"; }
if ($peer['bgpPeerAdminStatus'] == "stop") { $peer['alert']=0; $peer['disabled']=1; }
if ($peer['bgpPeerRemoteAs'] == $device['bgpLocalAs']) { $peer_type = "<span style='color: #00f;'>iBGP</span>"; } else { $peer_type = "<span style='color: #0a0;'>eBGP</span>"; } if ($peer['bgpPeerRemoteAs'] == $device['bgpLocalAs']) { $peer_type = "<span style='color: #00f;'>iBGP</span>"; } else { $peer_type = "<span style='color: #0a0;'>eBGP</span>"; }
@@ -121,8 +121,12 @@ while ($peer = mysql_fetch_assoc($peer_query))
$peer_daily_url = "graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=" . $graph_type . "&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150"; $peer_daily_url = "graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=" . $graph_type . "&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150";
$peeraddresslink = "<span class=list-large><a href='device/" . $peer['device_id'] . "/routing/bgp/updates/' onmouseover=\"return overlib('<img src=\'$peer_daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\">" . $peer['bgpPeerIdentifier'] . "</a></span>"; $peeraddresslink = "<span class=list-large><a href='device/" . $peer['device_id'] . "/routing/bgp/updates/' onmouseover=\"return overlib('<img src=\'$peer_daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\">" . $peer['bgpPeerIdentifier'] . "</a></span>";
echo("<tr bgcolor=$bg_colour background=$bg_image> echo('<tr bgcolor="'.$bg_colour.'"' . ($peer['alert'] ? ' bordercolor="#cc0000"' : '') .
<td width=20><span class=list-large>$i</span></td> ($peer['disabled'] ? ' bordercolor="#cccccc"' : '') . ">
");
echo(" <td width=20><span class=list-large>".$i."</span></td>
<td>" . $peeraddresslink . "<br />".generate_device_link($peer, shorthost($peer['hostname']), 'bgp/')."</td> <td>" . $peeraddresslink . "<br />".generate_device_link($peer, shorthost($peer['hostname']), 'bgp/')."</td>
<td>$peer_type</td> <td>$peer_type</td>
<td style='font-size: 10px; font-weight: bold; line-height: 10px;'>" . (isset($peer_af) ? $peer_af : '') . "</td> <td style='font-size: 10px; font-weight: bold; line-height: 10px;'>" . (isset($peer_af) ? $peer_af : '') . "</td>
@@ -130,31 +134,40 @@ while ($peer = mysql_fetch_assoc($peer_query))
<td><strong><span style='color: $admin_col;'>" . $peer['bgpPeerAdminStatus'] . "<span><br /><span style='color: $col;'>" . $peer['bgpPeerState'] . "</span></strong></td> <td><strong><span style='color: $admin_col;'>" . $peer['bgpPeerAdminStatus'] . "<span><br /><span style='color: $col;'>" . $peer['bgpPeerState'] . "</span></strong></td>
<td>" .formatUptime($peer['bgpPeerFsmEstablishedTime']). "<br /> <td>" .formatUptime($peer['bgpPeerFsmEstablishedTime']). "<br />
Updates <img src='images/16/arrow_down.png' align=absmiddle> " . $peer['bgpPeerInUpdates'] . " Updates <img src='images/16/arrow_down.png' align=absmiddle> " . $peer['bgpPeerInUpdates'] . "
<img src='images/16/arrow_up.png' align=absmiddle> " . $peer['bgpPeerOutUpdates'] . "</td></tr>"); <img src='images/16/arrow_up.png' align=absmiddle> " . $peer['bgpPeerOutUpdates'] . "</td>
</tr>");
if (isset($_GET['optb']) && $_GET['optb'] != "macaccounting") if ($_GET['optb'] != "basic" && isset($_GET['optb']) && $_GET['optb'] != "macaccounting")
{ {
unset($graph_array);
foreach (explode(" ", $_GET['optb']) as $graph_type) foreach (explode(" ", $_GET['optb']) as $graph_type)
{ {
if ($graph_type == "prefixes") { list($afi, $safi) = explode(".", $_GET['optc']); $afisafi = "&amp;afi=$afi&amp;safi=$safi"; }
if ($graph_type == "updates" || $valid_afi_safi[$afi][$safi]) if ($graph_type == "prefixes")
{ {
$daily_traffic = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$day&amp;to=$now&amp;width=210&amp;height=100$afisafi"; $graph_array['type'] = "bgp_prefixes";
$daily_url = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150$afisafi"; list($afi, $safi) = explode(".", $_GET['optc']);
$weekly_traffic = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$week&amp;to=$now&amp;width=210&amp;height=100$afisafi"; $graph_array['afi'] = $afi;
$weekly_url = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$week&amp;to=$now&amp;width=500&amp;height=150$afisafi"; $graph_array['safi'] = $safi;
$monthly_traffic = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$month&amp;to=$now&amp;width=210&amp;height=100$afisafi"; } else {
$monthly_url = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$month&amp;to=$now&amp;width=500&amp;height=150$afisafi"; $graph_array['type'] = "bgp_updates";
$yearly_traffic = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$year&amp;to=$now&amp;width=210&amp;height=100$afisafi";
$yearly_url = $config['base_url'] . "/graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=bgp_$graph_type&amp;from=$year&amp;to=$now&amp;width=500&amp;height=150$afisafi";
echo("<tr bgcolor=$bg_colour><td colspan=7>");
echo("<a href='' onmouseover=\"return overlib('<img src=\'$daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"><img src='$daily_traffic' border=0></a> ");
echo("<a href='' onmouseover=\"return overlib('<img src=\'$weekly_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"><img src='$weekly_traffic' border=0></a> ");
echo("<a href='' onmouseover=\"return overlib('<img src=\'$monthly_url\'>', LEFT".$config['overlib_defaults'].", WIDTH, 350);\" onmouseout=\"return nd();\"><img src='$monthly_traffic' border=0></a> ");
echo("<a href='' onmouseover=\"return overlib('<img src=\'$yearly_url\'>', LEFT".$config['overlib_defaults'].", WIDTH, 350);\" onmouseout=\"return nd();\"><img src='$yearly_traffic' border=0></a>");
echo("</td></tr>");
} }
$graph_array['height'] = "100";
$graph_array['width'] = "215";
$graph_array['to'] = $now;
$graph_array['id'] = $peer['bgpPeer_id'];
if ($graph_type == "updates" || $valid_afi_safi[$afi][$safi])
{
echo('<tr bgcolor="'.$bg_colour.'"><td colspan="7">');
include("includes/print-quadgraphs.inc.php");
echo("</td></tr>");
}
} }
} }
if ($_GET['opta'] == "macaccounting" && $has_macaccounting) if ($_GET['opta'] == "macaccounting" && $has_macaccounting)
@@ -164,24 +177,18 @@ while ($peer = mysql_fetch_assoc($peer_query))
$database = $config['rrd_dir'] . "/" . $device['hostname'] . "/cip-" . $acc['ifIndex'] . "-" . $acc['mac'] . ".rrd"; $database = $config['rrd_dir'] . "/" . $device['hostname'] . "/cip-" . $acc['ifIndex'] . "-" . $acc['mac'] . ".rrd";
if (is_file($database)) if (is_file($database))
{ {
$daily_traffic = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$day&amp;to=$now&amp;width=210&amp;height=100";
$daily_url = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150"; $graph_array['graph_type'] = $graph_type;
$weekly_traffic = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$week&amp;to=$now&amp;width=210&amp;height=100";
$weekly_url = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$week&amp;to=$now&amp;width=500&amp;height=150"; $graph_array['height'] = "100";
$monthly_traffic = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$month&amp;to=$now&amp;width=210&amp;height=100"; $graph_array['width'] = "215";
$monthly_url = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$month&amp;to=$now&amp;width=500&amp;height=150"; $graph_array['to'] = $now;
$yearly_traffic = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$year&amp;to=$now&amp;width=210&amp;height=100"; $graph_array['id'] = $acc['ma_id'];
$yearly_url = "graph.php?id=" . $acc['ma_id'] . "&amp;type=$graph_type&amp;from=$year&amp;to=$now&amp;width=500&amp;height=150";
echo("<tr bgcolor=$bg_colour><td colspan=7>"); echo('<tr bgcolor="'.$bg_colour.'"><td colspan="8">');
echo("<a href='?page=interface&amp;id=" . $interface['ma_id'] . "' onmouseover=\"return overlib('<img src=\'$daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\"> include("includes/print-quadgraphs.inc.php");
<img src='$daily_traffic' border=0></a> ");
echo("<a href='?page=interface&amp;id=" . $interface['ma_id'] . "' onmouseover=\"return overlib('<img src=\'$weekly_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\">
<img src='$weekly_traffic' border=0></a> ");
echo("<a href='?page=interface&amp;id=" . $interface['ma_id'] . "' onmouseover=\"return overlib('<img src=\'$monthly_url\'>', LEFT".$config['overlib_defaults'].", WIDTH, 350);\" onmouseout=\"return nd();\">
<img src='$monthly_traffic' border=0></a> ");
echo("<a href='?page=interface&amp;id=" . $interface['ma_id'] . "' onmouseover=\"return overlib('<img src=\'$yearly_url\'>', LEFT".$config['overlib_defaults'].", WIDTH, 350);\" onmouseout=\"return nd();\">
<img src='$yearly_traffic' border=0></a>");
echo("</td></tr>"); echo("</td></tr>");
} }
} }
@@ -190,4 +197,4 @@ while ($peer = mysql_fetch_assoc($peer_query))
} }
?> ?>
</table></div> </table>

View File

@@ -6,16 +6,18 @@ $menu_options = array('basic' => 'Basic',
'graphs' => 'Graphs', 'graphs' => 'Graphs',
); );
if (!$_GET['opta']) { $_GET['opta'] = "basic"; } if (!$_GET['optb']) { $_GET['opta'] = "basic"; }
echo('<span style="font-weight: bold;">CEF</span> &#187; ');
$sep = ""; $sep = "";
foreach ($menu_options as $option => $text) foreach ($menu_options as $option => $text)
{ {
echo($sep); echo($sep);
if ($_GET['opta'] == $option) { echo("<span class='pagemenu-selected'>"); } if ($_GET['optb'] == $option) { echo("<span class='pagemenu-selected'>"); }
echo('<a href="'.$config['base_url'].'/device/' . $device['device_id'] . '/cefswitching/' . $option . ($_GET['optb'] ? '/' . $_GET['optb'] : ''). '/">' . $text echo('<a href="device/' . $device['device_id'] . '/routing/cef/' . $option . ($_GET['optb'] ? '/' . $_GET['optb'] : ''). '/">' . $text
. '</a>'); . '</a>');
if ($_GET['opta'] == $option) { echo("</span>"); } if ($_GET['optb'] == $option) { echo("</span>"); }
$sep = " | "; $sep = " | ";
} }

View File

@@ -76,7 +76,6 @@ else
print_optionbar_end(); print_optionbar_end();
echo("<div style='margin: 5px;'>");
echo("<table border=0 cellspacing=0 cellpadding=5 width=100% class='sortable'>"); echo("<table border=0 cellspacing=0 cellpadding=5 width=100% class='sortable'>");
echo('<tr style="height: 30px"><td width=1></td><th>Local address</th><th></th><th>Peer address</th><th>Type</th><th>Remote AS</th><th>State</th><th>Uptime</th></tr>'); echo('<tr style="height: 30px"><td width=1></td><th>Local address</th><th></th><th>Peer address</th><th>Type</th><th>Remote AS</th><th>State</th><th>Uptime</th></tr>');
@@ -121,9 +120,9 @@ else
$peer_daily_url = "graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=" . $graph_type . "&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150"; $peer_daily_url = "graph.php?id=" . $peer['bgpPeer_id'] . "&amp;type=" . $graph_type . "&amp;from=$day&amp;to=$now&amp;width=500&amp;height=150";
$peeraddresslink = "<span class=list-large><a href='device/" . $peer['device_id'] . "/routing/bgp/updates/' onmouseover=\"return overlib('<img src=\'$peer_daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\">" . $peer['bgpPeerIdentifier'] . "</a></span>"; $peeraddresslink = "<span class=list-large><a href='device/" . $peer['device_id'] . "/routing/bgp/updates/' onmouseover=\"return overlib('<img src=\'$peer_daily_url\'>', LEFT".$config['overlib_defaults'].");\" onmouseout=\"return nd();\">" . $peer['bgpPeerIdentifier'] . "</a></span>";
echo('<tr bgcolor="'.$bg_colour.'"' . ($peer['alert'] ? ' bordercolor="#cc0000"' : '') . echo('<tr bgcolor="'.$bg_colour.'"' . ($peer['alert'] ? ' bordercolor="#cc0000"' : '') . ($peer['disabled'] ? ' bordercolor="#cccccc"' : '') . ">");
($peer['disabled'] ? ' bordercolor="#cccccc"' : '') . ">
<td></td> echo(" <td></td>
<td width=150>" . $localaddresslink . "<br />".generate_device_link($peer, shorthost($peer['hostname']), 'routing/bgp/')."</td> <td width=150>" . $localaddresslink . "<br />".generate_device_link($peer, shorthost($peer['hostname']), 'routing/bgp/')."</td>
<td width=30>-></td> <td width=30>-></td>
<td width=150>" . $peeraddresslink . "</td> <td width=150>" . $peeraddresslink . "</td>
@@ -138,7 +137,7 @@ else
if($graphs == "graphs") if($graphs == "graphs")
{ {
$graph_array['height'] = "100"; $graph_array['height'] = "100";
$graph_array['width'] = "215"; $graph_array['width'] = "216";
$graph_array['to'] = $now; $graph_array['to'] = $now;
$graph_array['id'] = $peer['bgpPeer_id']; $graph_array['id'] = $peer['bgpPeer_id'];
$graph_array['type'] = "bgp_updates"; $graph_array['type'] = "bgp_updates";
@@ -153,7 +152,7 @@ else
$i++; $i++;
} }
echo("</table></div>"); echo("</table>");
} }
?> ?>

View File

@@ -44,6 +44,14 @@ function ifLabel ($interface, $device = NULL)
if (isset($config['os'][$os]['ifname'])) if (isset($config['os'][$os]['ifname']))
{ {
$interface['label'] = $interface['ifName']; $interface['label'] = $interface['ifName'];
if($interface['ifName'] == "")
{
$interface['label'] = $interface['ifDescr'];
} else {
$interface['label'] = $interface['ifName'];
}
} elseif (isset($config['os'][$os]['ifalias'])) } elseif (isset($config['os'][$os]['ifalias']))
{ {
$interface['label'] = $interface['ifAlias']; $interface['label'] = $interface['ifAlias'];
@@ -969,4 +977,4 @@ function rewrite_adslLineType($adslLineType)
return($adslLineType); return($adslLineType);
} }
?> ?>

View File

@@ -78,6 +78,7 @@ $config['os'][$os]['type'] = "server";
$os = "adva"; $os = "adva";
$config['os'][$os]['type'] = "network"; $config['os'][$os]['type'] = "network";
$config['os'][$os]['text'] = "Adva Optical"; $config['os'][$os]['text'] = "Adva Optical";
$config['os'][$os]['over'][0]['graph'] = "device_bits"; $config['os'][$os]['over'][0]['graph'] = "device_bits";
$config['os'][$os]['over'][0]['text'] = "Device Traffic"; $config['os'][$os]['over'][0]['text'] = "Device Traffic";