2009-07-31 10:53:54 +00:00
<? php
2011-09-18 13:11:04 +00:00
## FIXME - REWRITE!
2011-04-13 12:41:01 +00:00
2011-03-16 23:10:10 +00:00
$hostname = $device [ 'hostname' ];
$hostid = $device [ 'interface_id' ];
2011-09-18 13:11:04 +00:00
$ifname = $port [ 'ifDescr' ];
$ifIndex = $port [ 'ifIndex' ];
$speed = humanspeed ( $port [ 'ifSpeed' ]);
2011-03-16 23:10:10 +00:00
2011-09-18 13:11:04 +00:00
$ifalias = $port [ 'name' ];
2011-03-16 23:10:10 +00:00
2011-09-18 13:11:04 +00:00
if ( $port [ 'ifPhysAddress' ]) { $mac = $port [ 'ifPhysAddress' ]; }
2011-03-16 23:10:10 +00:00
$color = "black" ;
2011-09-18 13:11:04 +00:00
if ( $port [ 'ifAdminStatus' ] == "down" ) { $status = "<span class='grey'>Disabled</span>" ; }
if ( $port [ 'ifAdminStatus' ] == "up" && $port [ 'ifOperStatus' ] == "down" ) { $status = "<span class='red'>Enabled / Disconnected</span>" ; }
if ( $port [ 'ifAdminStatus' ] == "up" && $port [ 'ifOperStatus' ] == "up" ) { $status = "<span class='green'>Enabled / Connected</span>" ; }
2011-03-16 23:10:10 +00:00
$i = 1 ;
$inf = fixifName ( $ifname );
echo ( "<div style='clear: both;'>" );
2011-09-18 13:11:04 +00:00
if ( $vars [ 'subview' ] == "top10" )
2011-03-16 23:10:10 +00:00
{
2011-09-20 14:37:54 +00:00
if ( ! isset ( $vars [ 'sort' ])) { $vars [ 'sort' ] = "in" ; }
if ( ! isset ( $vars [ 'period' ])) { $vars [ 'period' ] = "1day" ; }
2011-09-18 13:11:04 +00:00
$from = "-" . $vars [ 'period' ];
2011-03-16 23:10:10 +00:00
echo ( "<div style='margin: 0px 0px 0px 0px'>
<div style=' margin:0px; float: left;';>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Day</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => $vars [ 'sort' ], 'period' => '1day' )) . "'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] .
"&stat=" . $vars [ 'graph' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&from=-1day&to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Two Day</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => $vars [ 'sort' ], 'period' => '2day' )) . "/'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] .
"&stat=" . $vars [ 'graph' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&from=-2day&to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Week</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => $vars [ 'sort' ], 'period' => '1week' )) . "/'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&stat=" . $vars [ 'graph' ] . "&from=-1week&to=now&width=150&height=50' />
2009-10-28 13:49:37 +00:00
</a>
</div>
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
2011-03-16 23:10:10 +00:00
<span class=device-head>Month</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => $vars [ 'sort' ], 'period' => '1month' )) . "/'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&stat=" . $vars [ 'graph' ] . "&from=-1month&to=now&width=150&height=50' />
2009-09-24 14:38:17 +00:00
</a>
</div>
2011-03-16 23:10:10 +00:00
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Year</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => $vars [ 'sort' ], 'period' => '1year' )) . "/'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&stat=" . $vars [ 'graph' ] . "&from=-1year&to=now&width=150&height=50' />
2009-10-28 13:49:37 +00:00
</a>
</div>
2011-03-16 23:10:10 +00:00
</div>
<div style='float: left;'>
2011-09-18 13:11:04 +00:00
<img src='graph.php?id=" . $port [ 'interface_id' ] . "&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&stat=" . $vars [ 'graph' ] . "&from= $from &to=now&width=745&height=300' />
2011-03-16 23:10:10 +00:00
</div>
<div style=' margin:0px; float: left;';>
2009-10-28 13:49:37 +00:00
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
2011-03-16 23:10:10 +00:00
<span class=device-head>Traffic</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => 'bits' , sort => $vars [ 'sort' ], 'period' => $vars [ 'period' ])) . "'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] . "&stat=bits&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Packets</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => 'pkts' , sort => $vars [ 'sort' ], 'period' => $vars [ 'period' ])) . "/'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] . "&stat=pkts&type=port_mac_acc_total&sort=" . $vars [ 'sort' ] . "&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Input</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => 'in' , 'period' => $vars [ 'period' ])) . "'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] .
"&stat=" . $vars [ 'graph' ] . "&type=port_mac_acc_total&sort=in&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Output</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => 'out' , 'period' => $vars [ 'period' ])) . "'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] .
"&stat=" . $vars [ 'graph' ] . "&type=port_mac_acc_total&sort=out&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
<span class=device-head>Top Aggregate</span><br />
2011-09-18 13:11:04 +00:00
<a href='" . generate_url ( $link_array , array ( 'view' => 'macaccounting' , 'subview' => 'top10' , 'graph' => $vars [ 'graph' ], sort => 'both' , 'period' => $vars [ 'period' ])) . "'>
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=" . $port [ 'interface_id' ] .
"&stat=" . $vars [ 'graph' ] . "&type=port_mac_acc_total&sort=both&from= $from &to=now&width=150&height=50' />
2011-03-16 23:10:10 +00:00
</a>
</div>
</div>
</div>
2009-09-22 12:02:54 +00:00
" );
2011-03-16 23:10:10 +00:00
unset ( $query );
}
else
{
2011-05-16 10:52:48 +00:00
$query = "SELECT *, (M.cipMacHCSwitchedBytes_input_rate + M.cipMacHCSwitchedBytes_output_rate) as bps FROM `mac_accounting` AS M,
`ports` AS I, `devices` AS D WHERE M.interface_id = ? AND I.interface_id = M.interface_id AND I.device_id = D.device_id ORDER BY bps DESC" ;
2011-09-18 13:11:04 +00:00
$param = array ( $port [ 'interface_id' ]);
2011-03-16 23:10:10 +00:00
2011-05-16 10:52:48 +00:00
foreach ( dbFetchRows ( $query , $param ) as $acc )
2011-03-16 23:10:10 +00:00
{
if ( ! is_integer ( $i / 2 )) { $row_colour = $list_colour_a ; } else { $row_colour = $list_colour_b ; }
2011-05-16 10:52:48 +00:00
$addy = dbFetchRow ( "SELECT * FROM ipv4_mac where mac_address = ?" , array ( $acc [ 'mac' ]));
2011-04-13 12:41:01 +00:00
#$name = gethostbyaddr($addy['ipv4_address']); FIXME - Maybe some caching for this?
2011-05-16 10:52:48 +00:00
$arp_host = dbFetchRow ( "SELECT * FROM ipv4_addresses AS A, ports AS I, devices AS D WHERE A.ipv4_address = ? AND I.interface_id = A.interface_id AND D.device_id = I.device_id" , array ( $addy [ 'ipv4_address' ]));
2011-03-16 23:10:10 +00:00
if ( $arp_host ) { $arp_name = generate_device_link ( $arp_host ); $arp_name .= " " . generate_port_link ( $arp_host ); } else { unset ( $arp_if ); }
2011-04-13 12:41:01 +00:00
2011-03-16 23:10:10 +00:00
if ( $name == $addy [ 'ipv4_address' ]) { unset ( $name ); }
2011-05-16 10:52:48 +00:00
if ( dbFetchCell ( "SELECT count(*) FROM bgpPeers WHERE device_id = ? AND bgpPeerIdentifier = ?" , array ( $acc [ 'device_id' ], $addy [ 'ipv4_address' ])))
2011-03-16 23:10:10 +00:00
{
2011-05-16 10:52:48 +00:00
$peer_info = dbFetchRow ( "SELECT * FROM bgpPeers WHERE device_id = ? AND bgpPeerIdentifier = ?" , array ( $acc [ 'device_id' ], $addy [ 'ipv4_address' ]));
2011-03-16 23:10:10 +00:00
} else { unset ( $peer_info ); }
if ( $peer_info )
{
$asn = "AS" . $peer_info [ 'bgpPeerRemoteAs' ]; $astext = $peer_info [ 'astext' ];
} else {
unset ( $as ); unset ( $astext ); unset ( $asn );
}
2011-09-18 13:11:04 +00:00
if ( $vars [ 'graph' ])
2011-03-16 23:10:10 +00:00
{
2011-09-18 13:11:04 +00:00
$graph_type = "macaccounting_" . $vars [ 'graph' ];
2011-03-16 23:10:10 +00:00
} else {
2011-04-29 16:49:37 +00:00
$graph_type = "macaccounting_bits" ;
2011-03-16 23:10:10 +00:00
}
2011-09-18 13:11:04 +00:00
if ( $vars [ 'subview' ] == "minigraphs" )
2011-03-16 23:10:10 +00:00
{
if ( ! $asn ) { $asn = "No Session" ; }
echo ( "<div style='display: block; padding: 3px; margin: 3px; min-width: 221px; max-width:221px; min-height:90px; max-height:90px; text-align: center; float: left; background-color: #e5e5e5;'>
" . $addy [ 'ipv4_address' ] . " - " . $asn . "
<a href='#' onmouseover= \" return overlib('\
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #555555;\'>" . $name . " - " . $addy [ 'ipv4_address' ] . " - " . $asn . "</div>\
2011-03-28 09:11:05 +00:00
<img src=\'graph.php?id=" . $acc [ 'ma_id' ] . "&type= $graph_type &from=-2day&to= $now &width=450&height=150\'>\
2011-03-16 23:10:10 +00:00
', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150); \" onmouseout= \" return nd(); \" >
2011-03-28 09:11:05 +00:00
<img src='graph.php?id=" . $acc [ 'ma_id' ] . "&type= $graph_type &from=-2day&to= $now &width=213&height=45'></a>
2011-03-16 23:10:10 +00:00
<span style='font-size: 10px;'>" . $name . "</span>
</div>" );
2009-05-11 13:43:59 +00:00
2009-09-22 12:02:54 +00:00
}
2011-03-16 23:10:10 +00:00
else
{
echo ( "<div style='background-color: $row_colour ; padding: 0px;'>" );
echo ( "
<table>
<tr>
<td class=list-large width=200>" . mac_clean_to_readable ( $acc [ 'mac' ]) . "</td>
<td class=list-large width=200>" . $addy [ 'ipv4_address' ] . "</td>
<td class=list-large width=500>" . $name . " " . $arp_name . "</td>
<td class=list-large width=100>" . formatRates ( $acc [ 'cipMacHCSwitchedBytes_input_rate' ] / 8 ) . "</td>
<td class=list-large width=100>" . formatRates ( $acc [ 'cipMacHCSwitchedBytes_output_rate' ] / 8 ) . "</td>
</tr>
</table>
" );
$peer_info [ 'astext' ];
2011-04-30 10:43:27 +00:00
$graph_array [ 'type' ] = $graph_type ;
$graph_array [ 'id' ] = $acc [ 'ma_id' ];
$graph_array [ 'height' ] = "100" ;
$graph_array [ 'width' ] = "216" ;
$graph_array [ 'to' ] = $now ;
echo ( '<tr bgcolor="' . $bg_colour . '"' . ( $bg_image ? ' background="' . $bg_image . '"' : '' ) . '"><td colspan="7">' );
include ( "includes/print-quadgraphs.inc.php" );
echo ( "</td></tr>" );
2011-03-16 23:10:10 +00:00
$i ++ ;
}
}
2009-10-28 13:49:37 +00:00
}
2011-04-13 12:41:01 +00:00
?>