Commit 20b44143 authored by Navid Nikaein's avatar Navid Nikaein

* add "FLOW_START_ms" and "FLOW_DURATION_ms" to xml scneario descriptor for OTG


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5395 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent c11b6824
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
# include "nas_parser.h" # include "nas_parser.h"
# include "nas_proc.h" # include "nas_proc.h"
# define NAS_UE_AUTOSTART 0 # define NAS_UE_AUTOSTART 1
extern unsigned char NB_eNB_INST; extern unsigned char NB_eNB_INST;
extern unsigned char NB_UE_INST; extern unsigned char NB_UE_INST;
......
...@@ -2665,7 +2665,8 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols, ...@@ -2665,7 +2665,8 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols,
PHY_vars_UE->frame++; PHY_vars_UE->frame++;
} //trials } //trials
// round_trials[0]: number of code word : goodput the protocol
effective_rate = ((double)(round_trials[0]-dci_errors)/((double)round_trials[0] + round_trials[1] + round_trials[2] + round_trials[3])); effective_rate = ((double)(round_trials[0]-dci_errors)/((double)round_trials[0] + round_trials[1] + round_trials[2] + round_trials[3]));
printf("\n**********************SNR = %f dB (tx_lev %f, sigma2_dB %f)**************************\n", printf("\n**********************SNR = %f dB (tx_lev %f, sigma2_dB %f)**************************\n",
...@@ -2673,7 +2674,7 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols, ...@@ -2673,7 +2674,7 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols,
(double)tx_lev_dB+10*log10(PHY_vars_UE->lte_frame_parms.ofdm_symbol_size/(NB_RB*12)), (double)tx_lev_dB+10*log10(PHY_vars_UE->lte_frame_parms.ofdm_symbol_size/(NB_RB*12)),
sigma2_dB); sigma2_dB);
printf("Errors (%d/%d %d/%d %d/%d %d/%d), Pe = (%e,%e,%e,%e), dci_errors %d/%d, Pe = %e => effective rate %f (%2.1f%%,%f), normalized delay %f (%f)\n", printf("Errors (%d/%d %d/%d %d/%d %d/%d), Pe = (%e,%e,%e,%e), dci_errors %d/%d, Pe = %e => effective rate %f (%2.1f%%,%f, %f), normalized delay %f (%f)\n",
errs[0], errs[0],
round_trials[0], round_trials[0],
errs[1], errs[1],
...@@ -2692,6 +2693,7 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols, ...@@ -2692,6 +2693,7 @@ PHY_vars_UE->lte_ue_pdcch_vars[0]->num_pdcch_symbols,
rate*effective_rate, rate*effective_rate,
100*effective_rate, 100*effective_rate,
rate, rate,
rate*get_Qm(PHY_vars_UE->dlsch_ue[0][0]->harq_processes[PHY_vars_UE->dlsch_ue[0][0]->current_harq_pid]->mcs),
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/(double)PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->TBS, (1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/(double)PHY_vars_eNB->dlsch_eNB[0][0]->harq_processes[0]->TBS,
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])); (1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0]));
......
...@@ -1262,7 +1262,7 @@ int main(int argc, char **argv) { ...@@ -1262,7 +1262,7 @@ int main(int argc, char **argv) {
effective_rate = ((double)(round_trials[0])/((double)round_trials[0] + round_trials[1] + round_trials[2] + round_trials[3])); effective_rate = ((double)(round_trials[0])/((double)round_trials[0] + round_trials[1] + round_trials[2] + round_trials[3]));
printf("Errors (%d/%d %d/%d %d/%d %d/%d), Pe = (%e,%e,%e,%e) => effective rate %f (%3.1f%%,%f), normalized delay %f (%f)\n", printf("Errors (%d/%d %d/%d %d/%d %d/%d), Pe = (%e,%e,%e,%e) => effective rate %f (%3.1f%%,%f,%f), normalized delay %f (%f)\n",
errs[0], errs[0],
round_trials[0], round_trials[0],
errs[1], errs[1],
...@@ -1278,6 +1278,7 @@ int main(int argc, char **argv) { ...@@ -1278,6 +1278,7 @@ int main(int argc, char **argv) {
rate*effective_rate, rate*effective_rate,
100*effective_rate, 100*effective_rate,
rate, rate,
rate*get_Qm(mcs),
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/(double)PHY_vars_eNB->ulsch_eNB[0]->harq_processes[harq_pid]->TBS, (1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])/(double)PHY_vars_eNB->ulsch_eNB[0]->harq_processes[harq_pid]->TBS,
(1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0])); (1.0*(round_trials[0]-errs[0])+2.0*(round_trials[1]-errs[1])+3.0*(round_trials[2]-errs[2])+4.0*(round_trials[3]-errs[3]))/((double)round_trials[0]));
......
...@@ -1589,7 +1589,11 @@ int schedule_MBMS(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) ...@@ -1589,7 +1589,11 @@ int schedule_MBMS(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP)
header_len_mcch=1; header_len_mcch=1;
else header_len_msi=1; else header_len_msi=1;
// Calculate the padding // Calculate the padding
if ((TBS - header_len_mtch - header_len_mcch - header_len_msi - sdu_length_total) <= 2) { if ((TBS - header_len_mtch - header_len_mcch - header_len_msi - sdu_length_total) < 0) {
LOG_E(MAC,"Error in building MAC PDU, TBS %d < PDU %d \n",
TBS, header_len_mtch + header_len_mcch + header_len_msi + sdu_length_total);
return;
}else if ((TBS - header_len_mtch - header_len_mcch - header_len_msi - sdu_length_total) <= 2) {
padding = (TBS - header_len_mtch - header_len_mcch - header_len_msi - sdu_length_total); padding = (TBS - header_len_mtch - header_len_mcch - header_len_msi - sdu_length_total);
post_padding = 0; post_padding = 0;
} }
...@@ -4196,7 +4200,7 @@ void schedule_ue_spec(module_id_t module_idP, ...@@ -4196,7 +4200,7 @@ void schedule_ue_spec(module_id_t module_idP,
if (mac_xface->lte_frame_parms->frame_type == TDD) { if (mac_xface->lte_frame_parms->frame_type == TDD) {
eNB_mac_inst[module_idP].UE_template[next_ue].DAI++; eNB_mac_inst[module_idP].UE_template[next_ue].DAI++;
// printf("DAI update: subframeP %d: UE %d, DAI %d\n",subframeP,next_ue,eNB_mac_inst[module_idP].UE_template[next_ue].DAI); // printf("DAI update: subframeP %d: UE %d, DAI %d\n",subframeP,next_ue,eNB_mac_inst[module_idP].UE_template[next_ue].DAI);
#warning only for 5MHz channel
update_ul_dci(module_idP,rnti,eNB_mac_inst[module_idP].UE_template[next_ue].DAI); update_ul_dci(module_idP,rnti,eNB_mac_inst[module_idP].UE_template[next_ue].DAI);
} }
......
...@@ -58,7 +58,7 @@ void init_seeds(int seed){ ...@@ -58,7 +58,7 @@ void init_seeds(int seed){
double uniform_rng() { double uniform_rng() {
double random; double random;
random = (double)taus(OTG)/((double)0xffffffff); random = (double)(taus(OTG)%0xffffffff)/((double)0xffffffff);
//LOG_D(OTG,"Uniform taus random number= %lf\n", random); //LOG_D(OTG,"Uniform taus random number= %lf\n", random);
return random; return random;
} }
......
...@@ -475,7 +475,8 @@ The following diagram is based on graphviz (http://www.graphviz.org/), you need ...@@ -475,7 +475,8 @@ The following diagram is based on graphviz (http://www.graphviz.org/), you need
char *destination_id[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; char *destination_id[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
char *background[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; char *background[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int aggregation_level[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int aggregation_level[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
int duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; int flow_start[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
int flow_duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
} Predefined_Traffic; } Predefined_Traffic;
/* @}*/ /* @}*/
...@@ -529,23 +530,24 @@ The following diagram is based on graphviz (http://www.graphviz.org/), you need ...@@ -529,23 +530,24 @@ The following diagram is based on graphviz (http://www.graphviz.org/), you need
int stream[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; int stream[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
int destination_port[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; int destination_port[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int aggregation_level[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int aggregation_level[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
int duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; int flow_start[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
int flow_duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
char *m2m[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
char *m2m[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
//M2M_Traffic m2m_traffic; //M2M_Traffic m2m_traffic;
double prob_off_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_off_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_off_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_off_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_off_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_off_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_pu_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_pu_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_pu_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_pu_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_ed_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_ed_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
double prob_ed_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; double prob_ed_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int holding_time_off_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int holding_time_off_ed[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int holding_time_off_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int holding_time_off_pu[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int holding_time_off_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int holding_time_off_pe[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int holding_time_pe_off[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int holding_time_pe_off[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int pu_size_pkts[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int pu_size_pkts[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
unsigned int ed_size_pkts[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; unsigned int ed_size_pkts[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX];
} Customized_Traffic; } Customized_Traffic;
/* @}*/ /* @}*/
......
...@@ -158,7 +158,8 @@ static int traffic_; /*!< \brief indicating that the parsing position is now wi ...@@ -158,7 +158,8 @@ static int traffic_; /*!< \brief indicating that the parsing position is now wi
static int transport_protocol_; /*!< \brief indicating that the parsing position is now within Transport_Protocol_*/ static int transport_protocol_; /*!< \brief indicating that the parsing position is now within Transport_Protocol_*/
static int ip_version_; static int ip_version_;
static unsigned int aggregation_level_; static unsigned int aggregation_level_;
static int duration_; static int flow_start_;
static int flow_duration_;
static int idt_dist_; static int idt_dist_;
static int idt_min_ms_; static int idt_min_ms_;
static int idt_max_ms_; static int idt_max_ms_;
...@@ -476,8 +477,10 @@ void start_element(void *user_data, const xmlChar *name, const xmlChar **attrs) ...@@ -476,8 +477,10 @@ void start_element(void *user_data, const xmlChar *name, const xmlChar **attrs)
ip_version_ = 1; ip_version_ = 1;
} else if (!xmlStrcmp(name, (unsigned char*) "AGGREGATION_LEVEL")) { } else if (!xmlStrcmp(name, (unsigned char*) "AGGREGATION_LEVEL")) {
aggregation_level_ = 1; aggregation_level_ = 1;
} else if (!xmlStrcmp(name, (unsigned char*) "DURATION_ms")) { } else if (!xmlStrcmp(name, (unsigned char*) "FLOW_START_ms")) {
duration_ = 1; flow_start_ = 1;
} else if (!xmlStrcmp(name, (unsigned char*) "FLOW_DURATION_ms")) {
flow_duration_ = 1;
} else if (!xmlStrcmp(name, (unsigned char*) "IDT_DIST")) { } else if (!xmlStrcmp(name, (unsigned char*) "IDT_DIST")) {
idt_dist_ = 1; idt_dist_ = 1;
} else if (!xmlStrcmp(name, (unsigned char*) "IDT_MIN_ms")) { } else if (!xmlStrcmp(name, (unsigned char*) "IDT_MIN_ms")) {
...@@ -806,8 +809,10 @@ void end_element(void *user_data, const xmlChar *name) { // called once at the e ...@@ -806,8 +809,10 @@ void end_element(void *user_data, const xmlChar *name) { // called once at the e
transport_protocol_ = 0; transport_protocol_ = 0;
} else if (!xmlStrcmp(name, (unsigned char*) "AGGREGATION_LEVEL")) { } else if (!xmlStrcmp(name, (unsigned char*) "AGGREGATION_LEVEL")) {
aggregation_level_ = 0; aggregation_level_ = 0;
} else if (!xmlStrcmp(name, (unsigned char*) "DURATION_ms")) { } else if (!xmlStrcmp(name, (unsigned char*) "FLOW_START_ms")) {
duration_ = 0; flow_start_ = 0;
} else if (!xmlStrcmp(name, (unsigned char*) "FLOW_DURATION_ms")) {
flow_duration_ = 0;
} else if (!xmlStrcmp(name, (unsigned char*) "IP_VERSION")) { } else if (!xmlStrcmp(name, (unsigned char*) "IP_VERSION")) {
ip_version_ = 0; ip_version_ = 0;
} else if (!xmlStrcmp(name, (unsigned char*) "IDT_DIST")) { } else if (!xmlStrcmp(name, (unsigned char*) "IDT_DIST")) {
...@@ -1132,8 +1137,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o ...@@ -1132,8 +1137,11 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o
oai_emulation.application_config.predefined_traffic.background[oai_emulation.info.max_predefined_traffic_config_index] = strndup(ch, len); oai_emulation.application_config.predefined_traffic.background[oai_emulation.info.max_predefined_traffic_config_index] = strndup(ch, len);
} else if (aggregation_level_) { } else if (aggregation_level_) {
oai_emulation.application_config.predefined_traffic.aggregation_level[oai_emulation.info.max_predefined_traffic_config_index] = atoi(ch); oai_emulation.application_config.predefined_traffic.aggregation_level[oai_emulation.info.max_predefined_traffic_config_index] = atoi(ch);
} else if (duration_) { } else if (flow_start_) {
oai_emulation.application_config.predefined_traffic.duration[oai_emulation.info.max_predefined_traffic_config_index] = atoi(ch);} oai_emulation.application_config.predefined_traffic.flow_start[oai_emulation.info.max_predefined_traffic_config_index] = atoi(ch);
} else if (flow_duration_) {
oai_emulation.application_config.predefined_traffic.flow_duration[oai_emulation.info.max_predefined_traffic_config_index] = atoi(ch);
}
} else if (customized_traffic_) { } else if (customized_traffic_) {
...@@ -1188,8 +1196,10 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o ...@@ -1188,8 +1196,10 @@ void characters(void *user_data, const xmlChar *xmlch, int xmllen) { // called o
oai_emulation.application_config.customized_traffic.ip_version[oai_emulation.info.max_customized_traffic_config_index] = strndup(ch, len); oai_emulation.application_config.customized_traffic.ip_version[oai_emulation.info.max_customized_traffic_config_index] = strndup(ch, len);
} else if (aggregation_level_) { } else if (aggregation_level_) {
oai_emulation.application_config.customized_traffic.aggregation_level[oai_emulation.info.max_customized_traffic_config_index] = atoi(ch); oai_emulation.application_config.customized_traffic.aggregation_level[oai_emulation.info.max_customized_traffic_config_index] = atoi(ch);
} else if (duration_) { } else if (flow_start_) {
oai_emulation.application_config.customized_traffic.duration[oai_emulation.info.max_customized_traffic_config_index] = atoi(ch); oai_emulation.application_config.customized_traffic.flow_start[oai_emulation.info.max_customized_traffic_config_index] = atoi(ch);
} else if (flow_duration_) {
oai_emulation.application_config.customized_traffic.flow_duration[oai_emulation.info.max_customized_traffic_config_index] = atoi(ch);
} else if (idt_dist_) { } else if (idt_dist_) {
oai_emulation.application_config.customized_traffic.idt_dist[oai_emulation.info.max_customized_traffic_config_index] = strndup(ch, len); oai_emulation.application_config.customized_traffic.idt_dist[oai_emulation.info.max_customized_traffic_config_index] = strndup(ch, len);
} else if (idt_min_ms_) { } else if (idt_min_ms_) {
......
...@@ -323,7 +323,8 @@ typedef struct { ...@@ -323,7 +323,8 @@ typedef struct {
int trans_proto[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; int trans_proto[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION];
int ip_v[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; int ip_v[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION];
int duration[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Duration of traffic generation or use the emuulation time instead */ int flow_start[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Duration of traffic generation or use the emuulation time instead */
int flow_duration[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Duration of traffic generation or use the emuulation time instead */
int idt_dist[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Inter Departure Time distribution */ int idt_dist[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Inter Departure Time distribution */
int idt_min[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][MAX_NUM_APPLICATION]; /*!\brief Min Inter Departure Time, for uniform distrib */ int idt_min[NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_SERVICE_MAX][MAX_NUM_APPLICATION]; /*!\brief Min Inter Departure Time, for uniform distrib */
...@@ -380,7 +381,9 @@ typedef struct { ...@@ -380,7 +381,9 @@ typedef struct {
// num stream for each src // num stream for each src
// int stream [NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; // this requires multi thread for parallel stream for a givcen src // int stream [NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX]; // this requires multi thread for parallel stream for a givcen src
// emu info // emu info
int duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief Duration of traffic generation or use the emuulation time instead */ int flow_start_flag[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief flow start time flag for traffic generation or use the emuulation time instead */
int flow_start[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief flow start time of traffic generation or use the emuulation time instead */
int flow_duration[NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX + NUMBER_OF_UE_MAX][MAX_NUM_APPLICATION]; /*!\brief flow duration of traffic generation or use the emuulation time instead */
int seed; /*!\brief The seed used to generate the random positions*/ int seed; /*!\brief The seed used to generate the random positions*/
...@@ -427,7 +430,7 @@ typedef struct{ ...@@ -427,7 +430,7 @@ typedef struct{
unsigned char state; /*!< \brief state of node : on, off, or active */ unsigned char state; /*!< \brief state of node : on, off, or active */
unsigned char hdr_type; /*!< \brief Header type: tcp/udp vs ipv4/ipv6 */ unsigned char hdr_type; /*!< \brief Header type: tcp/udp vs ipv4/ipv6 */
unsigned short pkts_size; /*!< \brief the size of payload + header */ unsigned short pkts_size; /*!< \brief the size of payload + header */
unsigned short aggregation_level; /*!< \brief packet aggregation level */ unsigned short aggregation_level; /*!< \brief packet aggregation level */
unsigned int traffic_type; /*!< \brief to specify if it corresponds to an m2m traffic */ unsigned int traffic_type; /*!< \brief to specify if it corresponds to an m2m traffic */
//int payload_size; /*!< \brief the size of the payload to transmit */ //int payload_size; /*!< \brief the size of the payload to transmit */
//int header_size; /*!< \brief Header type: tcp/udp vs ipv4/ipv6 */ //int header_size; /*!< \brief Header type: tcp/udp vs ipv4/ipv6 */
......
...@@ -398,17 +398,21 @@ void check_ctime(int ctime){ ...@@ -398,17 +398,21 @@ void check_ctime(int ctime){
int check_data_transmit(int src,int dst, int app, int ctime){ int check_data_transmit(int src,int dst, int app, int ctime){
unsigned int size=0; unsigned int size=0;
// for (application=0; application<g_otg->application_idx[src][dst]; application++){ // for (application=0; application<g_otg->application_idx[src][dst]; application++){
otg_info->gen_pkts=0; otg_info->gen_pkts=0;
LOG_T(OTG,"FLOW_INFO [src %d][dst %d] [IDX %d] [APPLICATION TYPE %d] MAX %d [M2M %d ]\n", src, dst, app, g_otg->application_type[src][dst][app],g_otg->application_idx[src][dst], g_otg->m2m[src][dst][app]); LOG_T(OTG,"FLOW_INFO [src %d][dst %d] [IDX %d] [APPLICATION TYPE %d] MAX %d [M2M %d ]\n", src, dst, app, g_otg->application_type[src][dst][app],g_otg->application_idx[src][dst], g_otg->m2m[src][dst][app]);
// do not generate packet for this pair of src, dst : no app type and/or no idt are defined // do not generate packet for this pair of src, dst : no app type and/or no idt are defined
if (g_otg->flow_start[src][dst][app] > ctime ){
if (g_otg->duration[src][dst][app] > ctime){ //g_ otg->flow_start_flag[src][dst][app]=1;
LOG_T(OTG,"Do not generate packet for this pair of src=%d, dst =%d, duration %d < ctime %d \n", src, dst,g_otg->duration[src][dst][app], ctime); LOG_D(OTG,"Flow start time not reached : do not generate packet for this pair of src=%d, dst =%d, start %d < ctime %d \n",
src, dst,g_otg->flow_start[src][dst][app], ctime);
size+=0;
}else if (g_otg->flow_duration[src][dst][app] + g_otg->flow_start[src][dst][app] < ctime ){
LOG_D(OTG,"Flow duration reached: do not generate packet for this pair of src=%d, dst =%d, duration %d < ctime %d + start %d\n",
src, dst,g_otg->flow_duration[src][dst][app], ctime, g_otg->flow_start[src][dst][app]);
size+=0; size+=0;
}else if ((g_otg->application_type[src][dst][app]==0)&&(g_otg->idt_dist[src][dst][app][PE_STATE]==0)){ }else if ((g_otg->application_type[src][dst][app]==0)&&(g_otg->idt_dist[src][dst][app][PE_STATE]==0)){
LOG_D(OTG,"Do not generate packet for this pair of src=%d, dst =%d, IDT zero and app %d not specificed\n", src, dst, app); LOG_D(OTG,"Do not generate packet for this pair of src=%d, dst =%d, IDT zero and app %d not specificed\n", src, dst, app);
...@@ -679,7 +683,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -679,7 +683,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 256;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 256;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
case MMCBR : case MMCBR :
...@@ -696,7 +700,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -696,7 +700,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 768 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 768 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
case MBCBR : case MBCBR :
...@@ -713,7 +717,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -713,7 +717,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 1400 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 1400 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
...@@ -731,7 +735,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -731,7 +735,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 512 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 512 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
...@@ -749,7 +753,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -749,7 +753,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 1024 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 1024 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
...@@ -767,7 +771,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount ...@@ -767,7 +771,7 @@ for (i=0; i<2; i++){ // src //maxServiceCount
g_otg_multicast->size_max[i][j][k]= 1400 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c g_otg_multicast->size_max[i][j][k]= 1400 ;//can not be greater than 1500 which is max_ip_packet_size in pdcp.c
g_otg_multicast->duration[i][j][k] = 1000; // the packet will be generated after duration g_otg_multicast->flow_duration[i][j][k] = 1000; // the packet will be generated after duration
header_size_gen_multicast(i,j,k); header_size_gen_multicast(i,j,k);
break; break;
...@@ -823,7 +827,7 @@ int k; ...@@ -823,7 +827,7 @@ int k;
g_otg->size_max[i][j][k][PE_STATE] = 0; g_otg->size_max[i][j][k][PE_STATE] = 0;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
...@@ -840,7 +844,7 @@ int k; ...@@ -840,7 +844,7 @@ int k;
g_otg->idt_min[i][j][k][PE_STATE], g_otg->size_min[i][j][k][PE_STATE]); g_otg->idt_min[i][j][k][PE_STATE], g_otg->size_min[i][j][k][PE_STATE]);
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case MCBR : case MCBR :
...@@ -855,7 +859,7 @@ int k; ...@@ -855,7 +859,7 @@ int k;
LOG_I(OTG,"OTG_CONFIG MCBR, src = %d, dst = %d, traffic id %d, dist type for size = %d\n", i, j,k , g_otg->size_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG MCBR, src = %d, dst = %d, traffic id %d, dist type for size = %d\n", i, j,k , g_otg->size_dist[i][j][k][PE_STATE]);
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case BCBR : case BCBR :
...@@ -870,7 +874,7 @@ int k; ...@@ -870,7 +874,7 @@ int k;
LOG_I(OTG,"OTG_CONFIG BCBR, src = %d, dst = %d, dist type for size = %d\n", i, j, g_otg->size_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG BCBR, src = %d, dst = %d, dist type for size = %d\n", i, j, g_otg->size_dist[i][j][k][PE_STATE]);
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case AUTO_PILOT : case AUTO_PILOT :
...@@ -889,7 +893,7 @@ int k; ...@@ -889,7 +893,7 @@ int k;
g_otg->size_lambda[i][j][k][PE_STATE] = 0; g_otg->size_lambda[i][j][k][PE_STATE] = 0;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case BICYCLE_RACE : case BICYCLE_RACE :
...@@ -909,7 +913,7 @@ int k; ...@@ -909,7 +913,7 @@ int k;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
/* case OPENARENA : /* case OPENARENA :
...@@ -929,7 +933,7 @@ int k; ...@@ -929,7 +933,7 @@ int k;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; */ break; */
case TEAM_FORTRESS : case TEAM_FORTRESS :
...@@ -949,7 +953,7 @@ int k; ...@@ -949,7 +953,7 @@ int k;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
...@@ -979,7 +983,7 @@ int k; ...@@ -979,7 +983,7 @@ int k;
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
case AUTO_PILOT_L : case AUTO_PILOT_L :
/* Measurements from: /* Measurements from:
...@@ -1017,9 +1021,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1017,9 +1021,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j]= 303; g_otg->dst_port[i][j]= 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case AUTO_PILOT_M : case AUTO_PILOT_M :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
...@@ -1056,9 +1060,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1056,9 +1060,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 303; g_otg->dst_port[i][j] = 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case AUTO_PILOT_H : case AUTO_PILOT_H :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
...@@ -1095,9 +1099,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1095,9 +1099,9 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 303; g_otg->dst_port[i][j] = 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case AUTO_PILOT_E : case AUTO_PILOT_E :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
...@@ -1135,29 +1139,29 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1135,29 +1139,29 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 303; g_otg->dst_port[i][j] = 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case VIRTUAL_GAME_L : case VIRTUAL_GAME_L :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
LOG_I(OTG,"VIRTUAL GAME LOW SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]); LOG_I(OTG,"VIRTUAL GAME LOW SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->pu_size_pkts[i][j][k]=1000; g_otg->pu_size_pkts[i][j][k]=1000;
g_otg->prob_off_pu[i][j][k]=1; g_otg->prob_off_pu[i][j][k]=1;
if (i<nb_enb_local)/*DL*/ if (i<nb_enb_local)/*DL*/
g_otg->holding_time_off_pu[i][j][k]=1000; g_otg->holding_time_off_pu[i][j][k]=1000;
else /*UL*/ else /*UL*/
g_otg->holding_time_off_pu[j][i][k]=500; g_otg->holding_time_off_pu[j][i][k]=500;
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j][k] = 302; g_otg->dst_port[i][j][k] = 302;
g_otg->duration[i][j][k] = 1000; g_otg->flow_duration[i][j][k] = 1000;
#endif #endif
break; break;
case VIRTUAL_GAME_M : case VIRTUAL_GAME_M :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
...@@ -1174,28 +1178,28 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1174,28 +1178,28 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case VIRTUAL_GAME_H : case VIRTUAL_GAME_H :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
LOG_I(OTG,"VIRTUAL GAME HIGH SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]); LOG_I(OTG,"VIRTUAL GAME HIGH SPEEDS, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->pu_size_pkts[i][j][k]=1000; g_otg->pu_size_pkts[i][j][k]=1000;
if (i<nb_enb_local)/*DL*/ if (i<nb_enb_local)/*DL*/
g_otg->holding_time_off_pu[i][j][k]=1000; g_otg->holding_time_off_pu[i][j][k]=1000;
else /*UL*/ else /*UL*/
g_otg->holding_time_off_pu[j][i][k]=100; g_otg->holding_time_off_pu[j][i][k]=100;
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case VIRTUAL_GAME_F : case VIRTUAL_GAME_F :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
...@@ -1212,30 +1216,30 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1212,30 +1216,30 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case ALARM_HUMIDITY : case ALARM_HUMIDITY :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) * Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
LOG_I(OTG,"ALARM HUMIDITY, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]); LOG_I(OTG,"ALARM HUMIDITY, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->pu_size_pkts[i][j][k]=1000; g_otg->pu_size_pkts[i][j][k]=1000;
g_otg->ed_size_pkts[i][j][k]=2000; g_otg->ed_size_pkts[i][j][k]=2000;
g_otg->prob_off_pu[i][j][k]=0.5; g_otg->prob_off_pu[i][j][k]=0.5;
g_otg->prob_off_ed[i][j][k]=0.5; g_otg->prob_off_ed[i][j][k]=0.5;
g_otg->prob_pu_ed[i][j][k]=0.5; g_otg->prob_pu_ed[i][j][k]=0.5;
g_otg->holding_time_off_pu[i][j][k]=1680000; /* 28 minutes*/ g_otg->holding_time_off_pu[i][j][k]=1680000; /* 28 minutes*/
g_otg->holding_time_off_ed[i][j][k]=32400000; /* 9 hours*/ g_otg->holding_time_off_ed[i][j][k]=32400000; /* 9 hours*/
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 303; g_otg->dst_port[i][j] = 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case ALARM_SMOKE : case ALARM_SMOKE :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
...@@ -1252,29 +1256,29 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1252,29 +1256,29 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 303; g_otg->dst_port[i][j] = 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case ALARM_TEMPERATURE : case ALARM_TEMPERATURE :
/* Measurements from: /* Measurements from:
Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic) * Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Markus Laner, Kajie Zhou, Philippe Svoboda, Dejan Drajic, Serjan Krco and Milica Popovic)
*/ */
LOG_I(OTG,"ALARM TEMPERATURE, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]); LOG_I(OTG,"ALARM TEMPERATURE, src = %d, dst = %d, application type = %d\n", i, j, g_otg->application_type[i][j][k]);
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->pu_size_pkts[i][j][k]=1000; g_otg->pu_size_pkts[i][j][k]=1000;
g_otg->ed_size_pkts[i][j][k]=4000; g_otg->ed_size_pkts[i][j][k]=4000;
g_otg->prob_off_pu[i][j][k]=0.5; g_otg->prob_off_pu[i][j][k]=0.5;
g_otg->prob_off_ed[i][j][k]=0.5; g_otg->prob_off_ed[i][j][k]=0.5;
g_otg->prob_pu_ed[i][j][k]=0.5; g_otg->prob_pu_ed[i][j][k]=0.5;
g_otg->holding_time_off_pu[i][j][k]=1680000; /* 28 minute*/ g_otg->holding_time_off_pu[i][j][k]=1680000; /* 28 minute*/
g_otg->holding_time_off_ed[i][j][k]=18000000; /* 5 hours*/ g_otg->holding_time_off_ed[i][j][k]=18000000; /* 5 hours*/
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j]= 303; g_otg->dst_port[i][j]= 303;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case OPENARENA_DL : case OPENARENA_DL :
case OPENARENA_UL : case OPENARENA_UL :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
...@@ -1297,155 +1301,155 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku ...@@ -1297,155 +1301,155 @@ Traffic Modeling Framework for Machine Type Communincation (Navid NiKaein, Marku
} }
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case OPENARENA_DL_TARMA : case OPENARENA_DL_TARMA :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = TARMA; g_otg->size_dist[i][j][k][PE_STATE] = TARMA;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_stream[i][j][k]=tarmaInitStream (0); otg_info->tarma_stream[i][j][k]=tarmaInitStream (0);
tarmaSetupOpenarenaDownlink(otg_info->tarma_stream[i][j][k]); tarmaSetupOpenarenaDownlink(otg_info->tarma_stream[i][j][k]);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_10MBPS : case VIDEO_VBR_10MBPS :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0); otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],1); tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],1);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_4MBPS : case VIDEO_VBR_4MBPS :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0); otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],2.5); tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],2.5);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_2MBPS : case VIDEO_VBR_2MBPS :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0); otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],5); tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],5);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_768KBPS : case VIDEO_VBR_768KBPS :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0); otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],13); tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],13);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_384KBPS : case VIDEO_VBR_384KBPS :
g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],26);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break;
case VIDEO_VBR_192KBPS :
g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],52);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break;
case BACKGROUND_USERS:
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = UNIFORM; g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_lambda[i][j][k][PE_STATE] = 1/40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 80; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
g_otg->size_dist[i][j][k][PE_STATE] = BACKGROUND_DIST; /*the tarma initialization*/
/*the background initialization*/ otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
// otg_info->background_stream[i][j][k]=backgroundStreamInit(0,2); tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],26);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VIDEO_VBR_192KBPS :
g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = FIXED;
g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
/*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
tarmaSetupVideoGop12(otg_info->tarma_video[i][j][k],52);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break;
case BACKGROUND_USERS:
g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][PE_STATE] = UNIFORM;
g_otg->idt_lambda[i][j][k][PE_STATE] = 1/40;
g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 80;
g_otg->size_dist[i][j][k][PE_STATE] = BACKGROUND_DIST;
/*the background initialization*/
// otg_info->background_stream[i][j][k]=backgroundStreamInit(0,2);
break;
case DUMMY : case DUMMY :
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
/*the tarma initialization*/ /*the tarma initialization*/
otg_info->tarma_video[i][j][k]=tarmaInitVideo(0); otg_info->tarma_video[i][j][k]=tarmaInitVideo(0);
g_otg->idt_dist[i][j][k][PE_STATE] = VIDEO; g_otg->idt_dist[i][j][k][PE_STATE] = VIDEO;
g_otg->idt_min[i][j][k][PE_STATE] = 40; g_otg->idt_min[i][j][k][PE_STATE] = 40;
g_otg->idt_max[i][j][k][PE_STATE] = 40; g_otg->idt_max[i][j][k][PE_STATE] = 40;
g_otg->size_dist[i][j][k][PE_STATE] = VIDEO; g_otg->size_dist[i][j][k][PE_STATE] = VIDEO;
otg_info->tarma_video[i][j][k]->tarma_size.inputWeight[0]=1; otg_info->tarma_video[i][j][k]->tarma_size.inputWeight[0]=1;
otg_info->tarma_video[i][j][k]->tarma_size.maWeight[0]=0.6; otg_info->tarma_video[i][j][k]->tarma_size.maWeight[0]=0.6;
otg_info->tarma_video[i][j][k]->tarma_size.maWeight[1]=-1.04; otg_info->tarma_video[i][j][k]->tarma_size.maWeight[1]=-1.04;
otg_info->tarma_video[i][j][k]->tarma_size.maWeight[2]=0.44; otg_info->tarma_video[i][j][k]->tarma_size.maWeight[2]=0.44;
otg_info->tarma_video[i][j][k]->tarma_size.arWeight[0]=1; otg_info->tarma_video[i][j][k]->tarma_size.arWeight[0]=1;
otg_info->tarma_video[i][j][k]->tarma_size.arWeight[1]=-1.971; otg_info->tarma_video[i][j][k]->tarma_size.arWeight[1]=-1.971;
otg_info->tarma_video[i][j][k]->tarma_size.arWeight[2]=0.971; otg_info->tarma_video[i][j][k]->tarma_size.arWeight[2]=0.971;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[0]=0; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[0]=0;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[1]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[1]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[2]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[2]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[3]=1; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[3]=1;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[4]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[4]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[5]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[5]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[6]=1; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[6]=1;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[7]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[7]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[8]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[8]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[9]=1; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[9]=1;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[10]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[10]=2;
otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[11]=2; otg_info->tarma_video[i][j][k]->tarmaVideoGopStructure[11]=2;
otg_info->tarma_video[i][j][k]->polyWeightFrame[0][0]=300; otg_info->tarma_video[i][j][k]->polyWeightFrame[0][0]=300;
otg_info->tarma_video[i][j][k]->polyWeightFrame[0][1]=30; otg_info->tarma_video[i][j][k]->polyWeightFrame[0][1]=30;
otg_info->tarma_video[i][j][k]->polyWeightFrame[1][0]=200; otg_info->tarma_video[i][j][k]->polyWeightFrame[1][0]=200;
otg_info->tarma_video[i][j][k]->polyWeightFrame[1][1]=20; otg_info->tarma_video[i][j][k]->polyWeightFrame[1][1]=20;
otg_info->tarma_video[i][j][k]->polyWeightFrame[2][0]=100; otg_info->tarma_video[i][j][k]->polyWeightFrame[2][0]=100;
otg_info->tarma_video[i][j][k]->polyWeightFrame[2][1]=10; otg_info->tarma_video[i][j][k]->polyWeightFrame[2][1]=10;
tarmaPrintVideoInit(otg_info->tarma_video[i][j][k]); tarmaPrintVideoInit(otg_info->tarma_video[i][j][k]);
LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"OTG_CONFIG OPENARENA_DL_TARMA, src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
break; break;
case VOIP_G711 : /*http://www.computerweekly.com/feature/VoIP-bandwidth-fundamentals */ case VOIP_G711 : /*http://www.computerweekly.com/feature/VoIP-bandwidth-fundamentals */
/* Voice bit rate= 64 Kbps | Sample time= 20 msec | Voice payload=160 bytes */ /* Voice bit rate= 64 Kbps | Sample time= 20 msec | Voice payload=160 bytes */
g_otg->trans_proto[i][j][k] = UDP; g_otg->trans_proto[i][j][k] = UDP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][SIMPLE_TALK] = FIXED; g_otg->idt_dist[i][j][k][SIMPLE_TALK] = FIXED;
...@@ -1455,14 +1459,14 @@ break; ...@@ -1455,14 +1459,14 @@ break;
g_otg->size_dist[i][j][k][SIMPLE_TALK] = FIXED; g_otg->size_dist[i][j][k][SIMPLE_TALK] = FIXED;
g_otg->size_min[i][j][k][SIMPLE_TALK] = 160; g_otg->size_min[i][j][k][SIMPLE_TALK] = 160;
g_otg->size_max[i][j][k][SIMPLE_TALK] = 160; g_otg->size_max[i][j][k][SIMPLE_TALK] = 160;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case VOIP_G729 : /*http://www.computerweekly.com/feature/VoIP-bandwidth-fundamentals */ case VOIP_G729 : /*http://www.computerweekly.com/feature/VoIP-bandwidth-fundamentals */
/* Voice bit rate= 8 Kbps | Sample time= 30 msec | Voice payload=30 bytes */ /* Voice bit rate= 8 Kbps | Sample time= 30 msec | Voice payload=30 bytes */
g_otg->trans_proto[i][j][k] = UDP; g_otg->trans_proto[i][j][k] = UDP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
g_otg->idt_dist[i][j][k][SIMPLE_TALK] = FIXED; g_otg->idt_dist[i][j][k][SIMPLE_TALK] = FIXED;
...@@ -1475,9 +1479,9 @@ break; ...@@ -1475,9 +1479,9 @@ break;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case IQSIM_MANGO : /*Realistic measurements: Eurecom with iQsim Gateway*/ case IQSIM_MANGO : /*Realistic measurements: Eurecom with iQsim Gateway*/
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
...@@ -1485,24 +1489,24 @@ break; ...@@ -1485,24 +1489,24 @@ break;
g_otg->idt_min[i][j][k][PE_STATE] = 5000; g_otg->idt_min[i][j][k][PE_STATE] = 5000;
g_otg->idt_max[i][j][k][PE_STATE] = 10000; g_otg->idt_max[i][j][k][PE_STATE] = 10000;
g_otg->size_dist[i][j][k][PE_STATE] = FIXED; g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
if (i<nb_enb_local){ if (i<nb_enb_local){
LOG_I(OTG,"IQSIM_MANGO [DL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"IQSIM_MANGO [DL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
g_otg->size_min[i][j][k][PE_STATE] = 141; g_otg->size_min[i][j][k][PE_STATE] = 141;
g_otg->size_max[i][j][k][PE_STATE] = 141; g_otg->size_max[i][j][k][PE_STATE] = 141;
} }
else { else {
LOG_I(OTG,"IQSIM_MANGO [UL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"IQSIM_MANGO [UL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
g_otg->size_min[i][j][k][PE_STATE] = 144; g_otg->size_min[i][j][k][PE_STATE] = 144;
g_otg->size_max[i][j][k][PE_STATE] = 144; g_otg->size_max[i][j][k][PE_STATE] = 144;
} }
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
case IQSIM_NEWSTEO : /*Realistic measurements: Eurecom with iQsim Gateway*/ case IQSIM_NEWSTEO : /*Realistic measurements: Eurecom with iQsim Gateway*/
g_otg->trans_proto[i][j][k] = TCP; g_otg->trans_proto[i][j][k] = TCP;
g_otg->ip_v[i][j][k] = IPV4; g_otg->ip_v[i][j][k] = IPV4;
...@@ -1510,30 +1514,30 @@ break; ...@@ -1510,30 +1514,30 @@ break;
g_otg->idt_min[i][j][k][PE_STATE] = 5000; g_otg->idt_min[i][j][k][PE_STATE] = 5000;
g_otg->idt_max[i][j][k][PE_STATE] = 10000; g_otg->idt_max[i][j][k][PE_STATE] = 10000;
g_otg->size_dist[i][j][k][PE_STATE] = FIXED; g_otg->size_dist[i][j][k][PE_STATE] = FIXED;
if (i<nb_enb_local){ /*DL*/ if (i<nb_enb_local){ /*DL*/
LOG_I(OTG,"IQSIM_NEWSTEO [DL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"IQSIM_NEWSTEO [DL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
g_otg->size_min[i][j][k][PE_STATE] = 467; g_otg->size_min[i][j][k][PE_STATE] = 467;
g_otg->size_max[i][j][k][PE_STATE] = 467; g_otg->size_max[i][j][k][PE_STATE] = 467;
}else { /*UL*/ }else { /*UL*/
LOG_I(OTG,"IQSIM_NEWSTEO [UL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]); LOG_I(OTG,"IQSIM_NEWSTEO [UL], src = %d, dst = %d, dist IDT = %d\n", i, j, g_otg->idt_dist[i][j][k][PE_STATE]);
g_otg->size_min[i][j][k][PE_STATE] = 251; g_otg->size_min[i][j][k][PE_STATE] = 251;
g_otg->size_max[i][j][k][PE_STATE] = 251; g_otg->size_max[i][j][k][PE_STATE] = 251;
} }
g_otg->m2m[i][j][k]=1; g_otg->m2m[i][j][k]=1;
#ifdef STANDALONE #ifdef STANDALONE
g_otg->dst_port[i][j] = 302; g_otg->dst_port[i][j] = 302;
g_otg->duration[i][j] = 1000; g_otg->flow_duration[i][j] = 1000;
#endif #endif
break; break;
default: default:
LOG_D(OTG, "[SRC %d][DST %d] Unknown traffic type\n", i, j); LOG_D(OTG, "[SRC %d][DST %d] Unknown traffic type\n", i, j);
/* TO ADD: 3GPP TSG-RAN WG1 Meeting #71: Low-cost MTC Traffic Models and Characteristics */ /* TO ADD: 3GPP TSG-RAN WG1 Meeting #71: Low-cost MTC Traffic Models and Characteristics */
}
} }
}
} }
} }
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</FADING> </FADING>
<WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB> <WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB>
<SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB> <SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
<ANTENNA> <ANTENNA>
<eNB_ANTENNA> <eNB_ANTENNA>
<RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB> <RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB>
...@@ -76,6 +76,9 @@ ...@@ -76,6 +76,9 @@
<SOURCE_ID>0</SOURCE_ID> <SOURCE_ID>0</SOURCE_ID>
<APPLICATION_TYPE>gaming_OA</APPLICATION_TYPE> <!-- OPTIONS: scbr, mcbr, bcbr, m2m_AP, m2m_BR, gaming_OA, gaming_TF, full_buffer --> <APPLICATION_TYPE>gaming_OA</APPLICATION_TYPE> <!-- OPTIONS: scbr, mcbr, bcbr, m2m_AP, m2m_BR, gaming_OA, gaming_TF, full_buffer -->
<DESTINATION_ID>1</DESTINATION_ID> <DESTINATION_ID>1</DESTINATION_ID>
<FLOW_START_ms>400</FLOW_START_ms> <!-- not less than 310 -->
<FLOW_DURATION_ms>2000</FLOW_DURATION_ms> <!-- less than simu time - FLOW_START_ms -->
</PREDEFINED_TRAFFIC> </PREDEFINED_TRAFFIC>
<CUSTOMIZED_TRAFFIC> <CUSTOMIZED_TRAFFIC>
...@@ -96,7 +99,9 @@ ...@@ -96,7 +99,9 @@
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL> <!-- OPTIONS: tcp (default), udp --> <TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL> <!-- OPTIONS: tcp (default), udp -->
<IP_VERSION>ipv6</IP_VERSION> <!-- OPTIONS: ipv4 (default), ipv6 --> <IP_VERSION>ipv6</IP_VERSION> <!-- OPTIONS: ipv4 (default), ipv6 -->
<DESTINATION_ID>0</DESTINATION_ID> <DESTINATION_ID>0</DESTINATION_ID>
<FLOW_START_ms>400</FLOW_START_ms> <!-- not less than 310 -->
<FLOW_DURATION_ms>2000</FLOW_DURATION_ms> <!-- less than simu time - FLOW_START_ms -->
<IDT_DIST>uniform</IDT_DIST> <!-- OPTIONS: no_customized_traffic (default), uniform, poission, gaussian, exponential, fixed, weibull, pareto, gamma, cauchy --> <IDT_DIST>uniform</IDT_DIST> <!-- OPTIONS: no_customized_traffic (default), uniform, poission, gaussian, exponential, fixed, weibull, pareto, gamma, cauchy -->
<IDT_MIN_ms>100</IDT_MIN_ms> <IDT_MIN_ms>100</IDT_MIN_ms>
<IDT_MAX_ms>1000</IDT_MAX_ms> <IDT_MAX_ms>1000</IDT_MAX_ms>
...@@ -121,9 +126,10 @@ ...@@ -121,9 +126,10 @@
<PERFORMANCE> <PERFORMANCE>
<METRICS> <METRICS>
<THROUGHPUT>1</THROUGHPUT> <THROUGHPUT>1</THROUGHPUT>
<LATENCY></LATENCY> <LATENCY>1</LATENCY>
<SIGNALLING_OVERHEAD></SIGNALLING_OVERHEAD> <JITTER>1</JITTER>
</METRICS> <SIGNALLING_OVERHEAD>1</SIGNALLING_OVERHEAD>
</METRICS>
<LAYER> <LAYER>
<MAC>1</MAC> <MAC>1</MAC>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</FADING> </FADING>
<WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB> <WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB>
<SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB> <SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
<ANTENNA> <ANTENNA>
<eNB_ANTENNA> <eNB_ANTENNA>
<RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB> <RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
</FREE_SPACE_MODEL_PARAMETERS> </FREE_SPACE_MODEL_PARAMETERS>
<SMALL_SCALE>AWGN</SMALL_SCALE> <SMALL_SCALE>AWGN</SMALL_SCALE>
</FADING> </FADING>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
</ENVIRONMENT_SYSTEM_CONFIG> </ENVIRONMENT_SYSTEM_CONFIG>
<TOPOLOGY_CONFIG> <TOPOLOGY_CONFIG>
...@@ -52,7 +52,8 @@ ...@@ -52,7 +52,8 @@
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL> <!-- OPTIONS: tcp (default), udp --> <TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL> <!-- OPTIONS: tcp (default), udp -->
<IP_VERSION>ipv6</IP_VERSION> <!-- OPTIONS: ipv4 (default), ipv6 --> <IP_VERSION>ipv6</IP_VERSION> <!-- OPTIONS: ipv4 (default), ipv6 -->
<DESTINATION_ID>0</DESTINATION_ID> <DESTINATION_ID>0</DESTINATION_ID>
<DURATION_ms>7000</DURATION_ms> <!-- indicates the start time of the app or the actual duration of the traffic--> <FLOW_START_ms>200</FLOW_START_ms> <!-- indicates the start time of the app or the actual duration of the traffic-->
<FLOW_DURATION_ms>7000</FLOW_DURATION_ms> <!-- indicates the duration of the app or the actual duration of the traffic-->
<BACKGROUND_TRAFFIC>disable</BACKGROUND_TRAFFIC> <!-- options: enable, disable. If enable, it generates a background traffic corresponding to the traffic direction--> <BACKGROUND_TRAFFIC>disable</BACKGROUND_TRAFFIC> <!-- options: enable, disable. If enable, it generates a background traffic corresponding to the traffic direction-->
<IDT_DIST>fixed</IDT_DIST> <!-- available distributions: none (default), uniform, poission, gaussian, exponential,pareto, cauchy,fixed, weibull, gammav--> <IDT_DIST>fixed</IDT_DIST> <!-- available distributions: none (default), uniform, poission, gaussian, exponential,pareto, cauchy,fixed, weibull, gammav-->
<IDT_MIN_ms>40</IDT_MIN_ms> <!--Minimum IDT values in milliseconds--> <IDT_MIN_ms>40</IDT_MIN_ms> <!--Minimum IDT values in milliseconds-->
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</FADING> </FADING>
<WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB> <WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB>
<SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB> <SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
<ANTENNA> <ANTENNA>
<eNB_ANTENNA> <eNB_ANTENNA>
<RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB> <RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB>
...@@ -61,7 +61,8 @@ ...@@ -61,7 +61,8 @@
<!-- UL --> <!-- UL -->
<PREDEFINED_TRAFFIC> <PREDEFINED_TRAFFIC>
<SOURCE_ID>1:9</SOURCE_ID> <!-- valid formats are "n:m" and "n,m" and "n" --> <SOURCE_ID>1:9</SOURCE_ID> <!-- valid formats are "n:m" and "n,m" and "n" -->
<DURATION_ms>5000</DURATION_ms> <FLOW_START_ms>200</FLOW_START_ms> <!-- indicates the start time of the app or the actual duration of the traffic-->
<FLOW_DURATION_ms>5000</FLOW_DURATION_ms>
<APPLICATION_TYPE>scbr</APPLICATION_TYPE> <APPLICATION_TYPE>scbr</APPLICATION_TYPE>
<DESTINATION_ID>0</DESTINATION_ID> <!-- valid formats are "n:m" and "n,m" and "n" --> <DESTINATION_ID>0</DESTINATION_ID> <!-- valid formats are "n:m" and "n,m" and "n" -->
</PREDEFINED_TRAFFIC> </PREDEFINED_TRAFFIC>
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB> <WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB>
<SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB> <SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
<ANTENNA> <ANTENNA>
<eNB_ANTENNA> <eNB_ANTENNA>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</FADING> </FADING>
<WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB> <WALL_PENETRATION_LOSS_dB>5</WALL_PENETRATION_LOSS_dB>
<SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB> <SYSTEM_BANDWIDTH_MB>7.68</SYSTEM_BANDWIDTH_MB>
<UE_FREQUENCY_GHz>1.9</UE_FREQUENCY_GHz> <SYSTEM_FREQUENCY_GHz>1.9</SYSTEM_FREQUENCY_GHz>
<ANTENNA> <ANTENNA>
<eNB_ANTENNA> <eNB_ANTENNA>
<RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB> <RX_NOISE_LEVEL_dB>5</RX_NOISE_LEVEL_dB>
......
...@@ -285,7 +285,8 @@ void init_oai_emulation(void) { ...@@ -285,7 +285,8 @@ void init_oai_emulation(void) {
oai_emulation.application_config.predefined_traffic.application_type[i] = "no_predefined_traffic"; oai_emulation.application_config.predefined_traffic.application_type[i] = "no_predefined_traffic";
oai_emulation.application_config.predefined_traffic.background[i] = "disable"; oai_emulation.application_config.predefined_traffic.background[i] = "disable";
oai_emulation.application_config.predefined_traffic.aggregation_level[i] = 1; oai_emulation.application_config.predefined_traffic.aggregation_level[i] = 1;
oai_emulation.application_config.predefined_traffic.duration[i] = 10; oai_emulation.application_config.predefined_traffic.flow_start[i] = (i+1)*25;
oai_emulation.application_config.predefined_traffic.flow_duration[i] = 100;
oai_emulation.application_config.predefined_traffic.destination_id[i] = 0; oai_emulation.application_config.predefined_traffic.destination_id[i] = 0;
...@@ -296,7 +297,8 @@ void init_oai_emulation(void) { ...@@ -296,7 +297,8 @@ void init_oai_emulation(void) {
oai_emulation.application_config.customized_traffic.m2m[i] = "disable"; oai_emulation.application_config.customized_traffic.m2m[i] = "disable";
oai_emulation.application_config.customized_traffic.ip_version[i] = "ipv4"; oai_emulation.application_config.customized_traffic.ip_version[i] = "ipv4";
oai_emulation.application_config.customized_traffic.aggregation_level[i] = 1; oai_emulation.application_config.customized_traffic.aggregation_level[i] = 1;
oai_emulation.application_config.customized_traffic.duration[i] = 10; oai_emulation.application_config.customized_traffic.flow_start[i] = (i+1)*25;
oai_emulation.application_config.customized_traffic.flow_duration[i] = 100;
oai_emulation.application_config.customized_traffic.idt_dist[i] = "uniform"; oai_emulation.application_config.customized_traffic.idt_dist[i] = "uniform";
oai_emulation.application_config.customized_traffic.idt_min_ms[i] = 100; oai_emulation.application_config.customized_traffic.idt_min_ms[i] = 100;
oai_emulation.application_config.customized_traffic.idt_max_ms[i] = 1000; oai_emulation.application_config.customized_traffic.idt_max_ms[i] = 1000;
...@@ -744,8 +746,9 @@ int ocg_config_app(void){ ...@@ -744,8 +746,9 @@ int ocg_config_app(void){
g_otg->trans_proto[i][j][k]=map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[i]); g_otg->trans_proto[i][j][k]=map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[i]);
g_otg->application_type[i][j][k]=map_str_to_int(otg_app_type_names, "no_predefined_traffic"); g_otg->application_type[i][j][k]=map_str_to_int(otg_app_type_names, "no_predefined_traffic");
g_otg->aggregation_level[i][j][k]=oai_emulation.application_config.customized_traffic.aggregation_level[i]; g_otg->aggregation_level[i][j][k]=oai_emulation.application_config.customized_traffic.aggregation_level[i];
g_otg->duration[i][j][k]=oai_emulation.application_config.customized_traffic.duration[i]; g_otg->flow_start[i][j][k]=oai_emulation.application_config.customized_traffic.flow_start[i];
g_otg->flow_duration[i][j][k]=oai_emulation.application_config.customized_traffic.flow_duration[i];
for (l=0; l<MAX_NUM_TRAFFIC_STATE; l++){ for (l=0; l<MAX_NUM_TRAFFIC_STATE; l++){
g_otg->idt_dist[i][j][k][l]=map_str_to_int(otg_distribution_names, "no_customized_traffic"); g_otg->idt_dist[i][j][k][l]=map_str_to_int(otg_distribution_names, "no_customized_traffic");
g_otg->idt_min[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_min_ms[i]; g_otg->idt_min[i][j][k][l]=oai_emulation.application_config.customized_traffic.idt_min_ms[i];
...@@ -813,8 +816,17 @@ int ocg_config_app(void){ ...@@ -813,8 +816,17 @@ int ocg_config_app(void){
g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.duration[predefined_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index];
LOG_I(OTG,"predef (1):: OCG_config_OTG [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID = %d background %d, Aggregation=%d , m2m= %d, duration %d \n",oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index, g_otg->application_idx[source_id_index][destination_id_index],g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index];
LOG_I(OTG,"predef (1):: OCG_config_OTG [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID = %d background %d, Aggregation=%d , m2m= %d, flow start/duration %d/%d \n",
oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index,
g_otg->application_idx[source_id_index][destination_id_index],
g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]);
g_otg->application_idx[source_id_index][destination_id_index]+=1; g_otg->application_idx[source_id_index][destination_id_index]+=1;
} }
} }
...@@ -828,7 +840,8 @@ int ocg_config_app(void){ ...@@ -828,7 +840,8 @@ int ocg_config_app(void){
g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]); g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]);
g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.duration[predefined_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index];
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index];
g_otg->application_idx[source_id_index][destination_id_index]+=1; g_otg->application_idx[source_id_index][destination_id_index]+=1;
} }
per_source_id = strtok(NULL, comma); per_source_id = strtok(NULL, comma);
...@@ -857,11 +870,19 @@ int ocg_config_app(void){ ...@@ -857,11 +870,19 @@ int ocg_config_app(void){
g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]); g_otg->application_type[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_app_type_names, oai_emulation.application_config.predefined_traffic.application_type[predefined_traffic_config_index]);
g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]); g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] =map_str_to_int(switch_names,oai_emulation.application_config.predefined_traffic.background[predefined_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.aggregation_level[predefined_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.duration[predefined_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_start[predefined_traffic_config_index];
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.predefined_traffic.flow_duration[predefined_traffic_config_index];
g_otg->application_idx[source_id_index][destination_id_index]+=1; g_otg->application_idx[source_id_index][destination_id_index]+=1;
} }
LOG_I(OTG,"predef (2):: OCG_config_OTG: [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID %d, Background=%d, Aggregation=%d, m2m=%d, duration %d\n", oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index,g_otg->application_idx[source_id_index][destination_id_index] , g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]], g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]); LOG_I(OTG,"predef (2):: OCG_config_OTG: [MAX UE=%d] [MAX eNB=%d]: FORMAT (%d:%d) source = %d, dest = %d, Application ID %d, Background=%d, Aggregation=%d, m2m=%d, start/duration %d/%d\n",
oai_emulation.info.nb_ue_local, oai_emulation.info.nb_enb_local, sid_start, sid_end, source_id_index, destination_id_index,
g_otg->application_idx[source_id_index][destination_id_index],
g_otg->background[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->m2m[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]],
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]);
} }
} }
...@@ -910,7 +931,8 @@ int ocg_config_app(void){ ...@@ -910,7 +931,8 @@ int ocg_config_app(void){
g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]); g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]);
g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.duration[customized_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index];
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index];
g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]);
g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index];
g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index]; g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index];
...@@ -959,7 +981,8 @@ g_otg->application_idx[source_id_index][destination_id_index]+=1; ...@@ -959,7 +981,8 @@ g_otg->application_idx[source_id_index][destination_id_index]+=1;
g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]); g_otg->trans_proto[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_transport_protocol_names, oai_emulation.application_config.customized_traffic.transport_protocol[customized_traffic_config_index]);
g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.duration[customized_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index];
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index];
g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]);
g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index];
g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index]; g_otg->idt_max[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_max_ms[customized_traffic_config_index];
...@@ -1028,7 +1051,8 @@ g_otg->application_idx[source_id_index][destination_id_index]+=1; ...@@ -1028,7 +1051,8 @@ g_otg->application_idx[source_id_index][destination_id_index]+=1;
g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]); g_otg->ip_v[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]] = map_str_to_int(otg_ip_version_names, oai_emulation.application_config.customized_traffic.ip_version[customized_traffic_config_index]);
g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index]; g_otg->aggregation_level[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.aggregation_level[customized_traffic_config_index];
g_otg->duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.duration[customized_traffic_config_index]; g_otg->flow_start[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_start[customized_traffic_config_index];
g_otg->flow_duration[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]]=oai_emulation.application_config.customized_traffic.flow_duration[customized_traffic_config_index];
g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]); g_otg->idt_dist[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = map_str_to_int(otg_distribution_names, oai_emulation.application_config.customized_traffic.idt_dist[customized_traffic_config_index]);
g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index]; g_otg->idt_min[source_id_index][destination_id_index][g_otg->application_idx[source_id_index][destination_id_index]][state] = oai_emulation.application_config.customized_traffic.idt_min_ms[customized_traffic_config_index];
......
...@@ -106,7 +106,7 @@ def execute(oai, user, pw, logfile,logdir): ...@@ -106,7 +106,7 @@ def execute(oai, user, pw, logfile,logdir):
log.ok(case, test, name, conf, '', logfile) log.ok(case, test, name, conf, '', logfile)
oai.send('cd $OPENAIR_TARGETS;') oai.send('cd $OPENAIR_TARGETS;')
oai.send('cd RTAI/USER;') oai.send('cd RT/USER;')
try: try:
test = '03' test = '03'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment