include('header.php');
?>
// INCLUDE ALL THE VARIABLES RELATED TO THE PATHs
include('/opt/lampp/htdocs/OSD/OpenAirEmu.conf');
//$GET_OPENAIR_TARGETS=shell_exec("source /opt/lampp/htdocs/OSD/OpenAirEmu.conf");
//echo $GET_OPENAIR_TARGETS;
// TO BE SURE ABOUT THE PATHs
//echo $OPENAIR_TARGETS.'
'.$WEBXML_PATH.'
'.$RESULTS_PATH.'
'.$OPENAIR1_DIR.'
'.$OPENAIR2_DIR.'
'.$OPENAIR3_DIR.'
';
// TO HIDE ALL THE PHP ERRORS AND WARNINGS
ini_set('display_errors','Off');
ini_set('log_errors',1);
ini_set('error_log','/var/logs/php/errlog.txt');
// *****************************************************************************************
// COPY and PASTE
//FROM HERE COPY AND PASTE THE CONTENT OF THE FORM RECEPTION OF THE WEBPORTAL VERSION FROM AFTER THIS LINE
//
// *****************************************************************************************
function nospace($input) {
$espace = array(" ");
return str_replace($espace, "", $input);
}
// PHIL - To put a 0 or 1 between tags For all the CHECKBOXES so they are not empties- 2012 06 28
if ( isset($_POST['throughput']) && $_POST['throughput'] == '1' ) { $THROUGHPUT = 1; } else { $THROUGHPUT = 0; }
if ( isset($_POST['latency']) && $_POST['latency'] == '1' ) { $LATENCY = 1; } else { $LATENCY = 0; }
if ( isset($_POST['lossrate']) && $_POST['lossrate'] == '1' ) { $LOSS_RATE = 1; } else { $LOSS_RATE = 0; }
if ( isset($_POST['pkttrace']) && $_POST['pkttrace'] == '1' ) { $PKTTRACE = 1; } else { $PKTTRACE = 0; }
if ( isset($_POST['bg_traffic']) && $_POST['bg_traffic'] == '1' ) { $BG_TRAFFIC = 1; } else { $BG_TRAFFIC = 0; }
if ( isset($_POST['curves']) && $_POST['curves'] == '1' ) { $CURVES = enabled; } else { $CURVES = disabled; }
// More parameters
if ( isset($_POST['phy_abstraction']) && $_POST['phy_abstraction'] == '1' ) { $PHY_ABSTRACTION = '-a'; } else { $PHY_ABSTRACTION = ''; }
if ( isset($_POST['pcap_trace']) && $_POST['pcap_trace'] == '1' ) { $PCAP_TRACE = 1; } else { $PCAP_TRACE = 0; }
if ( isset($_POST['profiling']) && $_POST['profiling'] == '1' ) { $PROFILING = 1; } else { $PROFILING = 0; }
if ( isset($_POST['dl_mcs'])) { $DL_MCS = '-m' . $_POST['dl_mcs']; } else { $DL_MCS = ''; }
if ( isset($_POST['ul_mcs'])) { $UL_MCS = '-t' . $_POST['ul_mcs']; } else { $UL_MCS = ''; }
if ( isset($_POST['snr'])) { $SNR = '-s' . $_POST['snr']; } else { $SNR = ''; }
if ( isset($_POST['transmission_mode'])) { $TRANSMISSION_MODE = $_POST['transmission_mode']; } else { $TRANSMISSION_MODE = ''; }
if ( isset($_POST['frame_type'])) { $FRAME_TYPE = $_POST['frame_type']; } else { $FRAME_TYPE = ''; }
if ( isset($_POST['tdd_config'])) { $TDD_CONFIG = ''.$_POST['tdd_config'].''; } else { $TDD_CONFIG = ''; }
// VARIABLES FOR BOTH WEBPORTAL AND PORTABLE VERSION
$espace= array(" ");
$date = date("YmdHis");
$PERSON = str_replace($espace, "", $user);
$ID = $PERSON.$date;
$user = $_POST['username'];
$XML_FILENAME = str_replace($espace, "", $user).'.'.$date.'.xml';
// eNB Distribution
if (isset($_POST['eNB_initial_distribution']) && $_POST['eNB_initial_distribution'] == 'fixed') {
$eNB_INITIAL_DISTRIBUTION =
'fixed
'.nospace($_POST['pos_x']).'
'.nospace($_POST['pos_y']).'
';
}
elseif (isset($_POST['eNB_initial_distribution']) && $_POST['eNB_initial_distribution'] == 'random') {
$eNB_INITIAL_DISTRIBUTION =
'random
'.nospace($_POST['random_eNB_distr']).'
';
}
// RBs
if (isset($_POST['num_rbs_dl'])) {
$NUMBER_OF_RBS = ''.$_POST['num_rbs_dl'].'';
}
else {
$NUM_RBS = '';
}
// PCAP
if ($PCAP_TRACE == 1) {
$TRACE_FILE = 'pcap';
}
else {
$TRACE_FILE = '';
}
// CLI
if ( isset($_POST['cli_enabled']) && $_POST['cli_enabled'] == '1' ) {
if ( isset($_POST['cli_start_enb']) && $_POST['cli_start_enb'] == '1' ) { $CLI_START_ENB = 1; } else { $CLI_START_ENB = 0; }
if ( isset($_POST['cli_start_ue']) && $_POST['cli_start_ue'] == '1' ) { $CLI_START_UE = 1; } else { $CLI_START_UE = 0; }
$CLI =
'
'.$CLI_START_ENB.'
'.$CLI_START_UE.'
';
}
else {
$CLI = '';
}
// ICI TOUTES LES OPTIONS - ELLES SONT COMMENTEES EN BAS DU FICHIER
//
$data = '
0
'.nospace($_POST['pathlossexp']).'
'.nospace($_POST['pathlosszero']).'
'.nospace($_POST['smallscale']).'
'.nospace($_POST['wallpenetloss']).'
'.nospace($_POST['sysbw']).'
'.nospace($_POST['uefreq']).'
'.$NUMBER_OF_RBS.'
'.$TRANSMISSION_MODE.'
'.$FRAME_TYPE.'
'.$TDD_CONFIG.'
'.nospace($_POST['eNB_RX_noise_power']).'
'.nospace($_POST['eNB_nb_sectors']).'
'.nospace($_POST['eNB_beam_width']).'
'.nospace($_POST['eNB_antenna_gain']).'
'.nospace($_POST['eNB_TX_power']).'
'.nospace($_POST['UE_RX_noise_power']).'
'.nospace($_POST['UE_antenna_gain']).'
'.nospace($_POST['UE_TX_power']).'
'.nospace($_POST['areax']).'
'.nospace($_POST['areay']).'
'.nospace($_POST['typetopo']).'
'.nospace($_POST['celltype']).'
0
'.nospace($_POST['uedistr']).'
'.nospace($_POST['random_UE_dist_nb_node']).'
'.nospace($_POST['uemobility']).'
'.nospace($_POST['minspeed']).'
'.nospace($_POST['maxspeed']).'
'.nospace($_POST['minpausetime']).'
'.nospace($_POST['maxpausetime']).'
'.nospace($_POST['minjourneytime']).'
'.nospace($_POST['maxjourneytime']).'
'.nospace($eNB_INITIAL_DISTRIBUTION).'
'.nospace($_POST['enbmobility']).'
'.nospace($_POST['omv']).'
'.nospace($_POST['pre_sourceid']).'
'.nospace($_POST['pre_apptype']).'
'.nospace($_POST['pre_destid']).'
'.$BG_TRAFFIC.'
'.nospace($_POST['cust_sourceid']).'
'.nospace($_POST['cust_transprot']).'
'.nospace($_POST['cust_ipversion']).'
'.nospace($_POST['cust_destid']).'
'.nospace($_POST['idt_dist']).'
'.nospace($_POST['idtmin']).'
'.nospace($_POST['idtmax']).'
'.nospace($_POST['idtstddeviation']).'
'.nospace($_POST['idtlambda']).'
'.nospace($_POST['idtscale']).'
'.nospace($_POST['idtshape']).'
'.nospace($_POST['size_dist']).'
'.nospace($_POST['sizemin']).'
'.nospace($_POST['sizemax']).'
'.nospace($_POST['sizestddeviation']).'
'.nospace($_POST['sizelambda']).'
'.nospace($_POST['sizescale']).'
'.nospace($_POST['sizeshape']).'
'.nospace($_POST['destport']).'
'.nospace($_POST['proboffpu']).'
'.nospace($_POST['probpued']).'
'.nospace($_POST['holdtimeoffpu']).'
'.nospace($_POST['proboffed']).'
'.nospace($_POST['probedpe']).'
'.nospace($_POST['holdtimeoffed']).'
'.nospace($_POST['holdtimeoffpe']).'
'.nospace($_POST['emutime']).'
'.$CURVES.'
'.$PROFILING.'
'.$TRACE_FILE.'
'.$THROUGHPUT.'
'.$LATENCY.'
'.$LOSS_RATE.'
1
'.nospace($_POST['level']).'
'.nospace($_POST['verbosity']).'
'.nospace($_POST['interval']).'
'.$PKTTRACE.'
'.nospace($_POST['seedvalue']).'
'.$CLI.'
'.$XML_FILENAME.'
';
//echo $data."
";
/*
// VARIABLES FOR WEBPORTAL
$EMU_RESULTS = "/drupal-6.19/CLUSTER/r4g7/emu_results";
$EMU_RESULTS_USER = $EMU_RESULTS.'/'.str_replace($espace, "", $user).'/'.$date;
$FOR_R4G1 = "/opt/lampp/htdocs/drupal-6.19/CLUSTER/r4g7/emu_results/".str_replace($espace, "", $user)."/".$date."/LOGS/";
$CHEMIN = "/nfs/emu_results/".str_replace($espace, "", $user)."/".$date."/LOGS/";
$file = '/opt/lampp/htdocs/drupal-6.19/CLUSTER/r4g7/webxml/'.$XML_FILE;
*/
// VARIABLES FOR PORTABLE VERSION
$xmlfile = $WEBXML_PATH.'/'.str_replace($espace, "", $user).'.'.$date.'.xml';
//echo $xmlfile.'
'.$XML_FILENAME.'
';
// 1 - WRITTING THE XML FILE
File_put_contents($xmlfile, $data);
sleep(1);
// IN PORTABLE VERSION THERE IS NO FOR R4G1, SINCE WE WORK ON ONLY ONE MACHINE
// RESULTS_PATH is defined in /opt/lampp/htdocs/OSD/OpenAirEmu.conf file
$RESULTS_PATH_EMULATION = $RESULTS_PATH."/".str_replace($espace, "", $user)."/".$date."/";
//echo $RESULTS_PATH_EMULATION.'
';
//$RESULTS_PATH_EMULATION_LOGS = $RESULTS_PATH_EMULATION."LOGS/";
//$RESULTS_PATH_EMULATION_XML = $RESULTS_PATH_EMULATION."SCENARIO/XML/";
// PROFILING and PCAP Copy
if ($PROFILING == 1) {
$PROFILING_PARSE = '2>profiling.log';
$PROFILING_COPY = ' ; cp profiling.log '.$RESULTS_PATH_EMULATION;
}
else {
$PROFILING_PARSE = '';
$PROFILING_COPY = '';
}
if ($PCAP_TRACE == 1) {
$PCAP_COPY = ' ; cp oai_opt.pcap '.$RESULTS_PATH_EMULATION;
}
else {
$PCAP_COPY = '';
}
// -1 : portable, 0: web portal, # for templates
// 2 - STARTING OAISIM
// $OAISIM=shell_exec("set -x ; mkdir /tmp/$ID ; cd /tmp/$ID ; export OPENAIR1_DIR=$OPENAIR1_DIR ; export OPENAIR2_DIR=$OPENAIR2_DIR ; export OPENAIR3_DIR=$OPENAIR3_DIR ; export OPENAIR_TARGETS=$OPENAIR_TARGETS ; $OPENAIR_TARGETS/SIMU/USER/oaisim -a -c $XML_FILENAME >oaisim.log ; mv * $RESULTS_PATH_EMULATION_LOGS ; rmdir /tmp/$ID ");
$OAISIM="set -x ; mkdir /tmp/$ID ; cd /tmp/$ID ; export OPENAIR1_DIR=$OPENAIR1_DIR ; export OPENAIR2_DIR=$OPENAIR2_DIR ; export OPENAIR3_DIR=$OPENAIR3_DIR ; export OPENAIR_TARGETS=$OPENAIR_TARGETS ; $OPENAIR_TARGETS/SIMU/USER/oaisim $PHY_ABSTRACTION $SNR $DL_MCS $UL_MCS -c -1 >oaisim.log ".$PROFILING_PARSE." ; cp oaisim.log $RESULTS_PATH_EMULATION".$PROFILING_COPY.$PCAP_COPY;
//echo $OAISIM;
shell_exec($OAISIM);
// Get hostname
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$hostname = gethostname();
}
elseif (version_compare(PHP_VERSION, '4.2.0') >= 0) {
$hostname = php_uname('n');
}
elseif (version_compare(PHP_VERSION, '4.2.0') < 0) {
$hostname = getenv('HOSTNAME');
if(!$hostname) $hostname = trim(`hostname`);
if(!$hostname) $hostname = exec('echo $HOSTNAME');
if(!$hostname) $hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a'));
}
// APACHE VARIABLES
$RESULTS_PATH="http://".$hostname."/results/";
$XMLFILE_PATH="http://".$hostname."/xmlfile/";
// PROFILING and PCAP Results
if ($PROFILING == 1) {
$PROFILING_OUTPUT = '
Here is the output of your OpenAirEmulation :
oaisim.log
'.$PROFILING_OUTPUT.'
'.$PCAP_OUTPUT.'
';
/*
// THE SECOND SQUARE - DISPLAY FILE RESULTS
if ($handle = opendir("$RESULTS_PATH_EMULATION_LOGS")) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$thelist .= '
'.$file.'';
}
}
closedir($handle);
}
echo '
';
// THE THIRD SQUARE - DISPLAY FILE RESULTS
echo '
HERE DISPLAY PACKET TRACES FILES
';
*/
/* PHIL - J'enlve la SUMO CONFIG
'.nospace($_POST['sumocmd']).'
'.nospace($_POST['sumoconffile']).'
'.nospace($_POST['sumostart']).'
'.nospace($_POST['sumoend']).'
'.nospace($_POST['sumostep']).'
'.nospace($_POST['sumohostip']).'
'.nospace($_POST['sumohostport']).'
'.$CLI_START_ENB.'
'.$CLI_START_UE.'
'.nospace($_POST['eNB_antennas_rx']).'
'.nospace($_POST['eNB_antennas_tx']).'
'.nospace($_POST['UE_antennas_rx']).'
'.nospace($_POST['UE_antennas_tx']).'
*/
/*
// UE MOBILITY TYPE
//
if ( $_POST['uemobility'] == 'fixed' ) {
$UE_MOBILITY =
'
'.nospace($_POST['uemobility']).'';
}
if ( $_POST['uemobility'] == 'random_waypoint' ) {
$UE_MOBILITY =
'
'.nospace($_POST['uemobility']).'';
}
if ( $_POST['uemobility'] == 'random_walk' ) {
$UE_MOBILITY =
'
'.nospace($_POST['uemobility']).'';
}
if ( $_POST['uemobility'] == 'grid_walk' ) {
$UE_MOBILITY =
'
'.nospace($_POST['uemobility']).'
'.nospace($_POST['horizgrid']).'
'.nospace($_POST['vertgrid']).'
'.nospace($_POST['gridtype']).'';
}
//
// UEs DISTRIBUTION
//
if ( $_POST['uedistr'] == 'random' ) {
$UE_DISTRIBUTION =
'
1
';
}
if ( $_POST['uedistr'] == 'concentrated' ) {
$UE_DISTRIBUTION =
'
1
';
}
if ( $_POST['uedistr'] == 'grid_map' ) {
if ( $_POST['gridmapradio'] == 'random_grid' ) {
$UE_DISTRIBUTION =
'
random_grid
'.nospace($_POST['rdgridnbnodes']).'
';
}
if ( $_POST['gridmapradio'] == 'border_grid' ) {
$UE_DISTRIBUTION =
'
border_grid
'.nospace($_POST['bdgridnbnodes']).'
';
}
}
//
// eNB INITIAL DISTRIBUTION
//
if ( $_POST['eNB_initial_distribution'] == 'grid' ) {
$eNB_INITIAL_DISTRIBUTION =
'
grid
'.nospace($_POST['gridx']).'
'.nospace($_POST['gridy']).'
';
}
if ( $_POST['eNB_initial_distribution'] == 'hexagonal' ) {
$eNB_INITIAL_DISTRIBUTION =
'
hexagonal
'.nospace($_POST['hexanbcells']).'
'.nospace($_POST['interenbdist']).'
';
}
if ( $_POST['eNB_initial_distribution'] == 'random' ) {
$eNB_INITIAL_DISTRIBUTION =
'
random
'.nospace($_POST['nbenbs']).'
';
}
//
// TRAFFIC - PACKET SIZE
//
if ( $_POST['pktsize'] == 'fixed' ) {
$PACKET_SIZE =
'
fixed
'.nospace($_POST['pktsizefixed']).'
';
}
if ( $_POST['pktsize'] == 'uniform' ) {
$PACKET_SIZE =
'
uniform
'.nospace($_POST['pktsizeunimin']).'
'.nospace($_POST['pktsizeunimax']).'
';
}
//
// INTER ARRIVAL TIME
//
if ( $_POST['interarrivtime'] == 'fixed' ) {
$INTER_ARRIVAL_TIME =
'
fixed
'.nospace($_POST['intarrtimefixed']).'
';
}
if ( $_POST['interarrivtime'] == 'uniform' ) {
$INTER_ARRIVAL_TIME =
'
uniform
'.nospace($_POST['intarrtimeunimin']).'
'.nospace($_POST['intarrtimeunimax']).'
';
}
if ( $_POST['interarrivtime'] == 'poisson' ) {
$INTER_ARRIVAL_TIME =
'
poisson
'.nospace($_POST['intarrtimepoisson']).'
';
}
//
// RANDOM SEED
//
if ( $_POST['randomseed'] == 'random' ) {
$RANDOM_SEED =
'
random';
}
if ( $_POST['randomseed'] == 'userspecified' ) {
$RANDOM_SEED =
'
user_specified
'.nospace($_POST['seedvalue']).'
';
}
*/
?>