$tunnel) { $tunnel = array_merge($tunnel, $ike_array[$tunnel['cipSecTunIkeTunnelIndex']]); echo("Tunnel $index (".$tunnel['cipSecTunIkeTunnelIndex'].")\n"); echo("Address ".$tunnel['cikeTunRemoteValue']."\n"); $address = $tunnel['cikeTunRemoteValue']; $oids = array ( "cipSecTunInOctets", "cipSecTunInDecompOctets", "cipSecTunInPkts", "cipSecTunInDropPkts", "cipSecTunInReplayDropPkts", "cipSecTunInAuths", "cipSecTunInAuthFails", "cipSecTunInDecrypts", "cipSecTunInDecryptFails", "cipSecTunOutOctets", "cipSecTunOutUncompOctets", "cipSecTunOutPkts", "cipSecTunOutDropPkts", "cipSecTunOutAuths", "cipSecTunOutAuthFails", "cipSecTunOutEncrypts", "cipSecTunOutEncryptFails"); $db_oids = array("cipSecTunStatus" => "tunnel_status", "cikeTunLocalName" => "tunnel_name", "cikeTunLocalValue" => "local_addr"); if (!is_array($tunnels[$tunnel['cikeTunRemoteValue']])) { $tunnel_id = dbInsert(array('device_id' => $device['device_id'], 'peer_addr' => $tunnel['cikeTunRemoteValue'], 'local_addr' => $tunnel['cikeTunLocalValue'], 'tunnel_name' => $tunnel['cikeTunLocalName']), 'ipsec_tunnels'); } else { foreach ($db_oids as $db_oid => $db_value) { $db_update[$db_value] = $tunnel[$db_oid]; } $updated = dbUpdate($db_update, 'ipsec_tunnels', '`tunnel_id` = ?', array($tunnels[$tunnel['cikeTunRemoteValue']]['tunnel_id'])); } if (is_numeric($tunnel['cipSecTunHcInOctets']) && is_numeric($tunnel['cipSecTunHcInDecompOctets']) && is_numeric($tunnel['cipSecTunHcOutOctets']) && is_numeric($tunnel['cipSecTunHcOutUncompOctets'])) { echo("HC "); $tunnel['cipSecTunInOctets'] = $tunnel['cipSecTunHcInOctets']; $tunnel['cipSecTunInDecompOctets'] = $tunnel['cipSecTunHcInDecompOctets']; $tunnel['cipSecTunOutOctets'] = $tunnel['cipSecTunHcOutOctets']; $tunnel['cipSecTunOutUncompOctets'] = $tunnel['cipSecTunHcOutUncompOctets']; } $rrd_file = $config['rrd_dir'] . "/" . $device['hostname'] . "/ipsectunnel-".$address.".rrd"; $rrd_create = $config['rrd_rra']; foreach ($oids as $oid) { $oid_ds = truncate(str_replace("cipSec", "", $oid), 19, ''); $rrd_create .= " DS:$oid_ds:COUNTER:600:U:1000000000"; } $rrdupdate = "N"; foreach ($oids as $oid) { if (is_numeric($tunnel[$oid])) { $value = $tunnel[$oid]; } else { $value = "0"; } $rrdupdate .= ":$value"; } if (isset($tunnel['cikeTunRemoteValue'])) { if (!file_exists($rrd_file)) { rrdtool_create($rrd_file, $rrd_create); } rrdtool_update($rrd_file, $rrdupdate); #$graphs['ipsec_tunnels'] = TRUE; } } unset($oids, $data, $data_array, $oid, $tunnel); ?>