2011-04-27 01:46:01 +00:00
<? php
2011-04-29 22:29:42 +00:00
$i_i = "0" ;
echo ( '<table width=100% border=0 cellpadding=5>' );
#### Loop Instances
2011-05-16 12:48:50 +00:00
foreach ( dbFetchRows ( "SELECT * FROM `ospf_instances` WHERE `device_id` = ?" , array ( $device [ 'device_id' ])) as $instance )
2011-04-29 22:29:42 +00:00
{
if ( ! is_integer ( $i_i / 2 )) { $instance_bg = $list_colour_a ; } else { $instance_bg = $list_colour_b ; }
2011-05-16 10:44:50 +00:00
$area_count = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_areas` WHERE `device_id` = ?" , array ( $device [ 'device_id' ]));
$port_count = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_ports` WHERE `device_id` = ?" , array ( $device [ 'device_id' ]));
$port_count_enabled = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_ports` WHERE `ospfIfAdminStat` = 'enabled' AND `device_id` = ?" , array ( $device [ 'device_id' ]));
$nbr_count = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_nbrs` WHERE `device_id` = ?" , array ( $device [ 'device_id' ]));
2011-04-30 22:20:11 +00:00
2011-04-29 22:29:42 +00:00
$query = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE " ;
2011-05-16 10:44:50 +00:00
$query .= "(A.ipv4_address = ? AND I.interface_id = A.interface_id)" ;
$query .= " AND I.device_id = ?" ;
$ipv4_host = dbFetchRow ( $query , array ( $peer [ 'bgpPeerIdentifier' ], $device [ 'device_id' ]));
2011-04-29 22:29:42 +00:00
2011-05-01 17:26:06 +00:00
if ( $instance [ 'ospfAdminStat' ] == "enabled" ) { $enabled = '<span style="color: #00aa00">enabled</span>' ; } else { $enabled = '<span style="color: #aaaaaa">disabled</span>' ; }
if ( $instance [ 'ospfAreaBdrRtrStatus' ] == "true" ) { $abr = '<span style="color: #00aa00">yes</span>' ; } else { $abr = '<span style="color: #aaaaaa">no</span>' ; }
if ( $instance [ 'ospfASBdrRtrStatus' ] == "true" ) { $asbr = '<span style="color: #00aa00">yes</span>' ; } else { $asbr = '<span style="color: #aaaaaa">no</span>' ; }
2011-04-29 22:29:42 +00:00
echo ( '<tr><th>Router Id</th><th>Status</th><th>ABR</th><th>ASBR</th><th>Areas</th><th>Ports</th><th>Neighbours</th></tr>' );
echo ( '<tr bgcolor="' . $instance_bg . '">' );
echo ( ' <td class="list-large">' . $instance [ 'ospfRouterId' ] . '</td>' );
echo ( ' <td>' . $enabled . '</td>' );
echo ( ' <td>' . $abr . '</td>' );
echo ( ' <td>' . $asbr . '</td>' );
echo ( ' <td>' . $area_count . '</td>' );
echo ( ' <td>' . $port_count . '(' . $port_count_enabled . ')</td>' );
2011-04-30 22:20:11 +00:00
echo ( ' <td>' . $nbr_count . '</td>' );
2011-04-29 22:29:42 +00:00
echo ( '</tr>' );
echo ( '<tr bgcolor="' . $instance_bg . '">' );
echo ( '<td colspan=7>' );
echo ( '<table width=100% border=0 cellpadding=5>' );
echo ( '<tr><th></th><th>Area Id</th><th>Status</th><th>Ports</th></tr>' );
##### Loop Areas
$i_a = 0 ;
2011-05-16 10:44:50 +00:00
foreach ( dbFetchRows ( "SELECT * FROM `ospf_areas` WHERE `device_id` = ?" , array ( $device [ 'device_id' ])) as $area )
2011-04-29 22:29:42 +00:00
{
if ( ! is_integer ( $i_a / 2 )) { $area_bg = $list_colour_b_a ; } else { $area_bg = $list_colour_b_b ; }
2011-05-16 10:44:50 +00:00
$area_port_count = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_ports` WHERE `device_id` = ? AND `ospfIfAreaId` = ?" , array ( $device [ 'device_id' ], $area [ 'ospfAreaId' ]));
$area_port_count_enabled = dbFetchCell ( "SELECT COUNT(*) FROM `ospf_ports` WHERE `ospfIfAdminStat` = 'enabled' AND `device_id` = ? AND `ospfIfAreaId` = ?" , array ( $device [ 'device_id' ], $area [ 'ospfAreaId' ]));
2011-04-29 22:29:42 +00:00
echo ( '<tr bgcolor="' . $area_bg . '">' );
echo ( ' <td width=5></td>' );
echo ( ' <td class="list-large">' . $area [ 'ospfAreaId' ] . '</td>' );
echo ( ' <td>' . $enabled . '</td>' );
echo ( ' <td>' . $area_port_count . '(' . $area_port_count_enabled . ')</td>' );
2011-05-01 17:26:06 +00:00
echo ( '</tr>' );
2011-04-29 22:29:42 +00:00
echo ( '<tr bgcolor="' . $area_bg . '">' );
echo ( '<td colspan=7>' );
echo ( '<table width=100% border=0 cellpadding=5>' );
echo ( '<tr><th></th><th>Port</th><th>Status</th><th>Port Type</th><th>Port State</th></tr>' );
##### Loop Ports
$i_p = $i_a + 1 ;
2011-05-16 10:44:50 +00:00
$p_sql = "SELECT * FROM `ospf_ports` AS O, `ports` AS P WHERE O.`ospfIfAdminStat` = 'enabled' AND O.`device_id` = ? AND O.`ospfIfAreaId` = ? AND P.interface_id = O.interface_id" ;
foreach ( dbFetchRows ( $p_sql , array ( $device [ 'device_id' ], $area [ 'ospfAreaId' ])) as $ospfport )
2011-04-29 22:29:42 +00:00
{
2011-05-01 17:26:06 +00:00
if ( ! is_integer ( $i_a / 2 ))
{
2011-04-29 22:29:42 +00:00
if ( ! is_integer ( $i_p / 2 )) { $port_bg = $list_colour_b_b ; } else { $port_bg = $list_colour_b_a ; }
} else {
if ( ! is_integer ( $i_p / 2 )) { $port_bg = $list_colour_a_b ; } else { $port_bg = $list_colour_a_a ; }
}
2011-05-01 17:26:06 +00:00
if ( $ospfport [ 'ospfIfAdminStat' ] == "enabled" )
{
$port_enabled = '<span style="color: #00aa00">enabled</span>' ;
} else {
$port_enabled = '<span style="color: #aaaaaa">disabled</span>' ;
}
2011-04-29 22:29:42 +00:00
echo ( '<tr bgcolor="' . $port_bg . '">' );
echo ( ' <td width=15></td>' );
echo ( ' <td><strong>' . generate_port_link ( $ospfport ) . '</strong></td>' );
echo ( ' <td>' . $port_enabled . '</td>' );
echo ( ' <td>' . $ospfport [ 'ospfIfType' ] . '</td>' );
echo ( ' <td>' . $ospfport [ 'ospfIfState' ] . '</td>' );
2011-05-01 17:26:06 +00:00
echo ( '</tr>' );
2011-04-29 22:29:42 +00:00
$i_p ++ ;
}
2011-05-01 17:26:06 +00:00
2011-04-29 22:29:42 +00:00
echo ( '</table>' );
echo ( '</td>' );
echo ( '</tr>' );
$i_a ++ ;
} ### End loop areas
2011-05-04 18:35:01 +00:00
echo ( '<tr bgcolor="#ffffff"><th></th><th>Router Id</th><th>Device</th><th>IP Address</th><th>Status</th></tr>' );
## Loop Neigbours
$i_n = 1 ;
2011-05-16 10:44:50 +00:00
foreach ( dbFetchRows ( "SELECT * FROM `ospf_nbrs` WHERE `device_id` = ?" , array ( $device [ 'device_id' ])) as $nbr )
2011-05-04 18:35:01 +00:00
{
if ( ! is_integer ( $i_n / 2 )) { $nbr_bg = $list_colour_b_a ; } else { $nbr_bg = $list_colour_b_b ; }
2011-05-16 10:44:50 +00:00
$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 ( $nbr [ 'ospfNbrRtrId' ]));
2011-05-04 18:35:01 +00:00
2011-10-06 08:22:49 +00:00
if ( is_array ( $host )) { $rtr_id = generate_device_link ( $host , $nbr [ 'ospfNbrRtrId' ]); } else { $rtr_id = "unknown" ; }
2011-05-04 18:35:01 +00:00
echo ( '<tr bgcolor="' . $nbr_bg . '">' );
echo ( ' <td width=5></td>' );
echo ( ' <td><span class="list-large">' . $nbr [ 'ospfNbrRtrId' ] . '</span></td>' );
echo ( ' <td>' . $rtr_id . '</td>' );
echo ( ' <td>' . $nbr [ 'ospfNbrIpAddr' ] . '</td>' );
echo ( ' <td>' );
switch ( $nbr [ 'ospfNbrState' ])
{
case 'full' :
echo ( '<span class=green>' . $nbr [ 'ospfNbrState' ] . '</span>' );
break ;
case 'down' :
echo ( '<span class=red>' . $nbr [ 'ospfNbrState' ] . '</span>' );
break ;
default :
echo ( '<span class=blue>' . $nbr [ 'ospfNbrState' ] . '</span>' );
break ;
}
echo ( '</td>' );
echo ( '</tr>' );
$i_n ++ ;
}
2011-04-29 22:29:42 +00:00
echo ( '</table>' );
echo ( '</td>' );
echo ( '</tr>' );
$i_i ++ ;
} ### End loop instances
echo ( '</table>' );
2011-04-27 01:46:01 +00:00
?>