2009-07-31 10:53:54 +00:00
< ? php
2012-05-25 12:24:34 +00:00
// FIXME - REWRITE!
2011-04-13 12:41:01 +00:00
2011-03-16 23:10:10 +00:00
$hostname = $device [ 'hostname' ];
2012-05-16 13:25:50 +00:00
$hostid = $device [ 'port_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
2012-05-06 23:10:09 +00:00
< a href = '".generate_url($link_array,array(' view ' => ' macaccounting ', ' subview ' => ' top10 ', ' graph '=>$vars[' graph '], sort => $vars[' sort '], ' period ' => ' day '))."' >
2011-09-18 13:11:04 +00:00
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ' ] .
2012-05-06 23:10:09 +00:00
" &stat= " . $vars [ 'graph' ] . " &type=port_mac_acc_total&sort= " . $vars [ 'sort' ] . " &from= " . $config [ 'time' ][ 'day' ] . " &to= " . $config [ 'time' ][ '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 />
2012-05-06 23:10:09 +00:00
< a href = '".generate_url($link_array,array(' view ' => ' macaccounting ', ' subview ' => ' top10 ', ' graph '=>$vars[' graph '], sort => $vars[' sort '], ' period ' => ' twoday '))."/' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ' ] .
2012-05-06 23:10:09 +00:00
" &stat= " . $vars [ 'graph' ] . " &type=port_mac_acc_total&sort= " . $vars [ 'sort' ] . " &from= " . $config [ 'time' ][ 'twoday' ] . " &to= " . $config [ 'time' ][ '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 />
2012-05-06 23:10:09 +00:00
< a href = '".generate_url($link_array,array(' view ' => ' macaccounting ', ' subview ' => ' top10 ', ' graph '=>$vars[' graph '], sort => $vars[' sort '], ' period ' => ' week '))."/' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ']."&type=port_mac_acc_total&sort=".$vars[' sort ']."&stat=".$vars[' graph ']."&from=".$config[' time '][' week ']."&to=".$config[' time '][' 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 />
2012-05-06 23:10:09 +00:00
< a href = '".generate_url($link_array,array(' view ' => ' macaccounting ', ' subview ' => ' top10 ', ' graph '=>$vars[' graph '], sort => $vars[' sort '], ' period ' => ' month '))."/' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ']."&type=port_mac_acc_total&sort=".$vars[' sort ']."&stat=".$vars[' graph ']."&from=".$config[' time '][' month ']."&to=".$config[' time '][' 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 />
2012-05-06 23:10:09 +00:00
< a href = '".generate_url($link_array,array(' view ' => ' macaccounting ', ' subview ' => ' top10 ', ' graph '=>$vars[' graph '], sort => $vars[' sort '], ' period ' => ' year '))."/' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ']."&type=port_mac_acc_total&sort=".$vars[' sort ']."&stat=".$vars[' graph ']."&from=".$config[' time '][' year ']."&to=".$config[' time '][' 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;' >
2012-05-16 13:25:50 +00:00
< img src = 'graph.php?id=".$port[' port_id ']."&type=port_mac_acc_total&sort=".$vars[' sort ']."&stat=".$vars[' graph ']."&from=$from&to=".$config[' time '][' 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 ']))."' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ']."&stat=bits&type=port_mac_acc_total&sort=".$vars[' sort ']."&from=$from&to=".$config[' time '][' 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 ']))."/' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ']."&stat=pkts&type=port_mac_acc_total&sort=".$vars[' sort ']."&from=$from&to=".$config[' time '][' 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 ']))."' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ' ] .
2012-05-06 23:10:09 +00:00
" &stat= " . $vars [ 'graph' ] . " &type=port_mac_acc_total&sort=in&from= $from &to= " . $config [ 'time' ][ '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 ']))."' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ' ] .
2012-05-06 23:10:09 +00:00
" &stat= " . $vars [ 'graph' ] . " &type=port_mac_acc_total&sort=out&from= $from &to= " . $config [ 'time' ][ '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 ']))."' >
2012-05-16 13:25:50 +00:00
< img style = 'border: #5e5e5e 2px;' valign = middle src = 'graph.php?id=".$port[' port_id ' ] .
2012-05-06 23:10:09 +00:00
" &stat= " . $vars [ 'graph' ] . " &type=port_mac_acc_total&sort=both&from= $from &to= " . $config [ 'time' ][ '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,
2012-05-16 13:25:50 +00:00
`ports` AS I , `devices` AS D WHERE M . port_id = ? AND I . port_id = M . port_id AND I . device_id = D . device_id ORDER BY bps DESC " ;
$param = array ( $port [ 'port_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?
2012-05-16 13:25:50 +00:00
$arp_host = dbFetchRow ( " SELECT * FROM ipv4_addresses AS A, ports AS I, devices AS D WHERE A.ipv4_address = ? AND I.port_id = A.port_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 ); }
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> \
2012-05-06 23:10:09 +00:00
< img src = \ 'graph.php?id=" . $acc[' ma_id '] . "&type=$graph_type&from=".$config[' time '][' twoday ']."&to=".$config[' time '][' 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();\" >
2012-05-06 23:10:09 +00:00
< img src = 'graph.php?id=" . $acc[' ma_id '] . "&type=$graph_type&from=".$config[' time '][' twoday ']."&to=".$config[' time '][' 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 " ;
2012-05-06 18:38:11 +00:00
$graph_array [ 'to' ] = $config [ 'time' ][ 'now' ];
2011-04-30 10:43:27 +00:00
echo ( '<tr bgcolor="' . $bg_colour . '"' . ( $bg_image ? ' background="' . $bg_image . '"' : '' ) . '"><td colspan="7">' );
2012-04-06 13:56:23 +00:00
2012-04-26 16:49:38 +00:00
include ( " includes/print-graphrow.inc.php " );
2012-04-06 13:56:23 +00:00
2011-04-30 10:43:27 +00:00
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
?>