Commit 75418f50 authored by alexandr's avatar alexandr

bug-fixed: DL traffic for OTG-physcope for multiple eNBs

parent 39322db7
......@@ -625,6 +625,9 @@ void rrc_eNB_emulation_notify_ue_module_id(
// find enb_module_id
for (enb_module_id = 0; enb_module_id < NUMBER_OF_eNB_MAX; enb_module_id++) {
if(enb_module_id>1){ /*FIX LATER*/
return;
}
for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
if (eNB_rrc_inst[enb_module_id].carrier[CC_id].sib1 != NULL) {
if (
......@@ -633,7 +636,7 @@ void rrc_eNB_emulation_notify_ue_module_id(
(eNB_rrc_inst[enb_module_id].carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[2] == cell_identity_byte2P) &&
(eNB_rrc_inst[enb_module_id].carrier[CC_id].sib1->cellAccessRelatedInfo.cellIdentity.buf[3] == cell_identity_byte3P)
) {
oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_id][ue_module_idP] = rntiP;
//oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_id][ue_module_idP] = rntiP;
ue_context_p = rrc_eNB_get_ue_context(
&eNB_rrc_inst[enb_module_id],
rntiP
......@@ -643,10 +646,11 @@ void rrc_eNB_emulation_notify_ue_module_id(
oai_emulation.info.eNB_ue_local_uid_to_ue_module_id[enb_module_id][ue_context_p->local_uid] = ue_module_idP;
}
return;
//return;
}
}
}
oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_id][ue_module_idP] = rntiP;
}
AssertFatal(enb_module_id == NUMBER_OF_eNB_MAX,
......
......@@ -270,9 +270,10 @@ unsigned char *packet_gen(
char *header=NULL;
int header_size = 0;
//LOG_I(OTG,"Src: %d - Dest: %d - before exit\n",src_instance,dst_instance);
// check if the app is configured
if (app >= g_otg->application_idx[src_instance][dst_instance]) {
//LOG_I(OTG,"Src: %d - Dest: %d - no packet to generate - no application\n",src_instance,dst_instance);
return NULL;
}
......
......@@ -54,12 +54,13 @@
</MOBILITY>
</TOPOLOGY_CONFIG>
<!-- UL -->
<APPLICATION_CONFIG>
<CUSTOMIZED_TRAFFIC>
<SOURCE_ID>2</SOURCE_ID>
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL>
<FLOW_START_ms>1600</FLOW_START_ms>
<FLOW_DURATION_ms>3000</FLOW_DURATION_ms>
<FLOW_START_ms>240</FLOW_START_ms>
<FLOW_DURATION_ms>1000</FLOW_DURATION_ms>
<IP_VERSION>ipv4</IP_VERSION>
<DESTINATION_ID>0</DESTINATION_ID>
<IDT_DIST>uniform</IDT_DIST>
......@@ -69,10 +70,67 @@
<SIZE_MIN_byte>850</SIZE_MIN_byte>
<SIZE_MAX_byte>1408</SIZE_MAX_byte>
</CUSTOMIZED_TRAFFIC>
<CUSTOMIZED_TRAFFIC>
<SOURCE_ID>2</SOURCE_ID>
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL>
<FLOW_START_ms>1600</FLOW_START_ms>
<FLOW_DURATION_ms>900</FLOW_DURATION_ms>
<IP_VERSION>ipv4</IP_VERSION>
<DESTINATION_ID>1</DESTINATION_ID>
<IDT_DIST>uniform</IDT_DIST>
<IDT_MIN_ms>10</IDT_MIN_ms>
<IDT_MAX_ms>50</IDT_MAX_ms>
<SIZE_DIST>uniform</SIZE_DIST>
<SIZE_MIN_byte>850</SIZE_MIN_byte>
<SIZE_MAX_byte>1408</SIZE_MAX_byte>
</CUSTOMIZED_TRAFFIC>
<!--</APPLICATION_CONFIG> -->
<!-- DL -->
<!--<APPLICATION_CONFIG> -->
<CUSTOMIZED_TRAFFIC>
<SOURCE_ID>0</SOURCE_ID>
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL>
<FLOW_START_ms>240</FLOW_START_ms>
<FLOW_DURATION_ms>1000</FLOW_DURATION_ms>
<IP_VERSION>ipv4</IP_VERSION>
<DESTINATION_ID>2</DESTINATION_ID>
<IDT_DIST>uniform</IDT_DIST>
<IDT_MIN_ms>10</IDT_MIN_ms>
<IDT_MAX_ms>50</IDT_MAX_ms>
<SIZE_DIST>uniform</SIZE_DIST>
<SIZE_MIN_byte>850</SIZE_MIN_byte>
<SIZE_MAX_byte>1408</SIZE_MAX_byte>
</CUSTOMIZED_TRAFFIC>
<CUSTOMIZED_TRAFFIC>
<SOURCE_ID>1</SOURCE_ID>
<TRANSPORT_PROTOCOL>udp</TRANSPORT_PROTOCOL>
<FLOW_START_ms>1600</FLOW_START_ms>
<FLOW_DURATION_ms>900</FLOW_DURATION_ms>
<IP_VERSION>ipv4</IP_VERSION>
<DESTINATION_ID>2</DESTINATION_ID>
<IDT_DIST>uniform</IDT_DIST>
<IDT_MIN_ms>10</IDT_MIN_ms>
<IDT_MAX_ms>50</IDT_MAX_ms>
<SIZE_DIST>uniform</SIZE_DIST>
<SIZE_MIN_byte>850</SIZE_MIN_byte>
<SIZE_MAX_byte>1408</SIZE_MAX_byte>
</CUSTOMIZED_TRAFFIC>
<!--<PREDEFINED_TRAFFIC>
<SOURCE_ID>1</SOURCE_ID>
<FLOW_START_ms>200</FLOW_START_ms>
<FLOW_DURATION_ms>600</FLOW_DURATION_ms>
<APPLICATION_TYPE>scbr</APPLICATION_TYPE>
<DESTINATION_ID>0</DESTINATION_ID>
</PREDEFINED_TRAFFIC>-->
</APPLICATION_CONFIG>
<EMULATION_CONFIG>
<EMULATION_TIME_ms>3000</EMULATION_TIME_ms>
<EMULATION_TIME_ms>2500</EMULATION_TIME_ms>
<CURVE>disable</CURVE> <!-- option: enabled, disabled. If CURVE is enabled, graphes
are ploted in real time (UL and DL) of WOD and throughput measurement for each packet -->
......@@ -92,7 +150,7 @@ enable owd curve shows the one way radio access delay, else it shows end to end
<VERBOSITY>high</VERBOSITY> <!-- low, medium, high, full -->
<INTERVAL>1</INTERVAL>
</LOG>
<SEED_VALUE>1234</SEED_VALUE> <!-- value 0 means randomly generated by OAI -->
<SEED_VALUE>1235</SEED_VALUE> <!-- value 0 means randomly generated by OAI -->
</EMULATION_CONFIG>
......
......@@ -453,7 +453,7 @@ l2l1_task (void *args_p)
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
// at eNB 0, an UL scope for every UE
FD_lte_phy_scope_ue *form_ue[NUMBER_OF_UE_MAX];
FD_lte_phy_scope_enb *form_enb[NUMBER_OF_UE_MAX];
FD_lte_phy_scope_enb *form_enb[NUMBER_OF_eNB_MAX];
char title[255];
char xname[32] = "oaisim";
int xargc = 1;
......@@ -491,27 +491,26 @@ l2l1_task (void *args_p)
#ifdef XFORMS
xargv[0] = xname;
fl_initialize (&xargc, xargv, NULL, 0, 0);
eNB_inst = 0;
for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++) {
// DL scope at UEs
form_ue[UE_inst] = create_lte_phy_scope_ue();
sprintf (title, "LTE DL SCOPE eNB %d to UE %d", eNB_inst, UE_inst);
fl_show_form (form_ue[UE_inst]->lte_phy_scope_ue, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
// UL scope at eNB 0
form_enb[UE_inst] = create_lte_phy_scope_enb();
sprintf (title, "LTE UL SCOPE UE %d to eNB %d", UE_inst, eNB_inst);
fl_show_form (form_enb[UE_inst]->lte_phy_scope_enb, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
if (openair_daq_vars.use_ia_receiver == 1) {
fl_set_button(form_ue[UE_inst]->button_0,1);
fl_set_object_label(form_ue[UE_inst]->button_0, "IA Receiver ON");
fl_set_object_color(form_ue[UE_inst]->button_0, FL_GREEN, FL_GREEN);
}
for (eNB_inst = 0; eNB_inst < NB_eNB_INST; eNB_inst++){
for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++){
// DL scope at UEs
if (eNB_inst == 0){
form_ue[UE_inst] = create_lte_phy_scope_ue();
sprintf (title, "LTE DL SCOPE eNB %d to UE %d", eNB_inst, UE_inst);
fl_show_form (form_ue[UE_inst]->lte_phy_scope_ue, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
}
// UL scope at eNB 0
form_enb[eNB_inst] = create_lte_phy_scope_enb();
sprintf (title, "LTE UL SCOPE UE %d to eNB %d", UE_inst, eNB_inst);
fl_show_form (form_enb[eNB_inst]->lte_phy_scope_enb, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
if (openair_daq_vars.use_ia_receiver == 1) {
fl_set_button(form_ue[UE_inst]->button_0,1);
fl_set_object_label(form_ue[UE_inst]->button_0, "IA Receiver ON");
fl_set_object_color(form_ue[UE_inst]->button_0, FL_GREEN, FL_GREEN);
}
}
}
#endif
#ifdef PRINT_STATS
......@@ -1186,21 +1185,20 @@ l2l1_task (void *args_p)
}
#ifdef XFORMS
eNB_inst = 0;
for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++) {
phy_scope_UE(form_ue[UE_inst],
PHY_vars_UE_g[UE_inst][0],
eNB_inst,
UE_inst,
7);
phy_scope_eNB(form_enb[UE_inst],
PHY_vars_eNB_g[eNB_inst][0],
UE_inst);
for (eNB_inst = 0; eNB_inst< NB_eNB_INST; eNB_inst++){
for (UE_inst = 0; UE_inst < NB_UE_INST; UE_inst++) {
if(eNB_inst == 0){
phy_scope_UE(form_ue[UE_inst],
PHY_vars_UE_g[UE_inst][0],
eNB_inst,
UE_inst,
7);
}
phy_scope_eNB(form_enb[eNB_inst],
PHY_vars_eNB_g[eNB_inst][0],
UE_inst);
}
}
#endif
#ifdef SMBV
......
......@@ -1333,11 +1333,10 @@ void update_otg_eNB(module_id_t enb_module_idP, unsigned int ctime)
for (dst_id = 0; dst_id < NUMBER_OF_UE_MAX; dst_id++) {
for_times += 1;
// generate traffic if the ue is rrc reconfigured state
//if ((rrc_state=mac_eNB_get_rrc_status(enb_module_idP, dst_id)) > 2 /*RRC_CONNECTED*/ ) {
if (mac_eNB_get_rrc_status(enb_module_idP, oai_emulation.info.eNB_ue_module_id_to_rnti[enb_module_idP][dst_id]) > 2 ){
if_times += 1;
for (app_id=0; app_id<MAX_NUM_APPLICATION; app_id++) {
......
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